diff --git a/.config/ansible-lint.yml b/.config/ansible-lint.yml index 0ff5748cb..16d4cb0fa 100644 --- a/.config/ansible-lint.yml +++ b/.config/ansible-lint.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- use_default_rules: true diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 463b7cd47..d1e7546da 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # These are supported funding model platforms diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index c20d7abf6..985806d5b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,7 +11,7 @@ assignees: '' A clear and concise description of what the bug is. **To Reproduce** @@ -34,7 +34,7 @@ A clear and concise description of what you expected to happen. **Ansible:** If your problem appears to be with Ansible, tell us: -- where you run Ansible -- e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?) +- where you run Ansible — e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?) - what version of Ansible you're running (see `ansible --version`) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md.license b/.github/ISSUE_TEMPLATE/feature_request.md.license new file mode 100644 index 000000000..3e8049371 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.github/ISSUE_TEMPLATE/i-need-help.md b/.github/ISSUE_TEMPLATE/i-need-help.md index 8bf1a4da4..03632d440 100644 --- a/.github/ISSUE_TEMPLATE/i-need-help.md +++ b/.github/ISSUE_TEMPLATE/i-need-help.md @@ -28,7 +28,7 @@ Make sure to remove any secret values before posting your vars.yml file publicly **Ansible:** If your problem appears to be with Ansible, tell us: -- where you run Ansible -- e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?) +- where you run Ansible — e.g. on the Matrix server itself; on another computer (which OS? distro? standard installation or containerized Ansible?) - what version of Ansible you're running (see `ansible --version`) **Problem description**: diff --git a/.github/ISSUE_TEMPLATE/i-need-help.md.license b/.github/ISSUE_TEMPLATE/i-need-help.md.license new file mode 100644 index 000000000..3e8049371 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/i-need-help.md.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index b9c3cd49d..dad8d2cf2 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- version: 2 updates: diff --git a/.github/renovate.json b/.github/renovate.json index f14fed020..e9c3ceb67 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -20,5 +20,8 @@ ], "ignoreUnstable": false } + ], + "ignoreDeps": [ + "ghcr.io/matrixgpt/matrix-chatgpt-bot" ] } diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index a05a4e3cb..13da4f81a 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -1,11 +1,18 @@ +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -name: 'Close stale issues' +name: 'Close stale issues and PRs' on: # yamllint disable-line rule:truthy + # Use this to do a dry run from a pull request + # pull_request: schedule: - cron: '30 1 * * *' permissions: issues: write + pull-requests: write jobs: stale: @@ -14,14 +21,34 @@ jobs: steps: - uses: actions/stale@v9 with: - # Don't process pull requests at all - days-before-pr-stale: -1 - stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.' + ###################################################################### + # Issues/PRs + ###################################################################### + exempt-assignees: 'spantaleev,aine-etke' + operations-per-run: 500 + # Use this to do a dry run from a pull request + # debug-only: true + ###################################################################### + # Issues + ###################################################################### + stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days. To exempt the issue from being marked as stale again due to inactivity, add "confirmed" label.' close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity. If this issue is still reproduced, feel free to provide the issue with up-to-date information.' stale-issue-label: 'stale' # Add this label to exempt the issue from being marked as stale due to inactivity exempt-issue-labels: 'confirmed' # An allow-list of label(s) to only process the issues which contain one of these label(s). - any-of-issue-labels: 'question,needs-info' - # Use this to do a dry run from a pull request - # debug-only: true + any-of-issue-labels: 'needs-info,question' + ###################################################################### + # PRs + ###################################################################### + days-before-pr-stale: '365' + days-before-pr-close: '30' + stale-pr-message: 'This PR is stale because it has not been provided with required information or its conflicts have not been fixed over a year. Remove stale label or this will be closed in 30 days. To exempt the PR from being marked as stale again due to inactivity, add "confirmed" label.' + close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity.' + stale-pr-label: 'stale' + # Add this label to exempt the PR from being marked as stale due to inactivity + exempt-pr-labels: 'confirmed' + # An allow-list of label(s) to only process the PRs which contain one of these label(s). + any-of-pr-labels: 'needs-info,needs-rebase' + # Use this to ignore updates such as comments (only to keep the PR alive by bumping) + ignore-pr-updates: true diff --git a/.github/workflows/matrix.yml b/.github/workflows/matrix.yml index de1455688..0f9abd338 100644 --- a/.github/workflows/matrix.yml +++ b/.github/workflows/matrix.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- name: Matrix CI diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml new file mode 100644 index 000000000..34b7a09bf --- /dev/null +++ b/.github/workflows/reuse.yml @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. +# +# SPDX-License-Identifier: CC0-1.0 +--- +name: REUSE Compliance Check + +on: [push, pull_request] # yamllint disable-line rule:truthy + +permissions: + contents: read + +jobs: + reuse-compliance-check: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: REUSE Compliance Check + uses: fsfe/reuse-action@v5 diff --git a/CHANGELOG.md b/CHANGELOG.md index cb71f39de..b223f3875 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,215 @@ +# 2025-03-08 + +## 6️⃣ IPv6 support enablement recommended by default + +Our [default example configuration](./examples/vars.yml) and [Configuring DNS](./docs/configuring-dns.md) guides now recommend enabling [IPv6](https://en.wikipedia.org/wiki/IPv6) support. We recommend that everyone enables IPv6 support for their Matrix server, even if they don't have IPv6 connectivity yet. + +Our new [Configuring IPv6](./docs/configuring-ipv6.md) documentation page has more details about the playbook's IPv6 support. + +**Existing playbook users** will **need to do some manual work** to enable IPv6 support. This consists of: + +- enabling IPv6 support for the Docker container networks: + - add `devture_systemd_docker_base_ipv6_enabled: true` to their `vars.yml` configuration file + - stop all services (`just stop-all`) + - delete all container networks on the server: `docker network rm $(docker network ls -q)` + - re-run the playbook fully: `just install-all` + +- [configuring IPv6 (`AAAA`) DNS records](./docs/configuring-ipv6.md#configuring-dns-records-for-ipv6) + +# 2025-02-26 + +## 🪦 Bye-bye, Email2Matrix + +The [Email2Matrix](./docs/configuring-playbook-email2matrix.md) service has been superseded by the [Postmoogle](./docs/configuring-playbook-bridge-postmoogle.md) bridge for a long time now and was completely removed from the playbook today. + +If you still have the Email2Matrix component installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually as described in the [Uninstalling Email2Matrix manually](./docs/configuring-playbook-email2matrix.md#uninstalling-email2matrix-manually) section of the documentation. The playbook will warn you if there are any `matrix_email2matrix_*` variables still remaining in your configuration. + + +# 2025-02-23 + +## The playbook defaults to exposing the Coturn STUN port (3478) over UDP once again + +Recently, we made the playbook [default to exposing the Coturn STUN port (3478) only over TCP](#the-playbook-now-defaults-to-exposing-the-coturn-stun-port-3478-only-over-tcp) to reduce the severity of DDoS amplification/reflection attacks. + +It seems like old Element clients on mobile devices only support talking to the STUN port over UDP, not TCP. +To accommodate such ancient clients, we're now **reversing this change** and **defaulting to exposing the Coturn STUN port (3478) over UDP once again**. + +In light of this new information, you have 2 options: + +1. **If you already adapted to the previous change and would like to adapt to this change one again**: + +- make sure the `3478/udp` port is whitelisted in your external firewall (if you have one) once again. + +2. **If you don't care about old Element clients and wish to reduce the severity of DDoS amplification/reflection attacks**: + +- Consider closing the STUN/UDP port with the following configuration: + + ```yaml + matrix_coturn_container_stun_plain_host_bind_port_udp: "" + ``` + +- Consider keeping `3478/udp` blocked in your external firewall (if you have one) + +# 2025-02-21 + +## Docker daemon options are no longer adjusted when IPv6 is enabled + +We landed [initial IPv6 support](#initial-work-on-ipv6-support) in the past via a `devture_systemd_docker_base_ipv6_enabled` variable that one had to toggle to `true`. + +This variable did **2 different things at once**: + +- ensured that container networks were created with IPv6 being enabled +- adjusted the Docker daemon's configuration to set `experimental: true` and `ip6tables: true` (a necessary prerequisite for creating IPv6-enabled networks) + +Since Docker 27.0.1's [changes to how it handles IPv6](https://docs.docker.com/engine/release-notes/27/#ipv6), **adjusting the Docker daemon's configuration is no longer necessary**, because: +- `ip6tables` defaults to `true` for everyone +- `ip6tables` is out of the experimental phase, so `experimental` is no longer necessary + +In light of this, we're introducing a new variable (`devture_systemd_docker_base_ipv6_daemon_options_changing_enabled`) for controlling if IPv6 should be force-enabled in the Docker daemon's configuration options. +Since most people should be on a modern enough Docker daemon version which doesn't require such changes, this variable defaults to `false`. + +This change affects you like this: + +- ✅ if you're **not explicitly enabling IPv6** (via `devture_systemd_docker_base_ipv6_enabled` in your configuration): you're unaffected +- ❓ if you're **explicitly enabling IPv6** (via `devture_systemd_docker_base_ipv6_enabled` in your configuration): + - ✅ .. and you're on a modern enough Docker version (which you most likely are): the playbook will no longer mess with your Docker daemon options. You're unaffected. + - 🔧 .. and you're on an old Docker version, you **are affected** and need to use the following configuration to restore the old behavior: + + ```yml + # Force-enable IPv6 by changing the Docker daemon's options. + # This is necessary for Docker < 27.0.1, but not for newer versions. + devture_systemd_docker_base_ipv6_daemon_options_changing_enabled: true + + # Request that individual container networks are created with IPv6 enabled. + devture_systemd_docker_base_ipv6_enabled: true + ``` + +## Support for bridging to Bluesky via mautrix-bluesky + +Thanks to [Zepmann](https://github.com/Zepmann), the playbook now supports bridging to [Bluesky](https://bsky.app/) via [mautrix-bluesky](https://github.com/mautrix/bluesky). + +To learn more, see our [Setting up mautrix-bluesky](./docs/configuring-playbook-bridge-mautrix-bluesky.md) documentation page. + + +# 2025-02-19 + +## The playbook now defaults to exposing the Coturn STUN port (3478) only over TCP + +We've previously done some work to **decrease the severity** of DDoS amplification attacks done through the [Coturn](./docs/configuring-playbook-turn.md)'s STUN port (2.8x -> 1.6x) as reported in [coturn: Lower DDoS amplification/reflection factor from 2.8 to 1.6 #2592](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2592). + +To **completely eliminate the problem** of DDoS amplification attacks done through the [Coturn](./docs/configuring-playbook-turn.md) STUN port even further (read more about this in [this article](https://stormwall.network/resources/blog/protect-against-ddos-based-on-stun-exploit)), the playbook now **disables exposure of the Coturn STUN port (`3478`) over UDP**. This is a bit heavy-handed, but is probably the only way to completely eliminate the problem. + +The playbook now **only exposes the Coturn STUN port (`3478`) over TCP by default**. + +💡 Users may wish to further remove the (now unnnecessary) firewall rule allowing access to `3478/udp`. + +If you'd like the Coturn STUN port to be exposed over UDP like before, you can revert to the previous behavior by using the following configuration in your `vars.yml` file: + +```yaml +matrix_coturn_container_stun_plain_host_bind_port_udp: "3478" +``` + +> [!WARNING] +> People running Coturn directly on the `host` network (using `matrix_coturn_container_network: host`) will still have the STUN port exposed over UDP, as port exposure is done directly via Coturn and not via Docker. In such cases, the playbook cannot prevent `3478/udp` port exposure and you'd need to do it in another way (separate firewall rule, etc). + + +# 2025-02-17 + +## FluffyChat Web suport + +Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [FluffyChat Web](https://github.com/krille-chan/fluffychat) as an additional Matrix client you can self-host. + +To learn more, see our [Setting up FluffyChat Web](docs/configuring-playbook-client-fluffychat-web.md) documentation page. + + +# 2025-02-03 + +## The mautrix-hangouts bridge has been removed from the playbook + +The [mautrix-hangouts](./docs/configuring-playbook-bridge-mautrix-hangouts.md) bridge has been deprecated in the playbook since December 2024 and finally got completely removed from the playbook in February 2025. + +This is because Google Hangouts has been discontinued since the 1st of November 2022. + +The playbook will let you know if you're using any `matrix_mautrix_hangouts_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the bridge manually](./docs/configuring-playbook-bridge-mautrix-hangouts.md#uninstalling-the-bridge-manually). + + +# 2025-01-27 + +## Redis and KeyDB are no longer part of the playbook + +**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead. + +The playbook has gone through several iterations of memorystore implementations: + +1. It initially used Redis, auto-installing it when needed by features/services +2. [Switched to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis) as the default, while keeping Redis support for those who wished to remain on Redis +3. [Switched to Valkey](#backward-compatibility-break-the-playbook-now-defaults-to-valkey-instead-of-keydb) due to [KeyDB issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), while keeping Redis and KeyDB support, for those who wished to remain on them + +To reduce configuration complexity and maintenance overhead, we are now: + +- removing Redis and KeyDB support entirely +- using Valkey as the sole Redis-compatible memorystore implementation + +To update your configuration: + +- **Most users** don't need to do anything +- **Users that were explicitly sticking to Redis/KeyDB** need to update their `vars.yml` to use `valkey_*` variables instead + + +# 2025-01-19 + +## conduwuit support + +Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [conduwuit](https://conduwuit.puppyirl.gay/) homeserver support for new installations. + +conduwuit is a fork of [Conduit](./docs/configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html). + +Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook. + +To try out conduwuit, we recommend that you **use a new server**. Refer to our [Configuring conduwuit](./docs/configuring-playbook-conduwuit.md) guide for details. + +**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to conduwuit) without data loss. + + +# 2025-01-14 + +## (Backward Compatibility Break) Synapse v1.122.0 requires Postgres v13 + +The Synapse homeserver [requires Postgres v13 or newer](https://github.com/element-hq/synapse/issues/18034). + +If you've been maintaining your setup for a while and you haven't been doing [Postgres upgrades](docs/maintenance-postgres.md#upgrading-postgresql), you may be on an old version of Postgres. The easiest way to check is to see the contents of the `/matrix/postgres/data/PG_VERSION` file. + +If you're on a Postgres version older than v13, you need to [upgrade your Postgres setup](docs/maintenance-postgres.md#upgrading-postgresql) or Synapse will produce an error on startup. + +If you're using an external Postgres server (not installed by this playbook), you'll need to figure out how to upgrade it yourself. + +If you're not ready to upgrade your Postgres setup yet, you can temporarily remain on an old Synapse version by adding the following configuration to your `vars.yml` file: + +```yaml +# Pinning to the last Synapse version which supports Postgres v11 and v12. +matrix_synapse_version: v1.121.1 +``` + + +# 2024-11-26 + +## (Backward Compatibility Break) Synapse now defaults to enabling authenticated media + +**TLDR**: with this update, your Synapse homeserver will start requiring authentication for newly-uploaded media files. While the majority of the ecosystem (clients, bots, etc.) should support this, certain software may lack support for it (and you may wish to turn it off, if it's causing issues). + +The default configuration for the Synapse homeserver now [enforces Authenticated media by default](https://element-hq.github.io/synapse/v1.120/upgrade.html#authenticated-media-is-now-enforced-by-default). + +Servers like `matrix.org` have already [sunset unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) months ago. + +Now that **various clients, bots, bridges and extra services have caught up with authenticated media support**, Synapse developers seem confident that it's time to enable authenticated media by default. + +We're changing the playbook configuration for authenticated media to keep up with upstream defaults changing. + +Old and unmaintained bridges (like all mx-puppet bridges, etc.) do not support authenticated media. Other software may be similarly affected. If you experience issues with some Matrix-related software, you may wish to disable authenticated media and contact the software maintainers to let them know. + +You can disable authenticated media at any time by setting `matrix_synapse_enable_authenticated_media: false` in your `vars.yml` configuration file and re-running the playbook. + + # 2024-11-23 ## (Backward Compatibility Break) The playbook now defaults to Valkey, instead of KeyDB @@ -6,11 +218,11 @@ The playbook used to install Redis or KeyDB if services have a need for a Redis-compatible implementation ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.). -Earlier this year, we switched from Redis to KeyDB - see [(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis). +Earlier this year, we switched from Redis to KeyDB — see [(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis). Because Valkey seems to be a better successor to Redis (than KeyDB) and likely doesn't suffer from [issues like this one](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), we now replace KeyDB with Valkey. -Valkey (like KeyDB and Redis in the past) is an implicitly enabled dependency - you don't need custom configuration in `vars.yml` to enable it. +Valkey (like KeyDB and Redis in the past) is an implicitly enabled dependency — you don't need custom configuration in `vars.yml` to enable it. Next time your run the playbook (via the `setup-all` tag), **KeyDB will be automatically uninstalled and replaced with Valkey**. Some Synapse downtime may occur while the switch happens. @@ -46,13 +258,11 @@ At some point in time in the future, we'll remove both KeyDB and Redis from the The playbook now **automatically enables HTTP-compression support** for major services powered by the playbook, like [Cinny](./docs/configuring-playbook-client-cinny.md), [Element Web](./docs/configuring-playbook-client-element-web.md), [Hydrogen](./docs/configuring-playbook-client-hydrogen.md), as well as for Matrix Client-Server and Federation APIs (`matrix.example.com`). -Other services installed by the playbook are currently not compression-enabled, but may become so over time. -This change is rolled out on a per-service basis (as opposed to doing it globally, at the Traefik entrypoint level) to allow certain services or route endpoints which do not behave well when compressed (e.g. [issue 3749](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3749)) to be excluded from compression. +Other services installed by the playbook are currently not compression-enabled, but may become so over time. This change is rolled out on a per-service basis (as opposed to doing it globally, at the Traefik entrypoint level) to allow certain services or route endpoints which do not behave well when compressed (e.g. [issue 3749](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3749)) to be excluded from compression. A long time ago, various services were operating with `gzip`-compression enabled at the nginx level. Since the switch to Traefik (see [Goodbye, `matrix-nginx-proxy` 🪦](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/57c5271d9d6265a34a9d9cceb93365f685074f96/CHANGELOG.md#goodbye-matrix-nginx-proxy-)), all services (with the exception of Matrix APIs for Synapse worker-enabled setups which are powered by `nginx` via `synapse-reverse-proxy-companion`) have been operating without HTTP-compression support. -HTTP-compression is now done via Traefik's [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware. We use the default configuration for this middleware, which enables `zstd`, `br` and `gzip` support (in this order). -This middleware's configuration can be configured via variables in the Traefik role (see `traefik_config_http_middlewares_compression_middleware_options`). +HTTP-compression is now done via Traefik's [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware. We use the default configuration for this middleware, which enables `zstd`, `br` and `gzip` support (in this order). This middleware's configuration can be configured via variables in the Traefik role (see `traefik_config_http_middlewares_compression_middleware_options`). If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you can benefit from the same by: @@ -66,9 +276,7 @@ The playbook now supports configuring various [transport.respondingTimeouts](htt If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you may wish to do similar configuration changes to your setup manually. -The most interesting of these is the `readTimeout` configuration value (the maximum duration for reading the entire request, including the body), which used to default to `60s`. -For large and slowly progressing file uploads, `60s` would often not be enough for the transfer to finish and uploads would end up being interrupted. -The playbook now raises the `readTimeout` value to 5 minutes (`300s`) to improve this use-case. +The most interesting of these is the `readTimeout` configuration value (the maximum duration for reading the entire request, including the body), which used to default to `60s`. For large and slowly progressing file uploads, `60s` would often not be enough for the transfer to finish and uploads would end up being interrupted. The playbook now raises the `readTimeout` value to 5 minutes (`300s`) to improve this use-case. The `traefik_config_entrypoint_web_transport_respondingTimeouts_*` variables (for the `web` entrypoint) cascade to affecting the timeout values for the `web-secure` and `matrix-federation` entrypoints, so you can easily adjust all timeout values using them. @@ -136,7 +344,7 @@ As always, the playbook would let you know about this and point out any variable ## Support for baibot -The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) - a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖 +The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) — a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖 It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as well as many other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md). @@ -144,20 +352,19 @@ It's designed as a more private and [✨ featureful](https://github.com/etkecc/b To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baibot.md) documentation page. - ## Switching synapse-admin to etke.cc's fork The playbook now installs [etke.cc](https://etke.cc/)'s [fork](https://github.com/etkecc/synapse-admin) of [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) (originally developed by [Awesome-Technologies](https://github.com/Awesome-Technologies)). This fork is a drop-in replacement for the original software. -The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) - to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork. +The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) — to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork. If upstream synapse-admin picks up the pace and improves, the etke.cc fork may disappear and the playbook may switch to the original software again. Until that time comes, we believe that etke.cc's fork is the better software to use right now. If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file: -```yml +```yaml matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}" -matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else 'docker.io/' }}" matrix_synapse_admin_version: 0.10.3 @@ -180,7 +387,7 @@ All non-deprecated mautrix bridges in the playbook have been reworked to support We recommend **enabling double-puppeting via the new Appservice method** by adding the following configuration to your `vars.yml` file: -```yml +```yaml matrix_appservice_double_puppet_enabled: true ``` @@ -212,7 +419,7 @@ This upgrade necessitates configuration policy changes as described in [matrix-c If you'd like to remain on the old (v2) version of matrix-corporal, you can do so by adding the following configuration to your `vars.yml` file: -```yml +```yaml matrix_corporal_version: 2.8.0 ``` @@ -220,7 +427,7 @@ matrix_corporal_version: 2.8.0 ## synapse-usage-exporter support -Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) - a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape. +Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) — a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape. To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](docs/configuring-playbook-synapse-usage-exporter.md) documentation page. @@ -233,7 +440,6 @@ For those wishing to more easily integrate [Prometheus](https://prometheus.io/)' See [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](./docs/configuring-playbook-alertmanager-receiver.md) for more details. - ## Traefik v3 and HTTP/3 are here now **TLDR**: Traefik was migrated from v2 to v3. Minor changes were done to the playbook. Mostly everything else worked out of the box. Most people will not have to do any tweaks to their configuration. In addition, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is now auto-enabled for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. If you have a firewall in front of your server and you wish to benefit from `HTTP3`, you will need to open the `443` and `8448` UDP ports in it. @@ -252,13 +458,11 @@ If you're using the playbook's Traefik instance to reverse-proxy to some other s If you've tweaked any of this playbook's `_path_prefix` variables and made them use a regular expression, you will now need to make additional adjustments. The playbook makes extensive use of `PathPrefix()` matchers in Traefik rules and `PathPrefix` does not support regular expressions anymore. To work around it, you may now need to override a whole `_traefik_rule` variable and switch it from [`PathPrefix` to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp). -If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` - a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand. - +If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` — a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand. ### HTTP/3 is enabled by default -In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now. -Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. +In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now. Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. HTTP3 uses the UDP protocol and **the playbook (together with Docker) will make sure that the appropriate ports** (`443` over UDP & `8448` over UDP) **are exposed and whitelisted in your server's firewall**. However, **if you have another firewall in front of your server** (as is the case for many cloud providers), **you will need to manually open these UDP ports**. @@ -268,7 +472,7 @@ Still, if HTTP/3 cannot function correctly in your setup, it's best to disable a To **disable HTTP/3**, you can use the following configuration: -```yml +```yaml traefik_config_entrypoint_web_secure_http3_enabled: false # Disabling HTTP/3 for the web-secure entrypoint (above), @@ -282,7 +486,7 @@ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_ena If you are using [your own webserver](./docs/configuring-playbook-own-webserver.md) (in front of Traefik), port binding on UDP port `8448` by default due to HTTP/3 is either unnecessary or [may get in the way](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402). If it does, you can disable it: -```yml +```yaml # Disable HTTP/3 for the federation entrypoint. # If you'd like HTTP/3, consider configuring it for your other reverse-proxy. # @@ -303,7 +507,7 @@ The playbook has just started making use of this feature. **From now on, your sy If you'd like **to go back to the old unrestricted behavior**, use the following configuration: -```yml +```yaml # Use this configuration to allow synapse-admin to manage any homeserver instance. matrix_synapse_admin_config_restrictBaseUrl: [] ``` @@ -323,10 +527,9 @@ To avoid future problems, we've [reconfigured](https://github.com/spantaleev/mat When generating new webhooks, you should start seeing the new URLs being used. -**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work***, so your webhooks will not break just yet. - -However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side - you merely need to reconfigure the remote systems that use your webhook URLs. +**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work**, so your webhooks will not break just yet. +However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side — you merely need to reconfigure the remote systems that use your webhook URLs. # 2024-06-22 @@ -335,8 +538,7 @@ However, **we recommend that you update all your old webhook URLs** (configured To make things easier and to be consistent with other roles, the [maubot](./docs/configuring-playbook-bot-maubot.md) user (`bot.maubot` by default) is [now](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3376) automatically created be the playbook. -If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined. -Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable. +If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined. Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable. If you've registered another username for the bot (other than the recommended default of `bot.maubot`), consider adjusting the `matrix_bot_maubot_login` variable (e.g. `matrix_bot_maubot_login: my.maubot.username`). @@ -368,14 +570,13 @@ Users on `arm32` should be aware that there's **neither a prebuilt `arm32` conta **The playbook still supports Redis** and you can keep using Redis (for now) if you'd like, by adding this additional configuration to your `vars.yml` file: -```yml +```yaml # Explicitly disable KeyDB, which will auto-enable Redis # if the playbook requires it as a dependency for its operation. keydb_enabled: false ``` - # 2024-03-24 ## Initial work on IPv6 support @@ -390,7 +591,7 @@ It should be noted that: ## Pantalaimon support -Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms - see our Draupnir docs for details. +Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms — see our Draupnir docs for details. See our [Setting up Pantalaimon](docs/configuring-playbook-pantalaimon.md) documentation to get started. @@ -410,9 +611,9 @@ The documentation page for [Draupnir for all](./docs/configuring-playbook-appser ## Support for bridging to Facebook/Messenger via the new mautrix-meta bridge -The [mautrix-facebook](./docs/configuring-playbook-bridge-mautrix-facebook.md) and [mautrix-instagram](./docs/configuring-playbook-bridge-mautrix-instagram.md) bridges are being [superseded by a new bridge](https://github.com/mautrix/facebook/issues/332) - the [mautrix-meta](https://github.com/mautrix/meta) bridge. +The [mautrix-facebook](./docs/configuring-playbook-bridge-mautrix-facebook.md) and [mautrix-instagram](./docs/configuring-playbook-bridge-mautrix-instagram.md) bridges are being [superseded by a new bridge](https://github.com/mautrix/facebook/issues/332) — the [mautrix-meta](https://github.com/mautrix/meta) bridge. -The playbook now supports the new mautrix-meta bridge - a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time. +The playbook now supports the new mautrix-meta bridge — a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time. If you're using mautrix-facebook or mautrix-instagram right now, **you can still continue using the old bridges, but may wish to change to the new bridge implementations**. See: @@ -427,16 +628,15 @@ The documentation pages contain more information on how to migrate. ## Much larger Synapse caches and cache auto-tuning enabled by default -Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). -This work and the default values used by the playbook are inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/deployment/synapse.html). +Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). This work and the default values used by the playbook are inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/deployment/synapse.html). The playbook has always used a very conservative cache factor (`matrix_synapse_caches_global_factor`) value of `0.5`, which may be OK for small and underactive deployments, but is not ideal for larger servers. Paradoxically, a small global cache factor value [does not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939). The playbook now uses **a 20x larger cache factor** (currently `10`), adjusts a few other cache-related variables, and **enables cache auto-tuning** via the following variables: -- `matrix_synapse_cache_autotuning_max_cache_memory_usage` - defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes -- `matrix_synapse_cache_autotuning_target_cache_memory_usage` - defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes -- `matrix_synapse_cache_autotuning_min_cache_ttl` - defaults to `30s` +- `matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s` These values should be good defaults for most servers, but may change over time as we experiment further. @@ -449,7 +649,7 @@ Refer to our new [Tuning caches and cache autotuning](docs/maintenance-synapse.m This only affects people who are [Serving a static website at the base domain](./docs/configuring-playbook-base-domain-serving.md#serving-a-static-website-at-the-base-domain), but not managing its `index.html` through the playbook. -That is, for people who have `matrix_static_files_file_index_html_enabled: false` in their `vars.yml` configuration, the playbook has a new default behavior. Since the playbook is not managing the `index.html` file, it will default to a more sensible way of handling the base domain - redirecting `https://example.com/` to `https://matrix.example.com/`, instead of serving a 404 page. +That is, for people who have `matrix_static_files_file_index_html_enabled: false` in their `vars.yml` configuration, the playbook has a new default behavior. Since the playbook is not managing the `index.html` file, it will default to a more sensible way of handling the base domain — redirecting `https://example.com/` to `https://matrix.example.com/`, instead of serving a 404 page. If you are managing your static website by yourself (by dropping files into `/matrix/static-files/public` somehow), then you probably don't wish for such redirection to happen. You can disable it by adding `matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false` to your `vars.yml` configuration file. @@ -473,7 +673,7 @@ To get started, refer to our [Specialized workers](./docs/configuring-playbook-s A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under: -- the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license - the same license that this Ansible playbook has always used +- the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license — the same license that this Ansible playbook has always used - a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation. @@ -504,7 +704,7 @@ matrix_synapse_version: v1.98.0 Notes: -- if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` - see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version +- if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` — see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version - running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution. @@ -522,14 +722,14 @@ As of [#204](https://github.com/the-draupnir-project/Draupnir/pull/204) Draupnir ### Backstory on `matrix-nginx-proxy` -We gather here today to celebrate the loss of a once-beloved component in our stack - `matrix-nginx-proxy`. It's been our [nginx](https://nginx.org/)-based reverse-proxy of choice since the [first commit](https://github.com/spantaleev/matrix-docker-ansible-deploy/tree/87f5883f2455fb115457b65f267f17de305c053c) of this playbook, 7 years ago. +We gather here today to celebrate the loss of a once-beloved component in our stack — `matrix-nginx-proxy`. It's been our [nginx](https://nginx.org/)-based reverse-proxy of choice since the [first commit](https://github.com/spantaleev/matrix-docker-ansible-deploy/tree/87f5883f2455fb115457b65f267f17de305c053c) of this playbook, 7 years ago. -For 6 years, `matrix-nginx-proxy` has been the front-most reverse-proxy in our setup (doing SSL termination, etc.). After [transitioning to Traefik last year](#traefik-is-the-default-reverse-proxy-now), `matrix-nginx-proxy` took a step back. Nevertheless, since it was so ingrained into the playbook, it still remained in use - even if only internally. Despite our warnings of its imminent death, many of you have indubitably continued to use it instead of Traefik. Its suffering continued for too long, because it served many different purposes and massive effort was required to transition them to others. +For 6 years, `matrix-nginx-proxy` has been the front-most reverse-proxy in our setup (doing SSL termination, etc.). After [transitioning to Traefik last year](#traefik-is-the-default-reverse-proxy-now), `matrix-nginx-proxy` took a step back. Nevertheless, since it was so ingrained into the playbook, it still remained in use — even if only internally. Despite our warnings of its imminent death, many of you have indubitably continued to use it instead of Traefik. Its suffering continued for too long, because it served many different purposes and massive effort was required to transition them to others. To us, `matrix-nginx-proxy` was: - an [nginx](https://nginx.org/)-based reverse-proxy -- an Ansible role organizing the work of [certbot](https://certbot.eff.org/) - retrieving free [Let's Encrypt](https://letsencrypt.org/) SSL certificates for `matrix-nginx-proxy` and for the [Coturn TURN server](./docs/configuring-playbook-turn.md) +- an Ansible role organizing the work of [certbot](https://certbot.eff.org/) — retrieving free [Let's Encrypt](https://letsencrypt.org/) SSL certificates for `matrix-nginx-proxy` and for the [coturn TURN server](./docs/configuring-playbook-turn.md) - a central component for reverse-proxying to the [long list of services](./docs/configuring-playbook.md) supported by the playbook. As such, it became a dependency that all these services had to inject themselves into during runtime - an intermediary through which addons (bridges, bots) communicated with the homeserver. Going through an intermediary (instead of directly talking to the homeserver) is useful when certain components (like [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) are enabled, because it lets these services "steal routes" from the homeserver - a webserver for serving the `/.well-known/matrix` static files (generated by the `matrix-base` role until now) @@ -538,29 +738,25 @@ To us, `matrix-nginx-proxy` was: Talk about a jack of all trades! The [UNIX philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) (and Docker container philosophy) of "do one thing and do it well" had been severely violated for too long. -On a related note, we also had a large chain of reverse-proxies in the mix. -In the worst case, it was something like this: (Traefik -> `matrix-nginx-proxy:8080` -> `matrix-nginx-proxy:12080` -> `matrix-synapse-reverse-proxy-companion:8008` -> `matrix-synapse:8008`). +On a related note, we also had a large chain of reverse-proxies in the mix. In the worst case, it was something like this: (Traefik -> `matrix-nginx-proxy:8080` -> `matrix-nginx-proxy:12080` -> `matrix-synapse-reverse-proxy-companion:8008` -> `matrix-synapse:8008`). -Due to complexity and the playbook's flexibility (trying to accommodate a mix of tens of components), many layers of indirection were necessary. We do like reverse-proxies, but.. not quite enough to enjoy going through a chain of ~4 of them before reaching the target service. +Due to complexity and the playbook's flexibility (trying to accommodate a mix of tens of components), many layers of indirection were necessary. We do like reverse-proxies, but… not quite enough to enjoy going through a chain of ~4 of them before reaching the target service. After **a ton of work** in the last weeks (200+ commits, which changed 467 files - 8684 insertions and 8913 deletions), **we're finally saying goodbye** to `matrix-nginx-proxy`. - ### Going Traefik-native and cutting out all middlemen In our new setup, you'll see the bare minimum number of reverse-proxies. In most cases, there's only Traefik and all services being registered directly with it. When [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) are enabled, `matrix-synapse-reverse-proxy-companion` remains as an extra reverse-proxy that requests go through (for load-balancing to the correct Synapse worker), but in all other cases services are exposed directly. -This reduces "network" hops (improving performance) and also decreases the number of components (containers). -Each Ansible role in our setup is now independent and doesn't need to interact with other roles during runtime. - +This reduces "network" hops (improving performance) and also decreases the number of components (containers). Each Ansible role in our setup is now independent and doesn't need to interact with other roles during runtime. ### Traefik now has an extra job -Previously, **Traefik had a single purpose** - being the main reverse-proxy. It was either front-most (terminating SSL, etc.) or you were [fronting Traefik with your own other reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). In any case - it had this central (yet decentralized) job. +Previously, **Traefik had a single purpose** — being the main reverse-proxy. It was either front-most (terminating SSL, etc.) or you were [fronting Traefik with your own other reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). In any case — it had this central (yet decentralized) job. -Now, **Traefik has one more role** - it serves as an intermediary which allows addon services (bridges, bots, etc.) to communicate with the homeserver. As mentioned above, such an intermediary service is not strictly necessary in all kinds of setups, but more complex setups (including [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) benefit from it. +Now, **Traefik has one more role** — it serves as an intermediary which allows addon services (bridges, bots, etc.) to communicate with the homeserver. As mentioned above, such an intermediary service is not strictly necessary in all kinds of setups, but more complex setups (including [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) benefit from it. To perform this new role, Traefik now has a new internal [entrypoint](https://doc.traefik.io/traefik/routing/entrypoints/) called `matrix-internal-matrix-client-api`. All homeservers (Conduit, Dendrite, Synapse and even `matrix-synapse-reverse-proxy-companion`) and homeserver-related core services ([matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md), [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md) and potentially others) register their routes (using [container labels](https://docs.docker.com/config/labels-custom-metadata/)) not only on the public entrypoints (`web-secure`, `matrix-federation`), but also on this new internal entrypoint. @@ -581,24 +777,21 @@ People running the default Traefik setup do not need to do anything to make Trae You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a "simpler" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended. - ### People managing their own Traefik instance need to do minor changes This section is for people [managing their own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you). Those [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) don't need to do any changes. Because [Traefik has an extra job now](#traefik-now-has-an-extra-job), you need to adapt your configuration to add the additional `matrix-internal-matrix-client-api` entrypoint and potentially configure the `matrix_playbook_reverse_proxy_container_network` variable. See the [Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you) documentation section for more details. - ### People fronting Traefik with another reverse proxy need to do minor changes We've already previously mentioned that you need to do some minor [configuration changes related to `traefik_additional_entrypoints_auto`](#backward-compatibility-configuration-changes-required-for-people-fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). If you don't do these changes (switching from `traefik_additional_entrypoints_auto` to multiple other variables), your Traefik setup will not automatically receive the new `matrix-internal-matrix-client-api` Traefik entrypoint and Traefik would not be able to perform [its new duty of connecting addons with the homeserver](#traefik-now-has-an-extra-job). - ### Supported reverse proxy types are now fewer -This section is for people using a more custom reverse-proxy setup - those having `matrix_playbook_reverse_proxy_type` set to a value different than the default (`playbook-managed-traefik`). +This section is for people using a more custom reverse-proxy setup — those having `matrix_playbook_reverse_proxy_type` set to a value different than the default (`playbook-managed-traefik`). Previously, we allowed you to set `matrix_playbook_reverse_proxy_type` to 7 different values to accommodate various reverse-proxy setups. @@ -617,14 +810,13 @@ If you were using these values as a way to stay away from Traefik, you now have - (recommended) [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) - (not recommended) [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all) and reverse-proxying to each and every service manually - ### Container networking changes Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out some other long-overdue technical debt. -Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network. +Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network. -Moving components (especially the database) into other container networks was difficult - it required changes to many other components to ensure correct connectivity. +Moving components (especially the database) into other container networks was difficult — it required changes to many other components to ensure correct connectivity. All the hard work has been done now. We've added much more isolation between services by splitting them up into separate networks (`matrix-homeserver`, `matrix-addons`, `matrix-monitoring`, `matrix-exim-relay`, etc). Components are only joined to the networks they need and should (for the most part) not be able to access unrelated things. @@ -632,19 +824,17 @@ Carrying out these container networking changes necessitated modifying many comp We've refrained from creating too many container networks (e.g. one for each component), to avoid exhausting Docker's default network pool and contaminating the container networks list too much. - ### Metrics exposure changes This section is for people who are exposing monitoring metrics publicly, to be consumed by an external Prometheus server. Previously, `matrix-nginx-proxy` was potentially password-protecting all `/metrics/*` endpoints with the same username and password (specified as plain-text in your `vars.yml` configuration file). -From now on, there are new variables for doing roughly the same - `matrix_metrics_exposure_enabled`, `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. See the [Prometheus & Grafana](./docs/configuring-playbook-prometheus-grafana.md) docs page for details. +From now on, there are new variables for doing roughly the same — `matrix_metrics_exposure_enabled`, `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. See the [Prometheus & Grafana](./docs/configuring-playbook-prometheus-grafana.md) docs page for details. `matrix-nginx-proxy` is not acting as a "global guardian" anymore. Now, each role provides its own metrics exposure and protection by registering with Traefik. Nevertheless, all roles are wired (via playbook configuration in `group_vars/matrix_servers`) to obey these new `matrix_metrics_exposure_*` variables. We've eliminated the centralization, but have kept the ease of use. Now, you can also do per-service password-protection (with different credentials), should you need to do that for some reason. -The playbook will tell you about all variables that you need to migrate during runtime, so rest assured - you shouldn't be able to miss anything! - +The playbook will tell you about all variables that you need to migrate during runtime, so rest assured — you shouldn't be able to miss anything! ### Matrix static files @@ -654,7 +844,6 @@ All of this has been extracted into a new `matrix-static-files` Ansible role tha The playbook will migrate and update the `/.well-known/matrix/*` files automatically but not your own files in `nginx-proxy/data/matrix-domain/` you will need to back these up yourself otherwise they will be lost. It will also warn you about usage of old variable names, so you can adapt to the new names. - ### A note on performance Some of you have been voicing their concerns (for a long time) about Traefik being too slow and nginx being better. @@ -665,10 +854,9 @@ We believe that using Traefik provides way too many benefits to worry about this The heaviest part of running a Matrix homeserver is all the slow and potentially inefficient things the homeserver (e.g. Synapse) is doing. These things affect performance much more than whatever reverse-proxy is in front. Your server will die the same way by joining the famously large **Matrix HQ** room, no matter which reverse-proxy you put in front. -Even our previously mentioned benchmarks (yielding ~1300 rps) are synthetic - hitting a useless `/_matrix/client/versions` endpoint. Real-use does much more than this. - -If this is still not convincing enough for you and you want the best possible performance, consider [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (thus having the slowest part - SSL termination - happen elsewhere) or [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all). The playbook will not get in your way of doing that, but these options may make your life much harder. Performance comes at a cost, after all. +Even our previously mentioned benchmarks (yielding ~1300 rps) are synthetic — hitting a useless `/_matrix/client/versions` endpoint. Real-use does much more than this. +If this is still not convincing enough for you and you want the best possible performance, consider [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (thus having the slowest part — SSL termination — happen elsewhere) or [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all). The playbook will not get in your way of doing that, but these options may make your life much harder. Performance comes at a cost, after all. ### Migration procedure @@ -680,7 +868,7 @@ The updated playbook will automatically perform some migration tasks for you: 3. It will delete the `/matrix/ssl` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_uninstallation_enabled: false` to your `vars.yml` configuration file. If you have some important certificates there for some reason, take them out or temporarily disable removal of these files until you do. -4. It will tell you about all variables (`matrix_nginx_proxy_*` and many others - even from other roles) that have changed during this large nginx-elimination upgrade. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled: false` to your `vars.yml` configuration file. +4. It will tell you about all variables (`matrix_nginx_proxy_*` and many others — even from other roles) that have changed during this large nginx-elimination upgrade. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled: false` to your `vars.yml` configuration file. 5. It will tell you about any leftover `matrix_nginx_proxy_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_leftover_variable_validation_checks_enabled: false` to your `vars.yml` configuration file. @@ -688,14 +876,11 @@ The updated playbook will automatically perform some migration tasks for you: We don't recommend changing these variables and suppressing warnings, unless you know what you're doing. -**Most people should just upgrade as per-normal**, bearing in mind that a lot has changed and some issues may arise. -The playbook would guide you through renamed variables automatically. - +**Most people should just upgrade as per-normal**, bearing in mind that a lot has changed and some issues may arise. The playbook would guide you through renamed variables automatically. ### Conclusion -Thousands of lines of code were changed across hundreds of files. -All addons (bridges, bots) were rewired in terms of container networking and in terms of how they reach the homeserver. +Thousands of lines of code were changed across hundreds of files. All addons (bridges, bots) were rewired in terms of container networking and in terms of how they reach the homeserver. I don't actively use all the ~100 components offered by the playbook (no one does), nor do I operate servers exercising all edge-cases. As such, issues may arise. Please have patience and report (or try to fix) these issues! @@ -710,8 +895,7 @@ People who are [Fronting the integrated Traefik reverse-proxy webserver with ano Such a full variable redefinion is intrustive, because it prevents the playbook from injecting additional entrypoints into the Traefik webserver. In the future, the playbook may have a need to do so. -For this reason, we no longer recommend completely redefining `traefik_additional_entrypoints_auto`. -The playbook now defines [various `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_*` variables in the `defaults/main.yml` file](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-base/defaults/main.yml) of the `matrix-base` role which can be used as a safer alternative to `traefik_additional_entrypoints_auto`. +For this reason, we no longer recommend completely redefining `traefik_additional_entrypoints_auto`. The playbook now defines [various `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_*` variables in the `defaults/main.yml` file](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-base/defaults/main.yml) of the `matrix-base` role which can be used as a safer alternative to `traefik_additional_entrypoints_auto`. Adapt your configuration as seen below: @@ -761,8 +945,7 @@ Thanks to them, a new [v0.3.0](https://github.com/anoadragon453/matrix-reminder- The new version also comes with new `allowlist` and `blocklist` settings, which make it possible to restrict who can use the bot. Previously anyone, even across the Matrix Federation could talk to it and schedule reminders. -The playbook defaults all bridges and bots (where possible) to only be exposed to users of the current homeserver, not users across federation. -Thanks to the new version of this bot making such a restriction possible, we're now making use of it. The playbook (via its `group_vars/matrix_servers` file) automatically enables the `allowlist` (`matrix_bot_matrix_reminder_bot_allowlist_enabled: true`) and configures it in such a way (`matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) so as to restrict the bot to your homeserver's users. +The playbook defaults all bridges and bots (where possible) to only be exposed to users of the current homeserver, not users across federation. Thanks to the new version of this bot making such a restriction possible, we're now making use of it. The playbook (via its `group_vars/matrix_servers` file) automatically enables the `allowlist` (`matrix_bot_matrix_reminder_bot_allowlist_enabled: true`) and configures it in such a way (`matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) so as to restrict the bot to your homeserver's users. If you need **to undo or tweak these security improvements**, you can change your `vars.yml` file to: @@ -799,8 +982,7 @@ The old Python-based [mautrix-signal](https://github.com/mautrix/signal) bridge It seems like the path forward is to switch to the new mautrix-signal bridge written in Golang, which we did thanks to [PR #3031](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3041) by [Pierre 'McFly' Marty](https://github.com/pm-McFly). -The playbook should **automatically migrate your mautrix-signal installation to the new bridge code**. -You will **need to relink all your devices** to continue your bridged conversations. +The playbook should **automatically migrate your mautrix-signal installation to the new bridge code**. You will **need to relink all your devices** to continue your bridged conversations. # 2023-10-23 @@ -809,18 +991,17 @@ You will **need to relink all your devices** to continue your bridged conversati **TDLR**: if your Matrix server is federating (which it mostly likely is, unless you've [disabled federation](docs/configuring-playbook-federation.md#disabling-federation)), your public rooms will not only be joinable across federation (as they've always been), but from now on will be discoverable (made available as a list across federation). We're changing this by flipping the value for Synapse's `allow_public_rooms_over_federation` setting to `true`, going against the upstream default. Servers that disable federation are not affected. Servers that have public rooms which are not published to the room directory are also not affected. -We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) - the default value was making Synapse more wasteful of resources by default. +We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) — the default value was making Synapse more wasteful of resources by default. -Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`. -This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms). +Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`. This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms). The upstream Synapse default is `false` (disabled), so that public rooms are not exposed for other servers to discover (learn about their existence). Nevertheless, even if these rooms are not exposed (listed) for discovery, they are **still joinable** by anyone who knows their address or is invited to the room by an existing member. -**We go against the upstream default** in an effort to make Matrix federation more useful - a public room should be globally public - not only joinable, but also discoverable across federation. +**We go against the upstream default** in an effort to make Matrix federation more useful — a public room should be globally public — not only joinable, but also discoverable across federation. The **historical reasoning** behind this change is as follows: -- `allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network - rooms should be joinable and discoverable across federation. +- `allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network — rooms should be joinable and discoverable across federation. - In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/element-hq/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense. @@ -830,7 +1011,7 @@ Here are **actions you may wish to take** as a result of this change: - (recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery. -- (switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for "mostly private" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces - you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting - controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them. +- (switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for "mostly private" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces — you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting — controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them. - (keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures. @@ -889,7 +1070,7 @@ Thanks to [Shreyas Ajjarapu](https://github.com/shreyasajj)'s efforts, the playb ## matrix-media-repo support -Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) - an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features. +Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) — an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features. To learn more see our [Storing Matrix media files using matrix-media-repo](docs/configuring-playbook-matrix-media-repo.md) documentation page. @@ -898,8 +1079,7 @@ To learn more see our [Storing Matrix media files using matrix-media-repo](docs/ ## Enabling `forget_rooms_on_leave` by default for Synapse -With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`. -This way, **when you leave a room, Synapse will now forget it automatically**. +With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`. This way, **when you leave a room, Synapse will now forget it automatically**. The upstream Synapse default is `false` (disabled), so that you must forget rooms manually after leaving. @@ -914,7 +1094,7 @@ If you'd like to go back to the old behavior, add the following to your configur **TLDR**: the `matrix-jitsi` role is now included from the [ansible-role-jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact. -The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project - an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so. +The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so. As part of the extraction process of this role out of the Matrix playbook, a few other things improved: @@ -944,7 +1124,7 @@ This change was already applied a while before this entry, but as some users wer **TLDR**: the `matrix-prometheus` role is now included from the [ansible-role-prometheus](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact. -The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project - an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so. +The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so. Extracting the Prometheus role out of this Matrix playbook required huge internal refactoring to the way the Prometheus configuration (scraping jobs) is generated. If you notice any breakage after upgrading, let us know. @@ -963,7 +1143,7 @@ If you're making use of Prometheus via this playbook, you will need to update va Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state)'s `synapse_auto_compressor` tool to run periodically. -If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before - see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because: +If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before — see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because: - it runs on a more up-to-date version of `rust-synapse-compress-state` - it's a set-it-and-forget-it tool that you can enable and never have to deal with manual compression anymore @@ -1027,7 +1207,7 @@ Until now, we've been doing the migration gradually and keeping full backward co - Traefik managed by the user in another way - another reverse-proxy on the same host (`127.0.0.1` port exposure) - another reverse-proxy on another host (`0.0.0.0` port exposure) -- `matrix-nginx-proxy` - an `nginx` container managed by the playbook +- `matrix-nginx-proxy` — an `nginx` container managed by the playbook - `nginx` webserver operated by the user, running without a container on the same server Each change we do and each new feature that comes in needs to support all these different ways of reverse-proxying. Because `matrix-nginx-proxy` was the default and pretty much everyone was (and still is) using it, means that new PRs also come with `matrix-nginx-proxy` as their main focus and Traefik as an afterthought, which means we need to spend hours fixing up Traefik support. @@ -1059,8 +1239,7 @@ See the [Traefik managed by the playbook](docs/configuring-playbook-own-webserve This playbook manages many different services. All these services were initially integrated with `matrix-nginx-proxy`. -While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component). -As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed. +While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component). As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed. ### How do I remain on matrix-nginx-proxy? @@ -1145,8 +1324,7 @@ You need to **update your roles** (`just roles` or `make roles`) regardless of w ### Motivation for redoing our reverse-proxy setup -The playbook has supported various reverse-proxy setups for a long time. -We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though - hard to figure out and with lots of variables to toggle to make things work as you'd expect - huge **operational complexity**. +The playbook has supported various reverse-proxy setups for a long time. We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though — hard to figure out and with lots of variables to toggle to make things work as you'd expect — huge **operational complexity**. We love containers, proven by the fact that **everything** that this playbook manages runs in a container. Yet, we weren't allowing people to easily host other web-exposed containers alongside Matrix services on the same server. We were using `matrix-nginx-proxy` (our integrated [nginx](https://nginx.org/) server), which was handling web-exposure and SSL termination for our own services, but we **weren't helping you with all your other containers**. @@ -1161,19 +1339,19 @@ Others still, wanted to run Matrix locally (no SSL certificates), regardless of Despite this operational complexity, things worked and were reasonably flexible to adapt to all these situations. -When using `matrix-nginx-proxy` as is, we still had another problem - one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime - see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still.. yikes). +When using `matrix-nginx-proxy` as is, we still had another problem — one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime — see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still… yikes). The next problem is one of **efficiency, interoperability and cost-saving**. We're working on other playbooks: -- [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server - an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager -- [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) - for hosting the [Gitea](https://gitea.io/) git source code hosting service -- [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) - for hosting the [Nextcloud](https://nextcloud.com/) groupware platform +- [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server — an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager +- [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) — for hosting the [Gitea](https://gitea.io/) git source code hosting service +- [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) — for hosting the [Nextcloud](https://nextcloud.com/) groupware platform We'd love for users to be able to **seamlessly use all these playbooks (and others, even) against a single server**. We don't want `matrix-nginx-proxy` to have a monopoly on port `80`/`443` and make it hard for other services to join in on the party. Such a thing forces people into running multiple servers (one for each service), which does provide nice security benefits, but is costly and ineffiecient. We'd like to make self-hosting these services cheap and easy. These other playbooks have been using [Traefik](https://traefik.io/) as their default reverse-proxy for a long time. They can all coexist nicely together (as an example, see the [Interoperability](https://github.com/spantaleev/nextcloud-docker-ansible-deploy/blob/master/docs/configuring-playbook-interoperability.md) documentation for the [Nextcloud playbook](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)). Now that this playbook is gaining Traefik support, it will be able to interoperate with them. If you're going this way, make sure to have the Matrix playbook install Traefik and have the others use `*_reverse_proxy_type: other-traefik-container`. -Finally, at [etke.cc - a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with. +Finally, at [etke.cc — a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with. ### How do these changes fix all these problems? @@ -1203,8 +1381,6 @@ Unless we have some regression, **existing `matrix-nginx-proxy` users should be ```yaml matrix_playbook_reverse_proxy_type: playbook-managed-traefik - -traefik_config_certificatesResolvers_acme_email: YOUR_EMAIL_ADDRESS ``` You may still need to keep certain old `matrix_nginx_proxy_*` variables (like `matrix_nginx_proxy_base_domain_serving_enabled`), even when using Traefik. For now, we recommend keeping all `matrix_nginx_proxy_*` variables just in case. In the future, reliance on `matrix-nginx-proxy` will be removed. @@ -1215,11 +1391,10 @@ Switching to Traefik will obtain new SSL certificates from Let's Encrypt (stored Treafik directly reverse-proxies to **some** services right now, but for most other services it goes through `matrix-nginx-proxy` (e.g. Traefik -> `matrix-nginx-proxy` -> [Ntfy](docs/configuring-playbook-ntfy.md)). So, even if you opt into Traefik, you'll still see `matrix-nginx-proxy` being installed in local-only mode. This will improve with time. -Some services (like [Coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bridge-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool. +Some services (like [coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bridge-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool. Our Traefik setup mostly works, but certain esoteric features may not work. If you have a default setup, we expect you to have a good experience. - ### Where we're going in the near future? The `matrix-nginx-proxy` role is quite messy. It manages both nginx and Certbot and its certificate renewal scripts and timers. It generates configuration even when the role is disabled (weird). Although it doesn't directly reach into variables from other roles, it has explicit awareness of various other services that it reverse-proxies to (`roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-ntfy.conf.j2`, etc.). We'd like to clean this up. The only way is probably to just get rid of the whole thing at some point. @@ -1239,7 +1414,7 @@ You can help by: - **explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles -- **adding native Traefik support to a role** (requires adding Traefik labels, etc.) - for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers). +- **adding native Traefik support to a role** (requires adding Traefik labels, etc.) — for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers). - **adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server @@ -1252,7 +1427,6 @@ Thanks to [Jakob S.](https://github.com/jakicoll) ([zakk gGmbH](https://github.c Additional details are available in the [Authenticate using Matrix OpenID (Auth-Type 'matrix')](docs/configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix). - ## Draupnir moderation tool (bot) support Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (bot). Draupnir is a fork of [Mjolnir](docs/configuring-playbook-bot-mjolnir.md) (which the playbook has supported for a long time) maintained by Mjolnir's former lead developer. @@ -1277,31 +1451,29 @@ Other roles which aren't strictly related to Matrix are likely to follow this fa # 2023-01-26 -## Coturn can now use host-networking +## coturn can now use host-networking -Large Coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow Coturn service startup and shutdown. +Large coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown. -Such deployments don't need to run Coturn within a private container network anymore. Coturn can now run with host-networking by using configuration like this: +Such deployments don't need to run coturn within a private container network anymore. coturn can now run with host-networking by using configuration like this: ```yaml matrix_coturn_container_network: host ``` -With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time Coturn starts and stops. -This, however, means that **you will need to ensure these ports are open** in your firewall yourself. +With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time coturn starts and stops. This, however, means that **you will need to ensure these ports are open** in your firewall yourself. -Thanks to us [tightening Coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running Coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network. +Thanks to us [tightening coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network. +## (Backward Compatibility) Tightening coturn security can lead to connectivity issues -## (Backward Compatibility) Tightening Coturn security can lead to connectivity issues +**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it. -**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default Coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it. +Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better. -Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of Coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your Coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run Coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better. +If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it. -If you access your Matrix server from a local network and need Coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it. - -We've also added `no-multicast-peers` to the default Coturn configuration, but we don't expect this to cause trouble for most people. +We've also added `no-multicast-peers` to the default coturn configuration, but we don't expect this to cause trouble for most people. # 2023-01-21 @@ -1323,19 +1495,18 @@ Other roles which aren't strictly related to Matrix are likely to follow this fa ## Support for running commands via just -We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)). -Our `Makefile` is still around and you can still run these commands. +We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)). Our `Makefile` is still around and you can still run these commands. -In addition, we've added support for running commands via [just](https://github.com/casey/just) - a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same. +In addition, we've added support for running commands via [just](https://github.com/casey/just) — a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same. Our [justfile](justfile) already defines some additional helpful **shortcut** commands that weren't part of our `Makefile`. Here are some examples: - `just install-all` to trigger the much longer `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` command -- `just install-all --ask-vault-pass` - commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command) -- `just run-tags install-mautrix-slack,start` - to run specific playbook tags -- `just start-all` - (re-)starts all services -- `just stop-group postgres` - to stop only the Postgres service -- `just register-user john secret-password yes` - registers a `john` user with the `secret-password` password and admin access (admin = `yes`) +- `just install-all --ask-vault-pass` — commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command) +- `just run-tags install-mautrix-slack,start` — to run specific playbook tags +- `just start-all` — (re-)starts all services +- `just stop-group postgres` — to stop only the Postgres service +- `just register-user alice secret-password yes` — registers an `alice` user with the `secret-password` password and admin access (admin = `yes`) Additional helpful commands and shortcuts may be defined in the future. @@ -1355,7 +1526,7 @@ Thanks to [Cody Neiman](https://github.com/xangelix)'s efforts, the playbook now ## ChatGPT support -Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) - a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model. +Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) — a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model. See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md) documentation to get started. @@ -1364,7 +1535,7 @@ See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md ## matrix-postgres-backup has been replaced by the ansible-role-postgres-backup external role -Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role - [com.devture.ansible.role.postgres_backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres_backup). +Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role — [com.devture.ansible.role.postgres_backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres_backup). You'll need to rename your `matrix_postgres_backup`-prefixed variables such that they use a `postgres_backup` prefix. @@ -1373,7 +1544,7 @@ You'll need to rename your `matrix_postgres_backup`-prefixed variables such that ## matrix-postgres has been replaced by the ansible-role-postgres external role -**TLDR**: the tasks that install the integrated Postgres server now live in an external role - [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`). +**TLDR**: the tasks that install the integrated Postgres server now live in an external role — [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`). The `matrix-postgres` role that has been part of the playbook for a long time has been replaced with the [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) role. This was done as part of our work to [use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) for better code re-use and maintainability. @@ -1384,15 +1555,13 @@ The new role is an upgraded version of the old `matrix-postgres` role with these You'll need to run `make roles` to install the new role. You would also need to rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix. -Note: the systemd service still remains the same - `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc. -Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin). +Note: the systemd service still remains the same — `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc. Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin). ## The playbook no longer installs scripts to /usr/local/bin The locations of various scripts installed by the playbook have changed. -The playbook no longer contaminates your `/usr/local/bin` directory. -All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below: +The playbook no longer contaminates your `/usr/local/bin` directory. All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below: - `/usr/local/bin/matrix-remove-all` -> `/matrix/bin/remove-all` - `/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli` @@ -1406,8 +1575,7 @@ All scripts installed by the playbook now live in `bin/` directories under `/mat **TLDR**: the playbook is 2x faster for running `--tags=setup-all` (and various other tags). It also has new `--tags=install-*` tags (like `--tags=install-all`), which skip uninstallation tasks and bring an additional 2.5x speedup. In total, the playbook can maintain your server 5 times faster. -Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot. -The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience. +Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot. The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience. Even when running `ansible-playbook` manually (as most of us here do), it's beneficial not to waste time and CPU resources. @@ -1419,48 +1587,43 @@ Recently, a few large optimizations have been done to this playbook and its exte You can still use `--tags=setup-all`. In fact, that's the best way to ensure your server is reconciled with the `vars.yml` configuration. -If you know you haven't uninstalled any services since the last time you ran the playbook, you could run `--tags=install-all` instead and benefit from quicker runtimes. -It should be noted that a service may become "eligible for uninstallation" even if your `vars.yml` file remains the same. In rare cases, we toggle services from being auto-installed to being optional, like we did on the 17th of March 2022 when we made [ma1sd not get installed by default](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#compatibility-break-ma1sd-identity-server-no-longer-installed-by-default). In such rare cases, you'd also need to run `--tags=setup-all`. +If you know you haven't uninstalled any services since the last time you ran the playbook, you could run `--tags=install-all` instead and benefit from quicker runtimes. It should be noted that a service may become "eligible for uninstallation" even if your `vars.yml` file remains the same. In rare cases, we toggle services from being auto-installed to being optional, like we did on the 17th of March 2022 when we made [ma1sd not get installed by default](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#compatibility-break-ma1sd-identity-server-no-longer-installed-by-default). In such rare cases, you'd also need to run `--tags=setup-all`. # 2022-11-22 # Automatic `matrix_architecture` determination -From now on, the playbook automatically determines your server's architecture and sets the `matrix_architecture` variable accordingly. -You no longer need to set this variable manually in your `vars.yml` file. +From now on, the playbook automatically determines your server's architecture and sets the `matrix_architecture` variable accordingly. You no longer need to set this variable manually in your `vars.yml` file. # Docker and the Docker SDK for Python are now installed via external roles We're continuing our effort to make [the playbook use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things), so as to avoid doing everything ourselves and to facilitate code re-use. -Docker will now be installed on the server via the [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker) Ansible role. -If you'd like to manage the Docker installation yourself, you can disable the playbook's installation of Docker by setting `matrix_playbook_docker_installation_enabled: false`. +Docker will now be installed on the server via the [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker) Ansible role. If you'd like to manage the Docker installation yourself, you can disable the playbook's installation of Docker by setting `matrix_playbook_docker_installation_enabled: false`. The Docker SDK for Python (named `docker-python`, `python-docker`, etc. on the different platforms) is now also installed by another role ([com.devture.ansible.role.docker_sdk_for_python](https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python)). To disable this role and install the necessary tools yourself, use `devture_docker_sdk_for_python_installation_enabled: false`. If you're hitting issues with Docker installation or Docker SDK for Python installation, consider reporting bugs or contributing to these other projects. -These additional roles are downloaded into the playbook directory (to `roles/galaxy`) via an `ansible-galaxy ..` command. `make roles` is an easy shortcut for invoking the `ansible-galaxy` command to download these roles. +These additional roles are downloaded into the playbook directory (to `roles/galaxy`) via an `ansible-galaxy …` command. `make roles` is an easy shortcut for invoking the `ansible-galaxy` command to download these roles. # 2022-11-20 -## (Backward Compatibility Break) Changing how reverse-proxying to Synapse works - now via a `matrix-synapse-reverse-proxy-companion` service +## (Backward Compatibility Break) Changing how reverse-proxying to Synapse works — now via a `matrix-synapse-reverse-proxy-companion` service -**TLDR**: There's now a `matrix-synapse-reverse-proxy-companion` nginx service, which helps with reverse-proxying to Synapse and its various worker processes (if workers are enabled), so that `matrix-nginx-proxy` can be relieved of this role. `matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. `matrix-synapse-reverse-proxy-companion` is just one more reverse-proxy thrown into the mix for convenience. People with a more custom reverse-proxying configuration may be affected - see [Webserver configuration](#webserver-configuration) below. +**TLDR**: There's now a `matrix-synapse-reverse-proxy-companion` nginx service, which helps with reverse-proxying to Synapse and its various worker processes (if workers are enabled), so that `matrix-nginx-proxy` can be relieved of this role. `matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. `matrix-synapse-reverse-proxy-companion` is just one more reverse-proxy thrown into the mix for convenience. People with a more custom reverse-proxying configuration may be affected — see [Webserver configuration](#webserver-configuration) below. ### Background Previously, `matrix-nginx-proxy` forwarded requests to Synapse directly. When Synapse is running in worker mode, the reverse-proxying configuration is more complicated (different requests need to go to different Synapse worker processes). `matrix-nginx-proxy` had configuration for sending each URL endpoint to the correct Synapse worker responsible for handling it. However, sometimes people like to disable `matrix-nginx-proxy` (for whatever reason) as detailed in [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md). -Because `matrix-nginx-proxy` was so central to request forwarding, when it was disabled and Synapse was running with workers enabled, there was nothing which could forward requests to the correct place anymore.. which caused [problems such as this one affecting Dimension](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090). +Because `matrix-nginx-proxy` was so central to request forwarding, when it was disabled and Synapse was running with workers enabled, there was nothing which could forward requests to the correct place anymore… which caused [problems such as this one affecting Dimension](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090). ### Solution -From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxying to Synapse and its various worker processes. -This role is now handled by the new `matrix-synapse-reverse-proxy-companion` nginx service and works even if `matrix-nginx-proxy` is disabled. -The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to: +From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxying to Synapse and its various worker processes. This role is now handled by the new `matrix-synapse-reverse-proxy-companion` nginx service and works even if `matrix-nginx-proxy` is disabled. The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to: - serve as a companion to Synapse and know how to reverse-proxy to Synapse correctly (no matter if workers are enabled or not) @@ -1468,12 +1631,11 @@ The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to: - `matrix-synapse-reverse-proxy-companion:8008` for Synapse Client-Server API traffic - `matrix-synapse-reverse-proxy-companion:8048` for Synapse Server-Server (Federation) API traffic -- simplify `matrix-nginx-proxy` configuration - it now only needs to send requests to `matrix-synapse-reverse-proxy-companion` or `matrix-dendrite`, etc., without having to worry about workers +- simplify `matrix-nginx-proxy` configuration — it now only needs to send requests to `matrix-synapse-reverse-proxy-companion` or `matrix-dendrite`, etc., without having to worry about workers - allow reverse-proxying to Synapse, even if `matrix-nginx-proxy` is disabled -`matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. All traffic goes through it before reaching any of the services. -It's just that now the Synapse traffic is routed through `matrix-synapse-reverse-proxy-companion` like this: +`matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. All traffic goes through it before reaching any of the services. It's just that now the Synapse traffic is routed through `matrix-synapse-reverse-proxy-companion` like this: (`matrix-nginx-proxy` -> `matrix-synapse-reverse-proxy-companion` -> (`matrix-synapse` or some Synapse worker)). @@ -1485,7 +1647,7 @@ Various services (like Dimension, etc.) still talk to Synapse via `matrix-nginx- - if you're using your own `nginx` webserver running on the server, you shouldn't be affected. The `/matrix/nginx/conf.d` configuration and exposed ports that you're relying on will automatically be updated in a way that should work -- if you're using another local webserver (e.g. Apache, etc.) and haven't changed any ports (`matrix_*_host_bind_port` definitions), you shouldn't be affected. You're likely sending Matrix traffic to `127.0.0.1:8008` and `127.0.0.1:8048`. These ports (`8008` and `8048`) will still be exposed on `127.0.0.1` by default - just not by the `matrix-synapse` container from now on, but by the `matrix-synapse-reverse-proxy-companion` container instead +- if you're using another local webserver (e.g. Apache, etc.) and haven't changed any ports (`matrix_*_host_bind_port` definitions), you shouldn't be affected. You're likely sending Matrix traffic to `127.0.0.1:8008` and `127.0.0.1:8048`. These ports (`8008` and `8048`) will still be exposed on `127.0.0.1` by default — just not by the `matrix-synapse` container from now on, but by the `matrix-synapse-reverse-proxy-companion` container instead - if you've been exposing `matrix-synapse` ports (`matrix_synapse_container_client_api_host_bind_port`, etc.) manually, you should consider exposing `matrix-synapse-reverse-proxy-companion` ports instead @@ -1504,7 +1666,7 @@ If you've already got both Etherpad and Dimension in use you could: - **either** keep hosting Etherpad under the Dimension domain by adding `etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary. -- **or**, you could change to hosting Etherpad separately on `etherpad.example.com`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.example.com/...`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.example.com/etherpad/...`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode +- **or**, you could change to hosting Etherpad separately on `etherpad.example.com`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.example.com/…`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.example.com/etherpad/…`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode # 2022-11-04 @@ -1521,7 +1683,7 @@ Starting now, the playbook is composed of 2 types of Ansible roles: - those downloaded from other sources (using [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to `roles/galaxy`, based on the [`requirements.yml` file](requirements.yml)). These roles are maintained by us or by other people from the Ansible community. -We're doing this for greater code-reuse (across Ansible playbooks, including our own related playbooks [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) and [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)) and decreased maintenance burden. Until now, certain features were copy-pasted across playbooks or were maintained separately in each one, with improvements often falling behind. We've also tended to do too much by ourselves - installing Docker on the server from our `matrix-base` role, etc. - something that we'd rather not do anymore by switching to the [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker) role. +We're doing this for greater code-reuse (across Ansible playbooks, including our own related playbooks [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) and [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)) and decreased maintenance burden. Until now, certain features were copy-pasted across playbooks or were maintained separately in each one, with improvements often falling behind. We've also tended to do too much by ourselves — installing Docker on the server from our `matrix-base` role, etc. — something that we'd rather not do anymore by switching to the [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker) role. Some variable names will change during the transition to having more and more external (galaxy) roles. There's a new `custom/matrix_playbook_migration` role added to the playbook which will tell you about these changes each time you run the playbook. @@ -1534,13 +1696,12 @@ Some variable names will change during the transition to having more and more ex **`synapse-s3-storage-provider` support is very new and still relatively untested. Using it may cause data loss.** -You can now store your Synapse media repository files on Amazon S3 (or another S3-compatible object store) using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) - a media provider for Synapse (Python module), which should work faster and more reliably than our previous [Goofys](docs/configuring-playbook-s3-goofys.md) implementation (Goofys will continue to work). +You can now store your Synapse media repository files on Amazon S3 (or another S3-compatible object store) using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) — a media provider for Synapse (Python module), which should work faster and more reliably than our previous [Goofys](docs/configuring-playbook-s3-goofys.md) implementation (Goofys will continue to work). This is not just for initial installations. Users with existing files (stored in the local filesystem) can also migrate their files to `synapse-s3-storage-provider`. To get started, see our [Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](docs/configuring-playbook-synapse-s3-storage-provider.md) documentation. - ## Synapse container image customization support We now support customizing the Synapse container image by adding additional build steps to its [`Dockerfile`](https://docs.docker.com/engine/reference/builder/). @@ -1567,7 +1728,7 @@ With the new Synapse-customization feature in the playbook, we use the original ## matrix-ldap-registration-proxy support -Thanks to [@TheOneWithTheBraid](https://github.com/TheOneWithTheBraid), we now support installing [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) - a proxy which handles Matrix registration requests and forwards them to LDAP. +Thanks to [@TheOneWithTheBraid](https://github.com/TheOneWithTheBraid), we now support installing [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) — a proxy which handles Matrix registration requests and forwards them to LDAP. See our [Setting up matrix-ldap-registration-proxy](docs/configuring-playbook-matrix-ldap-registration-proxy.md) documentation to get started. @@ -1608,47 +1769,39 @@ matrix_synapse_workers_stream_writer_presence_stream_workers_count: 1 ### Multiple federation sender workers support -Until now, we only supported a single `federation_sender` worker (`matrix_synapse_workers_federation_sender_workers_count` could either be `0` or `1`). -From now on, you can have as many as you want to help with your federation traffic. +Until now, we only supported a single `federation_sender` worker (`matrix_synapse_workers_federation_sender_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with your federation traffic. ### Multiple pusher workers support -Until now, we only supported a single `pusher` worker (`matrix_synapse_workers_pusher_workers_count` could either be `0` or `1`). -From now on, you can have as many as you want to help with pushing notifications out. +Until now, we only supported a single `pusher` worker (`matrix_synapse_workers_pusher_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with pushing notifications out. ### Background tasks can run on a worker From now on, you can put [background task processing on a worker](https://matrix-org.github.io/synapse/latest/workers.html#background-tasks). -With `matrix_synapse_workers_preset: one-of-each`, you'll get one `background` worker automatically. -You can also control the `background` workers count with `matrix_synapse_workers_background_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. +With `matrix_synapse_workers_preset: one-of-each`, you'll get one `background` worker automatically. You can also control the `background` workers count with `matrix_synapse_workers_background_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. ### Appservice worker support is back We previously had an `appservice` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time. -The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of talking to Application Services. -From now on, we have support for this. +The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of talking to Application Services. From now on, we have support for this. -With `matrix_synapse_workers_preset: one-of-each`, you'll get one `appservice` worker automatically. -You can also control the `appservice` workers count with `matrix_synapse_workers_appservice_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. +With `matrix_synapse_workers_preset: one-of-each`, you'll get one `appservice` worker automatically. You can also control the `appservice` workers count with `matrix_synapse_workers_appservice_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. ### User Directory worker support is back We previously had a `user_dir` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time. -The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of serving the user directory. -From now on, we have support for this. +The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of serving the user directory. From now on, we have support for this. -With `matrix_synapse_workers_preset: one-of-each`, you'll get one `user_dir` worker automatically. -You can also control the `user_dir` workers count with `matrix_synapse_workers_user_dir_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. +With `matrix_synapse_workers_preset: one-of-each`, you'll get one `user_dir` worker automatically. You can also control the `user_dir` workers count with `matrix_synapse_workers_user_dir_workers_count`. Only `0` or `1` workers of this type are supported by Synapse. ### Using more than 1 media repository worker is now more reliable With `matrix_synapse_workers_preset: one-of-each`, we only launch one `media_repository` worker. -If you've been configuring `matrix_synapse_workers_media_repository_workers_count` manually, you may have increased that to more workers. -When multiple media repository workers are in use, background tasks related to the media repository must always be configured to run on a single `media_repository` worker via `media_instance_running_background_jobs`. Until now, we weren't doing this correctly, but we now are. +If you've been configuring `matrix_synapse_workers_media_repository_workers_count` manually, you may have increased that to more workers. When multiple media repository workers are in use, background tasks related to the media repository must always be configured to run on a single `media_repository` worker via `media_instance_running_background_jobs`. Until now, we weren't doing this correctly, but we now are. ### Potential Backward Incompatibilities after these Synapse worker changes @@ -1667,7 +1820,7 @@ Below we'll discuss **potential backward incompatibilities**. ## Cactus Comments support -Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now set up [Cactus Comments](https://cactus.chat) - federated comment system for the web based on Matrix. +Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now set up [Cactus Comments](https://cactus.chat) — federated comment system for the web based on Matrix. See our [Setting up Cactus Comments](docs/configuring-playbook-cactus-comments.md) documentation to get started. @@ -1676,7 +1829,7 @@ See our [Setting up Cactus Comments](docs/configuring-playbook-cactus-comments.m ## Postmoogle email bridge support -Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge. Postmoogle is like the [email2matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving. +Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge. Postmoogle is like the [Email2Matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving. See our [Setting up Postmoogle email bridging](docs/configuring-playbook-bridge-postmoogle.md) documentation to get started. @@ -1722,7 +1875,7 @@ Thanks to [MdotAmaan](https://github.com/MdotAmaan)'s efforts, the playbook now ## matrix-appservice-kakaotalk support -The playbook now supports bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) via [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) - a bridge based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. Thanks to [hnarjis](https://github.com/hnarjis) for helping us add support for this! +The playbook now supports bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) via [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) — a bridge based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. Thanks to [hnarjis](https://github.com/hnarjis) for helping us add support for this! See our [Setting up Appservice Kakaotalk bridging](docs/configuring-playbook-bridge-appservice-kakaotalk.md) documentation to get started. @@ -1731,7 +1884,7 @@ See our [Setting up Appservice Kakaotalk bridging](docs/configuring-playbook-bri ## maubot support -Thanks to [Stuart Mumford (@Cadair)](https://github.com/cadair) for starting ([PR #373](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/373) and [PR #622](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/622)) and to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s) for finishing up (in [PR #1894](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894)), the playbook can now help you set up [maubot](https://github.com/maubot/maubot) - a plugin-based Matrix bot system. +Thanks to [Stuart Mumford (@Cadair)](https://github.com/cadair) for starting ([PR #373](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/373) and [PR #622](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/622)) and to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s) for finishing up (in [PR #1894](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894)), the playbook can now help you set up [maubot](https://github.com/maubot/maubot) — a plugin-based Matrix bot system. See our [Setting up maubot](docs/configuring-playbook-bot-maubot.md) documentation to get started. @@ -1754,7 +1907,6 @@ If you still need bridging to [Skype](https://www.skype.com/), consider switchin If you think this is a mistake and `mx-puppet-skype` works for you (or you get it to work somehow), let us know and we may reconsider this removal. - ## signald (0.19.0+) upgrade requires data migration In [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921) we upgraded [signald](https://signald.org/) (used by the mautrix-signal bridge) from `v0.18.5` to `v0.20.0`. @@ -1783,7 +1935,7 @@ See our [Setting up the ntfy push notifications server](docs/configuring-playboo **TLDR**: we've made extensive **changes to metrics exposure/collection, which concern people using an external Prometheus server**. If you don't know what that is, you don't need to read below. -**Why do major changes to metrics**? Because various services were exposing metrics in different, hacky, ways. Synapse was exposing metrics at `/_synapse/metrics` and `/_synapse-worker-.../metrics` on the `matrix.example.com`. The Hookshot role was **repurposing** the Granana web UI domain (`stats.example.com`) for exposing its metrics on `stats.example.com/hookshot/metrics`, while protecting these routes using Basic Authentication **normally used for Synapse** (`/_synapse/metrics`). Node-exporter and Postgres-exporter roles were advising for more `stats.example.com` usage in manual ways. Each role was doing things differently and mixing variables from other roles. Each metrics endpoint was ending up in a different place, protected by who knows what Basic Authentication credentials (if protected at all). +**Why do major changes to metrics**? Because various services were exposing metrics in different, hacky, ways. Synapse was exposing metrics at `/_synapse/metrics` and `/_synapse-worker-…/metrics` on the `matrix.example.com`. The Hookshot role was **repurposing** the Granana web UI domain (`stats.example.com`) for exposing its metrics on `stats.example.com/hookshot/metrics`, while protecting these routes using Basic Authentication **normally used for Synapse** (`/_synapse/metrics`). Node-exporter and Postgres-exporter roles were advising for more `stats.example.com` usage in manual ways. Each role was doing things differently and mixing variables from other roles. Each metrics endpoint was ending up in a different place, protected by who knows what Basic Authentication credentials (if protected at all). **The solution**: a completely revamped way to expose metrics to an external Prometheus server. We are **introducing new `https://matrix.example.com/metrics/*` endpoints**, where various services *can* expose their metrics, for collection by external Prometheus servers. To enable the `/metrics/*` endpoints, use `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`. There's also a way to protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). See the `matrix-nginx-proxy` role or our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation for additional variables around `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. @@ -1796,13 +1948,13 @@ See our [Setting up the ntfy push notifications server](docs/configuring-playboo **If you're using node-exporter** (`matrix_prometheus_node_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_node_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/node-exporter`. -**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/postgres-exporter`. +**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-grafana.md#enable-metrics-and-graphs-for-postgres-optional)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/postgres-exporter`. **If you're using Synapse** and would like to collect its metrics from an external Prometheus server, you may find that: 1. Exposing metrics is now done using `matrix_synapse_metrics_proxying_enabled`, not `matrix_nginx_proxy_proxy_synapse_metrics: true`. You may still need to enable metrics using `matrix_synapse_metrics_enabled: true` before exposing them. 2. Protecting metrics endpoints using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is now done in another way. See our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation -3. If Synapse metrics are exposed, they will be made available at `https://matrix.example.com/metrics/synapse/main-process` or `https://matrix.example.com/metrics/synapse/worker/TYPE-ID` (when workers are enabled), not at `https://matrix.example.com/_synapse/metrics` and `https://matrix.example.com/_synapse-worker-.../metrics` +3. If Synapse metrics are exposed, they will be made available at `https://matrix.example.com/metrics/synapse/main-process` or `https://matrix.example.com/metrics/synapse/worker/TYPE-ID` (when workers are enabled), not at `https://matrix.example.com/_synapse/metrics` and `https://matrix.example.com/_synapse-worker-…/metrics` 4. The playbook still generates an `external_prometheus.yml.example` sample file for scraping Synapse from Prometheus as described in [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server), but it's now saved under `/matrix/synapse` (not `/matrix`). **If you where already using a external Prometheus server** before this change, and you gave a hashed version of the password as a variable, the playbook will now take care of hashing the password for you. Thus, you need to provide the non-hashed version now. @@ -1873,7 +2025,7 @@ See our [Setting up Buscarron](docs/configuring-playbook-bot-buscarron.md) docum ## matrix-registration-bot support -Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) - a bot that is used to create and manage registration tokens for a Matrix server. +Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) — a bot that is used to create and manage registration tokens for a Matrix server. See our [Setting up matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) documentation to get started. @@ -1886,7 +2038,6 @@ Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the See our [Setting up BorgBackup](docs/configuring-playbook-backup-borg.md) documentation to get started. - ## (Compatibility Break) Upgrading to Synapse v1.57 on setups using workers may require manual action If you're running a worker setup for Synapse (`matrix_synapse_workers_enabled: true`), the [Synapse v1.57 upgrade notes](https://github.com/element-hq/synapse/blob/v1.57.0rc1/docs/upgrade.md#changes-to-database-schema-for-application-services) say that you may need to take special care when upgrading: @@ -1916,7 +2067,7 @@ When self-building, the playbook used to `git clone` repositories (into `/matrix If you're on a non-`amd64` architecture (that is, you're overriding `matrix_architecture` in your `vars.yml` file) or you have enabled self-building for some service (e.g. `matrix_*_self_build: true`), you're certainly building some container images from source and have `docker-src` directories with mixed permissions lying around in various `/matrix/SERVICE` directories. -The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places - something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf` +The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places — something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf` # 2022-03-17 @@ -1949,8 +2100,7 @@ To enable this module (and prevent encryption from being used on your homserver) ## matrix-hookshot bridging support -Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA. -See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started. +Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA. See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started. # 2022-01-31 @@ -2002,10 +2152,9 @@ matrix_homeserver_implementation: dendrite We're excited to gain support for other homeserver implementations, like [Conduit](https://conduit.rs/), etc! - ## Honoroit bot support -Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) - a helpdesk bot. +Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) — a helpdesk bot. See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started. @@ -2014,7 +2163,7 @@ See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documen ## Cinny support -Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) - a new simple, elegant and secure Matrix client. +Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) — a new simple, elegant and secure Matrix client. By default, we still install Element Web. Still, people who'd like to try Cinny out can now install it via the playbook. @@ -2050,11 +2199,9 @@ Synapse still supports v9.6 (for now), but we're retiring support for it early, ## Hangouts bridge no longer updated, superseded by a Googlechat bridge -The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future. -We still retain support for this bridge in the playbook, but you're encouraged to switch away from it. +The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future. We still retain support for this bridge in the playbook, but you're encouraged to switch away from it. -There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md). -Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge. +There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md). Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge. # 2021-08-23 @@ -2070,7 +2217,7 @@ To get started with bridging to LinkedIn, see [Setting up Beeper LinkedIn bridgi # 2021-08-20 -# Sygnal upgraded - ARM support and no longer requires a database +# Sygnal upgraded — ARM support and no longer requires a database The [Sygnal](docs/configuring-playbook-sygnal.md) push gateway has been upgraded from `v0.9.0` to `v0.10.1`. @@ -2078,15 +2225,14 @@ This is an optional component for the playbook, so most of our users wouldn't ca Since this feels like a relatively big (and untested, as of yet) Sygnal change, we're putting up this changelog entry. -The new version is also available for the ARM architecture. It also no longer requires a database anymore. -If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit. +The new version is also available for the ARM architecture. It also no longer requires a database anymore. If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit. # 2021-05-21 ## Hydrogen support -Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) - a new lightweight Matrix client with legacy and mobile browser support. +Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) — a new lightweight Matrix client with legacy and mobile browser support. By default, we still install Element Web, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook. @@ -2104,9 +2250,9 @@ Additional details are available in [Setting up Heisenbridge bouncer-style IRC b # 2021-04-16 -## Disabling TLSv1 and TLSv1.1 for Coturn +## Disabling TLSv1 and TLSv1.1 for coturn -To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [Coturn](https://github.com/coturn/coturn) configuration. +To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [coturn](https://github.com/coturn/coturn) configuration. If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration: @@ -2122,8 +2268,7 @@ matrix_coturn_tls_v1_1_enabled: true Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local). -Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md). - +Additional details are available in [Setting up Postgres backup](docs/configuring-playbook-postgres-backup.md). # 2021-04-03 @@ -2177,7 +2322,7 @@ After [lots and lots of work](https://github.com/spantaleev/matrix-docker-ansibl Having support for workers makes the playbook suitable for larger homeserver deployments. -Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 - TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk). +Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 — TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk). By default, workers are disabled and Synapse runs as a single process (homeservers don't necessarily need the complexity and increased memory requirements of running a worker-based setup). @@ -2238,14 +2383,14 @@ To migrate to the new setup, expect a few minutes of downtime, while you follow 1. We believe the steps below are safe and you won't encounter any data loss, but consider [making a Postgres backup](docs/maintenance-postgres.md#backing-up-postgresql) anyway. If you've never backed up Postgres, now would be a good time to try it. -2. Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can use `pwgen -s 64 1` to generate it, or some other tool. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy! +2. Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can create one with a command like `pwgen -s 64 1`. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy! 3. Update your playbook's `inventory/host_vars/matrix.example.com/vars.yml` file, adding a line like this: ```yaml matrix_postgres_connection_password: 'YOUR_POSTGRES_PASSWORD_HERE' ``` -.. where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2. +… where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2. 4. Stop all services: `ansible-playbook -i inventory/hosts setup.yml --tags=stop` 5. Log in to the server via SSH. The next commands will be performed there. @@ -2257,7 +2402,7 @@ To migrate to the new setup, expect a few minutes of downtime, while you follow CREATE ROLE matrix LOGIN SUPERUSER PASSWORD 'YOUR_POSTGRES_PASSWORD_HERE'; ``` -.. where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2. +… where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2. 9. Execute the following queries as you see them (no modifications necessary, so you can just **paste them all at once**): @@ -2308,8 +2453,7 @@ As already mentioned above, you most likely don't need to do anything. If you re If you're **not running an external Postgres server**, then this bridge either already works on Postgres for you, or you've intentionally kept it back on SQLite with custom configuration (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) . -Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically. -You'll need to send a `login` message to the Facebook bridge bot again. +Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically. You'll need to send a `login` message to the Facebook bridge bot again. Alternatively, [you can stay on SQLite for a little longer](#staying-on-sqlite-for-a-little-longer-temporary-solution). @@ -2329,7 +2473,7 @@ You have 3 ways to proceed: - stop the bridge (`systemctl stop matrix-mautrix-facebook`) - create a new `matrix_mautrix_facebook` Postgres database for it - run [pgloader](https://pgloader.io/) manually (we import this bridge's data using default settings and it works well) - - define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) - you can find their defaults in `roles/custom/matrix-mautrix-facebook/defaults/main.yml` + - define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) — you can find their defaults in `roles/custom/matrix-mautrix-facebook/defaults/main.yml` - switch the bridge to Postgres (`matrix_mautrix_facebook_database_engine: 'postgres'` in your `vars.yml` file) - re-run the playbook (`--tags=setup-all,start`) and ensure the bridge works (`systemctl status matrix-mautrix-facebook` and `journalctl -fu matrix-mautrix-facebook`) - send a `login` message to the Facebook bridge bot again @@ -2418,7 +2562,7 @@ Moving all services to Postgres brings a few **benefits** to us: - **improved performance** - **improved compatibility**. Most bridges are deprecating SQLite/nedb support or offer less features when not on Postgres. - **easier backups**. It's still some effort to take a proper backup (Postgres dump + various files, keys), but a Postgres dump now takes you much further. -- we're now **more prepared to introduce other services** that need a Postgres database - [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc. +- we're now **more prepared to introduce other services** that need a Postgres database — [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc. ### Key takeway @@ -2452,15 +2596,13 @@ We've removed support for the unmaintained [synapse-janitor](https://github.com/ If you need to clean up or compact your database, consider using the Synapse Admin APIs directly. See our [Synapse maintenance](docs/maintenance-synapse.md) and [Postgres maintenance](docs/maintenance-postgres.md) documentation pages for more details. - ## Docker 20.10 is here (No need to do anything special in relation to this. Just something to keep in mind) Docker 20.10 got released recently and your server will likely get it the next time you update. -This is the first major Docker update in a long time and it packs a lot of changes. -Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now. +This is the first major Docker update in a long time and it packs a lot of changes. Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now. # 2020-12-08 @@ -2471,8 +2613,7 @@ We've changed some defaults. People running with our default configuration (fede If you are running an unfederated server (`matrix_synapse_federation_enabled: false`), this may be of interest to you. -When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port. -These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`. +When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port. These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`. # 2020-11-27 @@ -2530,16 +2671,14 @@ Since `matrix.example.com` may be accessed by regular users in certain condition If Element Web is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page. -If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable. -To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: ""`). +If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable. To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: ""`). # 2020-10-26 ## (Compatibility Break) /_synapse/admin is no longer publicly exposed by default -We used to expose the Synapse Admin APIs publicly (at `https://matrix.example.com/_synapse/admin`). -These APIs require authentication with a valid access token, so it's not that big a deal to expose them. +We used to expose the Synapse Admin APIs publicly (at `https://matrix.example.com/_synapse/admin`). These APIs require authentication with a valid access token, so it's not that big a deal to expose them. However, following [official Synapse's reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints), we're no longer exposing `/_synapse/admin` by default. @@ -2573,7 +2712,7 @@ If you have have an existing setup, it's likely running on an older Postgres ver ## matrix-registration support -The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) - an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves. +The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) — an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves. See our [Setting up matrix-registration](docs/configuring-playbook-matrix-registration.md) documentation page to get started. @@ -2676,7 +2815,7 @@ See our [Setting up Matrix SMS bridging](docs/configuring-playbook-bridge-matrix User Directory search requests used to go to the ma1sd identity server by default, which queried its own stores and the Synapse database. -ma1sd current has [a security issue](https://github.com/ma1uta/ma1sd/issues/44), which made it leak information about all users - including users created by bridges, etc. +ma1sd current has [a security issue](https://github.com/ma1uta/ma1sd/issues/44), which made it leak information about all users — including users created by bridges, etc. Until the issue gets fixed, we're making User Directory search not go to ma1sd by default. You **need to re-run the playbook and restart services to apply this workaround**. @@ -2687,13 +2826,12 @@ Until the issue gets fixed, we're making User Directory search not go to ma1sd b ## Newer IRC bridge (with potential breaking change) -This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream -made a change to how you define manual mappings. If you added a +This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream +made a change to how you define manual mappings. If you added a `mapping` to your configuration, you will need to update it accoring to the [upstream -instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). -If you did not include `mappings` in your configuration for IRC, no -change is necessary. `mappings` is not part of the default +instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). If you did not include `mappings` in your configuration for IRC, no +change is necessary. `mappings` is not part of the default configuration. @@ -2732,10 +2870,9 @@ To make your Jitsi server more private, see the [configure internal Jitsi authen Thanks to [Marcel Partap](https://github.com/eMPee584)'s efforts, the [mxisd](https://github.com/kamax-io/mxisd) identity server, which has been deprecated for a long time, has finally been replaced by [ma1sd](https://github.com/ma1uta/ma1sd), a compatible fork. -**If you're using the default playbook configuration**, you don't need to do anything -- your mxisd installation will be replaced with ma1sd and all existing data will be migrated automatically the next time you run the playbook. +**If you're using the default playbook configuration**, you don't need to do anything — your mxisd installation will be replaced with ma1sd and all existing data will be migrated automatically the next time you run the playbook. -**If you're doing something more special** (defining custom `matrix_mxisd_*` variables), the playbook will ask you to rename them to `matrix_ma1sd_*`. -You're also encouraged to test that ma1sd works well for such a more custom setup. +**If you're doing something more special** (defining custom `matrix_mxisd_*` variables), the playbook will ask you to rename them to `matrix_ma1sd_*`. You're also encouraged to test that ma1sd works well for such a more custom setup. # 2020-03-29 @@ -2760,8 +2897,7 @@ See our [Jitsi documentation page](docs/configuring-playbook-jitsi.md) to get st Thanks to [Gergely Horváth](https://github.com/hooger)'s effort, the playbook supports installing to a Raspberry Pi server, for at least some of the services. -Since most ready-made container images do not support that architecture, we achieve this by building images locally on the device itself. -See our [Self-building documentation page](docs/self-building.md) for how to get started. +Since most ready-made container images do not support that architecture, we achieve this by building images locally on the device itself. See our [Self-building documentation page](docs/self-building.md) for how to get started. # 2020-02-26 @@ -2781,11 +2917,11 @@ You can now customize the server name string that Riot-web displays in its login These playbook variables, with these default values, have been added: -``` +```yaml matrix_riot_web_default_server_name: "{{ matrix_domain }}" ``` -The login page previously said "Sign in to your Matrix account on matrix.example.org" (the homeserver's domain name). It will now say "Sign in ... on example.org" (the server name) by default, or "Sign in ... on Our Server" if you set the variable to "Our Server". +The login page previously said "Sign in to your Matrix account on matrix.example.org" (the homeserver's domain name). It will now say "Sign in … on example.org" (the server name) by default, or "Sign in … on Our Server" if you set the variable to "Our Server". To support this, the config.json template is changed to use the configuration key `default_server_config` for setting the default HS/IS, and the new configuration key `server_name` is added in there. @@ -2809,7 +2945,7 @@ Still, we might become affected in the future. In any case, it's imminent that S To avoid future problems, we recommend that you run the following command: -``` +```sh ansible-playbook -i inventory/hosts setup.yml --tags=upgrade-postgres --extra-vars='{"postgres_force_upgrade": true}' ``` @@ -2831,7 +2967,7 @@ Learn more in [Setting up Appservice Webhooks bridging](docs/configuring-playboo Double Puppeting can now be easily enabled for all Mautrix bridges supported by the playbook (Facebook, Hangouts, Whatsapp, Telegram). -This is possible due to those bridges' integration with [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) - yet another component that this playbook can install for you. +This is possible due to those bridges' integration with [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) — yet another component that this playbook can install for you. To get started, following the playbook's documentation for the bridge you'd like to configure. @@ -2844,8 +2980,7 @@ We have added support for making `matrix-nginx-proxy` not being so invasive, so The documentation has been updated with a **Method 2**, which might make "own webserver" setup easier in some cases (such as [reverse-proxying using Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/296)). -**Existing users** are not affected by this and **don't need to change anything**. -The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates and doing everything for you automatically). +**Existing users** are not affected by this and **don't need to change anything**. The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates and doing everything for you automatically). # 2019-11-10 @@ -2854,8 +2989,7 @@ The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates As per this [advisory blog post](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers), we've decided to change the default publishing rules for the Matrix room directory. -Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. -Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**. +Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**. As with anything else, these new defaults can be overriden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively. @@ -2866,12 +3000,9 @@ As with anything else, these new defaults can be overriden by changing the `matr Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) and [importing](docs/importing-postgres.md) have been improved to add support for multiple databases and roles. -Previously, the playbook would only take care of the `homeserver` database and `synapse` user. -We now back up and restore all databases and users on the Postgres server. +Previously, the playbook would only take care of the `homeserver` database and `synapse` user. We now back up and restore all databases and users on the Postgres server. -For now, the playbook only uses that one database (`homeserver`) and that one single user (`synapse`), so it's all the same. -However, in the future, additional components besides Synapse may also make use the Postgres database server. -One such example is the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge, which strongly encourages use of Postgres in its v1.0 release. We are yet to upgrade to it. +For now, the playbook only uses that one database (`homeserver`) and that one single user (`synapse`), so it's all the same. However, in the future, additional components besides Synapse may also make use the Postgres database server. One such example is the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge, which strongly encourages use of Postgres in its v1.0 release. We are yet to upgrade to it. Additionally, Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) now uses gzipped dump files by default, to minimize disk space usage. @@ -2895,9 +3026,7 @@ Its new defaults (which we adopt as well) mean that certain old data will automa From now on the `trusted_key_servers` setting for Synapse is configurable. It still defaults to `matrix.org` just like it always has, but in a more explicit way now. If you'd like to use another trusted key server, adjust the `matrix_synapse_trusted_key_servers` playbook variable. -Synapse 1.4.0 also changes lots of things related to identity server integration. -Because Synapse will now by default be responsible for validating email addresses for user accounts, running without an identity server looks more feasible. -We still [have concerns](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/275/files#r331104117) over disabling the identity server by default, so for now it remains enabled. +Synapse 1.4.0 also changes lots of things related to identity server integration. Because Synapse will now by default be responsible for validating email addresses for user accounts, running without an identity server looks more feasible. We still [have concerns](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/275/files#r331104117) over disabling the identity server by default, so for now it remains enabled. # 2019-09-09 @@ -2917,8 +3046,7 @@ Learn more in [Setting up Synapse Simple Antispam](docs/configuring-playbook-syn Similarly to [Extensible Synapse configuration](#extensible-synapse-configuration) (below), Riot-web configuration is also extensible now. -From now on, you can extend/override Riot-web's configuration by making use of the `matrix_riot_web_configuration_extension_json` variable. -This should be enough for most customization needs. +From now on, you can extend/override Riot-web's configuration by making use of the `matrix_riot_web_configuration_extension_json` variable. This should be enough for most customization needs. If you need even more power, you can now also take full control and override `matrix_riot_web_configuration_default` (or `matrix_riot_web_configuration`) directly. @@ -2929,11 +3057,9 @@ Learn more in [Configuring Riot-web](docs/configuring-playbook-riot-web.md). ## Extensible Synapse configuration -Previously, we had to create custom Ansible variables for each and every Synapse setting. -This lead to too much effort (and configuration ugliness) to all of Synapse's settings, so naturally, not all features of Synapse could be controlled through the playbook. +Previously, we had to create custom Ansible variables for each and every Synapse setting. This lead to too much effort (and configuration ugliness) to all of Synapse's settings, so naturally, not all features of Synapse could be controlled through the playbook. -From now on, you can extend/override the Synapse server's configuration by making use of the `matrix_synapse_configuration_extension_yaml` variable. -This should be enough for most customization needs. +From now on, you can extend/override the Synapse server's configuration by making use of the `matrix_synapse_configuration_extension_yaml` variable. This should be enough for most customization needs. If you need even more power, you can now also take full control and override `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`) directly. @@ -2980,7 +3106,6 @@ This greatly reduces the number of log messages that are being logged, leading t If you'd like to track down an issue, you [can always increase the logging level as described here](./docs/maintenance-and-troubleshooting.md#increasing-synapse-logging). - # 2019-07-08 ## Synapse Maintenance docs and synapse-janitor support are available @@ -2991,13 +3116,11 @@ There's a new documentation page about [Synapse maintenance](./docs/maintenance- Among other things, if your Postgres database has grown significantly over time, you may wish to [ask the playbook to purge unused data with synapse-janitor](./docs/maintenance-synapse.md#purging-unused-data-with-synapse-janitor) for you. - ## (BC Break) Rename run control variables Some internal playbook control variables have been renamed. -This change **only affects people who run this playbook's roles from another playbook**. -If you're using this playbook as-is, you're not affected and don't need to do anything. +This change **only affects people who run this playbook's roles from another playbook**. If you're using this playbook as-is, you're not affected and don't need to do anything. The following variables have been renamed: @@ -3015,8 +3138,7 @@ The following variables have been renamed: Following what the official Synapse Docker image is doing ([#5565](https://github.com/matrix-org/synapse/pull/5565)) and what we've been doing for mostly everything installed by this playbook, **Synapse no longer logs to text files** (`/matrix/synapse/run/homeserver.log*`). -From now on, Synapse would only log to console, which goes to systemd's journald. -To see Synapse's logs, execute: `journalctl -fu matrix-synapse` +From now on, Synapse would only log to console, which goes to systemd's journald. To see Synapse's logs, execute: `journalctl -fu matrix-synapse` Because of this, the following variables have become obsolete and were removed: @@ -3044,8 +3166,7 @@ Likewise, data is now also stored in a subdirectory (`/matrix/appservice-discord The main directory (`/matrix/appservice-discord`) may contain some leftover files (`user-store.db`, `room-store.db`, `config.yaml`, `discord-registration.yaml`, `invite_link`). These are no longer necessary and can be deleted manually. -We're now following the default sample configuration for the Discord bridge. -If you need to override some values, define them in `matrix_appservice_discord_configuration_extension_yaml`. +We're now following the default sample configuration for the Discord bridge. If you need to override some values, define them in `matrix_appservice_discord_configuration_extension_yaml`. # 2019-06-24 @@ -3058,8 +3179,7 @@ From now on, the playbook will keep the configuration in sync for you. This means that if you were making manual changes to the `/matrix/mautrix-whatsapp/config.yaml` or `/matrix/mautrix-whatsapp/registration.yaml` configuration files, those would be lost the next time you run the playbook. -The bridge now stores configuration in a subdirectory (`/matrix/mautrix-whatsapp/config`), so your old configuration remains in the base directory (`/matrix/mautrix-whatsapp`). -You need to migrate any manual changes over to the new `matrix_mautrix_whatsapp_configuration_extension_yaml` variable, so that the playbook would apply them for you. +The bridge now stores configuration in a subdirectory (`/matrix/mautrix-whatsapp/config`), so your old configuration remains in the base directory (`/matrix/mautrix-whatsapp`). You need to migrate any manual changes over to the new `matrix_mautrix_whatsapp_configuration_extension_yaml` variable, so that the playbook would apply them for you. Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-whatsapp/data`). When you run the playbook with an existing database file (`/matrix/mautrix-whatsapp/mautrix-whatsapp.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`). @@ -3082,8 +3202,7 @@ Previously, we asked people to configure bridged IRC servers by extending the br If you decide to continue using `matrix_appservice_irc_configuration_extension_yaml`, you might be interested to know that `ircService.databaseUri` and a few other keys now have default values in the base configuration (`matrix_appservice_irc_configuration_yaml`). You may wish to stop redefining those keys, unless you really intend to override them. You most likely only need to override `ircService.servers`. -Bridge data (`passkey.pem` and database files) is now also stored in a subdirectory (`/matrix/appservice-irc/data`). -When you run the playbook with an existing `/matrix/appservice-irc/passkey.pem` file, the playbook will stop the bridge and relocate the passkey and database files (`rooms.db` and `users.db`) to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`). +Bridge data (`passkey.pem` and database files) is now also stored in a subdirectory (`/matrix/appservice-irc/data`). When you run the playbook with an existing `/matrix/appservice-irc/passkey.pem` file, the playbook will stop the bridge and relocate the passkey and database files (`rooms.db` and `users.db`) to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`). # 2019-06-15 @@ -3096,17 +3215,16 @@ From now on, the playbook will keep the configuration in sync for you. This means that if you were making manual changes to the `/matrix/mautrix-telegram/config.yaml` or `/matrix/mautrix-telegram/registration.yaml` configuration files, those would be lost the next time you run the playbook. -The bridge now stores configuration in a subdirectory (`/matrix/mautrix-telegram/config`), so your old configuration remains in the base directory (`/matrix/mautrix-telegram`). -You need to migrate any manual changes over to the new `matrix_mautrix_telegram_configuration_extension_yaml` variable, so that the playbook would apply them for you. +The bridge now stores configuration in a subdirectory (`/matrix/mautrix-telegram/config`), so your old configuration remains in the base directory (`/matrix/mautrix-telegram`). You need to migrate any manual changes over to the new `matrix_mautrix_telegram_configuration_extension_yaml` variable, so that the playbook would apply them for you. Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-telegram/data`). When you run the playbook with an existing database file (`/matrix/mautrix-telegram/mautrix-telegram.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`). Also, we're now following the default configuration for the Telegram bridge, so some default configuration values are different: -- `edits_as_replies` (used to be `false`, now `true`) - previously replies were not sent over to Matrix at all; ow they are sent over as a reply to the original message -- `inline_images` (used to be `true`, now `false`) - this has to do with captioned images. Inline-image (included caption) are said to exhibit troubles on Riot iOS. When `false`, the caption arrives on the Matrix side as a separate message. -- `authless_portals` (used to be `false`, now `true`) - creating portals from the Telegram side is now possible -- `whitelist_group_admins` (used to be `false`, now `true`) - allows Telegram group admins to use the bot commands +- `edits_as_replies` (used to be `false`, now `true`) — previously replies were not sent over to Matrix at all; ow they are sent over as a reply to the original message +- `inline_images` (used to be `true`, now `false`) — this has to do with captioned images. Inline-image (included caption) are said to exhibit troubles on Riot iOS. When `false`, the caption arrives on the Matrix side as a separate message. +- `authless_portals` (used to be `false`, now `true`) — creating portals from the Telegram side is now possible +- `whitelist_group_admins` (used to be `false`, now `true`) — allows Telegram group admins to use the bot commands If the new values are not to your liking, use `matrix_mautrix_telegram_configuration_extension_yaml` to specify an override (refer to `matrix_mautrix_telegram_configuration_yaml` to figure out which variable goes where). @@ -3136,8 +3254,7 @@ From now on, the playbook will keep the configuration in sync for you. This means that if you were making manual changes to the `/matrix/mautrix-facebook/config.yaml` or `/matrix/mautrix-facebook/registration.yaml` configuration files, those would be lost the next time you run the playbook. -The bridge now stores configuration in a subdirectory (`/matrix/mautrix-facebook/config`), so your old configuration remains in the base directory (`/matrix/mautrix-facebook`). -You need to migrate any manual changes over to the new `matrix_mautrix_facebook_configuration_extension_yaml` variable, so that the playbook would apply them for you. +The bridge now stores configuration in a subdirectory (`/matrix/mautrix-facebook/config`), so your old configuration remains in the base directory (`/matrix/mautrix-facebook`). You need to migrate any manual changes over to the new `matrix_mautrix_facebook_configuration_extension_yaml` variable, so that the playbook would apply them for you. Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-facebook/data`). When you run the playbook with an existing database file (`/matrix/mautrix-facebook/mautrix-facebook.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`). @@ -3148,7 +3265,7 @@ Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-facebook/d Until now, various roles supported a `matrix_*_expose_port` variable, which would expose their container's port to the host. This was mostly useful for reverse-proxying manually (in case `matrix-nginx-proxy` was disabled). It could also be used for installing some playbook services (e.g. bridges, etc.) and wiring them to a separate (manual) Matrix setup. -`matrix_*_expose_port` variables were not granular enough - sometimes they would expose one port, other times multiple. They also didn't provide control over **where** to expose (to which port number and to which network interface), because they would usually hardcode something like `127.0.0.1:8080`. +`matrix_*_expose_port` variables were not granular enough — sometimes they would expose one port, other times multiple. They also didn't provide control over **where** to expose (to which port number and to which network interface), because they would usually hardcode something like `127.0.0.1:8080`. All such variables have been superseded by a better (more flexible) way to do it. @@ -3198,20 +3315,16 @@ The playbook no longer insists on installing [Synapse](https://github.com/elemen If you would prefer to install Synapse another way and just use the playbook to install other services, it should be possible (`matrix_synapse_enabled: false`). -Note that it won't necessarily be the best experience, since the playbook wires things to Synapse by default. -If you're using your own Synapse instance (especially one not running in a container), you may have to override many variables to point them to the correct place. +Note that it won't necessarily be the best experience, since the playbook wires things to Synapse by default. If you're using your own Synapse instance (especially one not running in a container), you may have to override many variables to point them to the correct place. Having Synapse not be a required component potentially opens the door for installing alternative Matrix homeservers. - ## Bridges are now separate from the Synapse role -Bridges are no longer part of the `matrix-synapse` role. -Each bridge now lives in its own separate role (`roles/custom/matrix-bridge-*`). +Bridges are no longer part of the `matrix-synapse` role. Each bridge now lives in its own separate role (`roles/custom/matrix-bridge-*`). These bridge roles are independent of the `matrix-synapse` role, so it should be possible to use them with a Synapse instance installed another way (not through the playbook). - ## Renaming inconsistently-named Synapse variables For better consistency, the following variables have been renamed: @@ -3262,15 +3375,13 @@ We've also started building our own Docker image of Ansible ([devture/ansible](h # 2019-03-19 -## TLS support for Coturn +## TLS support for coturn -We've added TLS support to the Coturn TURN server installed by the playbook by default. -The certificates from the Matrix domain will be used for the Coturn server. +We've added TLS support to the coturn TURN server installed by the playbook by default. The certificates from the Matrix domain will be used for the coturn server. -This feature is enabled by default for new installations. -To make use of TLS support for your existing Matrix server's Coturn, make sure to rebuild both Coturn and Synapse: +This feature is enabled by default for new installations. To make use of TLS support for your existing Matrix server's coturn, make sure to rebuild both coturn and Synapse: -```bash +```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-coturn,setup-synapse,start ``` @@ -3278,9 +3389,9 @@ People who have an extra firewall (besides the iptables firewall, which Docker m People who build their own custom playbook from our roles should be aware that: -- the `matrix-coturn` role and actually starting Coturn (e.g. `--tags=start`), requires that certificates are already put in place. For this reason, it's usually a good idea to have the `matrix-coturn` role execute after `matrix-nginx-proxy` (which retrieves the certificates). +- the `matrix-coturn` role and actually starting coturn (e.g. `--tags=start`), requires that certificates are already put in place. For this reason, it's usually a good idea to have the `matrix-coturn` role execute after `matrix-nginx-proxy` (which retrieves the certificates). -- there are a few variables that can help you enable TLS support for Coturn. See the `matrix-coturn` section in [group_vars/matrix-servers](./group_vars/matrix-servers). +- there are a few variables that can help you enable TLS support for coturn. See the `matrix-coturn` section in [group_vars/matrix-servers](./group_vars/matrix-servers). # 2019-03-12 @@ -3289,9 +3400,7 @@ People who build their own custom playbook from our roles should be aware that: If you don't have a dedicated server for your base domain and want to set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), the playbook has got you covered now. -It's now possible for the playbook to obtain an SSL certificate and serve the necessary files for Matrix Server Delegation on your base domain. -Take a look at the new [Serving the base domain](docs/configuring-playbook-base-domain-serving.md) documentation page. - +It's now possible for the playbook to obtain an SSL certificate and serve the necessary files for Matrix Server Delegation on your base domain. Take a look at the new [Serving the base domain](docs/configuring-playbook-base-domain-serving.md) documentation page. ## (BC break) matrix-nginx-proxy data variable renamed @@ -3311,16 +3420,14 @@ Thanks to [NullIsNot0](https://github.com/NullIsNot0), the playbook can now (opt ## Ability to customize mxisd's email templates -Thanks to [Sylvia van Os](https://github.com/TheLastProject), mxisd's email templates can now be customized easily. -To learn more, see the [Customizing email templates](docs/configuring-playbook-mxisd.md#customizing-email-templates) documentation page. +Thanks to [Sylvia van Os](https://github.com/TheLastProject), mxisd's email templates can now be customized easily. To learn more, see the [Customizing email templates](docs/configuring-playbook-mxisd.md#customizing-email-templates) documentation page. # 2019-03-05 ## Discord bridging support -[@Lionstiger](https://github.com/Lionstiger) has done some great work adding Discord bridging support via [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord). -To learn more, see the [Setting up Appservice Discord bridging](docs/configuring-playbook-bridge-appservice-discord.md) documentation page. +[@Lionstiger](https://github.com/Lionstiger) has done some great work adding Discord bridging support via [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord). To learn more, see the [Setting up Appservice Discord bridging](docs/configuring-playbook-bridge-appservice-discord.md) documentation page. # 2019-02-19 @@ -3353,8 +3460,7 @@ However, we still provide you with hooks to install your own `home.html` file by ## Synapse v0.99.1 -As we're moving toward Synapse v1.0, things are beginning to stabilize. -Upgrading from v0.99.0 to v0.99.1 should be painless. +As we're moving toward Synapse v1.0, things are beginning to stabilize. Upgrading from v0.99.0 to v0.99.1 should be painless. If you've been overriding the default configuration so that you can terminate TLS at the Synapse side (`matrix_synapse_no_tls: false`), you'll now have to replace this custom configuration with `matrix_synapse_tls_federation_listener_enabled: true`. The `matrix_synapse_no_tls` variable is no more. @@ -3363,16 +3469,15 @@ If you've been overriding the default configuration so that you can terminate TL ## Synapse v0.99 support and preparation for Synapse v1.0 -Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. -The first step is the Synapse v0.99 transitional release, which this playbook now supports. +Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. The first step is the Synapse v0.99 transitional release, which this playbook now supports. If you've been using this playbook successfully until now, you'd be aware that we've been doing [Server Delegation](docs/howto-server-delegation.md) using a `_matrix._tcp` DNS SRV record (as per [Configuring DNS](docs/configuring-dns.md)). -Due to changes related to certificate file requirements that will affect us at Synapse v1.0, we'll have to stop using a **`_matrix._tcp` DNS SRV record in the future** (when Synapse goes to v1.0 - around 5th of March 2019). We **still need to keep the SRV record for now**, for backward compatibility with older Synapse versions (lower than v0.99). +Due to changes related to certificate file requirements that will affect us at Synapse v1.0, we'll have to stop using a **`_matrix._tcp` DNS SRV record in the future** (when Synapse goes to v1.0 — around 5th of March 2019). We **still need to keep the SRV record for now**, for backward compatibility with older Synapse versions (lower than v0.99). **What you need to do now** is make use of this transitional Synapse v0.99 release to **prepare your federation settings for the future**. You have 2 choices to prepare yourself for compatibility with the future Synapse v1.0: -- (recommended) set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), unless you are affected by the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation). If you had previously set up the well-known `client` file, depending on how you've done it, it may be that there is nothing new required of you (besides [upgrading](docs/maintenance-upgrading-services.md)). After upgrading, you can [run a self-check](docs/maintenance-checking-services.md), which will tell you if you need to do anything extra with regard to setting up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file). After some time, when most people have upgraded to Synapse v0.99 and older releases have disappeared, be prepared to drop your `_matrix._tcp` SRV record. +- (recommended) set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), unless you are affected by the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation). If you had previously set up the well-known `client` file, depending on how you've done it, it may be that there is nothing new required of you (besides [upgrading](docs/maintenance-upgrading-services.md)). After upgrading, you can [run a self-check](docs/maintenance-and-troubleshooting.md#how-to-check-if-services-work), which will tell you if you need to do anything extra with regard to setting up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file). After some time, when most people have upgraded to Synapse v0.99 and older releases have disappeared, be prepared to drop your `_matrix._tcp` SRV record. - (more advanced) if the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation) are not to your liking, **as an alternative**, you can set up [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced). In such a case, you get to keep using your existing `_matrix._tcp` DNS SRV record forever and need to NOT set up a `/.well-known/matrix/server` file. Don't forget that you need to do certificate changes though. Follow the guide at [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced). @@ -3396,34 +3501,26 @@ When using: ## IRC bridging support -[Devon Maloney (@Plailect)](https://github.com/Plailect) has done some great work bringing IRC bridging support via [matrix-appservice-irc](https://github.com/TeDomum/matrix-appservice-irc). -To learn more, see the [Setting up Appservice IRC bridging](docs/configuring-playbook-bridge-appservice-irc.md) documentation page. +[Devon Maloney (@Plailect)](https://github.com/Plailect) has done some great work bringing IRC bridging support via [matrix-appservice-irc](https://github.com/TeDomum/matrix-appservice-irc). To learn more, see the [Setting up Appservice IRC bridging](docs/configuring-playbook-bridge-appservice-irc.md) documentation page. # 2019-01-29 ## Running container processes as non-root, without capabilities and read-only -To improve security, this playbook no longer starts container processes as the `root` user. -Most containers were dropping privileges anyway, but we were trusting them with `root` privileges until they would do that. -Not anymore -- container processes now start as a non-root user (usually `matrix`) from the get-go. +To improve security, this playbook no longer starts container processes as the `root` user. Most containers were dropping privileges anyway, but we were trusting them with `root` privileges until they would do that. Not anymore — container processes now start as a non-root user (usually `matrix`) from the get-go. For additional security, various capabilities are also dropped (see [why it's important](https://github.com/projectatomic/atomic-site/issues/203)) for all containers. -Additionally, most containers now use a read-only filesystem (see [why it's important](https://www.projectatomic.io/blog/2015/12/making-docker-images-write-only-in-production/)). -Containers are given write access only to the directories they need to write to. - -A minor breaking change is the `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size` variable having being renamed to `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb` (note the `_mb` suffix). The new variable expects a number value (e.g. `25M` -> `25`). -If you weren't customizing this variable, this wouldn't affect you. +Additionally, most containers now use a read-only filesystem (see [why it's important](https://www.projectatomic.io/blog/2015/12/making-docker-images-write-only-in-production/)). Containers are given write access only to the directories they need to write to. +A minor breaking change is the `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size` variable having being renamed to `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb` (note the `_mb` suffix). The new variable expects a number value (e.g. `25M` -> `25`). If you weren't customizing this variable, this wouldn't affect you. ## matrix-mailer is now based on Exim, not Postfix -While we would have preferred to stay with [Postfix](http://www.postfix.org/), we found out that it cannot run as a non-root user. -We've had to replace it with [Exim](https://www.exim.org/) (via the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image). +While we would have preferred to stay with [Postfix](http://www.postfix.org/), we found out that it cannot run as a non-root user. We've had to replace it with [Exim](https://www.exim.org/) (via the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image). -The internal `matrix-mailer` service (running in a container) now listens on port `8025` (used to be `587` before). -The playbook will update your Synapse and mxisd email settings to match (`matrix-mailer:587` -> `matrix-mailer:8025`). +The internal `matrix-mailer` service (running in a container) now listens on port `8025` (used to be `587` before). The playbook will update your Synapse and mxisd email settings to match (`matrix-mailer:587` -> `matrix-mailer:8025`). Using the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image instead of [panubo/postfix](https://hub.docker.com/r/panubo/postfix/) also gives us a nice disk usage reduction (~200MB -> 8MB). @@ -3432,11 +3529,10 @@ Using the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) cont ## (BC Break) Making the playbook's roles more independent of one another -The following change **affects people running a more non-standard setup** - external Postgres or using our roles in their own other playbook. +The following change **affects people running a more non-standard setup** — external Postgres or using our roles in their own other playbook. **Most users don't need to do anything**, besides becoming aware of the new glue variables file [`group_vars/matrix-servers`](group_vars/matrix-servers). -Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them. -Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components. +Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them. Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components. With the new changes, **all roles are now only dependent on the minimal `matrix-base` role**. They are no longer dependent among themselves. @@ -3499,8 +3595,7 @@ The following variables are no longer supported by this playbook: - `matrix_mxisd_ldap_directory_filter` - `matrix_mxisd_template_config` -You are encouraged to use the `matrix_mxisd_configuration_extension_yaml` variable to define your own mxisd configuration additions and overrides. -Refer to the [default variables file](roles/custom/matrix-mxisd/defaults/main.yml) for more information. +You are encouraged to use the `matrix_mxisd_configuration_extension_yaml` variable to define your own mxisd configuration additions and overrides. Refer to the [default variables file](roles/custom/matrix-mxisd/defaults/main.yml) for more information. This new way of configuring mxisd is beneficial because: @@ -3536,7 +3631,6 @@ For people who use Let's Encrypt (mostly everyone, since it's the default), you' - before: `host_specific_matrix_ssl_support_email` - after: `host_specific_matrix_ssl_lets_encrypt_support_email` - ## (BC Break) mxisd upgrade with multiple base DN support mxisd has bee upgraded to [version 1.2.2](https://github.com/kamax-matrix/mxisd/releases/tag/v1.2.2), which supports [multiple base DNs](https://github.com/kamax-matrix/mxisd/blob/v1.2.2/docs/stores/ldap.md#base). @@ -3553,16 +3647,14 @@ Example change: ## Synapse 0.34.0 and Python 3 -Synapse has been upgraded to 0.34.0 and now uses Python 3. -Based on feedback from others, running Synapse on Python 3 is supposed to decrease memory usage significantly (~2x). +Synapse has been upgraded to 0.34.0 and now uses Python 3. Based on feedback from others, running Synapse on Python 3 is supposed to decrease memory usage significantly (~2x). # 2018-12-12 ## Riot homepage customization -You can now customize some parts of the Riot homepage (or even completely replace it with your own custom page). -See the `matrix_riot_web_homepage_` variables in `roles/custom/matrix-riot-web/defaults/main.yml`. +You can now customize some parts of the Riot homepage (or even completely replace it with your own custom page). See the `matrix_riot_web_homepage_` variables in `roles/custom/matrix-riot-web/defaults/main.yml`. # 2018-12-04 @@ -3590,15 +3682,13 @@ Additional details are available in [Setting up the LDAP authentication password ## Support for controlling public registration and room auto-join -The playbook now lets you enable public registration for users (controlled via `matrix_synapse_enable_registration`). -By default, public registration is forbidden. +The playbook now lets you enable public registration for users (controlled via `matrix_synapse_enable_registration`). By default, public registration is forbidden. You can also make people automatically get auto-joined to rooms (controlled via `matrix_synapse_auto_join_rooms`). ## Support for changing the welcome user ID (welcome bot) -By default, `@riot-bot:matrix.org` is used to welcome newly registered users. -This can be changed to something else (or disabled) via the new `matrix_riot_web_welcome_user_id` variable. +By default, `@riot-bot:matrix.org` is used to welcome newly registered users. This can be changed to something else (or disabled) via the new `matrix_riot_web_welcome_user_id` variable. # 2018-11-14 @@ -3609,7 +3699,7 @@ The playbook now allows you to set the log levels used by Synapse. The default l You can now override following variables with any of the supported log levels listed here: https://docs.python.org/3/library/logging.html#logging-levels -``` +```yaml matrix_synapse_log_level: "INFO" matrix_synapse_storage_sql_log_level: "INFO" matrix_synapse_root_log_level: "INFO" @@ -3622,7 +3712,7 @@ matrix_synapse_root_log_level: "INFO" You can now customize some parts of Riot's `config.json`. These playbook variables, with these default values, have been added: -``` +```yaml matrix_riot_web_disable_custom_urls: true matrix_riot_web_disable_guests: true matrix_riot_web_integrations_ui_url: "https://scalar.vector.im/" @@ -3633,7 +3723,7 @@ matrix_riot_web_integrations_jitsi_widget_url: "https://scalar.vector.im/api/wid This now allows you use a custom integration manager like [Dimension](https://dimension.t2bot.io). For example, if you wish to use the Dimension instance hosted at dimension.t2bot.io, you can set the following in your vars.yml file: -``` +```yaml matrix_riot_web_integrations_ui_url: "https://dimension.t2bot.io/riot" matrix_riot_web_integrations_rest_url: "https://dimension.t2bot.io/api/v1/scalar" matrix_riot_web_integrations_widgets_urls: "https://dimension.t2bot.io/widgets" @@ -3657,7 +3747,6 @@ The playbook now installs [Postgres 11](https://www.postgresql.org/about/news/18 If you have have an existing setup, it's likely running on an older Postgres version (9.x or 10.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql). - ## (BC Break) Renaming playbook variables Due to the large amount of features added to this playbook lately, to keep things manageable we've had to reorganize its configuration variables a bit. @@ -3698,22 +3787,21 @@ The playbook can now help you with [Controlling Matrix federation](docs/configur ## Disabling riot-web guests -From now on, Riot's configuration setting `disable_guests` would be set to `true`. -The homeserver was rejecting guests anyway, so this is just a cosmetic change affecting Riot's UI. +From now on, Riot's configuration setting `disable_guests` would be set to `true`. The homeserver was rejecting guests anyway, so this is just a cosmetic change affecting Riot's UI. # 2018-10-21 ## Self-check maintenance command -The playbook can now [check if services are configured correctly](docs/maintenance-checking-services.md). +The playbook can now [check if services are configured correctly](docs/maintenance-and-troubleshooting.md#how-to-check-if-services-work). # 2018-10-05 ## Presence tracking made configurable -The playbook can now enable/disable user presence-status tracking in Synapse, through the playbook's `matrix_synapse_use_presence` variable (having a default value of `true` - enabled). +The playbook can now enable/disable user presence-status tracking in Synapse, through the playbook's `matrix_synapse_use_presence` variable (having a default value of `true` — enabled). If users participate in large rooms with many other servers, disabling presence will decrease server load significantly. @@ -3724,8 +3812,7 @@ If users participate in large rooms with many other servers, disabling presence The playbook now makes the Synapse cache factor configurable, through the playbook's `matrix_synapse_cache_factor` variable (having a default value of `0.5`). -Changing that value allows you to potentially decrease RAM usage or to increase performance by caching more stuff. -Some information on it is available here: https://github.com/element-hq/synapse#help-synapse-eats-all-my-ram +Changing that value allows you to potentially decrease RAM usage or to increase performance by caching more stuff. Some information on it is available here: https://github.com/element-hq/synapse#help-synapse-eats-all-my-ram # 2018-09-26 @@ -3734,7 +3821,7 @@ Some information on it is available here: https://github.com/element-hq/synapse# `--log-driver=none` is used for all Docker containers now. -All these containers are started through systemd anyway and get logged in journald, so there's no need for Docker to be logging the same thing using the default `json-file` driver. Doing that was growing `/var/lib/docker/containers/..` infinitely until service/container restart. +All these containers are started through systemd anyway and get logged in journald, so there's no need for Docker to be logging the same thing using the default `json-file` driver. Doing that was growing `/var/lib/docker/containers/…` infinitely until service/container restart. As a result of this, things like `docker logs matrix-synapse` won't work anymore. `journalctl -u matrix-synapse` is how one can see the logs. @@ -3747,7 +3834,6 @@ The playbook now helps you set up [service discovery](https://matrix.org/docs/sp Additional details are available in [Configuring service discovery via .well-known](docs/configuring-well-known.md). - ## (BC Break) Renaming playbook variables The following playbook variables were renamed: @@ -3764,19 +3850,16 @@ The playbook now supports bridging with [Telegram](https://telegram.org/) by ins Additional details are available in [Setting up Mautrix Telegram bridging](docs/configuring-playbook-bridge-mautrix-telegram.md). - ## Events cache size increase and configurability for Matrix Synapse The playbook now lets you configure Matrix Synapse's `event_cache_size` configuration via the `matrix_synapse_event_cache_size` playbook variable. Previously, this value was hardcoded to `"10K"`. From now on, a more reasonable default of `"100K"` is used. - ## Password-peppering support for Matrix Synapse The playbook now supports enabling password-peppering for increased security in Matrix Synapse via the `matrix_synapse_password_config_pepper` playbook variable. Using a password pepper is disabled by default (just like it used to be before this playbook variable got introduced) and is not to be enabled/disabled after initial setup, as that would invalidate all existing passwords. - ## Statistics-reporting support for Matrix Synapse There's now a new `matrix_synapse_report_stats` playbook variable, which controls the `report_stats` configuration option for Matrix Synapse. It defaults to `false`, so no change is required to retain your privacy. @@ -3792,8 +3875,7 @@ We've been using [acmetool](https://github.com/hlandau/acme) (with the [willwill Due to the Docker image being deprecated, and things looking bleak for acmetool's support of the newer ACME v2 API endpoint, we've switched to using [certbot](https://certbot.eff.org/) (with the [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) Docker image). -Simply re-running the playbook will retrieve new certificates (via certbot) for you. -To ensure you don't leave any old files behind, though, you'd better do this: +Simply re-running the playbook will retrieve new certificates (via certbot) for you. To ensure you don't leave any old files behind, though, you'd better do this: - `systemctl stop 'matrix*'` - stop your custom webserver, if you're running one (only affects you if you've installed with `matrix_nginx_proxy_enabled: false`) @@ -3837,7 +3919,6 @@ The playbook can now install and configure [matrix-synapse-rest-auth](https://gi Additional details are available in [Setting up the REST authentication password provider module](docs/configuring-playbook-rest-auth.md). - ## Compression improvements Shifted Matrix Synapse compression from happening in the Matrix Synapse, @@ -3846,38 +3927,33 @@ to happening in the nginx proxy that's in front of it. Additionally, `riot-web` also gets compressed now (in the nginx proxy), which drops the initial page load's size from 5.31MB to 1.86MB. - ## Disabling some unnecessary Synapse services The following services are not necessary, so they have been disabled: - on the federation port (8448): the `client` service - on the http port (8008, exposed over 443): the old Angular `webclient` and the `federation` service -Federation runs only on the federation port (8448) now. -The Client APIs run only on the http port (8008) now. +Federation runs only on the federation port (8448) now. The Client APIs run only on the http port (8008) now. # 2018-08-15 ## mxisd Identity Server support -The playbook now sets up an [mxisd](https://github.com/kamax-io/mxisd) Identity Server for you by default. -Additional details are available in [Setting up ma1sd Identity Server](docs/configuring-playbook-mxisd.md). +The playbook now sets up an [mxisd](https://github.com/kamax-io/mxisd) Identity Server for you by default. Additional details are available in [Setting up ma1sd Identity Server](docs/configuring-playbook-mxisd.md). # 2018-08-14 ## Email-sending support -The playbook now configures an email-sending service (postfix) by default. -Additional details are available in [Adjusting email-sending settings](docs/configuring-playbook-email.md). +The playbook now configures an email-sending service (postfix) by default. Additional details are available in [Adjusting email-sending settings](docs/configuring-playbook-email.md). With this, Matrix Synapse is able to send email notifications for missed messages, etc. # 2018-08-08 - ## (BC Break) Renaming playbook variables The following playbook variables were renamed: @@ -3893,12 +3969,9 @@ The following playbook variables were renamed: If you're overriding any of them in your `vars.yml` file, you'd need to change to the new names. - ## Renaming Ansible playbook tag -The command for executing the whole playbook has changed. -The `setup-main` tag got renamed to `setup-all`. - +The command for executing the whole playbook has changed. The `setup-main` tag got renamed to `setup-all`. ## Docker container linking diff --git a/CHANGELOG.md.license b/CHANGELOG.md.license new file mode 100644 index 000000000..75cfbe6c7 --- /dev/null +++ b/CHANGELOG.md.license @@ -0,0 +1,14 @@ +SPDX-FileCopyrightText: 2018 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Aaron Raimist +SPDX-FileCopyrightText: 2019 Thomas Kuehne +SPDX-FileCopyrightText: 2020 John Goerzen +SPDX-FileCopyrightText: 2020 Julian Foad +SPDX-FileCopyrightText: 2021 Agustin Ferrario +SPDX-FileCopyrightText: 2021 Dan Arnfield +SPDX-FileCopyrightText: 2022 Jost Alemann +SPDX-FileCopyrightText: 2023 Felix Stupp +SPDX-FileCopyrightText: 2023 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt new file mode 100644 index 000000000..0c97efd25 --- /dev/null +++ b/LICENSES/AGPL-3.0-or-later.txt @@ -0,0 +1,235 @@ +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + + Preamble + +The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. + +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. + +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. + +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. + +The precise terms and conditions for copying, distribution and modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU Affero General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the Program. + +To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Remote Network Interaction; Use with the GNU General Public License. + +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 000000000..0e259d42c --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/Makefile b/Makefile index 3379b8fff..9ac77bb07 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + .PHONY: roles lint help: ## Show this help. diff --git a/README.md b/README.md index a55def0f7..72ca57855 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate) +[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate) [![REUSE status](https://api.reuse.software/badge/github.com/spantaleev/matrix-docker-ansible-deploy)](https://api.reuse.software/info/github.com/spantaleev/matrix-docker-ansible-deploy) # Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker @@ -6,7 +6,7 @@ This [Ansible](https://www.ansible.com/) playbook is meant to help you run your own [Matrix](http://matrix.org/) homeserver, along with the [various services](#supported-services) related to that. -That is, it lets you join the Matrix network using your own `@:example.com` identifier, all hosted on your own server (see [prerequisites](docs/prerequisites.md)). +That is, it lets you join the Matrix network using your own user ID like `@alice:example.com`, all hosted on your own server (see [prerequisites](docs/prerequisites.md)). We run all [supported services](#-supported-services) in [Docker](https://www.docker.com/) containers (see [the container images we use](docs/container-images.md)), which lets us have a predictable and up-to-date setup, across multiple supported distros (see [prerequisites](docs/prerequisites.md)) and [architectures](docs/alternative-architectures.md) (x86/amd64 being recommended). @@ -25,9 +25,14 @@ We have detailed documentation in the [docs/](./docs) directory - see the Table While the [list of supported services](#-supported-services) and documentation is very extensive, you don't need to read through everything. We recommend: - Starting with the basics. You can always add/remove or tweak services later on. -- Following our guided installation, starting with the [Prerequisites](./docs/prerequisites.md) documentation page -If you have never configured Matrix services, follow the [**quick start**](./docs/quick-start.md) guide to set up minimum core services on your server. +- Following our installation guide. There are two guides available for beginners and advanced users: + + - ⚡ **[Quick start](./docs/quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with "opinionated defaults". + + - **Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](./docs/prerequisites.md)** documentation page. + +If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our [FAQ](./docs/faq.md). If you cannot find an answer to your question, feel free to ask for [help and support](#-support). ## ✔ Supported services @@ -47,7 +52,8 @@ The homeserver is the backbone of your Matrix system. Choose one from the follow | ---- | -------- | ----------- | ------------- | | [Synapse](https://github.com/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) | | [Conduit](https://conduit.rs) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) | -| [Dendrite](https://github.com/matrix-org/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) | +| [conduwuit](https://conduwuit.puppyirl.gay/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | [Link](docs/configuring-playbook-conduwuit.md) | +| [Dendrite](https://github.com/element-hq/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) | ### Clients @@ -59,8 +65,7 @@ Web clients for Matrix that you can host on your own domains. | [Hydrogen](https://github.com/element-hq/hydrogen-web) | ❌ | Lightweight Matrix client with legacy and mobile browser support | [Link](docs/configuring-playbook-client-hydrogen.md) | | [Cinny](https://github.com/ajbura/cinny) | ❌ | Simple, elegant and secure web client | [Link](docs/configuring-playbook-client-cinny.md) | | [SchildiChat Web](https://schildi.chat/) | ❌ | Based on Element Web, with a more traditional instant messaging experience | [Link](docs/configuring-playbook-client-schildichat-web.md) | - - +| [FluffyChat Web](https://fluffychat.im/) | ❌ | The cutest messenger in Matrix | [Link](docs/configuring-playbook-client-fluffychat-web.md) | ### Server Components @@ -69,14 +74,13 @@ Services that run on the server to make the various parts of your installation w | Name | Default? | Description | Documentation | | ---- | -------- | ----------- | ------------- | | [PostgreSQL](https://www.postgresql.org/)| ✅ | Database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible. | [Link](docs/configuring-playbook-external-postgres.md) | -| [Coturn](https://github.com/coturn/coturn) | ✅ | STUN/TURN server for WebRTC audio/video calls | [Link](docs/configuring-playbook-turn.md) | -| [Traefik](https://doc.traefik.io/traefik/) | ✅ | Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md) | [Link](docs/configuring-playbook-traefik.md) | +| [coturn](https://github.com/coturn/coturn) | ✅ | STUN/TURN server for WebRTC audio/video calls | [Link](docs/configuring-playbook-turn.md) | +| [Traefik](https://doc.traefik.io/traefik/) | ✅ | Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. [Using your own webserver](docs/configuring-playbook-own-webserver.md) is also possible. | [Link](docs/configuring-playbook-traefik.md) | | [Let's Encrypt](https://letsencrypt.org/) | ✅ | Free SSL certificate, which secures the connection to all components | [Link](docs/configuring-playbook-ssl-certificates.md) | | [Exim](https://www.exim.org/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | [Link](docs/configuring-playbook-email.md) | | [ma1sd](https://github.com/ma1uta/ma1sd) | ❌ | Matrix Identity Server | [Link](docs/configuring-playbook-ma1sd.md) | [ddclient](https://github.com/linuxserver/docker-ddclient) | ❌ | Dynamic DNS | [Link](docs/configuring-playbook-dynamic-dns.md) | - ### Authentication Extend and modify how users are authenticated on your homeserver. @@ -86,11 +90,10 @@ Extend and modify how users are authenticated on your homeserver. | [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) (advanced) | ❌ | REST authentication password provider module | [Link](docs/configuring-playbook-rest-auth.md) | |[matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) (advanced) | ❌ | Password provider module | [Link](docs/configuring-playbook-shared-secret-auth.md) | | [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced) | ❌ | LDAP Auth password provider module | [Link](docs/configuring-playbook-ldap-auth.md) | -| [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced) | ❌ | A proxy that handles Matrix registration requests and forwards them to LDAP. | [Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md) | -| [matrix-registration](https://github.com/ZerataX/matrix-registration) | ❌ | A simple python application to have a token based Matrix registration | [Link](docs/configuring-playbook-matrix-registration.md) | -| [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (UVS) | ❌ | Service to verify details of a user based on an Open ID token | [Link](docs/configuring-playbook-user-verification-service.md) | -| [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced) | ❌ | A spam checker module | [Link](docs/configuring-playbook-synapse-simple-antispam.md) | - +| [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced) | ❌ | Proxy that handles Matrix registration requests and forwards them to LDAP | [Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md) | +| [matrix-registration](https://github.com/ZerataX/matrix-registration) | ❌ | Simple python application to have a token based Matrix registration | [Link](docs/configuring-playbook-matrix-registration.md) | +| [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) | ❌ | Service to verify details of a user based on an Open ID token | [Link](docs/configuring-playbook-user-verification-service.md) | +| [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced) | ❌ | Spam checker module | [Link](docs/configuring-playbook-synapse-simple-antispam.md) | ### File Storage @@ -100,7 +103,7 @@ Use alternative file storage to the default `media_store` folder. | ---- | -------- | ----------- | ------------- | | [Goofys](https://github.com/kahing/goofys) | ❌ | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | [Link](docs/configuring-playbook-s3-goofys.md) | | [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) | ❌ | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | [Link](docs/configuring-playbook-s3.md) | -| [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) | ❌ | matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. | [Link](docs/configuring-playbook-matrix-media-repo.md) | +| [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) | ❌ | Highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. | [Link](docs/configuring-playbook-matrix-media-repo.md) | ### Bridges @@ -114,6 +117,7 @@ Bridges can be used to connect your Matrix installation with third-party communi | [mautrix-gmessages](https://github.com/mautrix/gmessages) | ❌ | Bridge to [Google Messages](https://messages.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gmessages.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-bluesky](https://github.com/mautrix/bluesky) | ❌ | Bridge to [Bluesky](https://bsky.social/) | [Link](docs/configuring-playbook-bridge-mautrix-bluesky.md) | | [mautrix-twitter](https://github.com/mautrix/twitter) | ❌ | Bridge to [Twitter](https://twitter.com/) | [Link](docs/configuring-playbook-bridge-mautrix-twitter.md) | | [mautrix-googlechat](https://github.com/mautrix/googlechat) | ❌ | Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat) | [Link](docs/configuring-playbook-bridge-mautrix-googlechat.md) | | [mautrix-meta](https://github.com/mautrix/instagram) | ❌ | Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) | Link for [Messenger](docs/configuring-playbook-bridge-mautrix-meta-messenger.md) / [Instagram](docs/configuring-playbook-bridge-mautrix-meta-instagram.md) | @@ -134,23 +138,21 @@ Bridges can be used to connect your Matrix installation with third-party communi | [mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-discord.md) | | [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) | ❌ | Bridge to [GroupMe](https://groupme.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md) | | [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) | ❌ | Bridge to [Steam](https://steamapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-steam.md) | -| [Email2Matrix](https://github.com/devture/email2matrix) | ❌ | Bridge for relaying emails to Matrix rooms | [Link](docs/configuring-playbook-email2matrix.md) | | [Postmoogle](https://github.com/etkecc/postmoogle) | ❌ | Email to Matrix bridge | [Link](docs/configuring-playbook-bridge-postmoogle.md) | - ### Bots Bots provide various additional functionality to your installation. | Name | Default? | Description | Documentation | | ---- | -------- | ----------- | ------------- | -| [baibot](https://github.com/etkecc/baibot) | ❌ | A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you | [Link](docs/configuring-playbook-bot-baibot.md) | +| [baibot](https://github.com/etkecc/baibot) | ❌ | Bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you | [Link](docs/configuring-playbook-bot-baibot.md) | | [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) | ❌ | Bot for scheduling one-off & recurring reminders and alarms | [Link](docs/configuring-playbook-bot-matrix-reminder-bot.md) | | [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) | ❌ | Bot for invitations by creating and managing registration tokens | [Link](docs/configuring-playbook-bot-matrix-registration-bot.md) | -| [maubot](https://github.com/maubot/maubot) | ❌ | A plugin-based Matrix bot system | [Link](docs/configuring-playbook-bot-maubot.md) | -| [Honoroit](https://github.com/etkecc/honoroit) | ❌ | A helpdesk bot | [Link](docs/configuring-playbook-bot-honoroit.md) | -| [Mjolnir](https://github.com/matrix-org/mjolnir) | ❌ | A moderation tool for Matrix | [Link](docs/configuring-playbook-bot-mjolnir.md) | -| [Draupnir](https://github.com/the-draupnir-project/Draupnir) | ❌ | A moderation tool for Matrix (Fork of Mjolnir) | [Link](docs/configuring-playbook-bot-draupnir.md) (for [appservice mode](docs/configuring-playbook-appservice-draupnir-for-all.md))| +| [maubot](https://github.com/maubot/maubot) | ❌ | Plugin-based Matrix bot system | [Link](docs/configuring-playbook-bot-maubot.md) | +| [Honoroit](https://github.com/etkecc/honoroit) | ❌ | Helpdesk bot | [Link](docs/configuring-playbook-bot-honoroit.md) | +| [Mjolnir](https://github.com/matrix-org/mjolnir) | ❌ | Moderation tool for Matrix | [Link](docs/configuring-playbook-bot-mjolnir.md) | +| [Draupnir](https://github.com/the-draupnir-project/Draupnir) | ❌ | Moderation tool for Matrix (Fork of Mjolnir) | [Link](docs/configuring-playbook-bot-draupnir.md) (for [appservice mode](docs/configuring-playbook-appservice-draupnir-for-all.md))| | [Buscarron](https://github.com/etkecc/buscarron) | ❌ | Web forms (HTTP POST) to Matrix | [Link](docs/configuring-playbook-bot-buscarron.md) | ### Administration @@ -161,8 +163,8 @@ Services that help you in administrating and monitoring your Matrix installation | ---- | -------- | ----------- | ------------- | | [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) | ❌ | Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client | [Link](docs/configuring-playbook-alertmanager-receiver.md) | | [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) | ❌ | OAuth 2.0 and OpenID Provider server | [Link](docs/configuring-playbook-matrix-authentication-service.md) | -| [synapse-admin](https://github.com/etkecc/synapse-admin) | ❌ | A web UI tool for administrating users and rooms on your Matrix server | [Link](docs/configuring-playbook-synapse-admin.md) | -| Metrics and Graphs | ❌ | Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI, with [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) being available too | [Link](docs/configuring-playbook-prometheus-grafana.md) (for [prometheus-nginxlog-exporter](docs/configuring-playbook-prometheus-nginxlog.md)) | +| [synapse-admin](https://github.com/etkecc/synapse-admin) | ❌ | Web UI tool for administrating users and rooms on your Matrix server | [Link](docs/configuring-playbook-synapse-admin.md) | +| Metrics and Graphs | ❌ | Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI, with [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) being available too | [Link](docs/configuring-playbook-prometheus-grafana.md) (for [prometheus-nginxlog-exporter](docs/configuring-playbook-prometheus-grafana.md#enable-metrics-and-graphs-for-nginx-logs-optional)) | | [Borg](https://borgbackup.org) | ❌ | Backups | [Link](docs/configuring-playbook-backup-borg.md) | | [rageshake](https://github.com/matrix-org/rageshake) | ❌ | Bug report server | [Link](docs/configuring-playbook-rageshake.md) | | [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) | ❌ | Export the usage statistics of a Synapse homeserver to be scraped by Prometheus. | [Link](docs/configuring-playbook-synapse-usage-exporter.md) | @@ -174,24 +176,22 @@ Various services that don't fit any other categories. | Name | Default? | Description | Documentation | | ---- | -------- | ----------- | ------------- | | [sliding-sync](https://github.com/matrix-org/sliding-sync)| ❌ | (Superseded by Simplified Sliding Sync integrated into Synapse > `1.114` and Conduit > `0.6.0`) Sliding Sync support for clients which require it (e.g. old Element X versions before Simplified Sliding Sync was developed) | [Link](docs/configuring-playbook-sliding-sync-proxy.md) | -| [synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite) | ❌ | A Synapse module to automatically accept invites. | [Link](docs/configuring-playbook-synapse-auto-accept-invite.md) | -| [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) | ❌ | A cli tool that automatically compresses `state_groups` database table in background. | [Link](docs/configuring-playbook-synapse-auto-compressor.md) | +| [synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite) | ❌ | Synapse module to automatically accept invites | [Link](docs/configuring-playbook-synapse-auto-accept-invite.md) | +| [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) | ❌ | Cli tool that automatically compresses `state_groups` database table in background | [Link](docs/configuring-playbook-synapse-auto-compressor.md) | | [Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced) | ❌ | Reconciliator and gateway for a managed Matrix server | [Link](docs/configuring-playbook-matrix-corporal.md) | -| [Etherpad](https://etherpad.org) | ❌ | An open source collaborative text editor | [Link](docs/configuring-playbook-etherpad.md) | -| [Jitsi](https://jitsi.org/) | ❌ | An open source video-conferencing platform | [Link](docs/configuring-playbook-jitsi.md) | -| [Cactus Comments](https://cactus.chat) | ❌ | A federated comment system built on Matrix | [Link](docs/configuring-playbook-cactus-comments.md) | -| [Pantalaimon](https://github.com/matrix-org/pantalaimon) | ❌ | An E2EE aware proxy daemon | [Link](docs/configuring-playbook-pantalaimon.md) | +| [Etherpad](https://etherpad.org) | ❌ | Open source collaborative text editor | [Link](docs/configuring-playbook-etherpad.md) | +| [Jitsi](https://jitsi.org/) | ❌ | Open source video-conferencing platform | [Link](docs/configuring-playbook-jitsi.md) | +| [Cactus Comments](https://cactus.chat) | ❌ | Federated comment system built on Matrix | [Link](docs/configuring-playbook-cactus-comments.md) | +| [Pantalaimon](https://github.com/matrix-org/pantalaimon) | ❌ | E2EE aware proxy daemon | [Link](docs/configuring-playbook-pantalaimon.md) | | [Sygnal](https://github.com/matrix-org/sygnal) | ❌ | Push gateway | [Link](docs/configuring-playbook-sygnal.md) | | [ntfy](https://ntfy.sh) | ❌ | Push notifications server | [Link](docs/configuring-playbook-ntfy.md) | - ## 🆕 Changes This playbook evolves over time, sometimes with backward-incompatible changes. When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new. - ## 🆘 Support - Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) @@ -200,6 +200,11 @@ When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up w - GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues) +## 🌐 Translation + +See the [i18n/README.md](i18n/README.md) file for more information about translation. + +Translations are still work in progress. ## 🤝 Related diff --git a/README.md.license b/README.md.license new file mode 100644 index 000000000..430773b9b --- /dev/null +++ b/README.md.license @@ -0,0 +1,34 @@ +SPDX-FileCopyrightText: 2017 - 2025 MDAD project contributors +SPDX-FileCopyrightText: 2017 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 - 2021 Aaron Raimist +SPDX-FileCopyrightText: 2019 - 2020 Hugues Morisset +SPDX-FileCopyrightText: 2019 Edgars Voroboks +SPDX-FileCopyrightText: 2019 Eduardo Beltrame +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2020 Lee Verberne +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2020 Matthew Croughan +SPDX-FileCopyrightText: 2020 Tulir Asokan +SPDX-FileCopyrightText: 2021 Alexandar Mechev +SPDX-FileCopyrightText: 2021 Béla Becker +SPDX-FileCopyrightText: 2021 Cody Neiman +SPDX-FileCopyrightText: 2021 Marcus Proest +SPDX-FileCopyrightText: 2021 Matthew Cengia +SPDX-FileCopyrightText: 2021 Prasiddh Pooskur +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2021 Yannick Goossens +SPDX-FileCopyrightText: 2022 - 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Andrew Morgan +SPDX-FileCopyrightText: 2022 Christos Karamolegkos +SPDX-FileCopyrightText: 2022 Dennis Ciba +SPDX-FileCopyrightText: 2022 Julian Foad +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Kim Brose +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2023 Joe Kappus +SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 000000000..076d318ff --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,37 @@ +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +version = 1 + +# Computer-generated files and other files which cannot be copyrighted +[[annotations]] +path = [ + ".github/renovate.json", + "collections/requirements.yml", + "i18n/.gitignore", + "i18n/PUBLISHED_LANGUAGES", + "i18n/requirements.txt", + "roles/custom/**/*.repo", + ".editorconfig", + ".envrc", + ".gitattributes", + ".gitignore", + ".yamllint", + "ansible.cfg", + "flake.lock", + "flake.nix", + "requirements.yml" +] +SPDX-FileCopyrightText = "NONE" +SPDX-License-Identifier = "CC0-1.0" + +# See https://reuse.software/faq/#aggregate-info +[[annotations]] +path = [ + "i18n/**/*.po", + "i18n/**/*.pot" +] +precedence = "aggregate" +SPDX-FileCopyrightText = "2024 - 2025 Slavi Pantaleev, MDAD project contributors" +SPDX-License-Identifier = "AGPL-3.0-or-later" diff --git a/YEAR-IN-REVIEW.md b/YEAR-IN-REVIEW.md index cf48fc095..e66882873 100644 --- a/YEAR-IN-REVIEW.md +++ b/YEAR-IN-REVIEW.md @@ -1,3 +1,10 @@ + + # 2023 2023 was a year filled with many changes for matrix-docker-ansible-deploy. In this post, we're looking backward at some of the major changes that happened this year, as well as taking a glimpse of what's ahead in 2024. @@ -52,7 +59,7 @@ Hopefully, Synapse defaults would also change the same way and we'd see the numb With this configuration change in place, projects like [MatrixRooms.info](https://matrixrooms.info/) (made by [etke.cc](https://etke.cc/)) and potentially others in the future, can discover, index the metadata (room address, title, topic, number of users, etc.) and make public rooms browsable & searchable across the whole Matrix Federation. It'd be great if users joining Matrix could more easily find interesting communities that match their interests! -On the **media side of things**, besides Jitsi getting better Matrix integration (via the aforementioned Matrix User Verification Service), we've also had some [Coturn security tightening](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues) as well as [performance optimizations](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#coturn-can-now-use-host-networking) for configurations exposing lots of network ports. +On the **media side of things**, besides Jitsi getting better Matrix integration (via the aforementioned Matrix User Verification Service), we've also had some [coturn security tightening](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues) as well as [performance optimizations](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#coturn-can-now-use-host-networking) for configurations exposing lots of network ports. [Element Call](https://github.com/element-hq/element-call) seems to have become a nice and polished product lately (as proclaimed in [The Matrix Holiday Update 2023](https://matrix.org/blog/2023/12/25/the-matrix-holiday-update-2023/)), so 2024 is likely the year we'll see support for it in the playbook. Element Call depends on the [LiveKit](https://livekit.io/) streaming server (which is also useful to developers even by itself), so the first step is likely to see LiveKit support in mash-playbook via a reusable Ansible role. Such a LiveKit Ansible role could later easily land in matrix-docker-ansible-deploy and an Element Call static website could be hooked to it. @@ -69,7 +76,7 @@ When it comes to the `matrix-docker-ansible-deploy` Ansible playbook, 2022 was t Support for the following new **bridges** was added: -* [Postmoogle](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#postmoogle-email-bridge-support) for bi-directional email bridging, which supersedes my old and simplistic [email2matrix](https://github.com/devture/email2matrix) one-way bridge-bot +* [Postmoogle](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#postmoogle-email-bridge-support) for bi-directional email bridging, which supersedes my old and simplistic [Email2Matrix](https://github.com/devture/email2matrix) one-way bridge-bot * [mautrix-discord](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#mautrix-discord-support) * [go-skype-bridge](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#go-skype-bridge-bridging-support) * [matrix-appservice-kakaotalk](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-appservice-kakaotalk-support) diff --git a/bin/ansible-all-hosts.sh b/bin/ansible-all-hosts.sh index c4b903162..7b4ba3248 100755 --- a/bin/ansible-all-hosts.sh +++ b/bin/ansible-all-hosts.sh @@ -1,4 +1,10 @@ #!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # # Run the playbook on multiple hosts with different credentials with this script # It defaults to ansible tags "setup-all,start". You can pass alternative tags diff --git a/bin/rebuild-mautrix-meta-instagram.sh b/bin/rebuild-mautrix-meta-instagram.sh index d637168bd..8c4a01ec4 100644 --- a/bin/rebuild-mautrix-meta-instagram.sh +++ b/bin/rebuild-mautrix-meta-instagram.sh @@ -1,4 +1,9 @@ #!/bin/bash + +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + set -euxo pipefail # This script rebuilds the mautrix-meta-instagram Ansible role, using the mautrix-meta-messenger role as a source. diff --git a/conf.py b/conf.py new file mode 100644 index 000000000..1dcc1801d --- /dev/null +++ b/conf.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Configuration file for the Sphinx documentation builder. +# Also see the `i18n/` directory. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'matrix-docker-ansible-deploy' +copyright = '2018-%Y, Slavi Pantaleev, Aine Etke, MDAD community members' +author = 'Slavi Pantaleev, Aine Etke, MDAD community members' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +needs_sphinx = '8.1' # For the copyright year placeholder (%Y). Specified with pyproject.toml as well. + +extensions = [ + 'myst_parser', + 'sphinx_markdown_builder' +] +myst_gfm_only = True +myst_heading_anchors = 4 # https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#auto-generated-header-anchors + +master_doc = 'README' +source_suffix = {'.md': 'markdown'} + +# Though the default config file advocates exclude_patterns, it is straightforward for us to use include_patterns to select directories explicitly. +include_patterns = [ + 'docs/*', + 'i18n/README.md', + '*.md', +] + +locale_dirs = ['i18n/locales/'] +gettext_compact = False + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +# html_theme = 'alabaster' +# html_static_path = ['_static'] diff --git a/docs/README.md b/docs/README.md index 1b681bc88..0473b77e5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,49 +1,95 @@ + + # Table of Contents -- [FAQ](faq.md) - lots of questions and answers. Jump to [Prerequisites](prerequisites.md) to avoid reading too much and to just start a guided installation. +## ⬇️ Installaton guides -- [Quick start](quick-start.md) - follow the guide to set up minimum core services on your server +There are two installation guides available for beginners and advanced users. -- [Prerequisites](prerequisites.md) - go here to a guided installation using this Ansible playbook +- ⚡ **[Quick start](quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with "opinionated defaults". -- [Configuring your DNS settings](configuring-dns.md) +- **Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide. -- [Getting this playbook's source code](getting-the-playbook.md) + - [Prerequisites](prerequisites.md) -- [Configuring the playbook](configuring-playbook.md) + - [Configuring DNS settings](configuring-dns.md) -- [Installing](installing.md) + - [Getting the playbook](getting-the-playbook.md) - - **Importing data from another server installation** + - [Configuring the playbook](configuring-playbook.md) - - [Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional) + - [Installing](installing.md) - - [Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional) +## 🛠️ Configuration options - - [Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional) + - - [Server Delegation](howto-server-delegation.md) +You can check useful documentation for configuring components here: [Configuring the playbook](configuring-playbook.md) - - Server Delegation via a well-known file (recommended): [Installing well-known files on the base domain's server](configuring-well-known.md#installing-well-known-files-on-the-base-domain-s-server) +- [Administration](configuring-playbook.md#administration) — services that help you in administrating and monitoring your Matrix installation - - [Serving the base domain](configuring-playbook-base-domain-serving.md) +- [Authentication and user-related](configuring-playbook.md#authentication-and-user-related) — extend and modify how users are authenticated on your homeserver - - [Server Delegation via a DNS SRV record (advanced)](howto-srv-server-delegation.md) +- [Bots](configuring-playbook.md#bots) — bots provide various additional functionality to your installation + +- [Bridges](configuring-playbook.md#bridging-other-networks) — bridges can be used to connect your Matrix installation with third-party communication networks + +- [Clients](configuring-playbook.md#clients) — web clients for Matrix that you can host on your own domains + +- [Core service adjustments](configuring-playbook.md#core-service-adjustments) — backbone of your Matrix system + +- [File Storage](configuring-playbook.md#file-storage) — use alternative file storage to the default `media_store` folder + + + +- [Other specialized services](configuring-playbook.md#other-specialized-services) — various services that don't fit any other categories + +## 👨‍🔧 Maintenance + +If your server and services experience issues, feel free to come to [our support room](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) and ask for help. + + + +- [Maintenance and Troubleshooting](maintenance-and-troubleshooting.md) + +- [PostgreSQL maintenance](maintenance-postgres.md) + +- [Synapse maintenance](maintenance-synapse.md) + +- [Upgrading services](maintenance-upgrading-services.md) + +## Other documentation pages + +- ℹ️ **[FAQ](faq.md)** — various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook + + + +- [Alternative architectures](alternative-architectures.md) + +- [Container images used by the playbook](container-images.md) + +- [Obtaining an Access Token](obtaining-access-tokens.md) - [Playbook tags](playbook-tags.md) - [Registering users](registering-users.md) -- [Updating users passwords](updating-users-passwords.md) +- [Running `just` commands](just.md) -- [Maintenance / checking if services work](maintenance-checking-services.md) - -- [Maintenance / upgrading services](maintenance-upgrading-services.md) - -- [Maintenance / Synapse](maintenance-synapse.md) - -- [Maintenance / PostgreSQL](maintenance-postgres.md) - -- [Maintenance and Troubleshooting](maintenance-and-troubleshooting.md) +- [Self-building](self-building.md) - [Uninstalling](uninstalling.md) + +- [Updating users passwords](updating-users-passwords.md) + +- [Using Ansible for the playbook](ansible.md) diff --git a/docs/alternative-architectures.md b/docs/alternative-architectures.md index 0865de1f0..63127b317 100644 --- a/docs/alternative-architectures.md +++ b/docs/alternative-architectures.md @@ -1,3 +1,11 @@ + + # Alternative architectures As stated in the [Prerequisites](prerequisites.md), currently only `amd64` (`x86_64`) is fully supported. @@ -10,7 +18,6 @@ The playbook automatically determines the target server's architecture (the `mat Some tools and container images can be built on the host or other measures can be used to install on that architecture. - ## Implementation details For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building). diff --git a/docs/ansible.md b/docs/ansible.md index 7783c55be..ff0398374 100644 --- a/docs/ansible.md +++ b/docs/ansible.md @@ -1,11 +1,19 @@ + + +# Using Ansible for the playbook This playbook is meant to be run using [Ansible](https://www.ansible.com/). Ansible typically runs on your local computer and carries out tasks on a remote server. If your local computer cannot run Ansible, you can also run Ansible on some server somewhere (including the server you wish to install to). - ## Supported Ansible versions To manually check which version of Ansible you're on, run: `ansible --version`. @@ -16,7 +24,6 @@ We're not sure what's the minimum version of Ansible that can run this playbook If your distro ships with an Ansible version older than this, you may run into issues. Consider [Upgrading Ansible](#upgrading-ansible) or [using Ansible via Docker](#using-ansible-via-docker). - ## Upgrading Ansible Depending on your distribution, you may be able to upgrade Ansible in a few different ways: @@ -27,19 +34,19 @@ Depending on your distribution, you may be able to upgrade Ansible in a few diff If using the `pip` method, do note that the `ansible-playbook` binary may not be on the `$PATH` (https://linuxconfig.org/linux-path-environment-variable), but in some more special location like `/usr/local/bin/ansible-playbook`. You may need to invoke it using the full path. - **Note**: Both of the above methods are a bad way to run system software such as Ansible. If you find yourself needing to resort to such hacks, please consider reporting a bug to your distribution and/or switching to a sane distribution, which provides up-to-date software. - ## Using Ansible via Docker -Alternatively, you can run Ansible inside a Docker container (powered by the [devture/ansible](https://hub.docker.com/r/devture/ansible/) Docker image). +Alternatively, you can run Ansible inside a Docker container (powered by the [ghcr.io/devture/ansible](https://github.com/devture/docker-ansible/pkgs/container/ansible) Docker image). -This ensures that you're using a very recent Ansible version, which is less likely to be incompatible with the playbook. +This ensures that: + +- you're using a very recent Ansible version, which is less likely to be incompatible with the playbook +- you also get access to the [agru](https://github.com/etkecc/agru) tool for quicker Ansible role installation (when running `just roles`) compared to `ansible-galaxy` 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). - ### 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: @@ -47,63 +54,66 @@ To run Ansible in a (Docker) container on the Matrix server itself, you need to - 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 - **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 -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). +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). 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. -Alternatively, you can leave your `inventory/hosts` as is and specify the connection type in **each** `ansible-playbook` call you do later, like this: `ansible-playbook --connection=community.docker.nsenter ...` +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 …`). Run this from the playbook's directory: -```bash -docker run -it --rm \ +```sh +docker run \ +-it \ +--rm \ --privileged \ --pid=host \ -w /work \ --v `pwd`:/work \ +--mount type=bind,src=`pwd`,dst=/work \ --entrypoint=/bin/sh \ -docker.io/devture/ansible:2.17.0-r0-1 +ghcr.io/devture/ansible:11.1.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. First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues). -Finally, you can execute `ansible-playbook ...` (or `ansible-playbook --connection=community.docker.nsenter ...`) commands as per normal now. - +Finally, you can execute `just` or `ansible-playbook …` (e.g. `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now. ### Running Ansible in a container on another computer (not the Matrix server) Run this from the playbook's directory: -```bash -docker run -it --rm \ +```sh +docker run \ +-it \ +--rm \ -w /work \ --v `pwd`:/work \ --v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \ +--mount type=bind,src=`pwd`,dst=/work \ +--mount type=bind,src$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro \ --entrypoint=/bin/sh \ -docker.io/devture/ansible:2.17.0-r0-1 +ghcr.io/devture/ansible:11.1.0-r0-0 ``` -The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`). If your SSH key is at a different path (not in `$HOME/.ssh/id_rsa`), 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. 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. First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues). -Finally, you execute `ansible-playbook ...` commands as per normal now. - +Finally, you execute `just` or `ansible-playbook …` commands as per normal now. #### If you don't use SSH keys for authentication -If you don't use SSH keys for authentication, simply remove that whole line (`-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro`). +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`). -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: -```bash +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: + +```sh apk add sshpass ``` -Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command. +Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command. #### Resolve directory ownership issues diff --git a/docs/assets/obtain_admin_access_token_element_web.png.license b/docs/assets/obtain_admin_access_token_element_web.png.license new file mode 100644 index 000000000..e254eb619 --- /dev/null +++ b/docs/assets/obtain_admin_access_token_element_web.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/docs/configuring-captcha.md b/docs/configuring-captcha.md index ad411ddde..a5ad1085d 100644 --- a/docs/configuring-captcha.md +++ b/docs/configuring-captcha.md @@ -1,6 +1,16 @@ + + (Adapted from the [upstream project](https://github.com/element-hq/synapse/blob/develop/docs/CAPTCHA_SETUP.md)) # Overview + 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. diff --git a/docs/configuring-dns.md b/docs/configuring-dns.md index 2e2cd6bae..398f5999b 100644 --- a/docs/configuring-dns.md +++ b/docs/configuring-dns.md @@ -1,14 +1,51 @@ -# Configuring your DNS settings + + +# Configuring DNS settings + +[Prerequisites](prerequisites.md) > Configuring DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md) To set up Matrix on your domain, you'd need to do some DNS configuration. +## DNS settings for services enabled by default + +To serve the base domain (`example.com`) and [Element Web](configuring-playbook-client-element-web.md) with the default subdomain, adjust DNS records as below. + +| Type | Host | Priority | Weight | Port | Target | +| ----- | --------- | -------- | ------ | ---- | ---------------------| +| A | `matrix` | - | - | - | `matrix-server-IPv4` | +| AAAA | `matrix` | - | - | - | `matrix-server-IPv6` | +| CNAME | `element` | - | - | - | `matrix.example.com` | + +As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IPv4/IPv6 address. + +If you don't have IPv6 connectivity yet, you can skip the `AAAA` record. For more details about IPv6, see the [Configuring IPv6](./configuring-ipv6.md) documentation page. + +The `element.example.com` subdomain is necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you by default. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record. + +Be mindful as to how long it will take for the DNS records to propagate. + +**Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to "DNS only". Otherwise, fetching certificates will fail. + ## DNS setting for server delegation (optional) -In the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user identifier like `@:example.com`. +In the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com`. -To use such an identifier, you don't need to install anything on the actual `example.com` server. Instead, you need to instruct the Matrix network that Matrix services for `example.com` are redirected over to `matrix.example.com`. This redirection is also known as "delegation". +To use such an ID, you don't need to install anything on the actual `example.com` server. Instead, you need to instruct the Matrix network that Matrix services for `example.com` are redirected over to `matrix.example.com`. This redirection is also known as "delegation". As we discuss in [Server Delegation](howto-server-delegation.md), server delegation can be configured in either of these ways: @@ -21,58 +58,6 @@ If you choose the recommended method (file-based delegation), you do not need to On the other hand, if you choose this method (setting up a DNS SRV record), you need to configure the additional DNS record as well as adjust SSL certificate handling. Take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced) -## DNS settings for services enabled by default - -To serve the base domain (`example.com`) and [Element Web](configuring-playbook-client-element-web.md) with the default subdomain, adjust DNS records as below. - -| Type | Host | Priority | Weight | Port | Target | -| ----- | ---------------------------- | -------- | ------ | ---- | ---------------------| -| A | `matrix` | - | - | - | `matrix-server-IP` | -| CNAME | `element` | - | - | - | `matrix.example.com` | - -As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine). - -The `element.example.com` subdomain is necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you by default. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record. - -Be mindful as to how long it will take for the DNS records to propagate. - -If you are using Cloudflare DNS, make sure to disable the proxy and set all records to "DNS only". Otherwise, fetching certificates will fail. - -## DNS settings for optional services/features - -For other services which may need subdomain settings, see the table below and configure the DNS (`CNAME`) records accordingly. - -| Used by component | Type | Host | Priority | Weight | Port | Target | -| -------------------------------------------------------------------------------------------------------------------------- | ----- | ------------------------------ | -------- | ------ | ---- | -----------------------------------| -| [Dimension](configuring-playbook-dimension.md) integration server | CNAME | `dimension` | - | - | - | `matrix.example.com` | -| [Jitsi](configuring-playbook-jitsi.md) video-conferencing platform | CNAME | `jitsi` | - | - | - | `matrix.example.com` | -| [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) monitoring system | CNAME | `stats` | - | - | - | `matrix.example.com` | -| [Go-NEB](configuring-playbook-bot-go-neb.md) bot | CNAME | `goneb` | - | - | - | `matrix.example.com` | -| [Sygnal](configuring-playbook-sygnal.md) push notification gateway | CNAME | `sygnal` | - | - | - | `matrix.example.com` | -| [ntfy](configuring-playbook-ntfy.md) push notifications server | CNAME | `ntfy` | - | - | - | `matrix.example.com` | -| [Etherpad](configuring-playbook-etherpad.md) collaborative text editor | CNAME | `etherpad` | - | - | - | `matrix.example.com` | -| [Hydrogen](configuring-playbook-client-hydrogen.md) web client | CNAME | `hydrogen` | - | - | - | `matrix.example.com` | -| [Cinny](configuring-playbook-client-cinny.md) web client | CNAME | `cinny` | - | - | - | `matrix.example.com` | -| [SchildiChat Web](configuring-playbook-client-schildichat-web.md) client | CNAME | `schildichat` | - | - | - | `matrix.example.com` | -| [wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) sms bridge | CNAME | `wsproxy` | - | - | - | `matrix.example.com` | -| [Buscarron](configuring-playbook-bot-buscarron.md) helpdesk bot | CNAME | `buscarron` | - | - | - | `matrix.example.com` | -| [rageshake](configuring-playbook-rageshake.md) bug report server | CNAME | `rageshake` | - | - | - | `matrix.example.com` | -| [ma1sd](configuring-playbook-ma1sd.md) identity server | SRV | `_matrix-identity._tcp` | 10 | 0 | 443 | `matrix.example.com` | -| [Postmoogle](configuring-playbook-bridge-postmoogle.md)/[Email2Matrix](configuring-playbook-email2matrix.md) email bridges | MX | `matrix` | 10 | 0 | - | `matrix.example.com` | -| [Postmoogle](configuring-playbook-bridge-postmoogle.md) email bridge | TXT | `matrix` | - | - | - | `v=spf1 ip4:matrix-server-IP -all` | -| [Postmoogle](configuring-playbook-bridge-postmoogle.md) email bridge | TXT | `_dmarc.matrix` | - | - | - | `v=DMARC1; p=quarantine;` | -| [Postmoogle](configuring-playbook-bridge-postmoogle.md) email bridge | TXT | `postmoogle._domainkey.matrix` | - | - | - | get it from `!pm dkim` | - -### SRV record for ma1sd - -To make ma1sd enable its federation features, you need to set up a `_matrix-identity._tcp` SRV record. Don't confuse this with the `_matrix._tcp` SRV record for server delegation. See the table above and [this section](configuring-playbook-ma1sd.md#adjusting-dns-records) for values which need to be specified. - -When setting up a SRV record, if you are asked for a service and protocol instead of a hostname split the host value from the table where the period is. For example use service as `_matrix-identity` and protocol as `_tcp`. - -### MX and TXT records for Postmoogle - -To make Postmoogle enable its email sending features, you need to configure MX and TXT (SPF, DMARC, and DKIM) records. See the table above for values which need to be specified. - --------------------------------------------- [▶️](getting-the-playbook.md) When you're done with the DNS configuration and ready to proceed, continue with [Getting the playbook](getting-the-playbook.md). diff --git a/docs/configuring-ipv6.md b/docs/configuring-ipv6.md new file mode 100644 index 000000000..de6820a44 --- /dev/null +++ b/docs/configuring-ipv6.md @@ -0,0 +1,191 @@ + +# Configuring IPv6 + +Since 2025-03-08, the [default example configuration](../examples/vars.yml) for the playbook recommends enabling [IPv6](https://en.wikipedia.org/wiki/IPv6) support for Docker's container networks. + +**If you have IPv6 support on your server/network** (see [How do I check if my server has IPv6 connectivity?](#how-do-i-check-if-my-server-has-ipv6-connectivity)), then [enabling IPv6 support for the playbook](#enabling-ipv6-support-for-the-playbook) would give you: + +- 📥 incoming IPv6 connectivity to the server via the server's IPv6 address/addresses (containers won't have their own individual publicly accessible IPs) +- 📤 outgoing IPv6 connectivity from the server via the server's IPv6 address/addresses (containers won't exit via their own individual IPv6 address) +- 🔄 IPv6 connectivity for cross-container communication + +**If you still don't have IPv6 support on your server/network**, then enabling IPv6 support for the playbook will only enable IPv6 connectivity for cross-container communication and shouldn't affect your server's incoming/outgoing communication. You may also be interested in reading if [there's a performance penalty to enabling IPv6 if the server/network doesn't support IPv6 connectivity?](#is-there-a-performance-penalty-to-enabling-ipv6-if-the-server-network-doesn-t-support-ipv6-connectivity) + +As such, **we recommend that you follow the default example configuration and leave IPv6 support for Docker enabled in all cases**. + +Enabling IPv6 consists of 2 steps: + +- [Enabling IPv6 support for the playbook](#enabling-ipv6-support-for-the-playbook) +- [Configuring DNS records for IPv6](#configuring-dns-records-for-ipv6) + +💡 If you've followed a recent version of our documentation, you would have already done these steps, so there's nothing else to do. + +## Enabling IPv6 support for the playbook + +You can enable IPv6 support for all components' Docker container networks by using the following `vars.yml` configuration: + +```yml +# Controls whether container networks will be created with IPv6 support. +# +# If you also have IPv6 support on your server/network and AAAA DNS records pointing to the server, +# enabling this will effectively give you full public IPv6 connectivity (powered by NAT66). +# +# We recommend leaving this enabled even if you don't currently have IPv6 connectivity on your server/network. +# This way, once you eventually get IPv6 connectivity, you won't have to change anything (besides DNS records). +# +# Flipping this setting later on requires manual work (stopping services, deleting and recreating all container networks). +# +# In the future, this setting will likely default to `true`, so if you really want IPv6 disabled, explicitly set this to `false`. +# +# People managing Docker themselves and running an older Docker version will need additional configuration. +# +# Learn more in `docs/configuring-ipv6.md`. +devture_systemd_docker_base_ipv6_enabled: true +``` + +Doing this: + +- all container networks will be IPv6-enabled + +- NAT66 will be used, so that: + - containers will get [Unique Local Addresses (ULA)](https://en.wikipedia.org/wiki/Unique_local_address) + - the outgoing IPv6 address for containers will be the same as the one on the server + - traffic destined for the IPv6 address of the server will be forwarded to the containers that handle (and publish) that specific port + +> [!WARNING] +> Without enabling this and assuming you have IPv6 `AAAA` DNS records pointing to the server (see [Configuring DNS records for IPv6](#configuring-dns-records-for-ipv6)), IPv6 traffic will still be handled, but NAT64 will be used instead of NAT66. +> As such, containers will only have an IPv4 address and all IPv6 traffic that reaches them will seem to originate from a local IP. + +To confirm connectivity, see the following other resources: + +- [How do I check if my server has IPv6 connectivity?](#how-do-i-check-if-my-server-has-ipv6-connectivity) +- [How do I check outgoing IPv6 connectivity for containers?](#how-do-i-check-outgoing-ipv6-connectivity-for-containers) +- [How do I check incoming IPv6 connectivity for containers?](#how-do-i-check-incoming-ipv6-connectivity-for-containers) +- [How do I confirm if my container networks are IPv6-enabled?](#how-do-i-confirm-if-my-container-networks-are-ipv6-enabled) +- Ensure that the [Federation Tester](https://federationtester.matrix.org/) reports that your server is reachable over IPv6. + +## Configuring DNS records for IPv6 + +[Enabling IPv6 support for the playbook](#enabling-ipv6-support-for-the-playbook) tells you how to prepare for IPv6 on the container (Docker) side. + +For full public IPv6 connectivity (and not just IPv6 connectivity for containers inside the container networks) you also need to **ensure that your domain names** (e.g. `matrix.example.com` and others) have IPv6 (`AAAA`) DNS records pointing to the server's IPv6 address. + +Also see the [Configuring DNS settings](configuring-dns.md) documentation page for more details. + +### A note about old Docker + +With our [default example configuration](../examples/vars.yml), the playbook manages Docker for you and installs a modern-enough version. + +Docker versions newer than 27.0.1 enable IPv6 integration at the Docker daemon level out of the box. This still requires that networks are created with IPv6 support as described in the [Enabling IPv6 support for the playbook](#enabling-ipv6-support-for-the-playbook) section above. + +**If you're on an old Docker version** (Docker 27.0.0 or older) for some reason, it's likely that your Docker installation is not enabled for IPv6 at all. In such a case: + +- if Docker is managed by the playbook, you can tell it to force-enable IPv6 via `devture_systemd_docker_base_ipv6_daemon_options_changing_enabled: true` + +- if Docker is managed by you manually, you can add `{"experimental": true, "ip6tables": true}` to the Docker daemon options and restart the Docker service (`docker.service`). + +### Frequently Asked Questions + +#### How do I check if my server has IPv6 connectivity? + +##### With curl + +You can run `curl https://icanhazip.com` and see if it returns an [IPv6 address](https://en.wikipedia.org/wiki/IPv6_address) (an address with `:` characters in it, like `2001:db8:1234:5678::1`). If it does, then your server has IPv6 connectivity and prefers it over using IPv4. This is common. + +If you see an IPv4 address instead (e.g. `1.2.3.4`), it may be that your server prefers IPv4 over IPv6 or that your network does not support IPv6. You can try forcing `curl` to use IPv6 by running `curl -6 https://icanhazip.com` and see if it returns an IPv6 address. + +##### With other network utilities + +You can run `ip -6 addr` to see if you have any IPv6 addresses assigned to your server, besides the link-local (`fe80::*`) addresses that everyone has (unless they have force-disabled IPv6 support on their system). + +If you do have an IPv6 address, it's still worth [using curl](#with-curl) to confirm that your server can successfully make outgoing requests over IPv6. + +#### What does the `devture_systemd_docker_base_ipv6_enabled` setting actually do? + +The `devture_systemd_docker_base_ipv6_enabled` setting controls whether container networks will be created with IPv6 support. + +Changing this setting subsequently requires manual work (deleting all container networks). +See [I've changed the `devture_systemd_docker_base_ipv6_enabled` setting, but it doesn't seem to have any effect](#i-ve-changed-the-devture_systemd_docker_base_ipv6_enabled-setting-but-it-doesn-t-seem-to-have-any-effect). + +#### I've changed the `devture_systemd_docker_base_ipv6_enabled` setting, but it doesn't seem to have any effect. + +If you're using an older Docker version (Docker 27.0.0 or older), see [A note about old Docker](#a-note-about-old-docker). + +If you've previously installed with one `devture_systemd_docker_base_ipv6_enabled` value and then changed it to another, you need to: + +- stop all services (`just stop-all`) +- delete all container networks on the server: `docker network rm $(docker network ls -q)` +- re-run the playbook fully: `just install-all` + +#### How do I confirm if my container networks are IPv6-enabled? + +You can list container networks by running `docker network ls` on the server. + +For each container network (e.g. `matrix-homeserver`), you can check if it has IPv6 connectivity by running a command like this: `docker network inspect matrix-homeserver`. + +Ensure that there's an IPv6 subnet/gateway in the `IPAM.Config` section. If yes, you may wish to proceed with [How do I check outgoing IPv6 connectivity for containers?](#how-do-i-check-outgoing-ipv6-connectivity-for-containers) + +If there's no IPv6 subnet/gateway in the `IPAM.Config` section, this container network was not created with IPv6 support. +See [I've changed the `devture_systemd_docker_base_ipv6_enabled` setting, but it doesn't seem to have any effect](#i-ve-changed-the-devture_systemd_docker_base_ipv6_enabled-setting-but-it-doesn-t-seem-to-have-any-effect). + +#### How do I check outgoing IPv6 connectivity for containers? + +```sh +docker run --rm --network=matrix-homeserver quay.io/curl/curl:latest curl -6 https://icanhazip.com +``` + +💡 This one-off container is connected to the `matrix-homeserver` container network, not to the default Docker bridge network. The default Docker `bridge` network does not have IPv6 connectivity by default (yet) and is not influenced by the `devture_systemd_docker_base_ipv6_enabled` setting, so using that network (by omitting `--network=..` from the command above) will not show an IPv6 address + +✅ If this command returns an IPv6 address, you're all good. + +❌ If this command doesn't return an IPv6 address, it may be that: + +- your container network does not have IPv6 connectivity. See [How do I confirm if my container networks are IPv6-enabled?](#how-do-i-confirm-if-my-container-networks-are-ipv6-enabled) for more details. + +- your server does not have IPv6 connectivity. See [How do I check if my server has IPv6 connectivity?](#how-do-i-check-if-my-server-has-ipv6-connectivity) for more details. If you do have IPv6 connectivity, then the issue is with Docker's IPv6 configuration. Otherwise, you need to check your server's network configuration/firewall/routing and get back to configuring the playbook later on. + +#### How do I check incoming IPv6 connectivity for containers? + +Only containers that publish ports will be exposed (reachable) publicly on the server's own IPv6 address. Containers will not get their own individual public IPv6 address. + +For this playbook, a commonly exposed container is the Traefik reverse-proxy container (unless [you're using your own webserver](./configuring-playbook-own-webserver.md)). + +You can either do something like `curl -6 https://matrix.example.com` from an IPv6-enabled host (including the server itself) and see if it works. + +An alternative is to use the [IPv6 Port Checker](https://port.tools/port-checker-ipv6/) with a hostname of `matrix.example.com` and a port of `443`. + +💡 Trying to connect to `matrix.example.com` via IPv6 requires that you have already [configured the DNS records for IPv6](#configuring-dns-records-for-ipv6) as described above. If you wish to eliminate DNS as a potential issue, you can also try connecting to the server's own IPv6 address directly: `curl -6 -H 'Host: matrix.example.com' https://[2001:db8:1234:5678::1]` (we pass a `Host` header to tell Traefik which host we'd like it to serve). + +#### Why enable IPv6 if my network doesn't support it yet? + +Because when your network does get support for IPv6 later on (even if that's 5 years away), you won't have to change anything besides [configuring the DNS records for IPv6](#configuring-dns-records-for-ipv6). + +#### Can I use a custom subnet for IPv6? + +Not easily. + +The playbook and the various roles only support passing an `enable_ipv6` flag (`true` or `false` value depending on the `devture_systemd_docker_base_ipv6_enabled` Ansible variable) when creating the Docker container networks. + +There's no support for passing a custom subnet for IPv4 and IPv6. We let Docker auto-generate the subnets for us. + +You can either create a Pull Request that adds support for this to the various playbook roles, or you can manually recreate the networks from the command-line (e.g. `docker network rm matrix-homeserver && docker network create --ipv6 --subnet=2001:db8:1234:5678::/64 matrix-homeserver`). + +#### Can I use Global Unicast Addresses (GUA) for IPv6? + +No. You cannot have GUA addresses where each container is individually addressable over the public internet. + +The playbook only supports NAT66, which should be good enough for most use cases. + +Having containers get IPv6 addresses from your own GUA subnet requires complex configuration (ndp-proxy, etc.) and is not supported. + +You may find [this Reddit post](https://www.reddit.com/r/ipv6/comments/1alpzmb/comment/kphpw11/) interesting. + +#### Is there a performance penalty to enabling IPv6 if the server/network doesn't support IPv6 connectivity? + +Probably a tiny one, as services may try to make (unsuccessful) outgoing requests over IPv6. + +In practice, it's probably negligible. diff --git a/docs/configuring-playbook-alertmanager-receiver.md b/docs/configuring-playbook-alertmanager-receiver.md index ab81eb7c0..c23ddf1aa 100644 --- a/docs/configuring-playbook-alertmanager-receiver.md +++ b/docs/configuring-playbook-alertmanager-receiver.md @@ -1,26 +1,67 @@ + + # Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver (optional) The playbook can install and configure the [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) service for you. It's a [client](https://prometheus.io/docs/alerting/latest/clients/) for Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), allowing you to deliver alerts to Matrix rooms. -See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver) to learn more about what this component does and why it might be useful to you. - -At the moment, **setting up this service's bot requires some manual actions** as described below in [Account and room preparation](#account-and-room-preparation). +See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver/blob/main/README.md) to learn what it does and why it might be useful to you. This service is meant to be used with an external [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) instance. It's **not** meant to be integrated with the [Prometheus & Grafana stack](./configuring-playbook-prometheus-grafana.md) installed by this playbook, because the Alertmanager component is not installed by it. +## Prerequisites + +### Register the bot account + +This service uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart`) for delivering messages. + +The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot. + +Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. + +You can use the playbook to [register a new user](registering-users.md): + +```sh +ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.alertmanager.receiver password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user +``` + +### Obtain an access token + +The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +### Join to rooms as the bot manually + +ℹ️ **This bot does not accept room invitations automatically**. To deliver messages to rooms, the bot must be joined to all rooms manually. + +For each new room you would like the bot to deliver alerts to, invite the bot to the room. + +Then, log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account, and log out. + +## Adjusting DNS records (optional) + +By default, this playbook installs matrix-alertmanager-receiver on the `matrix.` subdomain, at the `/matrix-alertmanager-receiver` path (https://matrix.example.com/matrix-alertmanager-receiver). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-matrix-alertmanager-receiver-url-optional) for details about DNS configuration. + ## Adjusting the playbook configuration -To enable matrix-alertmanager-receiver, 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. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token). -```yml +```yaml matrix_alertmanager_receiver_enabled: true -# If you'd like to change the username for this bot, uncomment and adjust. Otherwise, remove. +# Uncomment and adjust this part if you'd like to use a username different than the default # matrix_alertmanager_receiver_config_matrix_user_id_localpart: "bot.alertmanager.receiver" -# Specify the bot user's access token here. -# See the "Account and room preparation" section below. -matrix_alertmanager_receiver_config_matrix_access_token: '' +matrix_alertmanager_receiver_config_matrix_access_token: "ACCESS_TOKEN_HERE" # Optionally, configure some mappings (URL-friendly room name -> actual Matrix room ID). # @@ -33,15 +74,11 @@ matrix_alertmanager_receiver_config_matrix_room_mapping: some-room-name: "!qporfwt:{{ matrix_domain }}" ``` -See `roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for additional configuration variables. - -### Adjusting the matrix-alertmanager-receiver URL - -By default, this playbook installs matrix-alertmanager-receiver on the `matrix.` subdomain, at the `/matrix-alertmanager-receiver` path (https://matrix.example.com/matrix-alertmanager-receiver). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the matrix-alertmanager-receiver URL (optional) By tweaking the `matrix_alertmanager_receiver_hostname` and `matrix_alertmanager_receiver_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -49,43 +86,41 @@ matrix_alertmanager_receiver_hostname: alertmanager.example.com matrix_alertmanager_receiver_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the matrix-alertmanager-receiver domain (`alertmanager.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the matrix-alertmanager-receiver domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the component. -## Account and room preparation - -The playbook can automatically create users, but it cannot automatically obtain access tokens, nor perform any of the other manual actions below. - -`matrix-alertmanager-receiver` uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart` - see above) for delivering messages. You need to **manually register this bot acccount and obtain an access token for it**. - -1. [Register a new user](registering-users.md): `ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.alertmanager.receiver password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user` -2. [Obtain an access token](obtaining-access-tokens.md) for the bot's user account -3. Invite the bot to a room where you'd like to alerts to be delivered -4. Log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account and log out -5. (Optionally) Adjust `matrix_alertmanager_receiver_config_matrix_room_mapping` to create a mapping between the new room and its ID - -Steps 1 and 2 above only need to be done once, while preparing your [configuration](#adjusting-the-playbook-configuration). - -Steps 3 and 4 need to be done for each new room you'd like the bot to deliver alerts to. Step 5 is optional and provides cleaner `/alert/` URLs. +Take a look at: +- `roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_alertmanager_receiver_configuration_extension_yaml` variable ## Installing -Now that you've [prepared the bot account and room](#account-and-room-preparation), [configured the playbook](#adjusting-the-playbook-configuration), and potentially [adjusted your DNS records](#adjusting-dns-records), you can run the [installation](installing.md) command: `just install-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -Then, you can proceed to [Usage](#usage). + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage Configure your Prometheus Alertmanager with configuration like this: -```yml +```yaml receivers: - name: matrix webhook_configs: @@ -102,6 +137,17 @@ route: - receiver: matrix ``` -.. where `URL_HERE` looks like `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!qporfwt:example.com`. +where `URL_HERE` looks like `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!qporfwt:example.com`. -This bot does **not** accept room invitations automatically (like many other bots do). To deliver messages to rooms, **the bot must be joined to all rooms manually** - see Step 4 of the [Account and room preparation](#account-and-room-preparation) section. +## 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-alertmanager-receiver`. + +### Increase logging verbosity + +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 +# Valid values: error, warn, info, debug +matrix_alertmanager_receiver_container_process_argument_log_level: debug +``` diff --git a/docs/configuring-playbook-appservice-double-puppet.md b/docs/configuring-playbook-appservice-double-puppet.md index 814f34b9a..fe67d1768 100644 --- a/docs/configuring-playbook-appservice-double-puppet.md +++ b/docs/configuring-playbook-appservice-double-puppet.md @@ -1,23 +1,51 @@ + + # Setting up Appservice Double Puppet (optional) -Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver. +The playbook can install and configure the Appservice Double Puppet service for you. It is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver. -This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new). The Appservice Double Puppet service is an implementation of this approach. +This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the appservice method. The service is an implementation of this approach. -Previously, bridges supported performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method. +Previously, bridges supported performing double-puppeting with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method. ## Adjusting the playbook configuration To enable the Appservice Double Puppet service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: -```yml +```yaml matrix_appservice_double_puppet_enabled: true ``` +### Extending the configuration + +There are some additional things you may wish to configure about the service. + +Take a look at: + +- `roles/custom/matrix-appservice-double-puppet/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_double_puppet_registration_configuration_extension_yaml` variable + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method. +Installing the service will automatically enable double puppeting for all bridges that support double puppeting via the appservice method. diff --git a/docs/configuring-playbook-appservice-draupnir-for-all.md b/docs/configuring-playbook-appservice-draupnir-for-all.md index 862bf3dd7..69890b3af 100644 --- a/docs/configuring-playbook-appservice-draupnir-for-all.md +++ b/docs/configuring-playbook-appservice-draupnir-for-all.md @@ -1,10 +1,16 @@ + + # Setting up Draupnir for All/D4A (optional) The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool for you in appservice mode. Appservice mode can be used together with the regular [Draupnir bot](configuring-playbook-bot-draupnir.md) or independently. Details about the differences between the 2 modes are described below. - ## Draupnir Appservice mode compared to Draupnir bot mode The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document. @@ -17,83 +23,92 @@ Normal Draupnir does come with the benefit of access to Synapse Admin features. Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account. +## Prerequisites -## Installation +### Create a main management room -### 1. Create a main management room. +The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot. -The playbook does not create a management room for your Main Draupnir. This task you have to do on your own. +Note that the room must be unencrypted. -The management room has to be given an alias and be public when you are setting up the bot for the first time as the bot does not differentiate between invites and invites to the management room. +The management room has to be given an alias, and your bot has to be invited to the room. This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel. -As noted in the Draupnir install instructions the control room is sensitive. The following is said about the control room in the Draupnir install instructions. ->Anyone in this room can control the bot so it is important that you only invite trusted users to this room. The room must be unencrypted since the playbook does not support installing Pantalaimon yet. +> [!WARNING] +> Anyone in this room can control the bot so it is important that you only invite trusted users to this room. -### 2. Give your main management room an alias. +## Adjusting the playbook configuration -Give the room from step 1 an alias. This alias can be anything you want and its recommended for increased security during the setup phase of the bot that you make this alias be a random string. You can give your room a secondary human readable alias when it has been locked down after setup phase. - -### 3. Adjusting the playbook configuration. - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): - -You must replace `ALIAS_FROM_STEP_2_GOES_HERE` with the alias you created in step 2. +Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`. ```yaml matrix_appservice_draupnir_for_all_enabled: true -matrix_appservice_draupnir_for_all_master_control_room_alias: "ALIAS_FROM_STEP_2_GOES_HERE" +matrix_appservice_draupnir_for_all_master_control_room_alias: "MANAGEMENT_ROOM_ALIAS_HERE" ``` -### 4. Installing +### Extending the configuration -After configuring the playbook, run the [installation](installing.md) command: +There are some additional things you may wish to configure about the component. +Take a look at: + +- `roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_draupnir_for_all_configuration_extension_yaml` variable + +For example, to change Draupnir's `protectAllJoinedRooms` option to `true`, add the following configuration to your `vars.yml` file: + +```yaml +matrix_appservice_draupnir_for_all_configuration_extension_yaml: | + # Your custom YAML configuration goes here. + # This configuration extends the default starting configuration (`matrix_appservice_draupnir_for_all_configuration_yaml`). + # + # 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 + # completely redefining `matrix_appservice_draupnir_for_all_configuration_yaml`. + protectAllJoinedRooms: true ``` + +You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation. + +**Notes**: + +- The playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role. + +- Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyway. It instead touches the config passed to the Draupnirs that your Appservice creates. So the example above (`protectAllJoinedRooms: true`) makes all provisioned Draupnirs protect all joined rooms. + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start ``` +**Notes**: + +- 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. ## Usage If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have succesfully installed Draupnir for All and can now start using it. -The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for allis almost identical to Draupnir bot mode. +The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode. -### 1. Granting Users the ability to use D4A +### Granting Users the ability to use D4A Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended. The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297)) -To allow users or whole homeservers you type /plain @draupnir-main:example.com allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially. +To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially. -### 2. How to provision a D4A once you are allowed to. +### How to provision a D4A once you are allowed to -Open a DM with @draupnir-main:example.com and if using an Element client send a message into this DM to finalise creating it. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience. +To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience. Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment. - -### Configuration of D4A - -You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation. Please note that the playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role. - -Please note that Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyways. Config extension instead touches the config passed to the Draupnirs that your Appservice creates. So for example below makes all provisioned Draupnirs protect all joined rooms. - -You can configure additional options by adding the `matrix_appservice_draupnir_for_all_extension_yaml` variable to your `inventory/host_vars/matrix.example.com/vars.yml` file. - -For example to change Draupnir's `protectAllJoinedRooms` option to `true` you would add the following to your `vars.yml` file. - -```yaml -matrix_appservice_draupnir_for_all_extension_yaml: | - # Your custom YAML configuration goes here. - # This configuration extends the default starting configuration (`matrix_appservice_draupnir_for_all_yaml`). - # - # 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 - # completely redefining `matrix_appservice_draupnir_for_all_yaml`. - protectAllJoinedRooms: true -``` diff --git a/docs/configuring-playbook-backup-borg.md b/docs/configuring-playbook-backup-borg.md index b0bcfe68b..b21c66ad1 100644 --- a/docs/configuring-playbook-backup-borg.md +++ b/docs/configuring-playbook-backup-borg.md @@ -1,82 +1,19 @@ + + # Setting up BorgBackup (optional) The playbook can install and configure [BorgBackup](https://www.borgbackup.org/) (short: Borg) with [borgmatic](https://torsion.org/borgmatic/) for you. BorgBackup is a deduplicating backup program with optional compression and encryption. That means your daily incremental backups can be stored in a fraction of the space and is safe whether you store it at home or on a cloud service. -You will need a remote server where BorgBackup will store the backups. There are hosted, BorgBackup compatible solutions available, such as [BorgBase](https://www.borgbase.com). - -The backup will run based on `backup_borg_schedule` var (systemd timer calendar), default: 4am every day. - -By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), backups with BorgBackup will also include dumps of your Postgres database. An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for BorgBackup using the `backup_borg_postgresql_enabled` variable. - -**Note**: the component is not managed by this repository but its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). - -## Prerequisites - -1. If you do not disable Postgres-backup support, make sure that the Postgres version of your homeserver's database is compatible with borgmatic. - -2. Create a new SSH key: - - ```bash - ssh-keygen -t ed25519 -N '' -f matrix-borg-backup -C matrix - ``` - - This can be done on any machine and you don't need to place the key in the `.ssh` folder. It will be added to the Ansible config later. - -3. Add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your BorgBackup provider/server: - - If you plan to use a hosted solution, follow their instructions. If you have your own server, copy the key over: - - ```bash - # example to append the new PUBKEY contents, where: - # PUBKEY is path to the public key, - # USER is a ssh user on a provider / server - # HOST is a ssh host of a provider / server - cat PUBKEY | ssh USER@HOST 'dd of=.ssh/authorized_keys oflag=append conv=notrunc' - ``` - -## Adjusting the playbook configuration - -Minimal working configuration (`inventory/host_vars/matrix.example.com/vars.yml`) to enable BorgBackup: - -```yaml -backup_borg_enabled: true -backup_borg_location_repositories: - - ssh://USER@HOST/./REPO -backup_borg_storage_encryption_passphrase: "PASSPHRASE" -backup_borg_ssh_key_private: | - -----BEGIN OPENSSH PRIVATE KEY----- - TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZW - xpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRv - bG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3 - RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXgg - ZWEgY29tbW9kbyBjb25zZXF1YXQuIA== - -----END OPENSSH PRIVATE KEY----- -``` - -where: - -* USER - SSH user of a provider/server -* HOST - SSH host of a provider/server -* REPO - BorgBackup repository name, it will be initialized on backup start, eg: `matrix`, regarding Syntax see [Remote repositories](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls) -* PASSPHRASE - passphrase used for encrypting backups, you may generate it with `pwgen -s 64 1` or use any password manager -* PRIVATE KEY - the content of the **private** part of the SSH key you created before. The whole key (all of its belonging lines) under `backup_borg_ssh_key_private` needs to be indented with 2 spaces - -To backup without encryption, add `backup_borg_encryption: 'none'` to your vars. This will also enable the `backup_borg_unknown_unencrypted_repo_access_is_ok` variable. - -`backup_borg_location_source_directories` defines the list of directories to back up: it's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges. You might want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable. - -Check the [backup_borg role](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg)'s [defaults/main.yml](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/defaults/main.yml) file for the full list of available options. - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: - -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` - -## Manually start a backup - -For testing your setup it can be helpful to not wait until 4am. If you want to run the backup immediately, log onto the server and run `systemctl start matrix-backup-borg`. This will not return until the backup is done, so possibly a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable. +The [Ansible role for BorgBackup](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring BorgBackup, you can check them via: +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/docs/configuring-backup-borg.md) online +- 📁 `roles/galaxy/backup_borg/docs/configuring-backup-borg.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) diff --git a/docs/configuring-playbook-base-domain-serving.md b/docs/configuring-playbook-base-domain-serving.md index 069ad195f..b24ab3d38 100644 --- a/docs/configuring-playbook-base-domain-serving.md +++ b/docs/configuring-playbook-base-domain-serving.md @@ -1,3 +1,10 @@ + + # Serving the base domain (optional) By default, this playbook sets up services on your Matrix server (`matrix.example.com`), but has it configured so that it presents itself as the base domain (`example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection. @@ -33,7 +40,6 @@ Doing this, the playbook will: - serve a simple homepage at `https://example.com` with content `Hello from example.com` (configurable via the `matrix_static_files_file_index_html_template` variable). You can also [serve a more complicated static website](#serving-a-static-website-at-the-base-domain). - ## Serving a static website at the base domain By default, when "serving the base domain" is enabled, the playbook hosts a simple `index.html` webpage at `/matrix/static-files/public/index.html`. The content of this page is taken from the `matrix_static_files_file_index_html_template` variable. @@ -56,7 +62,6 @@ With this configuration, Ansible will no longer mess around with the `/matrix/st You are then free to upload any static website files to `/matrix/static-files/public` and they will get served at the base domain. You can do so manually or by using the [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role, which is part of this playbook already. - ## Serving a more complicated website at the base domain If you'd like to serve an even more complicated (dynamic) website from the Matrix server, relying on the playbook to serve the base domain is not the best choice. diff --git a/docs/configuring-playbook-bot-baibot.md b/docs/configuring-playbook-bot-baibot.md index 1c7aa419e..2e8a66961 100644 --- a/docs/configuring-playbook-bot-baibot.md +++ b/docs/configuring-playbook-bot-baibot.md @@ -1,3 +1,10 @@ + + # Setting up baibot (optional)

@@ -11,12 +18,10 @@ It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/ch It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to [matrix-chatgpt-bot](./configuring-playbook-bot-chatgpt.md). See the [baibot](https://github.com/etkecc/baibot) project and its documentation for more information. - ## Prerequisites API access to one or more LLM [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md). - ## Adjusting the playbook configuration There are **a lot of configuration options** (some required, some possibly required, some optional), so they're **split into multiple sections below**: @@ -30,10 +35,9 @@ There are **a lot of configuration options** (some required, some possibly requi Depending on your current `vars.yml` file and desired configuration, **you may require more than just the [base configuration](#base-configuration)**. - ### Base configuration -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_bot_baibot_enabled: true @@ -41,12 +45,12 @@ matrix_bot_baibot_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_baibot_config_user_mxid_localpart: baibot -# Generate a strong password here. Consider generating it with `pwgen -s 64 1`. +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. # If you'd like to change this password subsequently, see the details below. matrix_bot_baibot_config_user_password: 'PASSWORD_FOR_THE_BOT' # An optional passphrase to use for backing up and recovering the bot's encryption keys. -# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`). +# You can create one with a command like `pwgen -s 64 1`. # # If set to null, the recovery module will not be used and losing your session/database # will mean you lose access to old messages in encrypted room. @@ -73,7 +77,6 @@ matrix_bot_baibot_config_persistence_config_encryption_key: 'A_HEX_STRING_OF_64_ As mentioned above, **this may not be enough**. Continue with the configuration sections below. - ### 👮‍♂️ Administrator configuration This is an addition to the [base configuration](#base-configuration). @@ -82,16 +85,16 @@ To specify who is considered a bot [👮‍♂️ Administrator](https://github. If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section. -**If necessary**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +**If necessary**, add the following configuration to your `vars.yml` file: -```yml +```yaml # Uncomment to add one or more admins to this bridge: # # matrix_bot_baibot_config_access_admin_patterns: # - "@*:example.com" # - "@admin:example.net" # -# .. 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: # # matrix_admin: '@yourAdminAccount:{{ matrix_domain }}' ``` @@ -111,9 +114,9 @@ Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is op **Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands. -**If necessary**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +**If necessary**, add the following configuration to your `vars.yml` file: -```yml +```yaml # Uncomment and adjust the bot users if necessary: # # Subsequent changes to `matrix_bot_baibot_config_initial_global_config_user_patterns` do not affect the bot's behavior. @@ -127,7 +130,7 @@ Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is op You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance). -Privileged users (like the [👮‍♂️ Administrator](#️-administrator-configuration), but potentially others too - see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands. +Privileged users (like the [👮‍♂️ Administrator](#️-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands. The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc). @@ -139,41 +142,37 @@ Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#G Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai). - #### Anthropic You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables. Here's an example **addition** to your `vars.yml` file: -```yml +```yaml matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled: true matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: "YOUR_API_KEY_HERE" -# If you'd like to use another text-generation agent, uncomment and adjust: +# Uncomment and adjust this part if you'd like to use another text-generation agent # matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-5-sonnet-20240620 # The playbook defines a default prompt for all statically-defined agents. # You can adjust it in the `matrix_bot_baibot_config_agents_static_definitions_prompt` variable, # or you can adjust it below only for the Anthropic agent. # matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" - -# See `defaults/main.yml` in the baibot role for more configuration options. ``` If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below. 💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers). - #### Groq You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables. Here's an example **addition** to your `vars.yml` file: -```yml +```yaml matrix_bot_baibot_config_agents_static_definitions_groq_enabled: true matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key: "YOUR_API_KEY_HERE" @@ -190,8 +189,6 @@ matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_m # # matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_enabled: true # matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_model_id: whisper-large-v3 - -# See `defaults/main.yml` in the baibot role for more configuration options. ``` Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`. @@ -200,14 +197,13 @@ If you'd like to use more than one model, take a look at the [Configuring additi 💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers). - #### Mistral You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables. Here's an example **addition** to your `vars.yml` file: -```yml +```yaml matrix_bot_baibot_config_agents_static_definitions_mistral_enabled: true matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key: "YOUR_API_KEY_HERE" @@ -219,8 +215,6 @@ matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key: "YOUR # Uncomment and adjust this part if you're not happy with these defaults: # matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id: mistral-large-latest - -# See `defaults/main.yml` in the baibot role for more configuration options. ``` Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`. @@ -229,7 +223,6 @@ If you'd like to use more than one model, take a look at the [Configuring additi 💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers). - #### OpenAI You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables. @@ -238,7 +231,7 @@ The OpenAI provider is **only meant to be used with OpenAI's official API** and Here's an example **addition** to your `vars.yml` file: -```yml +```yaml matrix_bot_baibot_config_agents_static_definitions_openai_enabled: true matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "YOUR_API_KEY_HERE" @@ -250,8 +243,6 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "YOUR_ # If you'd like to use another text-generation agent, uncomment and adjust: # matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4o - -# See `defaults/main.yml` in the baibot role for more configuration options. ``` Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`. @@ -260,18 +251,16 @@ If you'd like to use more than one model, take a look at the [Configuring additi 💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers). - #### OpenAI Compatible You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables. This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc. -Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes - this make it easier to get started. +Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started. As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset). - #### Configuring additional agents (without a preset) The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration. @@ -282,7 +271,7 @@ You can also define providers at runtime, by chatting with the bot, so using Ans Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**: -```yml +```yaml matrix_bot_baibot_config_agents_static_definitions_custom: # This agent will use the GPT 3.5 model and will only support text-generation, # even though the `openai` provider could support other features (e.g. image-generation). @@ -323,11 +312,10 @@ Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/c 💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**. -As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room - see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models). +As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models). 💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers). - ### 🤝 Configuring initial default handlers This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**). @@ -356,7 +344,7 @@ You can configure the **initial values** for these via Ansible, via the `matrix_ Example **additional** `vars.yml` configuration: -```yml +```yaml # Note: these are initial defaults for the bot's global configuration. # As such, changing any of these values subsequently has no effect on the bot's behavior. # Once initially configured, the global configuration is managed via bot commands, not via Ansible. @@ -373,25 +361,37 @@ matrix_bot_baibot_config_initial_global_config_handler_image_generation: null **Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands. +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable ## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + ```sh -just run-tags install-all,ensure-matrix-users-created,start +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` **Notes**: -- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -- if you change the bot password (`matrix_bot_baibot_config_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password +- 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. + +- If you change the bot password (`matrix_bot_baibot_config_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password. ## Usage -To use the bot, invite the `@baibot:example.com` bot user into a room. +To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain). If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room. @@ -399,16 +399,17 @@ After joining, the bot will introduce itself and show information about the [✨ If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands. -Send `!bai help` to the room at any time to see the bot's help menu for additional commands. +Send `!bai help` to the bot in the room to see the available commands. You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation. +## Troubleshooting -## Debugging +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-bot-baibot`. -As with all other services, you can find service logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-baibot` +### Increase logging verbosity -The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration: +The default logging level for this service is `info`. If you want to increase the verbosity to `debug` (or even `trace`), add the following configuration to your `vars.yml` file and re-run the playbook: ```yaml # Adjust the bot's own logging level. diff --git a/docs/configuring-playbook-bot-buscarron.md b/docs/configuring-playbook-bot-buscarron.md index d918f79ee..969c1c93d 100644 --- a/docs/configuring-playbook-bot-buscarron.md +++ b/docs/configuring-playbook-bot-buscarron.md @@ -1,12 +1,28 @@ + + # Setting up Buscarron (optional) The playbook can install and configure [Buscarron](https://github.com/etkecc/buscarron) for you. Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room. +See the project's [documentation](https://github.com/etkecc/buscarron/blob/main/README.md) to learn what it does and why it might be useful to you. + +## Adjusting DNS records + +By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to create a CNAME record for `buscarron`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + ## Adjusting the playbook configuration -To enable Buscarron, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_bot_buscarron_enabled: true @@ -14,7 +30,7 @@ matrix_bot_buscarron_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_buscarron_login: bot.buscarron -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_bot_buscarron_password: PASSWORD_FOR_THE_BOT # Adjust accepted forms @@ -29,13 +45,11 @@ matrix_bot_buscarron_forms: matrix_bot_buscarron_spamlist: [] # (optional) list of emails/domains/hosts (with wildcards support) that should be rejected automatically ``` -### Adjusting the Buscarron URL - -By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Buscarron URL (optional) By tweaking the `matrix_bot_buscarron_hostname` and `matrix_bot_buscarron_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -46,32 +60,44 @@ matrix_bot_buscarron_hostname: "{{ matrix_server_fqn_matrix }}" matrix_bot_buscarron_path_prefix: /buscarron ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server. - -By default, you will need to create a CNAME record for `buscarron`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-buscarron/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + ```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` **Notes**: -- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -- if you change the bot password (`matrix_bot_buscarron_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_buscarron_password` to let the bot know its new password +- 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. + +- If you change the bot password (`matrix_bot_buscarron_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_buscarron_password` to let the bot know its new password. ## Usage -To use the bot, invite the `@bot.buscarron:example.com` to the room you specified in a config, after that any point your form to the form url, example for the `contact` form: +To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.buscarron:example.com` where `example.com` is your base domain, not the `matrix.` domain). + +After the bot joins the room, anyone can call the web form via HTTP POST method. + +Here is an example for the `contact` form: ```html

@@ -81,10 +107,20 @@ To use the bot, invite the `@bot.buscarron:example.com` to the room you specifie **Note**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if: -- if you hit the homepage (HTTP `GET` request to `/`) -- if you submit a form to the wrong URL (`POST` request to `/non-existing-form`) -- if `hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field +- you hit the homepage (HTTP `GET` request to `/`) +- you submit a form to the wrong URL (`POST` request to `/non-existing-form`) +- `hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server. -You can also refer to the upstream [documentation](https://github.com/etkecc/buscarron). +## 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-bot-buscarron`. + +### Increase logging verbosity + +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 +matrix_bot_buscarron_loglevel: DEBUG +``` diff --git a/docs/configuring-playbook-bot-chatgpt.md b/docs/configuring-playbook-bot-chatgpt.md index 26973d43e..903fa658f 100644 --- a/docs/configuring-playbook-bot-chatgpt.md +++ b/docs/configuring-playbook-bot-chatgpt.md @@ -1,70 +1,98 @@ + + # Setting up matrix-bot-chatgpt (optional, unmaintained) -**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](https://github.com/etkecc/baibot), which can be installed using [this playbook](configuring-playbook-bot-baibot.md). Consider using that bot instead of this one. +**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](https://github.com/etkecc/baibot), which can be [installed using this playbook](configuring-playbook-bot-baibot.md). Consider using that bot instead of this one. The playbook can install and configure [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) for you. Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client! -## 1. Register the bot account +See the project's [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot/blob/main/README.md) to learn what it does and why it might be useful to you. -The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver. +## Prerequisites -You **need to register the bot user manually** before setting up the bot. +### Obtain an OpenAI API key -Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`. +To use the bot, you'd need to obtain an API key from [https://platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys). + +### Register the bot account + +The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot. + +Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. You can use the playbook to [register a new user](registering-users.md): -``` +```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.chatgpt password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user ``` +### Obtain an access token and create encryption keys -## 2. Get an access token and create encryption keys +The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). -Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [Element documentation](https://element.io/help#encryption6). +## Adjusting the playbook configuration -## 3. Adjusting the playbook configuration - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `API_KEY_HERE` with the API key retrieved [here](#obtain-an-openai-api-key) and `ACCESS_TOKEN_HERE` with the access token created [here](#obtain-an-access-token-and-create-encryption-keys), respectively. ```yaml matrix_bot_chatgpt_enabled: true -# Obtain a new API key from https://platform.openai.com/account/api-keys -matrix_bot_chatgpt_openai_api_key: '' +matrix_bot_chatgpt_openai_api_key: 'API_KEY_HERE' -# This is the default username +# Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_chatgpt_matrix_bot_username_localpart: 'bot.chatgpt' -# Matrix access token (from bot user above) -# see: https://webapps.stackexchange.com/questions/131056/how-to-get-an-access-token-for-element-riot-matrix -matrix_bot_chatgpt_matrix_access_token: '' +matrix_bot_chatgpt_matrix_access_token: 'ACCESS_TOKEN_HERE' # Configuring the system promt used, needed if the bot is used for special tasks. # More information: https://github.com/mustvlad/ChatGPT-System-Prompts matrix_bot_chatgpt_matrix_bot_prompt_prefix: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.' - ``` -You will need to get tokens for ChatGPT. +### Extending the configuration +There are some additional things you may wish to configure about the bot. -## 4. Installing +Take a look at: -After configuring the playbook, run the [installation](installing.md) command: +- `roles/custom/matrix-bot-chatgpt/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + ```sh -ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -To use the bot, invite the `@bot.chatgpt:example.com` to the room you specified in a config, after that start speaking to it, use the prefix if you configured one or mention the bot. +To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.chatgpt:example.com` where `example.com` is your base domain, not the `matrix.` domain). -You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot). +After the bot joins the room, you can send a message to it. When you do so, use the prefix if you configured it or mention the bot. + +## 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-bot-chatgpt`. diff --git a/docs/configuring-playbook-bot-draupnir.md b/docs/configuring-playbook-bot-draupnir.md index 77d93f589..92f5c5969 100644 --- a/docs/configuring-playbook-bot-draupnir.md +++ b/docs/configuring-playbook-bot-draupnir.md @@ -1,126 +1,198 @@ + + # Setting up Draupnir (optional) The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you. -See the project's [documentation](https://github.com/the-draupnir-project/Draupnir) to learn what it does and why it might be useful to you. +See the project's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) to learn what it does and why it might be useful to you. This documentation page is about installing Draupnir in bot mode. As an alternative, you can run a multi-instance Draupnir deployment by installing [Draupnir in appservice mode](./configuring-playbook-appservice-draupnir-for-all.md) (called Draupnir-for-all) instead. +If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating). -If your migrating from Mjolnir skip to step 5b. +## Prerequisites -## 1. Register the bot account +### Create a management room -The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver. +Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. -You **need to register the bot user manually** before setting up the bot. +> [!WARNING] +> Anyone in this room can control the bot so it is important that you only invite trusted users to this room. -Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`. +It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support)). -You can use the playbook to [register a new user](registering-users.md): +Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking "Advanced". The room ID will look something like `!qporfwt:example.com`. -``` -ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.draupnir password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user -``` +## End-to-End Encryption support -If you would like Draupnir to be able to deactivate users, move aliases, shutdown rooms, show abuse reports ([see below](#abuse-reports)), etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above. +Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled. +Refer to Draupnir's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#protecting-encrypted-rooms) for more details about why you might want to care about encryption support for protected rooms. -## 2. Get an access token +### Disable Pantalaimon for Draupnir (since v2.0.0; optional) -Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). +It is known that running Draupnir along with Pantalaimon breaks all workflows that involve answering prompts with reactions. +If you are updating Draupnir from v1.x.x and have enabled Pantalaimon for it, you can disable Pantalaimon in favor of the native E2EE support. To disable Pantalaimon, remove the configuration `matrix_bot_draupnir_pantalaimon_use: true` from your `vars.yml` file. -## 3. Make sure the account is free from rate limiting +**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room. -You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step Draupnir will crash. This can be done using Synapse's [admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). Please ask for help if you are uncomfortable with these steps or run into issues. +### Native E2EE support -If your Synapse Admin API is exposed to the internet for some reason like running the Synapse Admin Role [Link](configuring-playbook-synapse-admin.md) or running `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` in your playbook config. If your API is not externally exposed you should still be able to on the local host for your synapse run these commands. +To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file. -The following command works on semi up to date Windows 10 installs and All Windows 11 installations and other systems that ship curl. `curl --header "Authorization: Bearer " -X POST https://matrix.example.com/_synapse/admin/v1/users/@example:example.com/override_ratelimit` Replace `@example:example.com` with the MXID of your Draupnir and example.com with your homeserver domain. You can easily obtain an access token for a homeserver admin account the same way you can obtain an access token for Draupnir itself. If you made Draupnir Admin you can just use the Draupnir token. +Note that native E2EE requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. **The access token obtained via Element Web does not work with it**. Refer to the documentation on [how to obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl). - - -## 4. Create a management room - -Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. Anyone in this room can control the bot so it is important that you only invite trusted users to this room. - -If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below). - -Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element Web you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`. - -Finally invite the `@bot.draupnir:example.com` account you created earlier into the room. - - -## 5. Adjusting the playbook configuration - -Decide whether you want Draupnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms. To support E2EE, Draupnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md). - -### 5a. Configuration with E2EE support - -When using Pantalaimon, Draupnir will log in to its bot account itself through Pantalaimon, so configure its username and password. - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +To enable the native E2EE support, add the following configuration to your `vars.yml` file. Make sure to replace `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained just now. ```yaml -# Enable Pantalaimon. See docs/configuring-playbook-pantalaimon.md -matrix_pantalaimon_enabled: true +# Enables the native E2EE support +matrix_bot_draupnir_enable_experimental_rust_crypto: true +# Access token which the bot will use for logging in. +# Comment out `matrix_bot_draupnir_login_native` when using this option. +matrix_bot_draupnir_access_token: "CLEAN_ACCESS_TOKEN_HERE" +``` + +## Adjusting the playbook configuration + +To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier. + +```yaml # Enable Draupnir matrix_bot_draupnir_enabled: true -# Tell Draupnir to use Pantalaimon -matrix_bot_draupnir_pantalaimon_use: true +# Uncomment and adjust this part if you'd like to use a username different than the default +# matrix_bot_draupnir_login: bot.draupnir -# User name and password for the bot. Required when using Pantalaimon. -matrix_bot_draupnir_pantalaimon_username: "DRAUPNIR_USERNAME_FROM_STEP_1" -matrix_bot_draupnir_pantalaimon_password: ### you should create a secure password for the bot account +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. +# If creating the user on your own and using `matrix_bot_draupnir_access_token` to login you can comment out this line. +matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT -matrix_bot_draupnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE" +# Comment out if using `matrix_bot_draupnir_enable_experimental_rust_crypto: true` or `matrix_bot_draupnir_access_token` to login. +matrix_bot_draupnir_login_native: true + +matrix_bot_draupnir_management_room: "MANAGEMENT_ROOM_ID_HERE" ``` -The playbook's `group_vars` will configure other required settings. If using this role separately without the playbook, you also need to configure the two URLs that Draupnir uses to reach the homeserver, one through Pantalaimon and one "raw". This example is taken from the playbook's `group_vars`: +### Create and invite the bot to the management room + +Before proceeding to the next step, run the playbook with the following command to create the bot user. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created +``` + +**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier. + +### Make sure the account is free from rate limiting (optional, recommended) + +If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.** + +This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally. + +**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). + +The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md). + +#### Add the configuration + +To expose the APIs publicly, add the following configuration to your `vars.yml` file: ```yaml -# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API). -# Set this to the pantalaimon URL if you're using that. -matrix_bot_draupnir_homeserver_url: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}" - -# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/), -# only set this to the public-internet homeserver client API URL, do NOT set this to the pantalaimon URL. -matrix_bot_draupnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" +matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true ``` -### 5b. Configuration without E2EE support +#### Obtain an access token for admin account -When NOT using Pantalaimon, Draupnir does not log in by itself and you must give it an access token for its bot account. +Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. -You must replace `ACCESS_TOKEN_FROM_STEP_2_GOES_HERE` and `ROOM_ID_FROM_STEP_4_GOES_HERE` with the your own values. +#### Run the `curl` command + +To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace: + +- `ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account +- `example.com` with your base domain +- `@bot.draupnir:example.com` with the MXID of your Draupnir bot user + +```sh +curl --header "Authorization: Bearer ADMIN_ACCESS_TOKEN_HERE" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.draupnir:example.com/override_ratelimit +``` + +**Notes**: +- This does not work on outdated Windows 10 as curl is not available there. +- Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally. + +### Abuse Reports + +Draupnir can receive reports in the management room. + +The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you: ```yaml -matrix_bot_draupnir_enabled: true - -matrix_bot_draupnir_access_token: "ACCESS_TOKEN_FROM_STEP_2_GOES_HERE" - -matrix_bot_draupnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE" +matrix_bot_draupnir_abuse_reporting_enabled: true ``` -### 5c. Migrating from Mjolnir (Only required if migrating.) + + +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable + +For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file: + +```yaml +matrix_bot_draupnir_configuration_extension_yaml: | + # Your custom YAML configuration goes here. + # This configuration extends the default starting configuration (`matrix_bot_draupnir_configuration_yaml`). + # + # 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 + # completely redefining `matrix_bot_draupnir_configuration_yaml`. + acceptInvitesFromSpace: "!qporfwt:example.com" +``` + +### Migrating from Mjolnir (Only required if migrating) Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration. +Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support). + That is all you need to do due to that Draupnir can complete migration on its own. -## 6. Installing +## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,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. ## Usage @@ -166,7 +238,7 @@ The simplest and most useful entity to target is `user`. Below are a few example To create rules, you run commands in the Management Room (**not** in the policy list room). -- (ban a single user on a given homeserver): `!draupnir ban @someone:example.com my-bans Rude to others` +- (ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others` - (ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server - all users are fake` As a result of running these commands, you may observe: @@ -182,46 +254,10 @@ You can also **turn on various built-in [protections](https://the-draupnir-proje To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room. -To **see the configuration options for a given protection**, send a `!draupnir config get PROTECTION_NAME` (e.g. `!draupnir config get JoinWaveShortCircuit`). +To **see the configuration options for a given protection**, send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuit`). To **set a specific option for a given protection**, send a command like this: `!draupnir config set PROTECTION_NAME.OPTION VALUE` (e.g. `!draupnir config set JoinWaveShortCircuit.timescaleMinutes 30`). To **enable a given protection**, send a command like this: `!draupnir enable PROTECTION_NAME` (e.g. `!draupnir enable JoinWaveShortCircuit`). To **disable a given protection**, send a command like this: `!draupnir disable PROTECTION_NAME` (e.g. `!draupnir disable JoinWaveShortCircuit`). - - -## Extending the configuration - -You can configure additional options by adding the `matrix_bot_draupnir_configuration_extension_yaml` variable to your `inventory/host_vars/matrix.example.com/vars.yml` file. - -For example to change Draupnir's `recordIgnoredInvites` option to `true` you would add the following to your `vars.yml` file. - -```yaml -matrix_bot_draupnir_configuration_extension_yaml: | - # Your custom YAML configuration goes here. - # This configuration extends the default starting configuration (`matrix_bot_draupnir_configuration_yaml`). - # - # 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 - # completely redefining `matrix_bot_draupnir_configuration_yaml`. - recordIgnoredInvites: true -``` - -## Abuse Reports - -Draupnir supports two methods to receive reports in the management room. - -The first method intercepts the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using traefik, this playbook can set this up for you: - -```yaml -matrix_bot_draupnir_abuse_reporting_enabled: true -``` - -The other method polls an synapse admin API endpoint and is hence only available when using synapse and when the Draupnir user is an admin user (see step 1). To enable it, set `pollReports: true` in Draupnir's config: - -```yaml -matrix_bot_draupnir_configuration_extension_yaml: | - pollReports: true -``` diff --git a/docs/configuring-playbook-bot-go-neb.md b/docs/configuring-playbook-bot-go-neb.md index 1b21897ac..220b4bfff 100644 --- a/docs/configuring-playbook-bot-go-neb.md +++ b/docs/configuring-playbook-bot-go-neb.md @@ -1,34 +1,53 @@ + + # Setting up Go-NEB (optional, unmaintained) -**Note**: [Go-NEB](https://github.com/matrix-org/go-neb) is now an archived (**unmaintained**) project. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bot instead of this one. +**Note**: [Go-NEB](https://github.com/matrix-org/go-neb) is now an archived (**unmaintained**) project. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bot instead of this one. The playbook can install and configure [Go-NEB](https://github.com/matrix-org/go-neb) for you. Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python. -See the project's [documentation](https://github.com/matrix-org/go-neb) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/matrix-org/go-neb/blob/master/README.md) to learn what it does and why it might be useful to you. +## Prerequisites -## Registering the bot user +### Register the bot account -The playbook does not automatically create users for you. The bot requires at least 1 access token to be able to connect to your homeserver. +The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot. -You **need to register the bot user manually** before setting up the bot. - -Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`. +Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. You can use the playbook to [register a new user](registering-users.md): -``` +```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.go-neb password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user ``` -Once the user is created you can [obtain an access token](obtaining-access-tokens.md). +### Obtain an access token +The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +## Adjusting DNS records + +By default, this playbook installs Go-NEB on the `goneb.` subdomain (`goneb.example.com`) and requires you to create a CNAME record for `goneb`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration -To enable Go-NEB, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_GONEB_HERE` and `ACCESS_TOKEN_FOR_ANOTHER_GONEB_HERE` with the ones created [above](#obtain-an-access-token). ```yaml matrix_bot_go_neb_enabled: true @@ -37,7 +56,7 @@ matrix_bot_go_neb_enabled: true # Use the access token you obtained in the step above. matrix_bot_go_neb_clients: - UserID: "@goneb:{{ matrix_domain }}" - AccessToken: "MDASDASJDIASDJASDAFGFRGER" + AccessToken: "ACCESS_TOKEN_FOR_GONEB_HERE" DeviceID: "DEVICE1" HomeserverURL: "{{ matrix_addons_homeserver_client_api_url }}" Sync: true @@ -46,7 +65,7 @@ matrix_bot_go_neb_clients: AcceptVerificationFromUsers: [":{{ matrix_domain }}"] - UserID: "@another_goneb:{{ matrix_domain }}" - AccessToken: "MDASDASJDIASDJASDAFGFRGER" + AccessToken: "ACCESS_TOKEN_FOR_ANOTHER_GONEB_HERE" DeviceID: "DEVICE2" HomeserverURL: "{{ matrix_addons_homeserver_client_api_url }}" Sync: false @@ -64,7 +83,7 @@ matrix_bot_go_neb_realms: matrix_bot_go_neb_sessions: - SessionID: "your_github_session" RealmID: "github_realm" - UserID: "@YOUR_USER_ID:{{ matrix_domain }}" # This needs to be the username of the person that's allowed to use the !github commands + UserID: "@alice:{{ matrix_domain }}" # This needs to be the username of the person that's allowed to use the !github commands Config: # Populate these fields by generating a "Personal Access Token" on github.com AccessToken: "YOUR_GITHUB_ACCESS_TOKEN" @@ -107,7 +126,7 @@ matrix_bot_go_neb_services: api_key: "AIzaSyA4FD39m9" cx: "AIASDFWSRRtrtr" -# Get a key via https://api.imgur.com/oauth2/addclient +# Obtain a key via https://api.imgur.com/oauth2/addclient # Select "oauth2 without callback url" - ID: "imgur_service" Type: "imgur" @@ -151,7 +170,7 @@ matrix_bot_go_neb_services: UserID: "@another_goneb:{{ matrix_domain }}" Config: RealmID: "github_realm" - ClientUserID: "@YOUR_USER_ID:{{ matrix_domain }}" # needs to be an authenticated user so Go-NEB can create webhooks. Check the UserID field in the github_realm in matrix_bot_go_neb_sessions. + ClientUserID: "@alice:{{ matrix_domain }}" # needs to be an authenticated user so Go-NEB can create webhooks. Check the UserID field in the github_realm in matrix_bot_go_neb_sessions. Rooms: "!qporfwt:example.com": Repos: @@ -192,46 +211,61 @@ matrix_bot_go_neb_services: msg_type: "m.text" # Must be either `m.text` or `m.notice` ``` -### Adjusting the Go-NEB URL - -By default, this playbook installs Go-NEB on the `goneb.` subdomain (`goneb.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Go-NEB URL (optional) By tweaking the `matrix_bot_go_neb_hostname` and `matrix_bot_go_neb_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), # so we won't need to add additional DNS records for Go-NEB. matrix_bot_go_neb_hostname: "{{ matrix_server_fqn_matrix }}" -# Expose under the /buscarron subpath +# Expose under the /go-neb subpath matrix_bot_go_neb_path_prefix: /go-neb ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server. - -By default, you will need to create a CNAME record for `goneb`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-go-neb/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bot-go-neb/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_go_neb_configuration_extension_yaml` variable + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -To use the bot, invite it to any existing Matrix room (`/invite @whatever_you_chose:example.com` where `example.com` is your base domain, not the `matrix.` domain, make sure you have permission from the room owner if that's not you). +To use the bot, invite it to any existing Matrix room (`/invite @bot.go-neb:example.com` where `example.com` is your base domain, not the `matrix.` domain). Make sure you are granted with the sufficient permission if you are not the room owner. Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix` -If you enabled the github_cmd service you can get the supported commands via `!github help` +If you enabled the github_cmd service, send `!github help` to the bot in the room to see the available commands. You can also refer to the upstream [Documentation](https://github.com/matrix-org/go-neb). + +## 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-bot-go-neb`. diff --git a/docs/configuring-playbook-bot-honoroit.md b/docs/configuring-playbook-bot-honoroit.md index 982c7ca0a..967ea0050 100644 --- a/docs/configuring-playbook-bot-honoroit.md +++ b/docs/configuring-playbook-bot-honoroit.md @@ -1,15 +1,28 @@ + + # Setting up Honoroit (optional) The playbook can install and configure [Honoroit](https://github.com/etkecc/honoroit) for you. It's a bot you can use to setup **your own helpdesk on matrix** -See the project's [documentation](https://github.com/etkecc/honoroit#how-it-looks-like) to learn what it does with screenshots and why it might be useful to you. +See the project's [documentation](https://github.com/etkecc/honoroit/blob/main/README.md) to learn what it does and why it might be useful to you. +## Adjusting DNS records (optional) + +By default, this playbook installs Honoroit on the `matrix.` subdomain, at the `/honoroit` path (https://matrix.example.com/honoroit). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-honoroit-url-optional) for details about DNS configuration. ## Adjusting the playbook configuration -To enable Honoroit, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_bot_honoroit_enabled: true @@ -17,20 +30,18 @@ matrix_bot_honoroit_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_honoroit_login: honoroit -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_bot_honoroit_password: PASSWORD_FOR_THE_BOT # Adjust this to your room ID matrix_bot_honoroit_roomid: "!qporfwt:{{ matrix_domain }}" ``` -### Adjusting the Honoroit URL - -By default, this playbook installs Honoroit on the `matrix.` subdomain, at the `/honoroit` path (https://matrix.example.com/honoroit). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Honoroit URL (optional) By tweaking the `matrix_bot_honoroit_hostname` and `matrix_bot_honoroit_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -38,33 +49,55 @@ matrix_bot_honoroit_hostname: honoroit.example.com matrix_bot_honoroit_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the Honoroit domain (`honoroit.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the Honoroit domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-honoroit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + ```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` **Notes**: -- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -- if you change the bot password (`matrix_bot_honoroit_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_honoroit_password` to let the bot know its new password +- 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. + +- If you change the bot password (`matrix_bot_honoroit_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_honoroit_password` to let the bot know its new password. ## Usage -To use the bot, invite the `@honoroit:example.com` to the room you specified in config, after that any Matrix user can send a message to the `@honoroit:example.com` to start a new thread in that room. +To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @honoroit:example.com` where `example.com` is your base domain, not the `matrix.` domain). -Send `!ho help` to the room to see the bot's help menu for additional commands. +After the bot joins the room, any Matrix user can send a message to it to start a new thread in that room. + +Send `!ho help` to the bot in the room to see the available commands. You can also refer to the upstream [documentation](https://github.com/etkecc/honoroit#features). + +## 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-bot-honoroit`. + +### Increase logging verbosity + +If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: + +```yaml +matrix_bot_honoroit_loglevel: 'DEBUG' +``` diff --git a/docs/configuring-playbook-bot-matrix-registration-bot.md b/docs/configuring-playbook-bot-matrix-registration-bot.md index 6583a92e0..c171b733a 100644 --- a/docs/configuring-playbook-bot-matrix-registration-bot.md +++ b/docs/configuring-playbook-bot-matrix-registration-bot.md @@ -1,13 +1,24 @@ + + # Setting up matrix-registration-bot (optional) The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you. The bot allows you to easily **create and manage registration tokens** aka. invitation codes. It can be used for an invitation-based server, where you invite someone by sending them a registration token (tokens look like this: `rbalQ0zkaDSRQCOp`). They can register as per normal but have to provide a valid registration token in the final step of the registration process. -See the project's [documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/moan0s/matrix-registration-bot/blob/master/README.md) to learn what it does and why it might be useful to you. - -## Configuration +## Adjusting the playbook configuration To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -18,7 +29,7 @@ matrix_bot_matrix_registration_bot_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_matrix_registration_bot_matrix_user_id_localpart: bot.matrix-registration-bot -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_bot_matrix_registration_bot_bot_password: PASSWORD_FOR_THE_BOT # Enables registration @@ -30,22 +41,59 @@ matrix_synapse_registration_requires_token: true The bot account will be created automatically. +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-matrix-registration-bot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bot-matrix-registration-bot/templates/config.yaml.j2` for the bridge's default configuration + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +- If you change the bot password (`matrix_bot_matrix_registration_bot_bot_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_registration_bot_bot_password` to let the bot know its new password. ## Usage To use the bot, start a chat with `@bot.matrix-registration-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -In this room send `help` and the bot will reply with all options. +Send `help` to the bot to see the available commands. You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands). If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de). -To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc... you can use: +To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use: -```bash +```sh just run-tags bot-matrix-registration-bot-clean-cache ``` + +## 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-bot-matrix-registration-bot`. + +### Increase logging verbosity + +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 +# Valid values: ERROR, INFO, DEBUG +matrix_bot_matrix_registration_bot_logging_level: DEBUG +``` diff --git a/docs/configuring-playbook-bot-matrix-reminder-bot.md b/docs/configuring-playbook-bot-matrix-reminder-bot.md index 2bce34765..9661ed6fa 100644 --- a/docs/configuring-playbook-bot-matrix-reminder-bot.md +++ b/docs/configuring-playbook-bot-matrix-reminder-bot.md @@ -1,15 +1,22 @@ + + # Setting up matrix-reminder-bot (optional) The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you. It's a bot you can use to **schedule one-off & recurring reminders and alarms**. -See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage) to learn what it does and why it might be useful to you. - +See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_bot_matrix_reminder_bot_enabled: true @@ -17,28 +24,40 @@ matrix_bot_matrix_reminder_bot_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_matrix_reminder_bot_matrix_user_id_localpart: bot.matrix-reminder-bot -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_bot_matrix_reminder_bot_matrix_user_password: PASSWORD_FOR_THE_BOT # Adjust this to your timezone matrix_bot_matrix_reminder_bot_reminders_timezone: Europe/London ``` +### Extending the configuration + +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_matrix_reminder_bot_configuration_extension_yaml` variable ## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + ```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` **Notes**: -- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -- if you change the bot password (`matrix_bot_matrix_reminder_bot_matrix_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_reminder_bot_matrix_user_password` to let the bot know its new password +- 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. + +- If you change the bot password (`matrix_bot_matrix_reminder_bot_matrix_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_reminder_bot_matrix_user_password` to let the bot know its new password. ## Usage @@ -51,3 +70,18 @@ Basic usage is like this: `!remindme in 2 minutes; This is a test` Send `!help reminders` to the room to see the bot's help menu for additional commands. You can also refer to the upstream [Usage documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage). + +## 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-bot-matrix-reminder-bot`. + +### Increase logging verbosity + +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 +matrix_bot_matrix_reminder_bot_configuration_extension_yaml: | + logging: + # Valid values: ERROR, WARNING, INFO, DEBUG + level: DEBUG +``` diff --git a/docs/configuring-playbook-bot-maubot.md b/docs/configuring-playbook-bot-maubot.md index 05320d7bb..367a3aaac 100644 --- a/docs/configuring-playbook-bot-maubot.md +++ b/docs/configuring-playbook-bot-maubot.md @@ -1,3 +1,14 @@ + + # Setting up maubot (optional) The playbook can install and configure [maubot](https://github.com/maubot/maubot) for you. @@ -6,9 +17,15 @@ After setting up maubot, you can use the web management interface to make it do See the project's [documentation](https://docs.mau.fi/maubot/usage/basic.html) to learn what it does and why it might be useful to you. +## Adjusting DNS records (optional) + +By default, this playbook installs maubot on the `matrix.` subdomain, at the `/_matrix/maubot/` path (https://matrix.example.com/_matrix/maubot/). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. + +If you wish to adjust it, see the section [below](#adjusting-the-maubot-url-optional) for details about DNS configuration. + ## Adjusting the playbook configuration -To enable maubot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_bot_maubot_enabled: true @@ -16,7 +33,7 @@ matrix_bot_maubot_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_bot_maubot_login: bot.maubot -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_bot_maubot_initial_password: PASSWORD_FOR_THE_BOT matrix_bot_maubot_admins: @@ -25,13 +42,11 @@ matrix_bot_maubot_admins: You can add multiple admins. The admin accounts are only used to access the maubot administration interface. -### Adjusting the maubot URL - -By default, this playbook installs maubot on the `matrix.` subdomain, at the `/_matrix/maubot/` path (https://matrix.example.com/_matrix/maubot/). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the maubot URL (optional) By tweaking the `matrix_bot_maubot_hostname` and `matrix_bot_maubot_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -39,21 +54,56 @@ matrix_bot_maubot_hostname: maubot.example.com matrix_bot_maubot_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the maubot domain (`maubot.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the maubot domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the bot. + +Take a look at: + +- `roles/custom/matrix-bot-maubot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bot-maubot/templates/config.yaml.j2` for the bot's default configuration + +## Customizing the maubot container image + +Certain [maubot plugins](https://plugins.mau.bot/) require additional dependencies to be installed. + +You can customize the default maubot container image and install your own dependencies. + +Example additional configuration for your `vars.yml` file: + +```yaml +matrix_bot_maubot_container_image_customizations_enabled: true + +# Adjust the Dockerfile and install ffmpeg. +# +matrix_bot_maubot_container_image_customizations_dockerfile_body_custom: | + RUN apk add --no-cache ffmpeg +``` + +Consult the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/) for more information about the syntax. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` **Notes**: -- if you change the bot password (`matrix_bot_maubot_initial_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_maubot_initial_password` to let the bot know its new password +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +- If you change the bot password (`matrix_bot_maubot_initial_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_maubot_initial_password` to let the bot know its new password. ## Usage @@ -64,8 +114,24 @@ You should start in the following order 2. **Upload some Plugins**: Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source. 3. **Create an instance**: An instance is the actual bot. You have to specify a client which the bot instance will use and the plugin (how the bot will behave) -## Obtaining an access token +## Obtain an access token This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`. -Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation. Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will give your bot issues in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients). +Alternatively, you can refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will causes issues to your bot in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients). + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +## 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-bot-maubot`. + +### 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 +# Valid values: CRITICAL, ERROR, WARNING, INFO, DEBUG +matrix_bot_maubot_logging_level: DEBUG +``` diff --git a/docs/configuring-playbook-bot-mjolnir.md b/docs/configuring-playbook-bot-mjolnir.md index f4ccca11c..9f4a96dfa 100644 --- a/docs/configuring-playbook-bot-mjolnir.md +++ b/docs/configuring-playbook-bot-mjolnir.md @@ -1,76 +1,130 @@ + + # Setting up Mjolnir (optional) The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you. -See the project's [documentation](https://github.com/matrix-org/mjolnir) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/matrix-org/mjolnir/blob/main/README.md) to learn what it does and why it might be useful to you. +## Prerequisites -## 1. Register the bot account +### Register the bot account -The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver. +The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot. -You **need to register the bot user manually** before setting up the bot. - -Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`. +Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. You can use the playbook to [register a new user](registering-users.md): -``` +```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.mjolnir password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user ``` If you would like Mjolnir to be able to deactivate users, move aliases, shutdown rooms, etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above. +### Obtain an access token -## 2. Get an access token +The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). -Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. +### Make sure the account is free from rate limiting -## 3. Make sure the account is free from rate limiting +If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a required step. If you do not configure it, Mjolnir will crash.** -You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step Mjolnir will crash. This can be done using Synapse's [admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). Please ask for help if you are uncomfortable with these steps or run into issues. +This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally. -If your Synapse Admin API is exposed to the internet for some reason like running the Synapse Admin Role [Link](configuring-playbook-synapse-admin.md) or running `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` in your playbook config. If your API is not externally exposed you should still be able to on the local host for your synapse run these commands. +**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). -The following command works on semi up to date Windows 10 installs and All Windows 11 installations and other systems that ship curl. `curl --header "Authorization: Bearer " -X POST https://matrix.example.com/_synapse/admin/v1/users/@example:example.com/override_ratelimit` Replace `@example:example.com` with the MXID of your Mjolnir and example.com with your homeserver domain. You can easily obtain an access token for a homeserver admin account the same way you can obtain an access token for Mjolnir itself. If you made Mjolnir Admin you can just use the Mjolnir token. +The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md). -## 4. Create a management room +#### Add the configuration -Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. Anyone in this room can control the bot so it is important that you only invite trusted users to this room. +To expose the APIs publicly, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: -If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below). +```yaml +matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true +``` -Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element Web you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`. +#### Obtain an access token for admin account + +Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). If you have made Mjolnir an admin, you can just use the Mjolnir token. + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +#### Run the `curl` command + +To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace: + +- `ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account +- `example.com` with your base domain +- `@bot.mjolnir:example.com` with the MXID of your Mjolnir bot user + +```sh +curl --header "Authorization: Bearer ADMIN_ACCESS_TOKEN_HERE" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.mjolnir:example.com/override_ratelimit +``` + +**Notes**: +- This does not work on outdated Windows 10 as curl is not available there. +- Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally. + +### Create a management room + +Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. + +> [!WARNING] +> Anyone in this room can control the bot so it is important that you only invite trusted users to this room. + +It is possible to make the management room encrypted (E2EE). If doing so, then you MUST enable and use Pantalaimon (see [below](#configuration-with-e2ee-support)). + +Once you have created the room you need to copy the room ID so you can specify it on your `vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking "Advanced". The room ID will look something like `!qporfwt:example.com`. Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room. +## Adjusting the playbook configuration -## 5. Adjusting the playbook configuration +To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created just now. -Decide whether you want Mjolnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms. To support E2EE, Mjolnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md). +```yaml +# Enable Mjolnir +matrix_bot_mjolnir_enabled: true -### 5a. Configuration with E2EE support +matrix_bot_mjolnir_management_room: "MANAGEMENT_ROOM_ID_HERE" +``` + +### End-to-End Encryption support + +Decide whether you want Mjolnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms. + +To support E2EE, Mjolnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md). + +#### Configuration with E2EE support When using Pantalaimon, Mjolnir will log in to its bot account itself through Pantalaimon, so configure its username and password. -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +Add the following configuration to your `vars.yml` file (adapt to your needs): ```yaml # Enable Pantalaimon. See docs/configuring-playbook-pantalaimon.md matrix_pantalaimon_enabled: true -# Enable Mjolnir -matrix_bot_mjolnir_enabled: true - # Tell Mjolnir to use Pantalaimon matrix_bot_mjolnir_pantalaimon_use: true -# User name and password for the bot. Required when using Pantalaimon. -matrix_bot_mjolnir_pantalaimon_username: "MJOLNIR_USERNAME_FROM_STEP_1" -matrix_bot_mjolnir_pantalaimon_password: ### you should create a secure password for the bot account - -matrix_bot_mjolnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE" +# User name and password for the bot you have created above. Required when using Pantalaimon. +matrix_bot_mjolnir_pantalaimon_username: "bot.mjolnir" +matrix_bot_mjolnir_pantalaimon_password: "PASSWORD_FOR_THE_BOT" ``` The playbook's `group_vars` will configure other required settings. If using this role separately without the playbook, you also need to configure the two URLs that Mjolnir uses to reach the homeserver, one through Pantalaimon and one "raw". This example is taken from the playbook's `group_vars`: @@ -85,26 +139,19 @@ matrix_bot_mjolnir_homeserver_url: "{{ 'http://matrix-pantalaimon:8009' if matri matrix_bot_mjolnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" ``` -### 5b. Configuration without E2EE support +#### Configuration without E2EE support When NOT using Pantalaimon, Mjolnir does not log in by itself and you must give it an access token for its bot account. -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): - -You must replace `ACCESS_TOKEN_FROM_STEP_2_GOES_HERE` and `ROOM_ID_FROM_STEP_4_GOES_HERE` with the your own values. +Add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token). ```yaml -matrix_bot_mjolnir_enabled: true - -matrix_bot_mjolnir_access_token: "ACCESS_TOKEN_FROM_STEP_2_GOES_HERE" - -matrix_bot_mjolnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE" +matrix_bot_mjolnir_access_token: "ACCESS_TOKEN_HERE" ``` -## 6. Adding Mjolnir synapse antispam module (optional) - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +### Adding Mjolnir synapse antispam module (optional) +To enable Mjolnir synapse antispam module, add the following configuration to your `vars.yml` file (adapt to your needs): ```yaml matrix_synapse_ext_spam_checker_mjolnir_antispam_enabled: true @@ -114,23 +161,15 @@ matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_usernames: false matrix_synapse_ext_spam_checker_mjolnir_antispam_config_ban_lists: [] ``` +### Extending the configuration -## 7. Installing +There are some additional things you may wish to configure about the bot. -After configuring the playbook, run the [installation](installing.md) command: +Take a look at: -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` +- `roles/custom/matrix-bot-mjolnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_mjolnir_configuration_extension_yaml` variable - -## Usage - -You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure Mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot. - -You can configure additional options by adding the `matrix_bot_mjolnir_configuration_extension_yaml` variable to your `inventory/host_vars/matrix.example.com/vars.yml` file. - -For example to change Mjolnir's `recordIgnoredInvites` option to `true` you would add the following to your `vars.yml` file. +For example, to change Mjolnir's `recordIgnoredInvites` option to `true`, add the following configuration to your `vars.yml` file: ```yaml matrix_bot_mjolnir_configuration_extension_yaml: | @@ -143,3 +182,40 @@ matrix_bot_mjolnir_configuration_extension_yaml: | # completely redefining `matrix_bot_mjolnir_configuration_yaml`. recordIgnoredInvites: true ``` + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +- If you change the Pantalaimon's password (`matrix_bot_mjolnir_pantalaimon_password` in your `vars.yml` file) subsequently, its credentials on the homeserver won't be updated automatically. If you'd like to change the password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_mjolnir_pantalaimon_password` to let Pantalaimon know its new password. + +## Usage + +You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure Mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot. + +## 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-bot-mjolnir`. + +### Increase logging verbosity + +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 +# Valid values: ERROR, WARN, INFO, DEBUG +matrix_bot_mjolnir_configuration_extension_yaml: | + logLevel: "DEBUG" +``` diff --git a/docs/configuring-playbook-bridge-appservice-discord.md b/docs/configuring-playbook-bridge-appservice-discord.md index 173cf2252..d4a97a445 100644 --- a/docs/configuring-playbook-bridge-appservice-discord.md +++ b/docs/configuring-playbook-bridge-appservice-discord.md @@ -1,3 +1,12 @@ + + # Setting up Appservice Discord bridging (optional) **Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook. @@ -8,38 +17,55 @@ The playbook can install and configure [matrix-appservice-discord](https://githu See the project's [documentation](https://github.com/matrix-org/matrix-appservice-discord/blob/master/README.md) to learn what it does and why it might be useful to you. +## Prerequisites -## Setup Instructions +Create a Discord Application [here](https://discordapp.com/developers/applications). Then retrieve Client ID, and create a bot from the Bot tab and retrieve the Bot token. -Instructions loosely based on [this](https://github.com/matrix-org/matrix-appservice-discord#setting-up). +## Adjusting the playbook configuration -1. Create a Discord Application [here](https://discordapp.com/developers/applications). -2. Retrieve Client ID. -3. Create a bot from the Bot tab and retrieve the Bot token. -4. Enable the bridge with the following configuration in your `vars.yml` file: +To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - ```yaml - matrix_appservice_discord_enabled: true - matrix_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID" - matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN" - ``` +```yaml +matrix_appservice_discord_enabled: true +matrix_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID" +matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN" -5. As of Synapse 1.90.0, you will need to add the following to `matrix_synapse_configuration_extension_yaml` 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. +# +# matrix_synapse_configuration_extension_yaml: | +# use_appservice_legacy_authorization: true +``` - ```yaml - matrix_synapse_configuration_extension_yaml: | - use_appservice_legacy_authorization: true - ``` +### Extending the configuration - **Note**: This deprecated method is considered insecure. +There are some additional things you may wish to configure about the bridge. -6. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. +Take a look at: -Other configuration options are available via the `matrix_appservice_discord_configuration_extension_yaml` variable. +- `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_appservice_discord_configuration_extension_yaml` variable + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Self-Service Bridging (Manual) -Self-service bridging allows you to bridge specific and existing Matrix rooms to specific Discord rooms. This is disabled by default, so it must be enabled by adding this to your `vars.yml`: +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 matrix_appservice_discord_bridge_enableSelfServiceBridging: true @@ -47,27 +73,32 @@ matrix_appservice_discord_bridge_enableSelfServiceBridging: true **Note**: If self-service bridging is not enabled, `!discord help` commands will return no results. -Once self-service is enabled: +### Usage -1. Start a chat with `@_discord_bot:example.com` and say `!discord help bridge`. -2. Follow the instructions in the help output message. If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server. +Once self-service is enabled, start a chat with `@_discord_bot:example.com` and say `!discord help bridge`. + +Then, follow the instructions in the help output message. + +If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server. + +On the Discord side, send `!matrix help` to the bot to see the available commands for managing the bridge and Matrix users. **Note**: Encrypted Matrix rooms are not supported as of writing. -On the Discord side, you can say `!matrix help` to get a list of available commands to manage the bridge and Matrix users. - ## Portal Bridging (Automatic) Through portal bridging, Matrix rooms will automatically be created by the bot and bridged to the relevant Discord room. This is done by simply joining a room with a specific name pattern (`#_discord__`). All Matrix rooms created this way are **listed publicly** by default, and you will not have admin permissions to change this. To get more control, [make yourself a room Administrator](#getting-administrator-access-in-a-portal-bridged-room). You can then unlist the room from the directory and change the join rules. -If you want to disable portal bridging, set the following in `vars.yml`: +To disable portal bridging, add the following configuration to your `vars.yml` file: ```yaml matrix_appservice_discord_bridge_disablePortalBridging: true ``` +### Usage + To get started with Portal Bridging: 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). @@ -84,5 +115,20 @@ There's the Discord bridge's guide for [setting privileges on bridge managed roo ```sh docker exec -it matrix-appservice-discord \ -/bin/sh -c 'cp /cfg/registration.yaml /tmp/discord-registration.yaml && cd /tmp && node /build/tools/adminme.js -c /cfg/config.yaml -m "!qporfwt:example.com" -u "@USER:example.com" -p 100' +/bin/sh -c 'cp /cfg/registration.yaml /tmp/discord-registration.yaml && cd /tmp && node /build/tools/adminme.js -c /cfg/config.yaml -m "!qporfwt:example.com" -u "@alice:example.com" -p 100' +``` + +## 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-discord`. + +### 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 (adapt to your needs) and re-run the playbook: + +```yaml +matrix_appservice_discord_configuration_extension_yaml: | + logging: + # What level should the logger output to the console at. + console: "info" # Valid values: silent, error, warn, http, info, verbose, silly ``` diff --git a/docs/configuring-playbook-bridge-appservice-irc.md b/docs/configuring-playbook-bridge-appservice-irc.md index 84c3b4dd4..79cf0aee3 100644 --- a/docs/configuring-playbook-bridge-appservice-irc.md +++ b/docs/configuring-playbook-bridge-appservice-irc.md @@ -1,3 +1,12 @@ + + # Setting up Appservice IRC bridging (optional) **Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) bridge supported by the playbook. @@ -60,10 +69,52 @@ matrix_appservice_irc_ircService_servers: lineLimit: 3 ``` +### 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-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_appservice_irc_configuration_extension_yaml` variable + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -You then need to start a chat with `@irc_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@irc_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +## 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-irc`. + +### Configuring for logging + +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 +matrix_appservice_irc_configuration_extension_yaml: | + logging: + # Level to log on console/logfile. + # Valid values: error, warn, info, debug + level: "debug" + # The file location to log to. This is relative to the project directory. + logfile: "debug.log" + # The file location to log errors to. This is relative to the project directory. + errfile: "errors.log" +``` diff --git a/docs/configuring-playbook-bridge-appservice-kakaotalk.md b/docs/configuring-playbook-bridge-appservice-kakaotalk.md index 1e9816b41..db2a6557a 100644 --- a/docs/configuring-playbook-bridge-appservice-kakaotalk.md +++ b/docs/configuring-playbook-bridge-appservice-kakaotalk.md @@ -1,13 +1,32 @@ + + # Setting up Appservice Kakaotalk bridging (optional) -The playbook can install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) for you. `matrix-appservice-kakaotalk` is a bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. +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. -**Note**: there have been recent reports (~2022-09-16) that **using this bridge may get your 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. -See the project's [documentation](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) to learn what it does and why it might be useful to you. +> [!WARNING] +> There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**. +## Prerequisite (optional) -## Installing +### Enable Shared Secret Auth + +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. + +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: @@ -15,20 +34,7 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_appservice_kakaotalk_enabled: true ``` -You may optionally wish to add some [Additional configuration](#additional-configuration), or to [prepare for double-puppeting](#set-up-double-puppeting) before the initial installation. - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: - -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` - -To make use of the Kakaotalk bridge, see [Usage](#usage) below. - - -### Additional configuration +### Extending the configuration There are some additional things you may wish to configure about the bridge. @@ -37,34 +43,37 @@ 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 -### Set up Double Puppeting +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -#### Method 1: automatically, by enabling Shared Secret Auth +**Notes**: -The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -#### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Appservice-Kakaotalk` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -Start a chat with `@kakaotalkbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +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). -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. +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. -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so. +## 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 +``` diff --git a/docs/configuring-playbook-bridge-appservice-slack.md b/docs/configuring-playbook-bridge-appservice-slack.md index af6d896d6..5de62f97c 100644 --- a/docs/configuring-playbook-bridge-appservice-slack.md +++ b/docs/configuring-playbook-bridge-appservice-slack.md @@ -1,136 +1,161 @@ + + # Setting up Appservice Slack bridging (optional) **Notes**: - Bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook. -- Currently (as of November, 2024) this component is not available for new installation unless you have already created a classic Slack application (which the bridge makes use of in order to enable bridging between Slack and Matrix), because the creation of classic Slack applications has been discontinued since June 4 2024. The author of the bridge claims [here](https://github.com/matrix-org/matrix-appservice-slack/issues/789#issuecomment-2172947787) that he plans to support the modern Slack application and until then "the best (and only) option for new installations is to use the webhook bridging". +- Currently (as of November, 2024) **this component is not available for new installation unless you have already created a classic Slack application** (which the bridge makes use of in order to enable bridging between Slack and Matrix), because the creation of classic Slack applications has been discontinued since June 4 2024. The author of the bridge claims [here](https://github.com/matrix-org/matrix-appservice-slack/issues/789#issuecomment-2172947787) that he plans to support the modern Slack application and until then "the best (and only) option for new installations is to use the webhook bridging". The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you. See the project's [documentation](https://github.com/matrix-org/matrix-appservice-slack/blob/master/README.md) to learn what it does and why it might be useful to you. -## Setup Instructions: +## Prerequisites -loosely based on [this](https://github.com/matrix-org/matrix-appservice-slack#Setup) +### Create a Classic Slack App -1. Create a new Matrix room to act as the administration control room. Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing "view source". The room ID will be displayed near the top. +First, you need to create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1). -2. Enable the bridge by adding the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +Name the app "matrixbot" (or anything else you'll remember). Select the team/workspace this app will belong to. Click on bot users and add a new bot user. We will use this account to bridge the the rooms. - ```yaml - matrix_appservice_slack_enabled: true - matrix_appservice_slack_control_room_id: "Your Matrix admin room ID" - ``` +Then, click on Event Subscriptions and enable them and use the request url: `https://matrix.example.com/appservice-slack`. -3. Enable puppeting (optional, but recommended) +Add the following events as `Bot User Events` and save: - ```yaml - matrix_appservice_slack_puppeting_enabled: true - matrix_appservice_slack_puppeting_slackapp_client_id: "Your Classic Slack App Client ID" - matrix_appservice_slack_puppeting_slackapp_client_secret: "Your Classic Slack App Client Secret" - ``` +- team_domain_change +- message.channels +- message.groups (if you want to bridge private channels) +- reaction_added +- reaction_removed -4. Enable Team Sync (optional) +Next, click on "OAuth & Permissions" and add the following scopes: - ```yaml - matrix_appservice_slack_team_sync_enabled: true - ``` +- chat:write:bot +- users:read +- reactions:write +- files:write:user (if you want to bridge files) - See https://matrix-appservice-slack.readthedocs.io/en/latest/team_sync/ +**Note**: In order to make Slack files visible to Matrix users, this bridge will make Slack files visible to anyone with the url (including files in private channels). This is different than the current behavior in Slack, which only allows authenticated access to media posted in private channels. See MSC701 for details. -5. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. +Click on "Install App" and "Install App to Workspace". Note the access tokens shown. You will need the Bot User OAuth Access Token and if you want to bridge files, the OAuth Access Token whenever you link a room. -6. Invite the bridge bot user into the admin room: +### Create an administration control room on Matrix + +Create a new Matrix room to act as the administration control room. + +Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing "view source". The room ID will be displayed near the top. + +## 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_slack_enabled: true +matrix_appservice_slack_control_room_id: "Your Matrix admin room ID" + +# Uncomment to enable puppeting (optional, but recommended) +# matrix_appservice_slack_puppeting_enabled: true +# matrix_appservice_slack_puppeting_slackapp_client_id: "Your Classic Slack App Client ID" +# matrix_appservice_slack_puppeting_slackapp_client_secret: "Your Classic Slack App Client Secret" + +# Uncomment to enable Team Sync (optional) +# See https://matrix-appservice-slack.readthedocs.io/en/latest/team_sync/ +# matrix_appservice_slack_team_sync_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-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bridge-appservice-slack/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_slack_configuration_extension_yaml` variable + +For example, to change the bot's username from `slackbot`, add the following configuration to your `vars.yml` file. Replace `examplebot` with your own. + +```yaml +matrix_appservice_slack_configuration_extension_yaml: | + bot_username: "examplebot" +``` + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +## Usage + +To use the bridge, you need to send `/invite @slackbot:example.com` to invite the bridge bot user into the admin room. + +If Team Sync is not enabled, for each channel you would like to bridge, perform the following steps: + +- Create a Matrix room in the usual manner for your client. Take a note of its Matrix room ID — it will look something like `!qporfwt:example.com`. +- Invite the bot user to both the Slack and Matrix channels you would like to bridge using `/invite @matrixbot` for Slack and `/invite @slackbot:example.com` for Matrix. +- Determine the "channel ID" that Slack uses to identify the channel. You can see it when you open a given Slack channel in a browser. The URL reads like this: `https://app.slack.com/client/XXX//details/`. +- Issue a link command in the administration control room with these collected values as arguments: + + with file bridging: ``` - /invite @slackbot:example.com + link --channel_id CHANNELID --room !qporfwt:example.com --slack_bot_token xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx --slack_user_token xoxp-xxxxxxxx-xxxxxxxxx-xxxxxxxx-xxxxxxxx ``` - Note that the bot's domain is your server's domain **without the `matrix.` prefix.** - -7. Create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1). - - Name the app "matrixbot" (or anything else you'll remember). - - Select the team/workspace this app will belong to. - - Click on bot users and add a new bot user. We will use this account to bridge the the rooms. - -8. Click on Event Subscriptions and enable them and use the request url `https://matrix.example.com/appservice-slack`. Then add the following events and save: - - Bot User Events: - - - team_domain_change - - message.channels - - message.groups (if you want to bridge private channels) - - reaction_added - - reaction_removed - -9. Click on OAuth & Permissions and add the following scopes: - - - chat:write:bot - - users:read - - reactions:write - - If you want to bridge files, also add the following: - - - files:write:user - - **Note**: In order to make Slack files visible to Matrix users, this bridge will make Slack files visible to anyone with the url (including files in private channels). This is different than the current behavior in Slack, which only allows authenticated access to media posted in private channels. See MSC701 for details. - -10. Click on Install App and Install App to Workspace. Note the access tokens shown. You will need the Bot User OAuth Access Token and if you want to bridge files, the OAuth Access Token whenever you link a room. - -11. If Team Sync is not enabled, for each channel you would like to bridge, perform the following steps: - - * Create a Matrix room in the usual manner for your client. Take a note of its Matrix room ID - it will look something like !qporfwt:example.com. - - * Invite the bot user to both the Slack and Matrix channels you would like to bridge using `/invite @matrixbot` for Slack and `/invite @slackbot:example.com` for Matrix. - - * Determine the "channel ID" that Slack uses to identify the channel. You can see it when you open a given Slack channel in a browser. The URL reads like this: `https://app.slack.com/client/XXX//details/`. - - * Issue a link command in the administration control room with these collected values as arguments: - - with file bridging: - - ``` - link --channel_id CHANNELID --room !qporfwt:example.com --slack_bot_token xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx --slack_user_token xoxp-xxxxxxxx-xxxxxxxxx-xxxxxxxx-xxxxxxxx - ``` - - without file bridging: - - ``` - link --channel_id CHANNELID --room !qporfwt:example.com --slack_bot_token xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx - ``` - - These arguments can be shortened to single-letter forms: - - ``` - link -I CHANNELID -R !qporfwt:example.com -t xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx - ``` - - Other configuration options are available via the `matrix_appservice_slack_configuration_extension_yaml` variable. - -12. Unlinking - - Channels can be unlinked again like this: + without file bridging: ``` - unlink --room !qporfwt:example.com + link --channel_id CHANNELID --room !qporfwt:example.com --slack_bot_token xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx ``` - Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave the bridged Matrix room. So in case you want to re-link later, don't forget to re-invite the slackbot into this room again. + These arguments can be shortened to single-letter forms: + + ``` + link -I CHANNELID -R !qporfwt:example.com -t xoxb-xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx + ``` + +### Unlinking + +Channels can be unlinked again by sending this: + +``` +unlink --room !qporfwt:example.com +``` + +Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave the bridged Matrix room. So in case you want to re-link later, don't forget to re-invite the slackbot into this room again. ## Troubleshooting -* As always, check the logs: `journalctl -fu matrix-appservice-slack` +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-slack`. -* Linking: "Room is now pending-name" +### Linking: "Room is now pending-name" - This typically means that you haven't used the correct Slack channel ID. Unlink the room and recheck 'Determine the "channel ID"' from above. +This typically means that you haven't used the correct Slack channel ID. Unlink the room and recheck 'Determine the "channel ID"' from above. -* Messages work from M to S, but not the other way around +### Messages work from Matrix to Slack, but not the other way around - Check you logs, if they say something like +Check the logs, and if you find the message like below, unlink your room, reinvite the bot and re-link it again. - `WARN SlackEventHandler Ignoring message from unrecognised Slack channel ID : %s (%s) ` +`WARN SlackEventHandler Ignoring message from unrecognised Slack channel ID : %s (%s) ` - then unlink your room, reinvite the bot and re-link it again. This may particularly hit you, if you tried to unsuccessfully link your room multiple times without unlinking it after each failed attempt. +This may particularly hit you, if you tried to unsuccessfully link your room multiple times without unlinking it after each failed attempt. diff --git a/docs/configuring-playbook-bridge-appservice-webhooks.md b/docs/configuring-playbook-bridge-appservice-webhooks.md index 533db001b..e2b5928a2 100644 --- a/docs/configuring-playbook-bridge-appservice-webhooks.md +++ b/docs/configuring-playbook-bridge-appservice-webhooks.md @@ -1,73 +1,117 @@ + + # Setting up Appservice Webhooks bridging (optional, deprecated) -**Note**: This bridge has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bridge instead of this one. +**Note**: This bridge has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bridge instead of this one. The playbook can install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks. -Setup Instructions: +See the project's [documentation](https://github.com/turt2live/matrix-appservice-webhooks/blob/master/README.md) to learn what it does and why it might be useful to you. -loosely based on [this](https://github.com/turt2live/matrix-appservice-webhooks/blob/master/README.md) +## Adjusting the playbook configuration -1. 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 - matrix_appservice_webhooks_enabled: true - matrix_appservice_webhooks_api_secret: '' - ``` +```yaml +matrix_appservice_webhooks_enabled: true +matrix_appservice_webhooks_api_secret: '' -2. In case you want to change the verbosity of logging via `journalctl -fu matrix-appservice-webhooks.service` you can adjust this in `inventory/host_vars/matrix.example.com/vars.yml` as well. +# 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. +# +# matrix_synapse_configuration_extension_yaml: | +# use_appservice_legacy_authorization: true +``` - **Note**: default value is: `info` and availabe log levels are : `info`, `verbose` +### Extending the configuration - ```yaml - matrix_appservice_webhooks_log_level: '' - ``` +There are some additional things you may wish to configure about the bridge. -3. As of Synapse 1.90.0, you will need to add the following to `matrix_synapse_configuration_extension_yaml` to enable the [backwards compatibility](https://matrix-org.github.io/synapse/latest/upgrade#upgrading-to-v1900) that this bridge needs: +Take a look at: - ```yaml - matrix_synapse_configuration_extension_yaml: | - use_appservice_legacy_authorization: true - ``` +- `roles/custom/matrix-bridge-appservice-webhooks/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-bridge-appservice-webhooks/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_webhooks_configuration_extension_yaml` variable - **Note**: This deprecated method is considered insecure. +## Installing -4. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -5. If you're using the [Dimension integration manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge by opening the Dimension integration manager -> Settings -> Bridges and selecting edit action for "Webhook Bridge". Press "Add self-hosted Bridge" button and populate "Provisioning URL" & "Shared Secret" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -6. Invite the bridge bot user to your room: +**Notes**: - - either with `/invite @_webhook:example.com` (**Note**: Make sure you have administration permissions in your room) +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. - - or simply add the bridge bot to a private channel (personal channels imply you being an administrator) +- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` -7. Send a message to the bridge bot in order to receive a private message including the webhook link. + `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. - ``` - !webhook - ``` +## Usage -8. The JSON body for posting messages will have to look like this: +To use the bridge, you need to invite the bridge bot user to your room in either way. - ```json - { - "text": "Hello world!", - "format": "plain", - "displayName": "My Cool Webhook", - "avatar_url": "http://i.imgur.com/IDOBtEJ.png" - } - ``` +- Send `/invite @_webhook:example.com` (**Note**: Make sure you have administration permissions in your room) +- Add the bridge bot to a private channel (personal channels imply you being an administrator) - You can test this via curl like so: +You then need to send a message to the bridge bot to receive a private message including the webhook link: - ```sh - curl --header "Content-Type: application/json" \ - --data '{ +``` +!webhook +``` + +The JSON body for posting messages will have to look like this: + +```json +{ "text": "Hello world!", "format": "plain", "displayName": "My Cool Webhook", "avatar_url": "http://i.imgur.com/IDOBtEJ.png" - }' \ - - ``` +} +``` + +You can test this via curl like so: + +```sh +curl --header "Content-Type: application/json" \ +--data '{ +"text": "Hello world!", +"format": "plain", +"displayName": "My Cool Webhook", +"avatar_url": "http://i.imgur.com/IDOBtEJ.png" +}' \ + +``` + +### Setting Webhooks with Dimension integration manager + +If you're using the [Dimension integration manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge with it. + +To configure it, open the Dimension integration manager, and go to "Settings" and "Bridges", then select edit action for "Webhook Bridge". + +On the UI, press "Add self-hosted Bridge" button and populate "Provisioning URL" and "Shared Secret" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively. + +## 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-webhooks`. + +### Increase logging verbosity + +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 +# Valid values: info, verbose +matrix_appservice_webhooks_log_level: 'verbose' +``` diff --git a/docs/configuring-playbook-bridge-beeper-linkedin.md b/docs/configuring-playbook-bridge-beeper-linkedin.md index fb6591043..e2628661b 100644 --- a/docs/configuring-playbook-bridge-beeper-linkedin.md +++ b/docs/configuring-playbook-bridge-beeper-linkedin.md @@ -1,9 +1,29 @@ + + # Setting up Beeper Linkedin bridging (optional) -The playbook can install and configure [beeper-linkedin](https://github.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the other mautrix bridges +The playbook can install and configure [beeper-linkedin](https://github.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the mautrix bridges. See the project's [documentation](https://github.com/beeper/linkedin/blob/master/README.md) to learn what it does and why it might be useful to you. +## Prerequisite + +### Enable Appservice Double Puppet or Shared Secret Auth (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. + +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: @@ -12,53 +32,49 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_beeper_linkedin_enabled: true ``` -There are some additional things you may wish to configure about the bridge before you continue. +### Extending the configuration -Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file: -```yaml -matrix_beeper_linkedin_configuration_extension_yaml: | - bridge: - encryption: - allow: true - default: true -``` +There are some additional things you may wish to configure about the bridge. -If you would like to be able to administrate the bridge from your account it can be configured like this: -```yaml -matrix_beeper_linkedin_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:example.com': admin -``` +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. -You may wish to look at `roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2` to find other things you would like to configure. +**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_beeper_linkedin_`. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting by enabling Appservice Double Puppet or Shared Secret Auth + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. +**Notes**: -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. +- 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. ## Usage -You then need to start a chat with `@linkedinbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). - -Send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account. - -If you run into trouble, check the [Troubleshooting](#troubleshooting) section below. - -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting-by-enabling-appservice-double-puppet-or-shared-secret-auth), if you haven't already done so. +To use the bridge, you need to start a chat with `@linkedinbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +You then need to send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account. ## 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-beeper-linkedin`. + +### 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_beeper_linkedin_logging_level: DEBUG +``` + ### Bridge asking for 2FA even if you don't have 2FA enabled If you don't have 2FA enabled and are logging in from a strange IP for the first time, LinkedIn will send an email with a one-time code. You can use this code to authorize the bridge session. In my experience, once the IP is authorized, you will not be asked again. diff --git a/docs/configuring-playbook-bridge-go-skype-bridge.md b/docs/configuring-playbook-bridge-go-skype-bridge.md index 2370f5fa4..c90d120cc 100644 --- a/docs/configuring-playbook-bridge-go-skype-bridge.md +++ b/docs/configuring-playbook-bridge-go-skype-bridge.md @@ -1,23 +1,72 @@ + + # Setting up Go Skype Bridge bridging (optional) -The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you. +The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you, for bridging to [Skype](https://www.skype.com/). This bridge was created based on [mautrix-whatsapp](https://github.com/mautrix/whatsapp) and can be configured in a similar way to it. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/kelaresg/go-skype-bridge/blob/master/README.md) to learn what it does and why it might be useful to you. + +## Prerequisite (optional) + +### Enable Shared Secret Auth + +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. + +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 [Skype](https://www.skype.com/) 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 matrix_go_skype_bridge_enabled: true ``` +### Extending the configuration + +There are some additional things you may wish to configure about the 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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. + +**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_go_skype_bridge_`. + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled, you need to start a chat with `Skype bridge bot` with the handle `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -Send `help` to the bot to see the commands available. +## 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-go-skype-bridge`. + +### 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 +matrix_go_skype_bridge_log_level: 'info' +``` diff --git a/docs/configuring-playbook-bridge-heisenbridge.md b/docs/configuring-playbook-bridge-heisenbridge.md index 34dc627a4..c49b7b21a 100644 --- a/docs/configuring-playbook-bridge-heisenbridge.md +++ b/docs/configuring-playbook-bridge-heisenbridge.md @@ -1,12 +1,26 @@ + + # Setting up Heisenbridge bouncer-style IRC bridging (optional) **Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) bridge supported by the playbook. -The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) - the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you. +The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) — the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you. -See the project's [README](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I). +See the project's [documentation](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I). -## Configuration +## Adjusting DNS records (optional) + +By default, this playbook installs Heisenbridge on the `matrix.` subdomain, at the `/heisenbridge` path (https://matrix.example.com/heisenbridge). It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-heisenbridge-url-optional) for details about DNS configuration. + +## Adjusting the playbook configuration To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -15,23 +29,17 @@ matrix_heisenbridge_enabled: true # 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. -matrix_heisenbridge_owner: "@you:example.com" +matrix_heisenbridge_owner: "@alice:{{ matrix_domain }}" # Uncomment to enable identd on host port 113/TCP (optional) # matrix_heisenbridge_identd_enabled: true ``` -For a more complete list of variables that you could override, see the [`defaults/main.yml` file](../roles/custom/matrix-bridge-heisenbridge/defaults/main.yml) of the Heisenbridge Ansible role. - -### Adjusting the Heisenbridge URL - -By default, this playbook installs Heisenbridge on the `matrix.` subdomain, at the `/heisenbridge` path (https://matrix.example.com/heisenbridge). It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)). - -This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Heisenbridge URL (optional) 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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -39,24 +47,45 @@ matrix_heisenbridge_hostname: heisenbridge.example.com matrix_heisenbridge_path_prefix: / ``` -## Adjusting DNS records +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 adjust your DNS** records to point the Heisenbridge domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the bridge. + +Take a look at: + +- `roles/custom/matrix-bridge-heisenbridge/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -After the bridge is successfully running just DM `@heisenbridge:example.com` to start setting it up. If the bridge ignores you and a DM is not accepted then the owner setting may be wrong. +To use the bridge, you need to start a chat with `@heisenbridge:example.com` (where `example.com` is your base domain, not the `matrix.` domain). If the bridge ignores you and a DM is not accepted then the owner setting may be wrong. Help is available for all commands with the `-h` switch. You can also learn the basics by watching [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I). If you encounter issues or feel lost you can join the project room at [#heisenbridge:vi.fi](https://matrix.to/#/#heisenbridge:vi.fi) for help. + +## 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-heisenbridge`. diff --git a/docs/configuring-playbook-bridge-hookshot.md b/docs/configuring-playbook-bridge-hookshot.md index ebc75f122..fc637d853 100644 --- a/docs/configuring-playbook-bridge-hookshot.md +++ b/docs/configuring-playbook-bridge-hookshot.md @@ -1,46 +1,94 @@ + + # Setting up matrix-hookshot (optional) The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you. -Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, JIRA, and Figma, as well as generic webhooks. +Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, Jira, and Figma, as well as generic webhooks. -See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/latest/hookshot.html) to learn what it does in detail and why it might be useful to you. +See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/latest/hookshot.html) to learn what it does and why it might be useful to you. **Note**: the playbook also supports [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), which however was deprecated by its author. +## Prerequisites -## Setup Instructions +### Download GitHub app private key (optional) -Refer to the [official instructions](https://matrix-org.github.io/matrix-hookshot/latest/setup.html) to learn what the individual options do. +If you're setting up the GitHub bridge, you need to create your GitHub app, and generate a private key file of it. -1. Enable the bridge by adding `matrix_hookshot_enabled: true` to your `vars.yml` file -2. For each of the services (GitHub, GitLab, Jira, Figma, generic webhooks) fill in the respective variables `matrix_hookshot_service_*` listed in [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required. -3. Take special note of the `matrix_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab, Generic), while you must first add the required configuration and enable the others (GitHub, Jira, Figma). -4. If you're setting up the GitHub bridge, you'll need to generate and download a private key file after you created your GitHub app. Copy the contents of that file to the variable `matrix_hookshot_github_private_key` so the playbook can install it for you, or use one of the [other methods](#manage-github-private-key-with-aux-role) explained below. -5. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. Hookshot can be set up individually using the tag `setup-hookshot`. +You need to download the private key file, if you will install the file manually or with the `aux` role. For details, see [the section below](#manage-github-private-key-with-aux-role). -Other configuration options are available via the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables, see the comments in [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml) for how to use them. +## Adjusting the playbook configuration -Finally, run the playbook (see [installing](installing.md)). +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). -### End-to-bridge encryption +```yaml +matrix_hookshot_enabled: true -You can enable [experimental encryption](https://matrix-org.github.io/matrix-hookshot/latest/advanced/encryption.html) for Hookshot by adding `matrix_hookshot_experimental_encryption_enabled: true` to your configuration (`vars.yml`) and [executing the playbook](installing.md) again. +# Uncomment to enable end-to-bridge encryption. +# See: https://matrix-org.github.io/matrix-hookshot/latest/advanced/encryption.html +# matrix_hookshot_experimental_encryption_enabled: true -Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added, for example `ansible-playbook -i inventory/hosts setup.yml -K --tags=reset-hookshot-encryption`. +# 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. +# matrix_hookshot_github_private_key: "GITHUB_PRIVATE_KEY_HERE" +``` + +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. + +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). + +### Extending the configuration + +There are some additional things you may wish to configure about the bridge. + +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/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. + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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-service hookshot` or `just setup-all` + +`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. ## Usage -Create a room and invite the Hookshot bot (`@hookshot:example.com`) to it. +To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it. Make sure the bot is able to send state events (usually the Moderator power level in clients). -Send a `!hookshot help` message to see a list of help commands. +Send `!hookshot help` to the bot to see the available commands. 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. -**Important**: Note that 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. +💡 **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. +### Reset crypto store + +Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added: + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=reset-hookshot-encryption +``` ## More setup documentation @@ -48,30 +96,31 @@ Refer to [Hookshot's documentation](https://matrix-org.github.io/matrix-hookshot Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled). -| listener | default path | variable | used as | +| Listener | Default path | Variable | Used as | |---|---|---|---| | - | `/hookshot/webhooks/` | `matrix_hookshot_webhook_endpoint` | Webhook-prefix, which affects all webhook-related URLs below | | generic | `/hookshot/webhooks/webhook` | `matrix_hookshot_generic_endpoint` | Generic webhooks | | github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" | -| jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_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_hookshot_figma_endpoint` | Figma | | provisioning | `/hookshot/v1/` | `matrix_hookshot_provisioning_endpoint` | Dimension [provisioning](#provisioning-api) | | appservice | `/hookshot/_matrix/app/` | `matrix_hookshot_appservice_endpoint` | Matrix server | | widgets | `/hookshot/widgetapi/` | `matrix_hookshot_widgets_endpoint` | Widgets | -| metrics | `/metrics/hookshot` | `matrix_hookshot_metrics_enabled` and exposure enabled via `matrix_hookshot_metrics_proxying_enabled` or `matrix_metrics_exposure_enabled`. Read more in the [Metrics section](#metrics) below. | Prometheus | -Also see the various `matrix_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_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. +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 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_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_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. -To use the `aux` role, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add the following additional configuration: +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 aux_file_definitions: - dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}" @@ -80,25 +129,62 @@ aux_file_definitions: owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" ``` + 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). ### Provisioning API -The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with dimension, you will need to enter as "Provisioning URL": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`. - -### Metrics - -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. - -To explicitly enable metrics, use `matrix_hookshot_metrics_enabled: true`. This only exposes metrics over the container network, however. - -**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: - -- either enabling metrics exposure for Hookshot via `matrix_hookshot_metrics_proxying_enabled: true` -- or enabling metrics exposure for all services via `matrix_metrics_exposure_enabled: true` - -Whichever one you go with, by default metrics are exposed publicly **without** password-protection. See [the Prometheus and Grafana docs](configuring-playbook-prometheus-grafana.md) for details about password-protection for metrics. +The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with Dimension, you will need to enter as "Provisioning URL": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`. ### Collision with matrix-appservice-webhooks If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`). + +### Enable metrics + +The playbook can enable and configure the metrics of the service for you. + +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. + +To enable the metrics, add the following configuration to your `vars.yml` file: + +```yaml +# Expose metrics (locally, on the container network). +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: + +```yaml +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: + +```yaml +matrix_hookshot_container_labels_metrics_middleware_basic_auth_enabled: true +matrix_hookshot_container_labels_metrics_middleware_basic_auth_users: '' +``` + +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. + +#### Enable Grafana (optional) + +Probably you wish to enable Grafana along with Prometheus for generating graphs of the metics. + +To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions. + +## 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-hookshot`. + +### 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: error, warn, info, debug +matrix_hookshot_logging_level: debug +``` diff --git a/docs/configuring-playbook-bridge-matrix-bridge-sms.md b/docs/configuring-playbook-bridge-matrix-bridge-sms.md index 6ac1e686a..d0a1e99fa 100644 --- a/docs/configuring-playbook-bridge-matrix-bridge-sms.md +++ b/docs/configuring-playbook-bridge-matrix-bridge-sms.md @@ -1,10 +1,20 @@ + + # Setting up Matrix SMS bridging (optional) The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md) to learn what it does and why it might be useful to you. -**The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first.** +## Prerequisite + +The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first. ## Adjusting the playbook configuration @@ -28,13 +38,37 @@ 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. matrix_sms_bridge_provider_android_truststore_local_path: android-sms-gateway-server.p12 matrix_sms_bridge_provider_android_truststore_password: 123 - ``` +### Extending the configuration + +There are some additional things you may wish to configure about the bridge. + +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_sms_bridge_configuration_extension_yaml` variable + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works. + +## 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-sms-bridge`. diff --git a/docs/configuring-playbook-bridge-mautrix-bluesky.md b/docs/configuring-playbook-bridge-mautrix-bluesky.md new file mode 100644 index 000000000..fac227c78 --- /dev/null +++ b/docs/configuring-playbook-bridge-mautrix-bluesky.md @@ -0,0 +1,73 @@ + + +# Setting up Mautrix Bluesky bridging (optional) + +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + +The playbook can install and configure [mautrix-bluesky](https://github.com/mautrix/bluesky) for you, which provides a bridge to [Bluesky](https://bsky.social/about). + +See the project's [documentation](https://github.com/mautrix/bluesky/blob/master/README.md) 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) service 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_mautrix_bluesky_enabled: true +``` + +### Extending the configuration + +There are some additional things you may wish to configure about the 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: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` + +**Notes**: + +- 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. + +## Usage + +To use the bridge, you need to start a chat with `@blueskybot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/bluesky/authentication.html). + +After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages. + +## 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-bluesky`. + +### 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_mautrix_bluesky_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-bridges.md b/docs/configuring-playbook-bridge-mautrix-bridges.md new file mode 100644 index 000000000..557e1a9a4 --- /dev/null +++ b/docs/configuring-playbook-bridge-mautrix-bridges.md @@ -0,0 +1,222 @@ + + +# Setting up a Generic Mautrix Bridge (optional) + +The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, discord, signal, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges. + +The author of the bridges maintains [the official docs](https://docs.mau.fi/bridges/index.html), whose source code is available at [mautrix/docs](https://github.com/mautrix/docs) repository on GitHub. You may as well to refer it while configuring them. + +You can see each bridge's features on the `ROADMAP.md` file in its corresponding mautrix repository. + +## Adjusting the playbook configuration + +To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: + +```yaml +# Replace SERVICENAME with one of: twitter, discord, signal, googlechat, etc. +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_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. **`matrix_mautrix_facebook_*` and `matrix_mautrix_instagram_*` variables belong to the deprecated components and do not control the new bridge** ([mautrix-meta](https://github.com/mautrix/meta)), which can be [installed using this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). + +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) + +By default any user on your homeserver will be able to use the mautrix bridges. To limit who can use them you would need to configure their permissions settings. + +Different levels of permission can be granted to users. For example, to **configure a user as an administrator for all bridges**, add the following configuration to your `vars.yml` file: + +```yaml +matrix_admin: "@alice:{{ matrix_domain }}" +``` + +If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @alice:example.com`), then there's no admin by default. + +**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with: + +```yaml +matrix_mautrix_SERVICENAME_configuration_extension_yaml: | + bridge: + permissions: + '@alice:{{ matrix_domain }}': admin +``` + +This will add the admin permission to the specific user, while keeping the default permissions. + +You could also redefine the default permissions settings completely, rather than adding extra permissions. You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` to find information on the permission settings and other options you would like to configure. + +### Enable encryption (optional) + +[Encryption (End-to-Bridge Encryption, E2BE) support](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) is off by default. If you would like to enable encryption, add the following configuration to your `vars.yml` file: + +**for all bridges with encryption support**: + +```yaml +matrix_bridges_encryption_enabled: true +matrix_bridges_encryption_default: true +``` + +**Alternatively**, for a specific bridge: + +```yaml +matrix_mautrix_SERVICENAME_bridge_encryption_enabled: true +matrix_mautrix_SERVICENAME_bridge_encryption_default: true +``` + +### Enable relay mode (optional) + +[Relay mode](https://docs.mau.fi/bridges/general/relay-mode.html) is off by default. Check [the table on the official documentation](https://docs.mau.fi/bridges/general/relay-mode.html#support-table) for bridges which support relay mode. + +If you would like to enable it, add the following configuration to your `vars.yml` file: + +**for all bridges with relay mode support**: + +```yaml +matrix_bridges_relay_enabled: true +``` + +**Alternatively**, for a specific bridge: + +```yaml +matrix_mautrix_SERVICENAME_configuration_extension_yaml: | + bridge: + relay: + enabled: true +``` + +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 +matrix_mautrix_SERVICENAME_configuration_extension_yaml: | + bridge: + relay: + enabled: true + permissions: + '@alice:{{ matrix_domain }}': admin + encryption: + allow: true + default: true +``` + +If you want to activate the relaybot in a room, send `!prefix set-relay` in the rooms where you want to use the bot (replace `!prefix` with the appropriate command prefix for the bridge, like `!signal` or `!wa`). To deactivate, send `!prefix unset-relay`. + +Use `!prefix set-pl 100` to be able for the bot to modify room settings and invite others. + +#### Allow anyone on the homeserver to become a relay user (optional) + +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 +matrix_mautrix_SERVICENAME_bridge_relay_admin_only: false +``` + +### Set the bot's username (optional) + +To set the bot's username, add the following configuration to your `vars.yml` file: + +```yaml +matrix_mautrix_SERVICENAME_appservice_bot_username: "BOTNAME" +``` + +### Configure the logging level (optional) + +To specify the logging level, add the following configuration to your `vars.yml` file: + +```yaml +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`. + +If you have issues with a service, and are requesting support, the higher levels of logging (those that appear earlier in the list, like `trace`) will generally be more helpful. + +### Extending the configuration + +There are some additional things you may wish to configure about the bridge. + +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/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 + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +## Usage + +To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +For details about the next steps, refer to each bridge's individual documentation page. + +Send `help` to the bot to see the available commands. + +If you run into trouble, check the [Troubleshooting](#troubleshooting) section below. + +### Set up Double Puppeting (optional) + +After successfully enabling bridging, you may wish to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do). + +To set it up, you have 2 ways of going about it. + +#### Method 1: automatically, by enabling Appservice Double Puppet (recommended) + +To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html), you could enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. + +Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver. + +To enable the Appservice Double Puppet service, add the following configuration to your `vars.yml` file: + +```yaml +matrix_appservice_double_puppet_enabled: true +``` + +When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method. + +This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. + +**Notes**: + +- 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). + + +- 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 + +When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: + +- retrieve a Matrix access token for yourself. Refer to the documentation on [how to obtain one](obtaining-access-tokens.md). + +- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` + +- make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature + +## Troubleshooting + +For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge. + +If the bridge's bot doesn't accept the invite to a chat, refer [the official troubleshooting page](https://docs.mau.fi/bridges/general/troubleshooting.html) as well. + +If you found bugs in mautrix bridges, they should be reported to the upstream project, in the corresponding mautrix repository, not to us. diff --git a/docs/configuring-playbook-bridge-mautrix-discord.md b/docs/configuring-playbook-bridge-mautrix-discord.md index ee736cda0..12d9f243d 100644 --- a/docs/configuring-playbook-bridge-mautrix-discord.md +++ b/docs/configuring-playbook-bridge-mautrix-discord.md @@ -1,5 +1,19 @@ + + # Setting up Mautrix Discord bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + **Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) bridges supported by the playbook. - For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing. - For personal use with a discord account we recommend the `mautrix-discord` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook. @@ -8,13 +22,20 @@ The playbook can install and configure [mautrix-discord](https://github.com/maut See the project's [documentation](https://docs.mau.fi/bridges/go/discord/index.html) to learn what it does and why it might be useful to you. - ## Prerequisites There are 2 ways to login to discord using this bridge, either by [scanning a QR code](#method-1-login-using-qr-code-recommended) using the Discord mobile app **or** by using a [Discord token](#method-2-login-using-discord-token-not-recommended). If this is a dealbreaker for you, consider using one of the other Discord bridges supported by the playbook: [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) or [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md). These come with their own complexity and limitations, however, so we recommend that you proceed with this one if possible. +### Enable Appservice Double Puppet or Shared Secret Auth (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. + +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: @@ -23,77 +44,55 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_discord_enabled: true ``` -You may optionally wish to add some [Additional configuration](#additional-configuration), or to [prepare for double-puppeting](#set-up-double-puppeting) before the initial installation. - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: - -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` - -To make use of the bridge, see [Usage](#usage) below. - - -### Additional configuration +### Extending the configuration There are some additional things you may wish to configure about the bridge. -Take a look at: + +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. -- `roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml` for some variables that you can customize via your `vars.yml` file -- `roles/custom/matrix-bridge-mautrix-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_mautrix_discord_configuration_extension_yaml` variable +## Installing +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -### Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -#### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. - -#### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Discord` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -### Logging in +To use the bridge, you need to start a chat with `@discordbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -#### Method 1: Login using QR code (recommended) +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/discord/authentication.html). -For using this bridge, you would need to authenticate by **scanning a QR code** with the Discord app on your phone. +After logging in, the bridge will create portal rooms for some recent direct messages. -You can delete the Discord app after the authentication process. +### Bridge guilds -#### Method 2: Login using Discord token (not recommended) +If you'd like to bridge guilds, send `guilds status` to see the list of guilds, then send `guilds bridge GUILD_ID_HERE` for each guild that you'd like bridged. Make sure to replace `GUILD_ID_HERE` with the guild's ID. -To acquire the token, open Discord in a private browser window. Then open the developer settings (keyboard shortcut might be "ctrl+shift+i" or by pressing "F12"). Navigate to the "Network" tab then reload the page. In the URL filter or search bar type "/api" and find the response with the file name of "library". Under the request headers you should find a variable called "Authorization", this is the token to your Discord account. After copying the token, you can close the browser window. +After bridging, spaces will be created automatically, and rooms will be created if necessary when messages are received. You can also pass `--entire` to the bridge command to immediately create all rooms. -### Bridging +If you want to manually bridge channels, invite the bot to the room you want to bridge, and run `!discord bridge CHANNEL_ID_HERE` to bridge the room. Make sure to replace `CHANNEL_ID_HERE` with the channel's ID. -1. Start a chat with `@discordbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -2. If you would like to login to Discord using a token, send `login-token` command, otherwise, send `login-qr` command. -3. You'll see a QR code which you need to scan with the Discord app on your phone. You can scan it with the camera app too, which will open Discord, which will then instruct you to scan it a 2nd time in the Discord app. -4. After confirming (in the Discord app) that you'd like to allow this login, the bot should respond with "Succcessfully authenticated as ..." -5. Now that you're logged in, you can send a `help` command to the bot again, to see additional commands you have access to -6. Some Direct Messages from Discord should start syncing automatically -7. If you'd like to bridge guilds: - - send `guilds status` to see the list of guilds - - for each guild that you'd like bridged, send `guilds bridge GUILD_ID --entire` -8. You may wish to uninstall the Discord app from your phone now. It's not needed for the bridge to function. +## 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-discord`. + +### 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_mautrix_discord_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-facebook.md b/docs/configuring-playbook-bridge-mautrix-facebook.md index 9b881b1d8..b741edbf6 100644 --- a/docs/configuring-playbook-bridge-mautrix-facebook.md +++ b/docs/configuring-playbook-bridge-mautrix-facebook.md @@ -1,10 +1,34 @@ + + # Setting up Mautrix Facebook bridging (optional, deprecated) -**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). Consider using that bridge instead of this one. +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + +**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be [installed using this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). Consider using that bridge instead of this one. The playbook can install and configure [mautrix-facebook](https://github.com/mautrix/facebook) for you. -See the project's [documentation](https://github.com/mautrix/facebook/blob/master/ROADMAP.md) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/mautrix/facebook/blob/master/README.md) to learn what it does and why it might be useful to you. + +## Prerequisite (optional) + +### Enable Shared Secret Auth + +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. + +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 @@ -14,79 +38,49 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_facebook_enabled: true ``` -There are some additional things you may wish to configure about the bridge before you continue. +### Extending the configuration -Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file: -```yaml -matrix_mautrix_facebook_configuration_extension_yaml: | - bridge: - encryption: - allow: true - default: true -``` +There are some additional things you may wish to configure about the bridge. -If you would like to be able to administrate the bridge from your account it can be configured like this: -```yaml -matrix_mautrix_facebook_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:{{ matrix_domain }}': admin -``` - -Using both would look like - -```yaml -matrix_mautrix_facebook_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:{{ matrix_domain }}': admin - encryption: - allow: true - default: true -``` - -You may wish to look at `roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-facebook/defaults/main.yml` to find other things you would like to configure. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Shared Secret Auth +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. - -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Facebook` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@facebookbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@facebookbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -Send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account. You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/facebook/authentication.html). +You then need to send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account. If you run into trouble, check the [Troubleshooting](#troubleshooting) section below. -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so. - - ## 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-facebook`. + +### 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_mautrix_facebook_logging_level: DEBUG +``` + ### Facebook rejecting login attempts and forcing you to change password If your Matrix server is in a wildly different location than where you usually use your Facebook account from, the bridge's login attempts may be outright rejected by Facebook. Along with that, Facebook may even force you to change the account's password. @@ -97,7 +91,7 @@ The easiest way to do this may be to use [sshuttle](https://sshuttle.readthedocs Example command for proxying your traffic through the Matrix server: -``` +```sh sshuttle -r root@matrix.example.com:22 0/0 ``` diff --git a/docs/configuring-playbook-bridge-mautrix-gmessages.md b/docs/configuring-playbook-bridge-mautrix-gmessages.md index d4913bb11..d9289ec56 100644 --- a/docs/configuring-playbook-bridge-mautrix-gmessages.md +++ b/docs/configuring-playbook-bridge-mautrix-gmessages.md @@ -1,9 +1,27 @@ + + # Setting up Mautrix Google Messages bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-gmessages](https://github.com/mautrix/gmessages) for you, for bridging to [Google Messages](https://messages.google.com/). See the project's [documentation](https://docs.mau.fi/bridges/go/gmessages/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: @@ -12,33 +30,47 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_gmessages_enabled: true ``` +### Extending the configuration + +There are some additional things you may wish to configure about the 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 the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-gmessages` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@gmessagesbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@gmessagesbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/gmessages/authentication.html). + +After logging in, the bridge will create portal rooms for recent chats. + +## 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-gmessages`. + +### 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_mautrix_gmessages_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-googlechat.md b/docs/configuring-playbook-bridge-mautrix-googlechat.md index 505fecd41..5fd1ef99b 100644 --- a/docs/configuring-playbook-bridge-mautrix-googlechat.md +++ b/docs/configuring-playbook-bridge-mautrix-googlechat.md @@ -1,9 +1,30 @@ + + # Setting up Mautrix Google Chat bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-googlechat](https://github.com/mautrix/googlechat) for you. See the project's [documentation](https://docs.mau.fi/bridges/python/googlechat/index.html) to learn what it does and why it might be useful to you. +## Prerequisite (optional) + +### Enable Appservice Double Puppet or Shared Secret Auth + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. + +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 [Google Chat](https://chat.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -12,46 +33,46 @@ To enable the [Google Chat](https://chat.google.com/) bridge, add the following matrix_mautrix_googlechat_enabled: true ``` +### Extending the configuration + +There are some additional things you may wish to configure about the 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 the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. - - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-googlechat` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -Once the bot is enabled you need to start a chat with `googlechat bridge bot` with handle `@googlechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@googlechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -Send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions. +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html). -Automatic login may not work. If it does not, reload the page and select the "Manual login" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools. +After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages. -Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages. +## Troubleshooting -You can learn more about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html). +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-googlechat`. -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so. +### 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_mautrix_googlechat_logging_level: DEBUG +``` diff --git a/docs/configuring-playbook-bridge-mautrix-hangouts.md b/docs/configuring-playbook-bridge-mautrix-hangouts.md index 3a4a11736..ce655cf58 100644 --- a/docs/configuring-playbook-bridge-mautrix-hangouts.md +++ b/docs/configuring-playbook-bridge-mautrix-hangouts.md @@ -1,57 +1,27 @@ -# Setting up Mautrix Hangouts bridging (optional, deprecated) + -The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you. +# Setting up Mautrix Hangouts bridging (optional, removed) -See the project's [documentation](https://docs.mau.fi/bridges/python/hangouts/index.html) to learn what it does and why it might be useful to you. +🪦 The playbook used to be able to install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts), but no longer includes this component, because Google Hangouts has been discontinued since the 1st of November 2022. -## Adjusting the playbook configuration +You may wish to use the [Google Chat bridge](https://github.com/mautrix/googlechat) instead. -To enable the [Google Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +## Uninstalling the bridge manually -```yaml -matrix_mautrix_hangouts_enabled: true +If you still have the Hangouts bridge 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: + +```sh +systemctl disable --now matrix-mautrix-hangouts.service + +rm -rf /matrix/mautrix-hangouts + +/matrix/postgres/bin/cli-non-interactive 'DROP DATABASE matrix_mautrix_hangouts;' ``` - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` - -## Set up Double Puppeting - -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. - -### Method 1: automatically, by enabling Shared Secret Auth - -The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. - -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Hangouts` device some time in the future, as that would break the Double Puppeting feature - - -## Usage - -Once the bot is enabled you need to start a chat with `Hangouts bridge bot` with handle `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). - -Send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions. - -Automatic login may not work. If it does not, reload the page and select the "Manual login" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools. - -Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages. - -You can learn more about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/hangouts/authentication.html). - -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so. diff --git a/docs/configuring-playbook-bridge-mautrix-instagram.md b/docs/configuring-playbook-bridge-mautrix-instagram.md index b9130faf0..0af621b6a 100644 --- a/docs/configuring-playbook-bridge-mautrix-instagram.md +++ b/docs/configuring-playbook-bridge-mautrix-instagram.md @@ -1,10 +1,21 @@ + + # Setting up Mautrix Instagram bridging (optional, deprecated) -**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-instagram.md). Consider using that bridge instead of this one. +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + +**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be [installed using this playbook](configuring-playbook-bridge-mautrix-meta-instagram.md). Consider using that bridge instead of this one. The playbook can install and configure [mautrix-instagram](https://github.com/mautrix/instagram) for you. -See the project's [documentation](https://docs.mau.fi/bridges/python/instagram/index.html) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/mautrix/instagram/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -14,40 +25,43 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_instagram_enabled: true ``` -There are some additional things you may wish to configure about the bridge before you continue. +### Extending the configuration -Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file: -```yaml -matrix_mautrix_instagram_configuration_extension_yaml: | - bridge: - encryption: - allow: true - default: true -``` +There are some additional things you may wish to configure about the bridge. -If you would like to be able to administrate the bridge from your account it can be configured like this: -```yaml -# The easy way. The specified Matrix user ID will be made an admin of all bridges -matrix_admin: "@YOUR_USERNAME:{{ matrix_domain }}" - -# OR: -# The more verbose way. Applies to this bridge only. You may define multiple Matrix users as admins. -matrix_mautrix_instagram_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:example.com': admin -``` - -You may wish to look at `roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-instagram/defaults/main.yml` to find other things you would like to configure. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -You then need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -Send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account. +You then need to send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account. -You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/instagram/authentication.html). +## 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-instagram`. + +### 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_mautrix_instagram_logging_level: DEBUG +``` diff --git a/docs/configuring-playbook-bridge-mautrix-meta-instagram.md b/docs/configuring-playbook-bridge-mautrix-meta-instagram.md index 9b2b44313..c53a22aba 100644 --- a/docs/configuring-playbook-bridge-mautrix-meta-instagram.md +++ b/docs/configuring-playbook-bridge-mautrix-meta-instagram.md @@ -1,13 +1,25 @@ + + # Setting up Instagram bridging via Mautrix Meta (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you. +See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you. + Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`). This documentation page only deals with the bridge's ability to bridge to Instagram. For bridging to Facebook/Messenger, see [Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md). +## Prerequisites -## Migrating from the old mautrix-instagram bridge +### Migrating from the old mautrix-instagram bridge 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: @@ -18,6 +30,11 @@ To do so, send a `clean-rooms` command to the management room with the old bridg Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages. +### Enable Appservice Double Puppet (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. + +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 @@ -29,64 +46,46 @@ 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. -### Bridge permissions +### Extending the configuration -By default, any user on your homeserver will be able to use the bridge. +There are some additional things you may wish to configure about the bridge. -Different levels of permission can be granted to users: - -- `relay` - Allowed to be relayed through the bridge, no access to commands -- `user` - Use the bridge with puppeting -- `admin` - Use and administer the bridge - -The permissions are following the sequence: nothing < `relay` < `user` < `admin`. - -The default permissions are set via `matrix_mautrix_meta_instagram_bridge_permissions_default` and are somewhat like this: -```yaml -matrix_mautrix_meta_instagram_bridge_permissions_default: - '*': relay - example.com: user - '{{ matrix_admin }}': admin -``` - -If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @user:example.com`), then there's no admin by default. - -You may redefine `matrix_mautrix_meta_instagram_bridge_permissions_default` any way you see fit, or add extra permissions using `matrix_mautrix_meta_instagram_bridge_permissions_custom` like this: - -```yaml -matrix_mautrix_meta_instagram_bridge_permissions_custom: - '@YOUR_USERNAME:example.com': admin -``` - -You may wish to look at `roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2` to find more information on the permissions settings and other options you would like to configure. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html). + +After logging in, the bridge will sync recent chats. + +## 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-meta-instagram`. + +### 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 +# This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace +matrix_mautrix_meta_instagram_logging_min_level: debug +``` diff --git a/docs/configuring-playbook-bridge-mautrix-meta-messenger.md b/docs/configuring-playbook-bridge-mautrix-meta-messenger.md index 571805bbe..b1bffc7d0 100644 --- a/docs/configuring-playbook-bridge-mautrix-meta-messenger.md +++ b/docs/configuring-playbook-bridge-mautrix-meta-messenger.md @@ -1,13 +1,26 @@ + + # Setting up Messenger bridging via Mautrix Meta (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you. +See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you. + Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`). This documentation page only deals with the bridge's ability to bridge to Facebook Messenger. For bridging to Instagram, see [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md). +## Prerequisites -## Migrating from the old mautrix-facebook bridge +### Migrating from the old mautrix-facebook bridge If you've been using the [mautrix-facebook](./configuring-playbook-bridge-mautrix-facebook.md) bridge, it's possible to migrate the database using [instructions from the bridge documentation](https://docs.mau.fi/bridges/go/meta/facebook-migration.html) (advanced). @@ -17,6 +30,12 @@ Then, consider disabling the old bridge in your configuration, so it won't recre **Note**: the user ID of the new bridge bot is `@messengerbot:example.com`, not `@facebookbot:example.com`. After disabling the old bridge, its bot user will stop responding to a command. +### Enable Appservice Double Puppet (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. + +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: @@ -34,76 +53,55 @@ As mentioned above, the [mautrix-meta](https://github.com/mautrix/meta) bridge s The bridge can pull your Messenger messages via 3 different methods: - (`facebook`) Facebook via `facebook.com` -- (`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 +- (`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 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.). +### Extending the configuration -### Bridge permissions +There are some additional things you may wish to configure about the bridge. -By default, any user on your homeserver will be able to use the bridge. - -Different levels of permission can be granted to users: - -- `relay` - Allowed to be relayed through the bridge, no access to commands -- `user` - Use the bridge with puppeting -- `admin` - Use and administer the bridge - -The permissions are following the sequence: nothing < `relay` < `user` < `admin`. - -The default permissions are set via `matrix_mautrix_meta_messenger_bridge_permissions_default` and are somewhat like this: -```yaml -matrix_mautrix_meta_messenger_bridge_permissions_default: - '*': relay - example.com: user - '{{ matrix_admin }}': admin -``` - -If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @user:example.com`), then there's no admin by default. - -You may redefine `matrix_mautrix_meta_messenger_bridge_permissions_default` any way you see fit, or add extra permissions using `matrix_mautrix_meta_messenger_bridge_permissions_custom` like this: - -```yaml -matrix_mautrix_meta_messenger_bridge_permissions_custom: - '@YOUR_USERNAME:example.com': admin -``` - -You may wish to look at `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2` to find more information on the permissions settings and other options you would like to configure. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@messengerbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Note that the user ID of the bridge's bot is not `@facebookbot:example.com`. +To use the bridge, you need to start a chat with `@messengerbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Note that the user ID of the bridge's bot is not `@facebookbot:example.com`. -You then need to send a `login` command and follow the bridge bot's instructions. +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html). -Given that the bot is configured in `messenger` [bridge mode](#bridge-mode) by default, you will need to log in to [messenger.com](https://messenger.com/) (not `facebook.com`!) and obtain the cookies from there as per [the bridge's authentication instructions](https://docs.mau.fi/bridges/go/meta/authentication.html). +After logging in, the bridge will sync recent chats. + +**Note**: given that the bot is configured in `messenger` [bridge mode](#bridge-mode) by default, you will need to log in to [messenger.com](https://messenger.com/) (not `facebook.com`!) and obtain the cookies from there. + +## 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-meta-messenger`. + +### 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 +# This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace +matrix_mautrix_meta_messenger_logging_min_level: debug +``` diff --git a/docs/configuring-playbook-bridge-mautrix-signal.md b/docs/configuring-playbook-bridge-mautrix-signal.md index 07b9638ac..ce94e6a00 100644 --- a/docs/configuring-playbook-bridge-mautrix-signal.md +++ b/docs/configuring-playbook-bridge-mautrix-signal.md @@ -1,12 +1,40 @@ + + # Setting up Mautrix Signal bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-signal](https://github.com/mautrix/signal) for you. -See the project's [documentation](https://docs.mau.fi/bridges/python/signal/index.html) to learn what it does and why it might be useful to you. +See the project's [documentation](https://docs.mau.fi/bridges/go/signal/index.html) to learn what it does and why it might be useful to you. -**Note/Prerequisite**: 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_mautrix_signal_database_*`). +## Prerequisites (optional) -**Note**: This revamped version of the [mautrix-signal (legacy)](configuring-playbook-bridge-mautrix-signal.md) may increase the CPU usage of your homeserver. +### Prepare Postgres database on external Postgres server + +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_mautrix_signal_database_*`). + +### 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) service 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 @@ -16,71 +44,48 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_signal_enabled: true ``` -There are some additional things you may wish to configure about the bridge before you continue. +### Extending the configuration -By default, any user on your homeserver will be able to use the bridge. +There are some additional things you may wish to configure about the bridge. -Different levels of permission can be granted to users: - -* relay - Allowed to be relayed through the bridge, no access to commands; -* user - Use the bridge with puppeting; -* admin - Use and administer the bridge. - -The permissions are following the sequence: nothing < relay < user < admin. - -The default permissions are set as follows: -```yaml -permissions: - '*': relay - example.com: user -``` - -If you want to augment the preset permissions, you might want to set the additional permissions with the following settings in your `vars.yml` file: -```yaml -matrix_mautrix_signal_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:example.com': admin -``` - -This will add the admin permission to the specific user, while keeping the default permissions. - -In case you want to replace the default permissions settings **completely**, populate the following item within your `vars.yml` file: -```yaml -matrix_mautrix_signal_bridge_permissions: - '@ADMIN:example.com': admin - '@USER:example.com' : user -``` - -You may wish to look at `roles/custom/matrix-bridge-mautrix-signal/templates/config.yaml.j2` to find more information on the permissions settings and other options you would like to configure. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Signal` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@signalbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@signalbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/signal/authentication.html). + +After logging in, the bridge will bridge chats as you receive messages. + +**Note**: Signal does not support any kind of message history (even on official apps), so the bridge won't backfill any messages. + +## 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-signal`. + +### 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_mautrix_signal_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-slack.md b/docs/configuring-playbook-bridge-mautrix-slack.md index 9b5aab6de..27aa5e12f 100644 --- a/docs/configuring-playbook-bridge-mautrix-slack.md +++ b/docs/configuring-playbook-bridge-mautrix-slack.md @@ -1,5 +1,16 @@ + + # Setting up Mautrix Slack bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + **Note**: bridging to [Slack](https://slack.com/) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) bridges supported by the playbook. - For using as a Bot we recommend the [Appservice Slack](configuring-playbook-bridge-appservice-slack.md), because it supports plumbing. Note that it is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued. - For personal use with a slack account we recommend the `mautrix-slack` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Slack bridges supported by the playbook. @@ -10,13 +21,17 @@ See the project's [documentation](https://docs.mau.fi/bridges/go/slack/index.htm See the [features and roadmap](https://github.com/mautrix/slack/blob/main/ROADMAP.md) for more information. - ## Prerequisites For using this bridge, you would need to authenticate by **providing your username and password** (legacy) or by using a **token login**. See more information in the [docs](https://docs.mau.fi/bridges/go/slack/authentication.html). Note that neither of these methods are officially supported by Slack. [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) uses a Slack bot account which is the only officially supported method for bridging a Slack channel. +### Enable Appservice Double Puppet (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. + +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 @@ -26,56 +41,47 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_slack_enabled: true ``` -You may optionally wish to add some [Additional configuration](#additional-configuration), or to [prepare for double-puppeting](#set-up-double-puppeting) before the initial installation. +### Extending the configuration + +There are some additional things you may wish to configure about the 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 the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` -To make use of the bridge, see [Usage](#usage) below. +**Notes**: +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -### Additional configuration - -There are some additional options you may wish to configure with the bridge. - -Take a look at: - -- `roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file -- `roles/custom/matrix-bridge-mautrix-slack/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_slack_configuration_extension_yaml` variable - - -### Set up Double Puppeting - -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. - -#### Method 1: automatically, by enabling Appservice Double Puppet - -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -#### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Slack` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -1. Start a chat with `@slackbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -2. If you would like to login to Slack using a token, send the `login-token` command, otherwise, send the `login-password` command. Read [here](https://docs.mau.fi/bridges/go/slack/authentication.html) on how to retrieve your token and cookie token. -3. The bot should respond with "Successfully logged into for team " -4. Now that you're logged in, you can send a `help` command to the bot again, to see additional commands you have access to. -5. Slack channels should automatically begin bridging if you authenticated using a token. Otherwise, you must wait to receive a message in the channel if you used password authentication. +To use the bridge, you need to start a chat with `@slackbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/slack/authentication.html). + +If you authenticated using a token, the recent chats will be bridged automatically (depending on the `conversation_count` setting). Otherwise (i.e. logging with the Discord application), the chats the bot is in will be bridged automatically. + +## 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-slack`. + +### 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_mautrix_slack_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-telegram.md b/docs/configuring-playbook-bridge-mautrix-telegram.md index 344a45c31..e15fa2d38 100644 --- a/docs/configuring-playbook-bridge-mautrix-telegram.md +++ b/docs/configuring-playbook-bridge-mautrix-telegram.md @@ -1,12 +1,45 @@ + + # Setting up Mautrix Telegram bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-telegram](https://github.com/mautrix/telegram) for you. See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you. +## Prerequisites + +### Obtain a Telegram API key + +To use the bridge, you'd need to obtain an API key from [https://my.telegram.org/apps](https://my.telegram.org/apps). + +### Enable Appservice Double Puppet or Shared Secret Auth (optional) + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. + +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. + +**Notes**: + +- Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future. + +- If you decided to enable Double Puppeting manually, send `login-matrix` to the bot in order to receive an instruction about how to send an access token to it. + ## Adjusting the playbook configuration -You'll need to obtain API keys from [https://my.telegram.org/apps](https://my.telegram.org/apps) and then 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. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`. ```yaml matrix_mautrix_telegram_enabled: true @@ -14,40 +47,11 @@ matrix_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH ``` -## Installing +### Relaying -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +### Enable relay-bot (optional) -## Set up Double Puppeting - -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. - -### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth - -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging. - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send `login-matrix` to the bot and follow instructions about how to send the access token to it - -- make sure you don't log out the `Mautrix-Telegram` device some time in the future, as that would break the Double Puppeting feature - - -## Usage - -You then need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). - -If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `vars.yml` file: ```yaml matrix_mautrix_telegram_bot_token: YOUR_TELEGRAM_BOT_TOKEN @@ -57,17 +61,60 @@ matrix_mautrix_telegram_configuration_extension_yaml: | '*': relaybot ``` -You might also want to give permissions to administrate the bot: -```yaml -matrix_mautrix_telegram_configuration_extension_yaml: | - bridge: - permissions: - '@user:example.com': admin -``` +### Configure a user as an administrator of the bridge (optional) + +You might also want to give permissions to a user to administrate the bot. See [this section](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional) on the common guide for details about it. More details about permissions in this example: https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410 -If you like to exclude all groups from syncing and use the Telgeram-Bridge only for direct chats, you can add the following additional playbook configuration: +### Use the bridge for direct chats only (optional) + +If you want to exclude all groups from syncing and use the Telegram-Bridge only for direct chats, add the following configuration to your `vars.yml` file: + ```yaml matrix_mautrix_telegram_filter_mode: whitelist ``` + +### Extending the configuration + +There are some additional things you may wish to configure about the 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: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. + +## Usage + +To use the bridge, you need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/telegram/authentication.html). + +After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them. Note that the bridge won't automatically create rooms for private chats. + +## 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-telegram`. + +### 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_mautrix_telegram_logging_level: DEBUG +``` diff --git a/docs/configuring-playbook-bridge-mautrix-twitter.md b/docs/configuring-playbook-bridge-mautrix-twitter.md index 6e3c82838..ff8eb8f1f 100644 --- a/docs/configuring-playbook-bridge-mautrix-twitter.md +++ b/docs/configuring-playbook-bridge-mautrix-twitter.md @@ -1,10 +1,29 @@ + + # Setting up Mautrix Twitter bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + **Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) bridge supported by the playbook. The playbook can install and configure [mautrix-twitter](https://github.com/mautrix/twitter) for you. -See the project's [documentation](https://github.com/mautrix/twitter) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/mautrix/twitter/blob/master/README.md) 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) service 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 @@ -14,31 +33,47 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_twitter_enabled: true ``` +### Extending the configuration + +There are some additional things you may wish to configure about the 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 the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. +- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. - -### Method 2: manually, by asking each user to provide a working access token - -This method is currently not available for the Mautrix-Twitter bridge, but is on the [roadmap](https://github.com/mautrix/twitter/blob/master/ROADMAP.md) under Misc/Manual login with `login-matrix` + `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. ## Usage -1. You then need to start a chat with `@twitterbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -2. Send login-cookie to start the login. The bot should respond with instructions on how to proceed. +To use the bridge, you need to start a chat with `@twitterbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -You can learn more here about authentication from the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/twitter/authentication.html). +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html). -After successfully enabling bridging, you may wish to [set up Double Puppeting](#set-up-double-puppeting), if you haven't already done so. +After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages. + +## 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-twitter`. + +### 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_mautrix_twitter_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-whatsapp.md b/docs/configuring-playbook-bridge-mautrix-whatsapp.md index c5533da8f..a00f41155 100644 --- a/docs/configuring-playbook-bridge-mautrix-whatsapp.md +++ b/docs/configuring-playbook-bridge-mautrix-whatsapp.md @@ -1,9 +1,34 @@ + + # Setting up Mautrix Whatsapp bridging (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-whatsapp](https://github.com/mautrix/whatsapp) for you. See the project's [documentation](https://docs.mau.fi/bridges/go/whatsapp/index.html) to learn what it does and why it might be useful to you. +## Prerequisite (optional) + +### Enable Appservice Double Puppet or Shared Secret Auth + +If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. + +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: @@ -12,51 +37,48 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_mautrix_whatsapp_enabled: true ``` -Whatsapp multidevice beta is required, now it is enough if Whatsapp is connected to the Internet every 2 weeks. +### Extending the configuration -The relay bot functionality is off by default. If you would like to enable the relay bot, add the following to your `vars.yml` file: +There are some additional things you may wish to configure about the bridge. -```yaml -matrix_mautrix_whatsapp_bridge_relay_enabled: true -``` - -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 this to your `vars.yml` file: - -```yaml -matrix_mautrix_whatsapp_bridge_relay_admin_only: false -``` - -If you want to activate the relay bot in a room, send `!wa set-relay`. To deactivate, send `!wa unset-relay`. +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -## Set up Double Puppeting + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` -If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. +**Notes**: -### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. -The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook. - -Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future. - -### Method 2: manually, by asking each user to provide a working access token - -**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)). - -When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps: - -- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md). - -- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE` - -- make sure you don't log out the `Mautrix-Whatsapp` device some time in the future, as that would break the Double Puppeting feature +- 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. ## Usage -You then need to start a chat with `@whatsappbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@whatsappbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). + +You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/whatsapp/authentication.html). + +Approximately in a minute after logging in, the bridge will create portal rooms for recent chats. + +**Note**: your linked devices will be logged out if you don’t use your phone for over 14 days (see the official FAQ entry [here](https://faq.whatsapp.com/general/download-and-installation/about-linked-devices)). The bridge will warn you if it doesn't receive any data from the phone over 12 days. + +## 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-whatsapp`. + +### 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_mautrix_whatsapp_logging_level: 'debug' +``` diff --git a/docs/configuring-playbook-bridge-mautrix-wsproxy.md b/docs/configuring-playbook-bridge-mautrix-wsproxy.md index cb0a9280a..25fbb18dd 100644 --- a/docs/configuring-playbook-bridge-mautrix-wsproxy.md +++ b/docs/configuring-playbook-bridge-mautrix-wsproxy.md @@ -1,8 +1,24 @@ + + # Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage (optional) +Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) + The playbook can install and configure [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for you. -See the project's [documentation](https://github.com/mautrix/wsproxy#readme) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/mautrix/wsproxy/blob/master/README.md) to learn what it does and why it might be useful to you. + +## Adjusting DNS records + +By default, this playbook installs wsproxy on the `wsproxy.` subdomain (`wsproxy.example.com`) and requires you to create a CNAME record for `wsproxy`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration @@ -20,29 +36,46 @@ 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. -### Adjusting the wsproxy URL - -By default, this playbook installs wsproxy on the `wsproxy.` subdomain (`wsproxy.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the wsproxy URL (optional) 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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname matrix_mautrix_wsproxy_hostname: ws.example.com ``` -## Adjusting DNS records +After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server. -Once you've decided on the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server. +### Extending the configuration -By default, you will need to create a CNAME record for `wsproxy`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +There are some additional things you may wish to configure about the 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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Follow the [matrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s). +Follow the [mautrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s). + +## 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-wsproxy`. diff --git a/docs/configuring-playbook-bridge-mx-puppet-discord.md b/docs/configuring-playbook-bridge-mx-puppet-discord.md index c4958d4c4..43b3d2522 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-discord.md +++ b/docs/configuring-playbook-bridge-mx-puppet-discord.md @@ -1,12 +1,21 @@ + + # Setting up MX Puppet Discord bridging (optional) -**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook. +**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook. - For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing. - For personal use with a discord account we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook. The playbook can install and configure [mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -18,11 +27,24 @@ matrix_mx_puppet_discord_enabled: true ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled you need to start a chat with `Discord Puppet Bridge` with the handle `@_discordpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `Discord Puppet Bridge` with the handle `@_discordpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-discord [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for more information about how to configure the bridge. @@ -30,4 +52,4 @@ Once logged in, send `list` to the bot user to list the available rooms. Clicking rooms in the list will result in you receiving an invitation to the bridged room. -Also send `help` to the bot to see the commands available. +Send `help` to the bot to see the available commands. diff --git a/docs/configuring-playbook-bridge-mx-puppet-groupme.md b/docs/configuring-playbook-bridge-mx-puppet-groupme.md index 424aa8855..cf3653870 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-groupme.md +++ b/docs/configuring-playbook-bridge-mx-puppet-groupme.md @@ -1,8 +1,17 @@ + + # Setting up MX Puppet GroupMe bridging (optional) The playbook can install and configure [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -14,11 +23,24 @@ matrix_mx_puppet_groupme_enabled: true ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled you need to start a chat with `GroupMe Puppet Bridge` with the handle `@_groupmepuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `GroupMe Puppet Bridge` with the handle `@_groupmepuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). One authentication method is available. @@ -32,4 +54,4 @@ Once logged in, send `listrooms` to the bot user to list the available rooms. Clicking rooms in the list will result in you receiving an invitation to the bridged room. -Also send `help` to the bot to see the commands available. +Send `help` to the bot to see the available commands. diff --git a/docs/configuring-playbook-bridge-mx-puppet-instagram.md b/docs/configuring-playbook-bridge-mx-puppet-instagram.md index 54bd0b011..507b61f8f 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-instagram.md +++ b/docs/configuring-playbook-bridge-mx-puppet-instagram.md @@ -1,3 +1,10 @@ + + # Setting up MX Puppet Instagram bridging (optional) The playbook can install and configure [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) for you. @@ -14,11 +21,24 @@ matrix_mx_puppet_instagram_enabled: true ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled, you need to start a chat with `Instagram Puppet Bridge` with the handle `@_instagrampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `Instagram Puppet Bridge` with the handle `@_instagrampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Send `link ` to the bridge bot to link your instagram account. @@ -32,4 +52,4 @@ For double-puppeting, you probably want to issue these commands: If you are linking only one Instagram account, your `$puppetId` is probably 1, but use the `list` command find out. -The `help` command shows which commands are available, though at the time of writing, not every command is fully implemented. +Send `help` to the bot to see the available commands. At the time of writing, not every command is fully implemented. diff --git a/docs/configuring-playbook-bridge-mx-puppet-skype.md b/docs/configuring-playbook-bridge-mx-puppet-skype.md index bc9d6d534..ffca067d6 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-skype.md +++ b/docs/configuring-playbook-bridge-mx-puppet-skype.md @@ -1,5 +1,13 @@ + + # Setting up MX Puppet Skype bridging (optional, removed) -The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time. +🪦 The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time. Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook. diff --git a/docs/configuring-playbook-bridge-mx-puppet-slack.md b/docs/configuring-playbook-bridge-mx-puppet-slack.md index 18a8dff69..f51c142da 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-slack.md +++ b/docs/configuring-playbook-bridge-mx-puppet-slack.md @@ -1,10 +1,21 @@ + + # Setting up MX Puppet Slack bridging (optional) **Note**: bridging to [Slack](https://slack.com) can also happen via the [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook. Note that `matrix-appservice-slack` is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued. The playbook can install and configure [mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/blob/master/README.md) to learn what it does and why it might be useful to you. ## Prerequisite @@ -23,15 +34,24 @@ matrix_mx_puppet_slack_oauth_client_secret: "" ## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled you need to start a chat with `Slack Puppet Bridge` with the handle `@_slackpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `Slack Puppet Bridge` with the handle `@_slackpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-slack [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for more information about how to configure the bridge. @@ -39,4 +59,4 @@ Once logged in, send `list` to the bot user to list the available rooms. Clicking rooms in the list will result in you receiving an invitation to the bridged room. -Also send `help` to the bot to see the commands available. +Send `help` to the bot to see the available commands. diff --git a/docs/configuring-playbook-bridge-mx-puppet-steam.md b/docs/configuring-playbook-bridge-mx-puppet-steam.md index 08a52bd18..7094b17d2 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-steam.md +++ b/docs/configuring-playbook-bridge-mx-puppet-steam.md @@ -1,8 +1,17 @@ + + # Setting up MX Puppet Steam bridging (optional) The playbook can install and configure [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/icewind1991/mx-puppet-steam/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -14,11 +23,24 @@ matrix_mx_puppet_steam_enabled: true ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled you need to start a chat with `Steam Puppet Bridge` with the handle `@_steampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `Steam Puppet Bridge` with the handle `@_steampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-steam [documentation](https://github.com/icewind1991/mx-puppet-steam) for more information about how to configure the bridge. @@ -26,4 +48,4 @@ Once logged in, send `list` to the bot user to list the available rooms. Clicking rooms in the list will result in you receiving an invitation to the bridged room. -Also send `help` to the bot to see the commands available. +Send `help` to the bot to see the available commands. diff --git a/docs/configuring-playbook-bridge-mx-puppet-twitter.md b/docs/configuring-playbook-bridge-mx-puppet-twitter.md index c84c63e54..2311b6dfd 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-twitter.md +++ b/docs/configuring-playbook-bridge-mx-puppet-twitter.md @@ -1,10 +1,18 @@ + + # Setting up MX Puppet Twitter bridging (optional) **Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) bridge supported by the playbook. The playbook can install and configure [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) for you. -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/Sorunome/mx-puppet-twitter/blob/master/README.md) to learn what it does and why it might be useful to you. ## Prerequisite @@ -25,11 +33,24 @@ matrix_mx_puppet_twitter_environment: '' ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Once the bot is enabled you need to start a chat with `Twitter Puppet Bridge` with the handle `@_twitterpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `Twitter Puppet Bridge` with the handle `@_twitterpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). To log in, use `link` and click the link. @@ -37,4 +58,4 @@ Once logged in, send `list` to the bot user to list the available rooms. Clicking rooms in the list will result in you receiving an invitation to the bridged room. -Also send `help` to the bot to see the commands available. +Send `help` to the bot to see the available commands. diff --git a/docs/configuring-playbook-bridge-postmoogle.md b/docs/configuring-playbook-bridge-postmoogle.md index 799c0fd65..6a21043a7 100644 --- a/docs/configuring-playbook-bridge-postmoogle.md +++ b/docs/configuring-playbook-bridge-postmoogle.md @@ -1,12 +1,19 @@ -# Setting up Postmoogle email bridging (optional) + + +# Setting up Postmoogle email bridging (optional) The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you. Postmoogle is a bridge you can use to have its bot user forward emails to Matrix rooms. It runs an SMTP email server and allows you to assign mailbox addresses to the rooms. -See the project's [documentation](https://github.com/etkecc/postmoogle) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/etkecc/postmoogle/blob/master/README.md) to learn what it does and why it might be useful to you. ## Prerequisites @@ -19,6 +26,18 @@ If you don't open these ports, you will still be able to send emails, but not re 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 + +To make Postmoogle enable its email sending features, you need to configure MX and TXT (SPF, DMARC, and DKIM) records. See the table below for values which need to be specified. + +| Type | Host | Priority | Weight | Port | Target | +|------|--------------------------------|----------|--------|------|------------------------------------| +| MX | `matrix` | 10 | 0 | - | `matrix.example.com` | +| TXT | `matrix` | - | - | - | `v=spf1 ip4:matrix-server-IP -all` | +| TXT | `_dmarc.matrix` | - | - | - | `v=DMARC1; p=quarantine;` | +| TXT | `postmoogle._domainkey.matrix` | - | - | - | get it from `!pm dkim` | + +**Note**: the DKIM record can be retrieved after configuring and installing the bridge's bot. ## Adjusting the playbook configuration @@ -30,7 +49,7 @@ matrix_postmoogle_enabled: true # Uncomment and adjust this part if you'd like to use a username different than the default # matrix_postmoogle_login: postmoogle -# Generate a strong password here. Consider generating it with `pwgen -s 64 1` +# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. matrix_postmoogle_password: PASSWORD_FOR_THE_BOT # Uncomment to add one or more admins to this bridge: @@ -38,29 +57,37 @@ matrix_postmoogle_password: PASSWORD_FOR_THE_BOT # matrix_postmoogle_admins: # - '@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: # # matrix_admin: '@yourAdminAccount:{{ matrix_domain }}' ``` -## Adjusting DNS records +### Extending the configuration -You will also need to add several DNS records so that Postmoogle can send emails. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +There are some additional things you may wish to configure about the bridge. + +Take a look at: + +- `roles/custom/matrix-bridge-postmoogle/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + ```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ``` **Notes**: -- the `ensure-matrix-users-created` playbook tag makes the playbook automatically create a user account of the bridge's bot +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create a user account of the bridge's bot. -- 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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password +- 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. + +- 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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password. ## Usage @@ -68,15 +95,17 @@ To use the bridge, invite the `@postmoogle:example.com` bot user into a room you Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the email address `NAME@matrix.example.com`. Emails sent to that email address will be forwarded to the room. -Send `!pm help` to the room to see the bridge's help menu for additional commands. +Send `!pm help` to the bot in the room to see the available commands. You can also refer to the upstream [documentation](https://github.com/etkecc/postmoogle). -### Debug/Logs +## Troubleshooting -As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-postmoogle` +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-postmoogle`. -The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration: +### Increase logging verbosity + +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 matrix_postmoogle_loglevel: 'DEBUG' diff --git a/docs/configuring-playbook-bridge-wechat.md b/docs/configuring-playbook-bridge-wechat.md index 8e57062e5..2c7590b40 100644 --- a/docs/configuring-playbook-bridge-wechat.md +++ b/docs/configuring-playbook-bridge-wechat.md @@ -1,8 +1,18 @@ + + # Setting up WeChat bridging (optional) -The playbook can install and configure the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge for you (for bridging to the [WeChat](https://www.wechat.com/) network). +The playbook can install and configure [matrix-wechat](https://github.com/duo/matrix-wechat) for you, for bridging to [WeChat](https://www.wechat.com/). -See the project page to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/duo/matrix-wechat/blob/master/README.md) to learn what it does and why it might be useful to you. + +> [!WARNING] +> This bridge does not work against newer versions of Synapse anymore. See [this issue](https://github.com/duo/matrix-wechat/issues/33). Don't even bother installing it. Unless bridge maintenance is resumed and fixes this issue, we have no choice but to remove it from the playbook. ## Adjusting the playbook configuration @@ -12,12 +22,45 @@ To enable the bridge, add the following configuration to your `inventory/host_va matrix_wechat_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-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_wechat_configuration_extension_yaml` variable + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` + +**Notes**: + +- 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. ## Usage -Once the bridge is installed, start a chat with `@wechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). +To use the bridge, you need to start a chat with `@wechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Send `help` to the bot to see the available commands. + +## 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-wechat`. + +### 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 +matrix_wechat_log_level: 'debug' +``` diff --git a/docs/configuring-playbook-cactus-comments.md b/docs/configuring-playbook-cactus-comments.md index 0607e288e..a7f7680a7 100644 --- a/docs/configuring-playbook-cactus-comments.md +++ b/docs/configuring-playbook-cactus-comments.md @@ -1,3 +1,12 @@ + + # Setting up Cactus Comments (optional) The playbook can install and configure the [Cactus Comments](https://cactus.chat) system for you. @@ -8,43 +17,45 @@ See the project's [documentation](https://cactus.chat/docs/getting-started/intro The playbook contains 2 roles for configuring different pieces of the Cactus Comments system: -- `matrix-cactus-comments` - the backend appservice integrating with the Matrix homeserver +- `matrix-cactus-comments` — the backend appservice integrating with the Matrix homeserver -- `matrix-cactus-comments-client` - a static website server serving the [cactus-client](https://cactus.chat/docs/client/introduction/) static assets (`cactus.js` and `styles.css`) +- `matrix-cactus-comments-client` — a static website server serving the [cactus-client](https://cactus.chat/docs/client/introduction/) static assets (`cactus.js` and `styles.css`) You can enable whichever component you need (typically both). -## Configuration +## Adjusting DNS records (optional) + +By default, this playbook installs Cactus Comments' client on the `matrix.` subdomain, at the `/cactus-comments` path (https://matrix.example.com/cactus-comments). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-cactus-comments-client-url-optional) for details about DNS configuration. + +## Adjusting the playbook configuration To enable Cactus Comments, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml -################# -## Cactus Comments ## -################# - # This enables the backend (appservice) matrix_cactus_comments_enabled: true +# This enables client assets static files serving on `https://matrix.example.com/cactus-comments`. +# When the backend (appservice) is enabled, this is also enabled automatically, but we explicitly enable it here. +matrix_cactus_comments_client_enabled: true + +# Uncomment and adjust this part if you'd like to use a username different than the default +# matrix_cactus_comments_user_id: "bot.cactusbot" + # To allow guest comments without users needing to log in, you need to have guest registration enabled. # To do this you need to uncomment one of the following lines (depending if you are using Synapse or Dendrite as a homeserver) # If you don't know which one you use: The default is Synapse ;) # matrix_synapse_allow_guest_access: true # matrix_dendrite_allow_guest_access: true - -# This enables client assets static files serving on `https://matrix.example.com/cactus-comments`. -# When the backend (appservice) is enabled, this is also enabled automatically, -# but we explicitly enable it here. -matrix_cactus_comments_client_enabled: true ``` -### Adjusting the Cactus Comments' client URL - -By default, this playbook installs Cactus Comments' client on the `matrix.` subdomain, at the `/cactus-comments` path (https://matrix.example.com/cactus-comments). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Cactus Comments' client URL (optional) By tweaking the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix to host the client assets at a different location @@ -53,25 +64,44 @@ matrix_cactus_comments_client_hostname: cactus.example.com matrix_cactus_comments_client_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the Cactus Comments' client domain (`cactus.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the Cactus Comments' client domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the components. + +For `matrix-cactus-comments`, take a look at: + +- `roles/custom/matrix-cactus-comments/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + +For `matrix-cactus-comments-client`, take a look at: + +- `roles/custom/matrix-cactus-comments-client/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. + +- 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. ## Usage -Upon starting Cactus Comments, a `bot.cactusbot` user account is created automatically. +To use the component, you need to start a chat with `@bot.cactusbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). -To get started, send a `help` message to the `@bot.cactusbot:example.com` bot to confirm it's working. - -Then, register a site by sending `register ` (where `` is a unique identifier you choose. It does not have to match your domain). You will then be invited into a moderation room. +Then, register a site by sending `register YOUR_SITE_NAME_HERE` (where `YOUR_SITE_NAME_HERE` is a unique identifier you choose. It does not have to match your domain). You will then be invited into a moderation room. Now you are good to go and can embed the comment section on your website! @@ -85,7 +115,7 @@ After including the JavaScript and CSS asset files, insert a `
` where you'd
```` -Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `` with the one that has been registered above: +Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `YOUR_SITE_NAME_HERE` with the one that has been registered above: ```html @@ -111,3 +141,18 @@ Make sure to replace `example.com` with your base domain before you include the ``` **Note**: if the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_path_prefix` variables are tweaked, you would need to adjust the URLs of the assets accordingly. + +## 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-cactus-comments` for the backend appservice or `journalctl -fu matrix-cactus-comments-client` for the server serving the client assets, respectively. + +### Increase logging verbosity + +It is possible to increase logging verbosity for `matrix-cactus-comments-client`. The default logging level for this component is `error`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: + +```yaml +# Controls the SERVER_LOG_LEVEL environment variable. +# See: https://static-web-server.net/configuration/environment-variables/ +# Valid values: error, warn, info, debug, trace +matrix_cactus_comments_client_environment_variable_server_log_level: debug +``` diff --git a/docs/configuring-playbook-client-cinny.md b/docs/configuring-playbook-client-cinny.md index 64ede1606..1cc2e88c7 100644 --- a/docs/configuring-playbook-client-cinny.md +++ b/docs/configuring-playbook-client-cinny.md @@ -1,6 +1,14 @@ + + # Setting up Cinny (optional) -This playbook can install the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you. +The playbook can install and configure the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you. Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of [Element Web](./configuring-playbook-client-element-web.md). @@ -8,6 +16,11 @@ Cinny is a web client focusing primarily on simple, elegant and secure interface - [app.cinny.in](https://app.cinny.in), hosted by the [Cinny](https://cinny.in/) developers +## Adjusting DNS records + +By default, this playbook installs Cinny on the `cinny.` subdomain (`cinny.example.com`) and requires you to create a CNAME record for `cinny`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration @@ -17,29 +30,46 @@ To enable Cinny, add the following configuration to your `inventory/host_vars/ma matrix_client_cinny_enabled: true ``` -### Adjusting the Cinny URL - -By default, this playbook installs Cinny on the `cinny.` subdomain (`cinny.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Cinny URL (optional) By tweaking the `matrix_client_cinny_hostname` variable, you can easily make the service available at a **different hostname** than the default one. -While a `matrix_client_cinny_path_prefix` variable exists for tweaking the path-prefix, it's [not supported anymore](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3701), because Cinny requires an application rebuild (with a tweaked build config) to be functional under a custom path. - -Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to a different domain (`app.example.com`) than the default one (`cinny.example.com`) matrix_client_cinny_hostname: "app.{{ matrix_domain }}" + +# Expose under the /cinny subpath +# matrix_client_cinny_path_prefix: /cinny ``` -## Adjusting DNS records +After changing the domain, **you may need to adjust your DNS** records to point the Cinny domain to the Matrix server. -Once you've decided on the domain, **you may need to adjust your DNS** records to point the Cinny domain to the Matrix server. +**Note**: while there is a `matrix_client_cinny_path_prefix` variable for changing the path where Cinny is served, overriding it is [not possible](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3701), because Cinny requires an application rebuild (with a tweaked build config) to be functional under a custom path. You'd need to serve Cinny at a dedicated subdomain. -By default, you will need to create a CNAME record for `cinny`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've adjusted `matrix_client_cinny_hostname`, you will need to adjust your DNS configuration accordingly. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-client-cinny/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-client-cinny/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_cinny_configuration_extension_json` variable ## Installing -After configuring the playbook and [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-client-cinny`. diff --git a/docs/configuring-playbook-client-element-web.md b/docs/configuring-playbook-client-element-web.md index 35706e4d5..2f2420965 100644 --- a/docs/configuring-playbook-client-element-web.md +++ b/docs/configuring-playbook-client-element-web.md @@ -1,56 +1,83 @@ + + # Configuring Element Web (optional) By default, this playbook installs the [Element Web](https://github.com/element-hq/element-web) Matrix client for you. If that's okay, you can skip this document. +If you'd like to stop the playbook installing the client, see the section [below](#disabling-element-web) to check the configuration for disabling it. + 💡 **Note**: the latest version of Element Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting (by [disabling Element Web](#disabling-element-web)): - [app.element.io](https://app.element.io/), hosted by [Element](https://element.io/) - [app.etke.cc](https://app.etke.cc/), hosted by [etke.cc](https://etke.cc/) +## Adjusting DNS records -## Disabling Element Web - -If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -matrix_client_element_enabled: false -``` +By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to create a CNAME record for `element`, which targets `matrix.example.com`. +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration -The playbook provides some customization variables you could use to change Element Web's settings. +### Set the country code for phone number inputs -Their defaults are defined in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml) and they ultimately end up in the generated `/matrix/element/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-element/templates/config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2) template. - -**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes. - -Alternatively, **if there is no pre-defined variable** for an Element Web setting you wish to change: - -- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Element Web's various settings that rarely get used. - -- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2)) by making use of the `matrix_client_element_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml). - -- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_client_element_configuration_default` (or `matrix_client_element_configuration`). You can find information about this in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml). +You can change the country code (default: `GB`) to use when showing phone number inputs. To change it to `FR` for example, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +```yaml +matrix_client_element_default_country_code: "FR" +``` ### Themes -To change the look of Element Web, you can define your own themes manually by using the `matrix_client_element_setting_defaults_custom_themes` setting. +#### Change the default theme -Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_element_themes_enabled: true`). +You can change the default theme from `light` to `dark`. To do so, add the following configuration to your `vars.yml` file: -If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it. +```yaml +# Controls the default theme +matrix_client_element_default_theme: 'dark' +``` + +#### Use themes by `element-themes` + +You can change the look of Element Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually. + +To pull the themes and use them for your Element Web instance, add the following configuration to your `vars.yml` file: + +```yaml +matrix_client_element_themes_enabled: true +``` + +If the variable is set to `true`, all themes found in the repository specified with `matrix_client_element_themes_repository_url` will be installed and enabled automatically. Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed. -### Adjusting the Element Web URL +#### Define themes manually -By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file: + +```yaml +# Controls the `setting_defaults.custom_themes` setting of the Element Web configuration. +matrix_client_element_setting_defaults_custom_themes: [] +``` + +If you define your own themes with it and set `matrix_client_element_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well. + +If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it. + +### Adjusting the Element Web URL (optional) By tweaking the `matrix_client_element_hostname` and `matrix_client_element_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -61,14 +88,58 @@ matrix_client_element_hostname: "{{ matrix_server_fqn_matrix }}" matrix_client_element_path_prefix: /element ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Element Web domain to the Matrix server. - -By default, you will need to create a CNAME record for `element`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Element domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-client-element/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-client-element/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_element_configuration_extension_json` variable + +For example, to override some Element Web settings, add the following configuration to your `vars.yml` file: + +```yaml + # Your custom JSON configuration for Element Web should go to `matrix_client_element_configuration_extension_json`. + # This configuration extends the default starting configuration (`matrix_client_element_configuration_default`). + # + # 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 + # completely redefining `matrix_client_element_configuration_default`. + # +matrix_client_element_configuration_extension_json: | + { + "disable_3pid_login": true, + "disable_login_language_selector": true + } +``` + +## Disabling Element Web + +If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file: + +```yaml +matrix_client_element_enabled: false +``` + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-client-element`. diff --git a/docs/configuring-playbook-client-fluffychat-web.md b/docs/configuring-playbook-client-fluffychat-web.md new file mode 100644 index 000000000..a438c585d --- /dev/null +++ b/docs/configuring-playbook-client-fluffychat-web.md @@ -0,0 +1,66 @@ + + +# Setting up FluffyChat Web (optional) + +The playbook can install and configure the [FluffyChat Web](https://github.com/krille-chan/fluffychat) Matrix client for you. + +FluffyChat Web is a cute cross-platform (web, iOS, Android) messenger for Matrix written in [Flutter](https://flutter.dev/). + +💡 **Note**: the latest version of FluffyChat Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Application, you can consider using it from there: + +- [fluffychat.im](https://fluffychat.im/web), hosted by the [FluffyChat](https://fluffychat.im/) developers + +## Adjusting DNS records + +By default, this playbook installs FluffyChat Web on the `fluffychat.` subdomain (`fluffychat.example.com`) and requires you to create a CNAME record for `fluffychat`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + +## Adjusting the playbook configuration + +To enable FluffyChat Web, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: + +```yaml +matrix_client_fluffychat_enabled: true +``` + +### Adjusting the FluffyChat Web URL (optional) + +By tweaking the `matrix_client_fluffychat_hostname` and `matrix_client_fluffychat_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: + +```yaml +# Switch to the domain used for Matrix services (`matrix.example.com`), +# so we won't need to add additional DNS records for FluffyChat Web. +matrix_client_fluffychat_hostname: "{{ matrix_server_fqn_matrix }}" + +# Expose under the /fluffychat subpath +matrix_client_fluffychat_path_prefix: /fluffychat +``` + +After changing the domain, **you may need to adjust your DNS** records to point the FluffyChat Web domain to the Matrix server. + +If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. + +## Installing + +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-client-fluffychat`. diff --git a/docs/configuring-playbook-client-hydrogen.md b/docs/configuring-playbook-client-hydrogen.md index 1715c9804..0f7c8bb85 100644 --- a/docs/configuring-playbook-client-hydrogen.md +++ b/docs/configuring-playbook-client-hydrogen.md @@ -1,9 +1,24 @@ + + # Setting up Hydrogen (optional) -This playbook can install the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you. +The playbook can install and configure the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you. Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element Web. +## Adjusting DNS records + +By default, this playbook installs Hydrogen on the `hydrogen.` subdomain (`hydrogen.example.com`) and requires you to create a CNAME record for `hydrogen`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + ## Adjusting the playbook configuration To enable Hydrogen, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -12,13 +27,11 @@ To enable Hydrogen, add the following configuration to your `inventory/host_vars matrix_client_hydrogen_enabled: true ``` -### Adjusting the Hydrogen URL - -By default, this playbook installs Hydrogen on the `hydrogen.` subdomain (`hydrogen.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Hydrogen URL (optional) By tweaking the `matrix_client_hydrogen_hostname` and `matrix_client_hydrogen_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -29,14 +42,32 @@ matrix_client_hydrogen_hostname: "{{ matrix_server_fqn_matrix }}" matrix_client_hydrogen_path_prefix: /hydrogen ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Hydrogen domain to the Matrix server. - -By default, you will need to create a CNAME record for `hydrogen`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Hydrogen domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the client. + +Take a look at: + +- `roles/custom/matrix-client-hydrogen/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-client-hydrogen/templates/config.json.j2` for the client's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_hydrogen_configuration_extension_json` variable + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-client-hydrogen`. diff --git a/docs/configuring-playbook-client-schildichat-web.md b/docs/configuring-playbook-client-schildichat-web.md index 0f5e6632c..e26a6837f 100644 --- a/docs/configuring-playbook-client-schildichat-web.md +++ b/docs/configuring-playbook-client-schildichat-web.md @@ -1,6 +1,14 @@ + + # Setting up SchildiChat Web (optional) -This playbook can install the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you. +The playbook can install and configure the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you. SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with some extras and tweaks. It can be installed alongside or instead of Element Web. @@ -8,7 +16,11 @@ SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with - [app.schildi.chat](https://app.schildi.chat/), hosted by the [SchildiChat](https://schildi.chat/) developers -**WARNING**: SchildiChat Web is based on Element Web, but its releases are lagging behind. As of 2024-11, SchildiChat Web is many releases behind (it being based on Element Web `v1.11.36`, while Element Web is now on `v1.11.85`). Element Web frequently suffers from security issues (see [here](https://github.com/element-hq/element-web/security) for known issues), so running something based on an ancient Element Web release is **unsafe**. Use SchildiChat Web at your own risk! +## Adjusting DNS records + +By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to create a CNAME record for `schildichat`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration @@ -18,37 +30,57 @@ To enable SchildiChat Web, add the following configuration to your `inventory/ho matrix_client_schildichat_enabled: true ``` -The playbook provides some customization variables you could use to change SchildiChat Web's settings. +### Set the country code for phone number inputs -Their defaults are defined in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml) and they ultimately end up in the generated `/matrix/schildichat/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-schildichat/templates/config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2) template. +You can change the country code (default: `GB`) to use when showing phone number inputs. To change it to `FR` for example, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: -**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes. - -Alternatively, **if there is no pre-defined variable** for a SchildiChat Web setting you wish to change: - -- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of SchildiChat Web's various settings that rarely get used. - -- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2)) by making use of the `matrix_client_schildichat_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml). - -- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_client_schildichat_configuration_default` (or `matrix_client_schildichat_configuration`). You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml). +```yaml +matrix_client_schildichat_default_country_code: "FR" +``` ### Themes -To change the look of SchildiChat Web, you can define your own themes manually by using the `matrix_client_schildichat_setting_defaults_custom_themes` setting. +#### Change the default theme -Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_schildichat_themes_enabled: true`). +You can change the default theme from `light` to `dark`. To do so, add the following configuration to your `vars.yml` file: -If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it. +```yaml +# Controls the default theme +matrix_client_schildichat_default_theme: 'dark' +``` + +#### Use themes by `element-themes` + +You can change the look of SchildiChat Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually. + +To pull the themes and use them for your SchildiChat Web instance, add the following configuration to your `vars.yml` file: + +```yaml +matrix_client_schildichat_themes_enabled: true +``` + +If the variable is set to `true`, all themes found in the repository specified with `matrix_client_schildichat_themes_repository_url` will be installed and enabled automatically. Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed. -### Adjusting the SchildiChat Web URL +#### Define themes manually -By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file: + +```yaml +# Controls the `setting_defaults.custom_themes` setting of the SchildiChat Web configuration. +matrix_client_schildichat_setting_defaults_custom_themes: [] +``` + +If you define your own themes with it and set `matrix_client_schildichat_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well. + +If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it. + +### Adjusting the SchildiChat Web URL (optional) By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -59,14 +91,50 @@ matrix_client_schildichat_hostname: "{{ matrix_server_fqn_matrix }}" matrix_client_schildichat_path_prefix: /schildichat ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server. - -By default, you will need to create a CNAME record for `schildichat`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-client-schildichat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-client-schildichat/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_schildichat_configuration_extension_json` variable + +For example, to override some SchildiChat Web settings, add the following configuration to your `vars.yml` file: + +```yaml + # Your custom JSON configuration for SchildiChat Web should go to `matrix_client_schildichat_configuration_extension_json`. + # This configuration extends the default starting configuration (`matrix_client_schildichat_configuration_default`). + # + # 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 + # completely redefining `matrix_client_schildichat_configuration_default`. + # +matrix_client_schildichat_configuration_extension_json: | + { + "disable_3pid_login": true, + "disable_login_language_selector": true + } +``` + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-client-schildichat`. diff --git a/docs/configuring-playbook-conduit.md b/docs/configuring-playbook-conduit.md index 909c1ce0e..76a3c9666 100644 --- a/docs/configuring-playbook-conduit.md +++ b/docs/configuring-playbook-conduit.md @@ -1,42 +1,66 @@ + + # Configuring Conduit (optional) -By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, but you can also use [Conduit](https://conduit.rs). +The playbook can install and configure the [Conduit](https://conduit.rs) Matrix server for you. -**Notes**: +See the project's [documentation](https://docs.conduit.rs/) to learn what it does and why it might be useful to you. -- **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. +By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document. -- **homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding +💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md). + +> [!WARNING] +> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. +> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding ## Adjusting the playbook configuration -To use Conduit, you **generally** need to add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To use Conduit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below: ```yaml matrix_homeserver_implementation: conduit ``` +### Extending the configuration + +There are some additional things you may wish to configure about the server. + +Take a look at: + +- `roles/custom/matrix-conduit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-conduit/templates/conduit.toml.j2` for the server's default configuration + +If you'd like to have your own different configuration, feel free to copy and paste the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) and then change the specific host's `vars.yml` file like this: + +```yaml +matrix_conduit_template_conduit_config: "{{ playbook_dir }}/inventory/host_vars/matrix.example.com/conduit.toml.j2" +``` + ## Creating the first user account Since it is difficult to create the first user account on Conduit (see [famedly/conduit#276](https://gitlab.com/famedly/conduit/-/issues/276) and [famedly/conduit#354](https://gitlab.com/famedly/conduit/-/merge_requests/354)) and it does not support [registering users](registering-users.md) (via the command line or via the playbook) like Synapse and Dendrite do, we recommend the following procedure: 1. Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily -2. Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` - see [Installing](installing.md)) +2. Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` — see [Installing](installing.md)) 3. Create your first user via Element Web or any other client which supports creating users 4. Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml` 5. Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time) 6. You can now use your server safely. Additional users can be created by messaging the internal Conduit bot - ## Configuring bridges / appservices -Automatic appservice setup is currently unsupported when using Conduit. After setting up the service as usual you may notice that it is unable to start. +For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver. -You will have to manually register appservices using the the [register-appservice](https://gitlab.com/famedly/conduit/-/blob/next/APPSERVICES.md) command. +For Conduit, you will have to manually register appservices using the the [register-appservice](https://gitlab.com/famedly/conduit/-/blob/next/APPSERVICES.md) command. Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`, then pass the content to Conduit: - @conduit:example.com: register-appservice ``` as_token: @@ -56,3 +80,7 @@ Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/ma sender_localpart: _bot_signalbot url: http://matrix-mautrix-signal:29328 ``` + +## 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-conduit`. diff --git a/docs/configuring-playbook-conduwuit.md b/docs/configuring-playbook-conduwuit.md new file mode 100644 index 000000000..f31d57ab4 --- /dev/null +++ b/docs/configuring-playbook-conduwuit.md @@ -0,0 +1,104 @@ + + +# Configuring conduwuit (optional) + +The playbook can install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you. + +See the project's [documentation](https://conduwuit.puppyirl.gay/) to learn what it does and why it might be useful to you. + +By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document. + +💡 **Note**: conduwuit is a fork of [Conduit](./configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html). + +> [!WARNING] +> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. +> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding + +## Adjusting the playbook configuration + +To use conduwuit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below: + +```yaml +matrix_homeserver_implementation: conduwuit + +# Registering users can only happen via the API, +# so it makes sense to enable it, at least initially. +matrix_conduwuit_config_allow_registration: true + +# Generate a strong registration token to protect the registration endpoint from abuse. +# You can create one with a command like `pwgen -s 64 1`. +matrix_conduwuit_config_registration_token: '' +``` + +### Extending the configuration + +There are some additional things you may wish to configure about the server. + +Take a look at: + +- `roles/custom/matrix-conduwuit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2` for the server's default configuration + +There are various Ansible variables that control settings in the `conduwuit.toml` file. + +If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://conduwuit.puppyirl.gay/configuration.html#environment-variables) using `matrix_conduwuit_environment_variables_extension`. For example: + +```yaml +matrix_conduwuit_environment_variables_extension: | + CONDUWUIT_MAX_REQUEST_SIZE=50000000 + CONDUWUIT_REQUEST_TIMEOUT=60 +``` + +## Creating the first user account + +Unlike other homeserver implementations (like Synapse and Dendrite), conduwuit does not support creating users via the command line or via the playbook. + +If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token. + +This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users. + +The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**. + + +## Configuring bridges / appservices + +For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver. + +For conduwuit, you will have to manually register appservices using the [`!admin appservices register` command](https://conduwuit.puppyirl.gay/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account. + +The server's bot account has a Matrix ID of `@conduit:example.com` (not `@conduwuit:example.com`!) due to conduwuit's historical legacy. +Your first user account would already have been invited to an admin room with this bot. + +Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`. + +Then, send its content to the existing admin room: + + !admin appservices register + + ``` + as_token: + de.sorunome.msc2409.push_ephemeral: true + hs_token: + id: signal + namespaces: + aliases: + - exclusive: true + regex: ^#signal_.+:example\.org$ + users: + - exclusive: true + regex: ^@signal_.+:example\.org$ + - exclusive: true + regex: ^@signalbot:example\.org$ + rate_limited: false + sender_localpart: _bot_signalbot + url: http://matrix-mautrix-signal:29328 + ``` + +## 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-conduwuit`. diff --git a/docs/configuring-playbook-dendrite.md b/docs/configuring-playbook-dendrite.md index 0ffa8ed04..944b3f02e 100644 --- a/docs/configuring-playbook-dendrite.md +++ b/docs/configuring-playbook-dendrite.md @@ -1,37 +1,85 @@ + + # Configuring Dendrite (optional) -By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, but you can also use [Dendrite](https://github.com/matrix-org/dendrite). +The playbook can install and configure the [Dendrite](https://github.com/element-hq/dendrite) Matrix server for you. -**Notes**: +See the project's [documentation](https://element-hq.github.io/dendrite/) to learn what it does and why it might be useful to you. -- **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Dendrite). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. +By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document. -- **homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding +> [!WARNING] +> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Dendrite). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. +> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding ## Adjusting the playbook configuration -To use Dendrite, you **generally** need to add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To use Dendrite, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below: ```yaml matrix_homeserver_implementation: dendrite ``` -The playbook provides lots of customization variables you could use to change Dendrite's settings. +### Extending the configuration -Their defaults are defined in [`roles/custom/matrix-dendrite/defaults/main.yml`](../roles/custom/matrix-dendrite/defaults/main.yml) and they ultimately end up in the generated `/matrix/dendrite/config/dendrite.yaml` file (on the server). This file is generated from the [`roles/custom/matrix-dendrite/templates/dendrite/dendrite.yaml.j2`](../roles/custom/matrix-dendrite/templates/dendrite/dendrite.yaml.j2) template. +There are some additional things you may wish to configure about the server. -**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes. +Take a look at: -Alternatively, **if there is no pre-defined variable** for a Dendrite setting you wish to change: - -- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Dendrite's various settings that rarely get used. - -- or, you can **extend and override the default configuration** ([`dendrite.yaml.j2`](../roles/custom/matrix-dendrite/templates/dendrite/dendrite.yaml.j2)) by making use of the `matrix_dendrite_configuration_extension_yaml` variable. You can find information about this in [`roles/custom/matrix-dendrite/defaults/main.yml`](../roles/custom/matrix-dendrite/defaults/main.yml). - -- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_dendrite_configuration` (or `matrix_dendrite_configuration_yaml`). You can find information about this in [`roles/custom/matrix-dendrite/defaults/main.yml`](../roles/custom/matrix-dendrite/defaults/main.yml). +- `roles/custom/matrix-dendrite/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-dendrite/templates/dendrite.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dendrite_configuration_extension_yaml` variable +For example, to override some Dendrite settings, add the following configuration to your `vars.yml` file: +```yaml +matrix_dendrite_configuration_extension_yaml: | + # Your custom YAML configuration for Dendrite goes here. + # This configuration extends the default starting configuration (`matrix_dendrite_configuration_yaml`). + # + # 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 + # completely redefining `matrix_dendrite_configuration_yaml`. + # + # Example configuration extension follows: + # + server_notices: + system_mxid_localpart: notices + system_mxid_display_name: "Server Notices" + system_mxid_avatar_url: "mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ" + room_name: "Server Notices" +``` ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-dendrite`. + +### 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_dendrite_configuration_extension_yaml: | + logging: + - type: std + level: debug +``` diff --git a/docs/configuring-playbook-dimension.md b/docs/configuring-playbook-dimension.md index 06abd3097..a1d17b4c1 100644 --- a/docs/configuring-playbook-dimension.md +++ b/docs/configuring-playbook-dimension.md @@ -1,54 +1,90 @@ + + # Setting up Dimension integration manager (optional, unmaintained) -**[Dimension](https://dimension.t2bot.io) can only be installed after Matrix services are installed and running.** If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) flow and come back here later. +**Notes**: +- Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it. +- This playbook now supports running Dimension in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_homeserver_federation_enabled`. -**Note**: Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it. +The playbook can install and configure the [Dimension](https://dimension.t2bot.io) integration manager for you. -**Note**: This playbook now supports running [Dimension](https://dimension.t2bot.io) in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_homeserver_federation_enabled`. Enabling Dimension, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. It's something to be aware of, especially in terms of firewall whitelisting (make sure port `8448` is accessible). +See the project's [documentation](https://github.com/turt2live/matrix-dimension/blob/master/README.md) to learn what it does and why it might be useful to you. + +## Prerequisites + +### Open Matrix Federation port + +Enabling the Dimension service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible. + +### Install Matrix services + +Dimension can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later. + +### Register a dedicated Matrix user (optional, recommended) + +We recommend that you create a dedicated Matrix user for Dimension (`dimension` is a good username). + +Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`. + +You can use the playbook to [register a new user](registering-users.md): + +```sh +ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=dimension password=PASSWORD_FOR_THE_USER admin=no' --tags=register-user +``` + +### Obtain an access token + +Dimension requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +## Adjusting DNS records + +By default, this playbook installs Dimension on the `dimension.` subdomain (`dimension.example.com`) and requires you to create a CNAME record for `dimension`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration -To enable Dimension, add this to your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): +To enable Dimension, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token). ```yaml matrix_dimension_enabled: true + +matrix_dimension_access_token: "ACCESS_TOKEN_HERE" ``` ### Define admin users -These users can modify the integrations this Dimension supports. Add this to your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): +To define admin users who can modify the integrations this Dimension supports, add the following configuration to your `vars.yml` file: ```yaml matrix_dimension_admins: - - "@user1:{{ matrix_domain }}" - - "@user2:{{ matrix_domain }}" + - "@alice:{{ matrix_domain }}" + - "@bob:{{ matrix_domain }}" ``` The admin interface is accessible within Element Web by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element Web by the "Add widgets, bridges, & bots" link in the room information. -### Access token - -We recommend that you create a dedicated Matrix user for Dimension (`dimension` is a good username). Follow our [Registering users](registering-users.md) guide to learn how to register **a regular (non-admin) user**. - -You are required to specify an access token (belonging to this new user) for Dimension to work. To get an access token for the Dimension user, you can follow the documentation on [how to do obtain an access token](obtaining-access-tokens.md). - -**Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone.** - -Add access token to your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): - -```yaml -matrix_dimension_access_token: "YOUR ACCESS TOKEN HERE" -``` - -For more information on how to acquire an access token, visit [https://t2bot.io/docs/access_tokens](https://t2bot.io/docs/access_tokens). - -### Adjusting the Dimension URL - -By default, this playbook installs Dimension on the `dimension.` subdomain (`dimension.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Dimension URL (optional) By tweaking the `matrix_dimension_hostname` and `matrix_dimension_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -59,34 +95,50 @@ matrix_dimension_hostname: "{{ matrix_server_fqn_matrix }}" # matrix_dimension_path_prefix: /dimension ``` -**Note**: While there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You must serve Dimension at a dedicated subdomain. +After changing the domain, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server. -## Adjusting DNS records +If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server. +**Note**: while there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You'd need to serve Dimension at a dedicated subdomain. -By default, you will need to create a CNAME record for `dimension`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-dimension/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-dimension/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dimension_configuration_extension_yaml` variable + +You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml). ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```sh ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start ``` -After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the Room info button (`i`) button in the top right corner of the screen, and then clicking Add widgets, bridges & bots. +**Notes**: +- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` -## Jitsi domain + `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. -By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](./configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance. Currently there is no way to configure this via the playbook, see [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details. +## Usage -In the interim until the above limitation is resolved, an admin user needs to configure the domain via the admin ui once dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately. +After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the room info button (`i`) on the top right corner, and then clicking the "Add widgets, bridges, & bots" link. +### Set up a Jitsi widget -## Additional features +By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance. -To use a more custom configuration, you can define a `matrix_dimension_configuration_extension_yaml` string variable and put your configuration in it. To learn more about how to do this, refer to the information about `matrix_dimension_configuration_extension_yaml` in the [default variables file](../roles/custom/matrix-dimension/defaults/main.yml) of the Dimension component. +To set up the widget, an admin user needs to configure the domain via the admin UI once Dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately. -You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml). +There is unfortunately no way to configure the widget via the playbook. See [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details. + +## 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-dimension`. diff --git a/docs/configuring-playbook-dynamic-dns.md b/docs/configuring-playbook-dynamic-dns.md index efabb75b9..0a254a76d 100644 --- a/docs/configuring-playbook-dynamic-dns.md +++ b/docs/configuring-playbook-dynamic-dns.md @@ -1,3 +1,11 @@ + + # Setting up Dynamic DNS (optional) The playbook can configure Dynamic DNS with [ddclient⁠](https://github.com/ddclient/ddclient) for you. It is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. @@ -23,12 +31,33 @@ matrix_dynamic_dns_domain_configurations: domain: "{{ matrix_domain }}" ``` +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-dynamic-dns/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. ## Additional Reading Additional resources: - https://matrix.org/docs/guides/free-small-matrix-server + +## 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-dynamic-dns`. diff --git a/docs/configuring-playbook-email.md b/docs/configuring-playbook-email.md index 1106a1f53..5fcc4d820 100644 --- a/docs/configuring-playbook-email.md +++ b/docs/configuring-playbook-email.md @@ -1,55 +1,71 @@ + + # Adjusting email-sending settings (optional) -By default, this playbook sets up an [Exim](https://www.exim.org/) email server through which all Matrix services send emails. +By default, this playbook sets up an [Exim](https://www.exim.org/) relay SMTP mailer service (powered by [exim-relay](https://github.com/devture/exim-relay) and the [ansible-role-exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay) Ansible role), through which all Matrix services send emails. -The email server would attempt to deliver emails directly to their final destination. This may or may not work, depending on your domain configuration (SPF settings, etc.) - -By default, emails are sent from `matrix@matrix.example.com`, as specified by the `exim_relay_sender_address` playbook variable. - -⚠️ **Warning**: On some cloud providers (Google Cloud, etc.), [port 25 is always blocked](https://cloud.google.com/compute/docs/tutorials/sending-mail/), so sending email directly from your server is not possible. You will need to [relay email through another SMTP server](#relaying-email-through-another-smtp-server). - -💡 To improve deliverability, we recommend [relaying email through another SMTP server](#relaying-email-through-another-smtp-server) anyway. +**With the default setting, exim-relay attempts to deliver emails directly with the address `matrix@matrix.example.com`**, as specified by the `exim_relay_sender_address` playbook variable. See below if you want to configure the playbook to relay email through another SMTP server. +The [Ansible role for exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring exim-relay, you can check them via: +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md) online +- 📁 `roles/galaxy/exim_relay/docs/configuring-exim-relay.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) ## Firewall settings -No matter whether you send email directly (the default) or you relay email through another host (see how below), you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration). +No matter whether you send email directly (the default) or you relay email through another host, you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration). +Docker automatically opens these ports in the server's firewall, so you likely don't need to do anything. If you use another firewall in front of the server, you may need to adjust it. -## Relaying email through another SMTP server +## Adjusting the playbook configuration -If you'd like to relay email through another SMTP server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +### Enable DKIM authentication to improve deliverability (optional) + +By default, exim-relay attempts to deliver emails directly. This may or may not work, depending on your domain configuration. + +To improve email deliverability, you can configure authentication methods such as DKIM (DomainKeys Identified Mail), SPF, and DMARC for your domain. Without setting any of these authentication methods, your outgoing email is most likely to be quarantined as spam at recipient's mail servers. + +For details about configuring DKIM, refer [this section](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md#enable-dkim-support-optional) on the role's documentation. + +💡 If you cannot enable DKIM, SPF, or DMARC on your domain for some reason, we recommend relaying email through another SMTP server. + +### Relaying email through another SMTP server (optional) + +**On some cloud providers such as Google Cloud, [port 25 is always blocked](https://cloud.google.com/compute/docs/tutorials/sending-mail/), so sending email directly from your server is not possible.** In this case, you will need to relay email through another SMTP server. + +For details about configuration, refer [this section](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md#relaying-email-through-another-smtp-server) on the role's document. + +### Disable mail service (optional) + +For a low-power server you might probably want to disable exim-relay. To do so, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml -exim_relay_sender_address: "another.sender@example.com" -exim_relay_relay_use: true -exim_relay_relay_host_name: "mail.example.com" -exim_relay_relay_host_port: 587 -exim_relay_relay_auth: true -exim_relay_relay_auth_username: "another.sender@example.com" -exim_relay_relay_auth_password: "some-password" +exim_relay_enabled: false ``` -**Note**: only the secure submission protocol (using `STARTTLS`, usually on port `587`) is supported. **SMTPS** (encrypted SMTP, usually on port `465`) **is not supported**. +Note that disabling exim-relay will stop email-notifications and other similar functions from working. +See [this entry on the FAQ](faq.md#how-do-i-optimize-this-setup-for-a-low-power-server) for other possible optimizations for a low-power server. -### Configuations for sending emails using Sendgrid -An easy and free SMTP service to set up is [Sendgrid](https://sendgrid.com/), the free tier allows for up to 100 emails per day to be sent. In the settings below you can provide any email for `exim_relay_sender_address`. +## Installing -The only other thing you need to change is the `exim_relay_relay_auth_password`, which you can generate at https://app.sendgrid.com/settings/api_keys. The API key password looks something like `SG.955oW1mLSfwds7i9Yd6IA5Q.q8GTaB8q9kGDzasegdG6u95fQ-6zkdwrPP8bOeuI`. +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -Note that the `exim_relay_relay_auth_username` is literally the string `apikey`, it's always the same for Sendgrid. - -```yaml -exim_relay_sender_address: "arbitrary@email.com" -exim_relay_relay_use: true -exim_relay_relay_host_name: "smtp.sendgrid.net" -exim_relay_relay_host_port: 587 -exim_relay_relay_auth: true -exim_relay_relay_auth_username: "apikey" -exim_relay_relay_auth_password: "" + +```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. + ## Troubleshooting -If you're having trouble with email not being delivered, it may be useful to inspect the mailer logs: `journalctl -f -u matrix-exim-relay`. +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md#troubleshooting) on the role's documentation for details. diff --git a/docs/configuring-playbook-email2matrix.md b/docs/configuring-playbook-email2matrix.md index ab274afe4..20d807b85 100644 --- a/docs/configuring-playbook-email2matrix.md +++ b/docs/configuring-playbook-email2matrix.md @@ -1,88 +1,26 @@ -# Setting up Email2Matrix (optional) + -The playbook can install and configure [email2matrix](https://github.com/devture/email2matrix) for you. +# Setting up Email2Matrix (optional, removed) -See the project's [documentation](https://github.com/devture/email2matrix/blob/master/docs/README.md) to learn what it does and why it might be useful to you. +🪦 The playbook used to be able to install and configure [Email2Matrix](https://github.com/devture/email2matrix), but no longer includes this component. + +For a long time now, it been replaced by the much better and more maintained [Postmoogle](https://github.com/etkecc/postmoogle) bridge, which can also be [installed using this playbook](configuring-playbook-bridge-postmoogle.md). -## Preparation +## Uninstalling Email2Matrix manually -### DNS configuration +If you still have the Email2Matrix component 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: -It's not strictly necessary, but you may increase the chances that incoming emails reach your server by adding an `MX` record for `matrix.example.com`, as described in the [Configuring DNS](configuring-dns.md) documentation page. +```sh +systemctl disable --now matrix-email2matrix.service -### Port availability - -Ensure that port 25 is available on your Matrix server and open in your firewall. - -If you have `postfix` or some other email server software installed, you may need to manually remove it first (unless you need it, of course). - -If you really need to run an email server on the Matrix machine for other purposes, it may be possible to run Email2Matrix on another port (with a configuration like `matrix_email2matrix_smtp_host_bind_port: "127.0.0.01:2525"`) and have your other email server relay messages there. - -For details about using Email2Matrix alongside [Postfix](http://www.postfix.org/), see [here](https://github.com/devture/email2matrix/blob/master/docs/setup_with_postfix.md). - -### Creating a user - -Before enabling Email2Matrix, you'd most likely wish to create a dedicated user (or more) that would be sending messages on the Matrix side. Refer to [Registering users](registering-users.md) for ways to do that. A regular (non-admin) user works best. - -### Creating a shared room - -After creating a sender user, you should create one or more Matrix rooms that you share with that user. It doesn't matter who creates and owns the rooms and who joins later (you or the sender user). - -What matters is that both you and the sender user are part of the same room and that the sender user has enough privileges in the room to be able to send messages there. - -Inviting additional people to the room is okay too. - -Take note of each room's room ID (different clients show the room ID in a different place). You'll need the room ID when [configuring the playbook](#adjusting-the-playbook-configuration) below. - -### Obtaining an access token for the sender user - -In order for the sender user created above to be able to send messages to the room, we'll need to obtain an access token for it. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). - -## Adjusting the playbook configuration - -After doing the preparation steps above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): - -```yaml -matrix_email2matrix_enabled: true - -matrix_email2matrix_matrix_mappings: - - MailboxName: "mailbox1" - MatrixRoomId: "!qporfwt:{{ matrix_domain }}" - MatrixHomeserverUrl: "{{ matrix_homeserver_url }}" - MatrixUserId: "@email2matrix:{{ matrix_domain }}" - MatrixAccessToken: "MATRIX_ACCESS_TOKEN_HERE" - IgnoreSubject: false - IgnoreBody: false - SkipMarkdown: false - - - MailboxName: "mailbox2" - MatrixRoomId: "!aaabaa:{{ matrix_domain }}" - MatrixHomeserverUrl: "{{ matrix_homeserver_url }}" - MatrixUserId: "@email2matrix:{{ matrix_domain }}" - MatrixAccessToken: "MATRIX_ACCESS_TOKEN_HERE" - IgnoreSubject: true - IgnoreBody: false - SkipMarkdown: true +rm -rf /matrix/email2matrix ``` - -where: - -* MailboxName - local-part of the email address, through which emails are bridged to the room whose ID is defined with MatrixRoomId -* MatrixRoomId - internal ID of the room, to which received emails are sent as Matrix message -* MatrixHomeserverUrl - URL of your Matrix homeserver, through which to send Matrix messages. You can also set `MatrixHomeserverUrl` to the container URL where your homeserver's Client-Server API lives by using the `{{ matrix_addons_homeserver_client_api_url }}` variable -* MatrixUserId - the full ID of the sender user which sends bridged messages to the room -* MatrixAccessToken - sender user's access token -* IgnoreSubject - if set to "true", the subject is not bridged to Matrix -* IgnoreBody - if set to "true", the message body is not bridged to Matrix -* SkipMarkdown - if set to "true", emails are bridged as plain text Matrix message instead of Markdown (actually HTML) - -Refer to the official documentation [here](https://github.com/devture/email2matrix/blob/master/docs/configuration.md). - -## Installing - -To enable Email2Matrix, run the [installation](installing.md) command (`--tags=setup-email2matrix,start`). - -After installation, you may wish to send a test email to the email address assigned to `mailbox1` (default: `mailbox1@matrix.example.com`) to make sure that Email2Matrix works as expected. diff --git a/docs/configuring-playbook-etherpad.md b/docs/configuring-playbook-etherpad.md index 6bdc4a382..30b204004 100644 --- a/docs/configuring-playbook-etherpad.md +++ b/docs/configuring-playbook-etherpad.md @@ -1,28 +1,71 @@ + + # Setting up Etherpad (optional) -[Etherpad](https://etherpad.org) is an open source collaborative text editor that can be embedded in a Matrix chat room using the [Dimension integration manager](https://dimension.t2bot.io) or used as standalone web app. +The playbook can install and configure [Etherpad](https://etherpad.org) for you. -When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences. +Etherpad is an open source collaborative text editor. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app. + +When enabled together with the Jitsi video-conferencing platform (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences. + +The [Ansible role for Etherpad](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring Etherpad, you can check them via: + +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md) online +- 📁 `roles/galaxy/etherpad/docs/configuring-etherpad.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) + +## Adjusting DNS records + +By default, this playbook installs Etherpad on the `etherpad.` subdomain (`etherpad.example.com`) and requires you to create a CNAME record for `etherpad`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration To enable Etherpad, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml +######################################################################## +# # +# etherpad # +# # +######################################################################## + etherpad_enabled: true -# Uncomment and adjust this part if you'd like to enable the admin web UI -# etherpad_admin_username: YOUR_USERNAME_HERE -# etherpad_admin_password: YOUR_PASSWORD_HERE +######################################################################## +# # +# /etherpad # +# # +######################################################################## ``` -### Adjusting the Etherpad URL +As the most of the necessary settings for the role have been taken care of by the playbook, you can enable Etherpad on your Matrix server with this minimum configuration. -By default, this playbook installs Etherpad on the `etherpad.` subdomain (`etherpad.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +See the role's documentation for details about configuring Etherpad per your preference (such as [the name of the instance](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md#set-the-name-of-the-instance-optional) and [the default pad text](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md#set-the-default-text-optional)). + +### Create admin user (optional) + +You probably might want to enable authentication to disallow anonymous access to your Etherpad. + +It is possible to enable HTTP basic authentication by **creating an admin user** with `etherpad_admin_username` and `etherpad_admin_password` variables. The admin user account is also used by plugins for authentication and authorization. + +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md#create-admin-user-optional) on the role's documentation for details about how to create the admin user. + +### Adjusting the Etherpad URL (optional) By tweaking the `etherpad_hostname` and `etherpad_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -33,56 +76,41 @@ etherpad_hostname: "{{ matrix_server_fqn_matrix }}" etherpad_path_prefix: /etherpad ``` - -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server. - -By default, you will need to create a CNAME record for `etherpad`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the Etherpad admin user (`etherpad_admin_username`). + +- 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. ## Usage -The Etherpad UI should be available at `https://etherpad.example.com`, while the admin UI (if enabled) should then be available at `https://etherpad.example.com/admin`. +By default, the Etherpad UI should be available at `https://etherpad.example.com`, while the admin UI (if enabled) should then be available at `https://etherpad.example.com/admin`. -If you've [decided on another hostname or path-prefix](#adjusting-the-etherpad-url) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before usage. +If you've [decided on another hostname or path-prefix](#adjusting-the-etherpad-url-optional) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before using it. +💡 For more information about usage, take a look at [this section](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md#usage) on the role's documentation. -### Managing / Deleting old pads +### Integrating a Etherpad widget in a room -If you want to manage and remove old unused pads from Etherpad, you will first need to able Admin access as described above. - -Then from the plugin manager page (`https://etherpad.example.com/admin/plugins`, install the `adminpads2` plugin. Once installed, you should have a "Manage pads" section in the Admin web-UI. - - -### How to use Etherpad widgets without an integration manager (like Dimension) - -This is how it works in Element Web, it might work quite similar with other clients: +**Note**: this is how it works in Element Web. It might work quite similar with other clients: To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section. +## Troubleshooting -### Set Dimension default to the self-hosted Etherpad (optional) - -If you decided to install [Dimension integration manager](configuring-playbook-dimension.md) alongside Etherpad, the Dimension administrator users can configure the default URL template. - -The Dimension configuration menu can be accessed with the sprocket icon as you begin to add a widget to a room in Element Web. There you will find the Etherpad Widget Configuration action beneath the _Widgets_ tab. - - -#### Removing the integrated Etherpad chat - -If you wish to disable the Etherpad chat button, you can do it by appending `?showChat=false` to the end of the pad URL, or the template. - -Example: `https://etherpad.example.com/p/$roomId_$padName?showChat=false` - - -## Known issues - -If your Etherpad widget fails to load, this might be due to Dimension generating a Pad name so long, the Etherpad app rejects it. - -`$roomId_$padName` can end up being longer than 50 characters. You can avoid having this problem by altering the template so it only contains the three word random identifier `$padName`. +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md#troubleshooting) on the role's documentation for details. diff --git a/docs/configuring-playbook-external-postgres.md b/docs/configuring-playbook-external-postgres.md index e922c8299..f860f4413 100644 --- a/docs/configuring-playbook-external-postgres.md +++ b/docs/configuring-playbook-external-postgres.md @@ -1,8 +1,15 @@ + + # Using an external PostgreSQL server (optional) By default, this playbook would set up a PostgreSQL database server on your machine, running in a Docker container. If that's okay, you can skip this document. -**Note**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** - you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**. +**Note**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** — you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**. If you'd like to use an external Postgres server that you manage, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): diff --git a/docs/configuring-playbook-federation.md b/docs/configuring-playbook-federation.md index e187fa363..c06928748 100644 --- a/docs/configuring-playbook-federation.md +++ b/docs/configuring-playbook-federation.md @@ -1,8 +1,16 @@ + + # Controlling Matrix federation (optional) By default, your server federates with the whole Matrix network. That is, people on your server can communicate with people on any other Matrix server. -**Note**: in the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user identifier like `@:example.com` and set up [server delegation](howto-server-delegation.md) / redirection. Without a proper configuration, your server will effectively not be part of the Matrix network. If you find your server is not federated, make sure to [check whether services work](maintenance-checking-services.md) and your server is properly delegated. +**Note**: in the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com` and set up [server delegation](howto-server-delegation.md) / redirection. Without a proper configuration, your server will effectively not be part of the Matrix network. If you find your server is not federated, make sure to [check whether services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work) and your server is properly delegated. ## Federating only with select servers @@ -16,21 +24,19 @@ matrix_synapse_federation_domain_whitelist: If you wish to disable federation, you can do that with an empty list (`[]`), or better yet by completely disabling federation (see below). - ## Exposing the room directory over federation By default, your server's public rooms directory is not exposed to other servers via federation. -If you wish to expose it, add this to your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): +To expose it, add the following configuration to your `vars.yml` file: ```yaml matrix_synapse_allow_public_rooms_over_federation: true ``` - ## Disabling federation -To completely disable federation, isolating your server from the rest of the Matrix network, add this to your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): +To completely disable federation, isolating your server from the rest of the Matrix network, add the following configuration to your `vars.yml` file: ```yaml matrix_homeserver_federation_enabled: false @@ -54,10 +60,9 @@ matrix_synapse_reverse_proxy_companion_federation_api_enabled: false Why? This change could be useful for people running small Synapse instances on small severs/VPSes to avoid being impacted by a simple DOS/DDOS when bandwidth, RAM, an CPU resources are limited and if your hosting provider does not provide a DOS/DDOS protection. +To make it possible to proxy the federation through a CDN such as CloudFlare or any other, add the following configuration to your `vars.yml` file: -The following changes in the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) will allow this and make it possible to proxy the federation through a CDN such as CloudFlare or any other: - -``` +```yaml matrix_synapse_http_listener_resource_names: ["client","federation"] # Any port can be used but in this case we use 443 matrix_federation_public_port: 443 diff --git a/docs/configuring-playbook-jitsi.md b/docs/configuring-playbook-jitsi.md index 55f647d90..59fd6b6c4 100644 --- a/docs/configuring-playbook-jitsi.md +++ b/docs/configuring-playbook-jitsi.md @@ -1,305 +1,115 @@ + + # Setting up the Jitsi video-conferencing platform (optional) -The playbook can install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS). +The playbook can install and configure the [Jitsi](https://jitsi.org/) video-conferencing platform for you. -Jitsi installation is **not enabled by default**, because it's not a core component of Matrix services. - -The setup done by the playbook is very similar to [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet). You can refer to the documentation there for many of the options here. +Jitsi is an open source video-conferencing platform. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app. +The [Ansible role for Jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring Jitsi, you can check them via: +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md) online +- 📁 `roles/galaxy/jitsi/docs/configuring-jitsi.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) ## Prerequisites -You may need to open the following ports to your server: +Before proceeding, make sure to check server's requirements recommended by [the official deployment guide](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-requirements). -- `4443/tcp` - RTP media fallback over TCP -- `10000/udp` - RTP media over UDP. Depending on your firewall/NAT setup, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`jitsi_jvb_stun_servers`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/defaults/main.yml)). +You may need to open some ports to your server, if you use another firewall in front of the server. Refer [the role's documentation](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#prerequisites) to check which ones to be configured. +## Adjusting DNS records + +By default, this playbook installs Jitsi on the `jitsi.` subdomain (`jitsi.example.com`) and requires you to create a CNAME record for `jitsi`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration To enable Jitsi, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml +######################################################################## +# # +# jitsi # +# # +######################################################################## + jitsi_enabled: true + +######################################################################## +# # +# /jitsi # +# # +######################################################################## ``` -### Adjusting the Jitsi URL +As the most of the necessary settings for the role have been taken care of by the playbook, you can enable Jitsi on your Matrix server with this minimum configuration. -By default, this playbook installs Jitsi on the `jitsi.` subdomain (`jitsi.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +However, **since Jitsi's performance heavily depends on server resource (bandwidth, RAM, and CPU), it is recommended to review settings and optimize them as necessary before deployment.** You can check [here](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#example-configurations) for an example set of configurations to set up a Jitsi instance, focusing on performance. If you will host a large conference, you probably might also want to consider to provision additional JVBs ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)). See [here](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#set-up-additional-jvbs-for-more-video-conferences-optional) for details about setting them up with the playbook. -By tweaking the `jitsi_hostname` variable, you can easily make the service available at a **different hostname** than the default one. +See the role's documentation for details about configuring Jitsi per your preference (such as setting [a custom hostname](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#set-the-hostname) and [the environment variable for running Jitsi in a LAN](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#configure-jvb_advertise_ips-for-running-behind-nat-or-on-a-lan-environment-optional)). -Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file: +### Enable authentication and guests mode (optional) -```yaml -# Change the default hostname -jitsi_hostname: call.example.com -``` +By default the Jitsi Meet instance **does not require for anyone to log in, and is open to use without an account**. -## Adjusting DNS records +If you would like to control who is allowed to start meetings on your instance, you'd need to enable Jitsi's authentication and optionally guests mode. -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Jitsi domain to the Matrix server. +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#configure-jitsi-authentication-and-guests-mode-optional) on the role's documentation for details about how to configure the authentication and guests mode. The recommended authentication method is `internal` as it also works in federated rooms. If you want to enable authentication with Matrix OpenID making use of [Matrix User Verification Service (UVS)](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-user-verification-service.md), see [here](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix) for details about how to set it up. -By default, you will need to create a CNAME record for `jitsi`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Enable Gravatar (optional) -## (Optional) Configure Jitsi authentication and guests mode +In the default Jisti Meet configuration, `gravatar.com` is enabled as an avatar service. -By default the Jitsi Meet instance does not require any kind of login and is open to use for anyone without registration. +Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our configuration has disabled the Gravatar service. -If you're fine with such an open Jitsi instance, please skip to [Installing](#installing). - -If you would like to control who is allowed to open meetings on your new Jitsi instance, then please follow the following steps to enable Jitsi's authentication and optionally guests mode. - -Currently, there are three supported authentication modes: 'internal' (default), 'matrix' and 'ldap'. - -**Note**: Authentication is not tested via the playbook's self-checks. We therefore recommend that you manually verify if authentication is required by jitsi. For this, try to manually create a conference on jitsi.example.com in your browser. - -### Authenticate using Jitsi accounts (Auth-Type 'internal') - -The default authentication mechanism is 'internal' auth, which requires jitsi-accounts to be setup and is the recommended setup, as it also works in federated rooms. With authentication enabled, all meeting rooms have to be opened by a registered user, after which guests are free to join. If a registered host is not yet present, guests are put on hold in individual waiting rooms. - -Add these lines to your `inventory/host_vars/matrix.example.com/vars.yml` configuration: - -```yaml -jitsi_enable_auth: true -jitsi_enable_guests: true -jitsi_prosody_auth_internal_accounts: - - username: "jitsi-moderator" - password: "secret-password" - - username: "another-user" - password: "another-password" -``` - -**Caution**: Accounts added here and subsequently removed will not be automatically removed from the Prosody server until user account cleaning is integrated into the playbook. - -**If you get an error** like this: "Error: Account creation/modification not supported.", it's likely that you had previously installed Jitsi without auth/guest support. In such a case, you should look into [Rebuilding your Jitsi installation](#rebuilding-your-jitsi-installation). - -### Authenticate using Matrix OpenID (Auth-Type 'matrix') - -**Attention: Probably breaks Jitsi in federated rooms and does not allow sharing conference links with guests.** - -Using this authentication type require a [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service). By default, this playbook creates and configures a user-verification-service to run locally, see [configuring-user-verification-service](configuring-playbook-user-verification-service.md). - -To enable set this configuration at host level: - -```yaml -jitsi_enable_auth: true -jitsi_auth_type: matrix -matrix_user_verification_service_enabled: true -``` - -For more information see also [https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification](https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification). - -### Authenticate using LDAP (Auth-Type 'ldap') - -An example LDAP configuration could be: - -```yaml -jitsi_enable_auth: true -jitsi_auth_type: ldap -jitsi_ldap_url: "ldap://ldap.example.com" -jitsi_ldap_base: "OU=People,DC=example.com" -#jitsi_ldap_binddn: "" -#jitsi_ldap_bindpw: "" -jitsi_ldap_filter: "uid=%u" -jitsi_ldap_auth_method: "bind" -jitsi_ldap_version: "3" -jitsi_ldap_use_tls: true -jitsi_ldap_tls_ciphers: "" -jitsi_ldap_tls_check_peer: true -jitsi_ldap_tls_cacert_file: "/etc/ssl/certs/ca-certificates.crt" -jitsi_ldap_tls_cacert_dir: "/etc/ssl/certs" -jitsi_ldap_start_tls: false -``` - -For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation. - - -## (Optional) Making your Jitsi server work on a LAN - -By default the Jitsi Meet instance does not work with a client in LAN (Local Area Network), even if others are connected from WAN. There are no video and audio. In the case of WAN to WAN everything is ok. - -The reason is the Jitsi VideoBridge git to LAN client the IP address of the docker image instead of the host. The [documentation](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/#running-behind-nat-or-on-a-lan-environment) of Jitsi in docker suggest to add `JVB_ADVERTISE_IPS` in enviornment variable to make it work. - -Here is how to do it in the playbook. - -Add these two lines to your `inventory/host_vars/matrix.example.com/vars.yml` configuration: - -```yaml -jitsi_jvb_container_extra_arguments: - - '--env "JVB_ADVERTISE_IPS="' -``` - -## (Optional) Fine tune Jitsi - -Sample **additional** `inventory/host_vars/matrix.example.com/vars.yml` configuration to save up resources (explained below): - -```yaml -jitsi_web_custom_config_extension: | - config.enableLayerSuspension = true; - - config.disableAudioLevels = true; - - // Limit the number of video feeds forwarded to each client - config.channelLastN = 4; - -jitsi_web_config_resolution_width_ideal_and_max: 480 -jitsi_web_config_resolution_height_ideal_and_max: 240 -``` - -You may want to **suspend unused video layers** until they are requested again, to save up resources on both server and clients. Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/) - -You may wish to **disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved. - -You may want to **limit the number of video feeds forwarded to each client**, to save up resources on both server and clients. As clients’ bandwidth and CPU may not bear the load, use this setting to avoid lag and crashes. This feature is found by default in other webconference applications such as Office 365 Teams (limit is set to 4). Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/master/doc/last-n.md) and performance evaluation on this [study](https://jitsi.org/wp-content/uploads/2016/12/nossdav2015lastn.pdf). - -You may want to **limit the maximum video resolution**, to save up resources on both server and clients. - -## (Optional) Specify a Max number of participants on a Jitsi conference - -The playbook allows a user to set a max number of participants allowed to join a Jitsi conference. By default there is no limit. - -In order to set the max number of participants use the following **additional** configuration: - -```yaml -jitsi_prosody_max_participants: 4 # example value -``` - -## (Optional) Additional JVBs - -By default, a single JVB ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)) is deployed on the same host as the Matrix server. To allow more video-conferences to happen at the same time, you may need to provision additional JVB services on other hosts. - -There is an ansible playbook that can be run with the following tag: `ansible-playbook -i inventory/hosts --limit jitsi_jvb_servers jitsi_jvb.yml --tags=common,setup-additional-jitsi-jvb,start` - -For this role to work you will need an additional section in the ansible hosts file with the details of the JVB hosts, for example: -``` -[jitsi_jvb_servers] - ansible_host= -``` - -Each JVB will require a server ID to be set so that it can be uniquely identified and this allows Jitsi to keep track of which conferences are on which JVB. The server ID is set with the variable `jitsi_jvb_server_id` which ends up as the JVB_WS_SERVER_ID environment variables in the JVB docker container. This variable can be set via the host file, a parameter to the ansible command or in the `vars.yaml` for the host which will have the additional JVB. For example: - -``` yaml -jitsi_jvb_server_id: 'jvb-2' -``` - -``` INI -[jitsi_jvb_servers] -jvb-2.example.com ansible_host=192.168.0.2 jitsi_jvb_server_id=jvb-2 -jvb-3.example.com ansible_host=192.168.0.3 jitsi_jvb_server_id=jvb-2 -``` - -Note that the server ID `jvb-1` is reserved for the JVB instance running on the Matrix host and therefore should not be used as the ID of an additional jvb host. - -The additional JVB will also need to expose the colibri web socket port and this can be done with the following variable: - -```yaml -jitsi_jvb_container_colibri_ws_host_bind_port: 9090 -``` - -The JVB will also need to know where the prosody xmpp server is located, similar to the server ID this can be set in the vars for the JVB by using the variable `jitsi_xmpp_server`. The Jitsi prosody container is deployed on the Matrix server by default so the value can be set to the Matrix domain. For example: - -```yaml -jitsi_xmpp_server: "{{ matrix_domain }}" -``` - -However, it can also be set the ip address of the Matrix server. This can be useful if you wish to use a private ip. For example: - -```yaml -jitsi_xmpp_server: "192.168.0.1" -``` - -For the JVB to be able to contact the XMPP server, the latter must expose the XMPP port (5222). By default, the Matrix server does not expose the port; only the XMPP container exposes it internally inside the host, which means that the first JVB (which runs on the Matrix server) can reach it but the additional JVB cannot. The port is exposed by setting `jitsi_prosody_container_jvb_host_bind_port` like this: - -```yaml -jitsi_prosody_container_jvb_host_bind_port: 5222 -``` - -(The default is empty; if it's set then docker forwards the port.) - -Applied together this will allow you to provision extra JVB instances which will register themselves with the prosody service and be available for jicofo to route conferences too. - -To make Traefik reverse-proxy to these additional JVBs (living on other hosts), **you would need to add the following Traefik configuration extension**: - -```yaml -# Traefik proxying for additional JVBs. These can't be configured using Docker -# labels, like the first JVB is, because they run on different hosts, so we add -# the necessary configuration to the file provider. -traefik_provider_configuration_extension_yaml: | - http: - routers: - {% for host in groups['jitsi_jvb_servers'] %} - - additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-router: - entryPoints: - - "{{ traefik_entrypoint_primary }}" - rule: "Host(`{{ jitsi_hostname }}`) && PathPrefix(`/colibri-ws/{{ hostvars[host]['jitsi_jvb_server_id'] }}/`)" - service: additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service - {% if traefik_entrypoint_primary != 'web' %} - - tls: - certResolver: "{{ traefik_certResolver_primary }}" - - {% endif %} - - {% endfor %} - - services: - {% for host in groups['jitsi_jvb_servers'] %} - - additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service: - loadBalancer: - servers: - - url: "http://{{ host }}:9090/" - - {% endfor %} -``` - -## (Optional) Enable Gravatar - -In the default Jisti Meet configuration, gravatar.com is enabled as an avatar service. This results in third party request leaking data to gravatar. Since Element clients already send the url of configured Matrix avatars to Jitsi, we disabled gravatar. - -To enable Gravatar set: +To enable the Gravatar service nevertheless, add the following configuration to your `vars.yml` file: ```yaml jitsi_disable_gravatar: false ``` -**Beware**: This leaks information to a third party, namely the Gravatar-Service (unless configured otherwise: gravatar.com). Besides metadata, this includes the Matrix user_id and possibly the room identifier (via `referrer` header). +> [!WARNING] +> This will result in third party request leaking data to the Gravatar Service (`gravatar.com`, unless configured otherwise). Besides metadata, the Matrix user_id and possibly the room ID (via `referrer` header) will be also sent to the third party. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```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 You can use the self-hosted Jitsi server in multiple ways: - **by adding a widget to a room via Element Web** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server. -- **by adding a widget to a room via the Dimension integration manager**. You'll have to point the widget to your own Jitsi server manually. See our [Dimension integration manager](./configuring-playbook-dimension.md) documentation page for more details. Naturally, Dimension would need to be installed first (the playbook doesn't install it by default). +- **directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`, and you can start a videoconference. -- **directly (without any Matrix integration)**. Just go to `https://jitsi.example.com` - -**Note**: Element apps on mobile devices currently [don't support joining meetings on a self-hosted Jitsi server](https://github.com/element-hq/riot-web/blob/601816862f7d84ac47547891bd53effa73d32957/docs/jitsi.md#mobile-app-support). +Note that you'll need to log in to your Jitsi's account to start a conference if you have configured authentication with `internal` auth. +Check [the official user guide](https://jitsi.github.io/handbook/docs/category/user-guide) for details about how to use Jitsi. ## Troubleshooting -### Rebuilding your Jitsi installation - -**If you ever run into any trouble** or **if you change configuration (`jitsi_*` variables) too much**, we urge you to rebuild your Jitsi setup. - -We normally don't require such manual intervention for other services, but Jitsi services generate a lot of configuration files on their own. - -These files are not all managed by Ansible (at least not yet), so you may sometimes need to delete them all and start fresh. - -To rebuild your Jitsi configuration: - -- ask Ansible to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi` -- SSH into the server and do this and remove all Jitsi configuration & data (`rm -rf /matrix/jitsi`) -- ask Ansible to set up Jitsi anew and restart services (`just install-service jitsi`) +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md#troubleshooting) on the role's documentation for details. diff --git a/docs/configuring-playbook-ldap-auth.md b/docs/configuring-playbook-ldap-auth.md index 451d386ba..f6736a735 100644 --- a/docs/configuring-playbook-ldap-auth.md +++ b/docs/configuring-playbook-ldap-auth.md @@ -1,10 +1,21 @@ + + # Setting up the LDAP authentication password provider module (optional, advanced) The playbook can install and configure the [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) LDAP Auth password provider for you. -See that project's documentation to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/matrix-org/matrix-synapse-ldap3/blob/main/README.rst) to learn what it does and why it might be useful to you. -If you decide that you'd like to let this playbook install it for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): +## Adjusting the playbook configuration + +Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): ```yaml matrix_synapse_ext_password_provider_ldap_enabled: true @@ -21,21 +32,29 @@ matrix_synapse_ext_password_provider_ldap_bind_password: "" matrix_synapse_ext_password_provider_ldap_filter: "" ``` +### Authenticating only using a password provider -## Authenticating only using a password provider - -If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it: +If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, you can disable it by adding the following configuration to your `vars.yml` file: ```yaml matrix_synapse_password_config_localdb_enabled: false ``` +## Installing -## Using ma1sd Identity Server for authentication +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -If you wish to use the ma1sd Identity Server for LDAP authentication instead of [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) consult [Adjusting ma1sd Identity Server configuration](configuring-playbook-ma1sd.md#authentication). + +```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` -## Handling user registration +`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 + +### Handling user registration If you wish for users to also be able to make new registrations against LDAP, you may **also** wish to [set up the ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md). diff --git a/docs/configuring-playbook-ma1sd.md b/docs/configuring-playbook-ma1sd.md index adebb4abd..d520c1432 100644 --- a/docs/configuring-playbook-ma1sd.md +++ b/docs/configuring-playbook-ma1sd.md @@ -1,14 +1,32 @@ + + # Setting up ma1sd Identity Server (optional) -**⚠️Note**: ma1sd itself has also been unmaintained for years (the latest commit and release being from 2021). The role of identity servers in the Matrix specification also has an uncertain future. **We recommend not bothering with installing it unless it's the only way you can do what you need to do**. For example, certain things like LDAP integration can also be implemented via [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md). +> [!WARNING] +> Since ma1sd has been unmaintained for years (the latest commit and release being from 2021) and the future of identity server's role in the Matrix specification is uncertain, **we recommend not bothering with installing it unless it's the only way you can do what you need to do**. +> +> Please note that certain things can be achieved with other components. For example, if you wish to implement LDAP integration, you might as well check out [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md) instead. The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you. It is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21. ma1sd is used for 3PIDs (3rd party identifiers like E-mail and phone numbers) and some [enhanced features](https://github.com/ma1uta/ma1sd/#features). It is private by default, potentially at the expense of user discoverability. -See the project's [documentation](https://github.com/ma1uta/ma1sd) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/ma1uta/ma1sd/blob/master/README.md) to learn what it does and why it might be useful to you. -**Note**: enabling ma1sd, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. It's something to be aware of, especially in terms of firewall whitelisting (make sure port `8448` is accessible). +## Prerequisites + +### Open Matrix Federation port + +Enabling the ma1sd service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible. ## Adjusting DNS records @@ -19,6 +37,8 @@ To make the ma1sd Identity Server enable its federation features, set up a SRV r See [ma1sd's documentation](https://github.com/ma1uta/ma1sd/wiki/mxisd-and-your-privacy#choices-are-never-easy) for information on the privacy implications of setting up this SRV record. +When setting up a SRV record, if you are asked for a service and protocol instead of a hostname split the host value from the table where the period is. For example use service as `_matrix-identity` and protocol as `_tcp`. + **Note**: This `_matrix-identity._tcp` SRV record for the identity server is different from the `_matrix._tcp` that can be used for Synapse delegation. See [howto-server-delegation.md](howto-server-delegation.md) for more information about delegation. ## Adjusting the playbook configuration @@ -35,22 +55,21 @@ To ensure maximum discovery, you can make your identity server also forward look Enabling this is discouraged and you'd better [learn more](https://github.com/ma1uta/ma1sd/blob/master/docs/features/identity.md#lookups) before proceeding. -To enable matrix.org forwarding, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable matrix.org forwarding, add the following configuration to your `vars.yml` file: ```yaml matrix_ma1sd_matrixorg_forwarding_enabled: true ``` -### Additional features +### Extending the configuration -What this playbook configures for your is some bare minimum Identity Server functionality, so that you won't need to rely on external 3rd party services. +There are some additional things you may wish to configure about the component. -A few variables can be toggled in this playbook to alter the ma1sd configuration that gets generated. +Take a look at: -Still, ma1sd can do much more. You can refer to the [ma1sd website](https://github.com/ma1uta/ma1sd) for more details and configuration options. - -To use a more custom configuration, you can define a `matrix_ma1sd_configuration_extension_yaml` string variable and put your configuration in it. To learn more about how to do this, refer to the information about `matrix_ma1sd_configuration_extension_yaml` in the [default variables file](../roles/custom/matrix-ma1sd/defaults/main.yml) of the ma1sd component. +- `roles/custom/matrix-ma1sd/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_ma1sd_configuration_extension_yaml` variable +You can refer to the [ma1sd website](https://github.com/ma1uta/ma1sd) for more details and configuration options. #### Customizing email templates @@ -60,24 +79,23 @@ If you'd like to change the default email templates used by ma1sd, take a look a To use the [Registration](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) feature of ma1sd, you can make use of the following variables: -- `matrix_synapse_enable_registration` - to enable user-initiated registration in Synapse +- `matrix_synapse_enable_registration` — to enable user-initiated registration in Synapse -- `matrix_synapse_enable_registration_captcha` - to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring-captcha.md) documentation. +- `matrix_synapse_enable_registration_captcha` — to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring-captcha.md) documentation. -- `matrix_synapse_registrations_require_3pid` - a list of 3pid types (among `'email'`, `'msisdn'`) required by the Synapse server for registering +- `matrix_synapse_registrations_require_3pid` — a list of 3pid types (among `'email'`, `'msisdn'`) required by the Synapse server for registering -- variables prefixed with `matrix_ma1sd_container_labels_` (e.g. `matrix_ma1sd_container_labels_matrix_client_3pid_registration_enabled`) - to configure the Traefik reverse-proxy to capture and send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality +- variables prefixed with `matrix_ma1sd_container_labels_` (e.g. `matrix_ma1sd_container_labels_matrix_client_3pid_registration_enabled`) — to configure the Traefik reverse-proxy to capture and send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality -- `matrix_ma1sd_configuration_extension_yaml` - to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`. +- `matrix_ma1sd_configuration_extension_yaml` — to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`. **Note**: For this to work, either the homeserver needs to [federate](configuring-playbook-federation.md) or the `openid` APIs need to exposed on the federation port. When federation is disabled and ma1sd is enabled, we automatically expose the `openid` APIs (only!) on the federation port. Make sure the federation port (usually `https://matrix.example.com:8448`) is whitelisted in your firewall (even if you don't actually use/need federation). - #### Authentication [Authentication](https://github.com/ma1uta/ma1sd/blob/master/docs/features/authentication.md) provides the possibility to use your own [Identity Stores](https://github.com/ma1uta/ma1sd/blob/master/docs/stores/README.md) (for example LDAP) to authenticate users on your Homeserver. -To enable authentication against an LDAP server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable authentication against an LDAP server, add the following configuration to your `vars.yml` file: ```yaml matrix_synapse_ext_password_provider_rest_auth_enabled: true @@ -131,16 +149,28 @@ matrix_ma1sd_configuration_extension_yaml: | ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. ## Troubleshooting If email address validation emails sent by ma1sd are not reaching you, you should look into [Adjusting email-sending settings](configuring-playbook-email.md). -If you'd like additional logging information, temporarily enable verbose logging for ma1sd. +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-ma1sd`. -To enable it, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +### Increase logging verbosity + +If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: ```yaml +# See: https://github.com/ma1uta/ma1sd/blob/master/docs/troubleshooting.md#increase-verbosity matrix_ma1sd_verbose_logging: true ``` diff --git a/docs/configuring-playbook-matrix-authentication-service.md b/docs/configuring-playbook-matrix-authentication-service.md index c94a250d9..eda09cc4b 100644 --- a/docs/configuring-playbook-matrix-authentication-service.md +++ b/docs/configuring-playbook-matrix-authentication-service.md @@ -1,6 +1,13 @@ + + # Setting up Matrix Authentication Service (optional) -This playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) - a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/). +The playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) — a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/). Matrix Authentication Service is an implementation of [MSC3861: Next-generation auth for Matrix, based on OAuth 2.0/OIDC](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) and still work in progress, tracked at the [areweoidcyet.com](https://areweoidcyet.com/) website. @@ -12,7 +19,6 @@ Matrix Authentication Service is an implementation of [MSC3861: Next-generation **If you've already been using Synapse** and have user accounts in its database, you can [migrate to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service). - ## Reasons to use Matrix Authentication Service You may be wondering whether you should make the switch to Matrix Authentication Service (MAS) or keep using your existing authentication flow via Synapse (password-based or [OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)-enabled). @@ -33,16 +39,12 @@ Below, we'll try to **highlight some potential reasons for switching** to Matrix - To reap some of the security benefits that Matrix Authentication Service offers, as outlined in the [Better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/) article. - ## Prerequisites - ⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet. -- ⚠️ **email sending** configured (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working. - - ❌ **disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below. - ## Expectations This section details what you can expect when switching to the Matrix Authentication Service (MAS). @@ -57,35 +59,26 @@ This section details what you can expect when switching to the Matrix Authentica > cannot initialize matrix bot error="olm account is marked as shared, keys seem to have disappeared from the server" - - [matrix-reminder-bot](./configuring-playbook-bot-matrix-reminder-bot.md) fails to start (see [element-hq/matrix-authentication-service#3439](https://github.com/element-hq/matrix-authentication-service/issues/3439)) - - Other services may be similarly affected. This list is not exhaustive. - - ❌ **Encrypted appservices** do not work yet (related to [MSC4190](https://github.com/matrix-org/matrix-spec-proposals/pull/4190) and [PR 17705 for Synapse](https://github.com/element-hq/synapse/pull/17705)), so all bridges/bots that rely on encryption will fail to start (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3658) for Hookshot). You can use these bridges/bots only if you **keep end-to-bridge encryption disabled** (which is the default setting). -- ⚠️ **You will need to have email sending configured** (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working. - - ⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) is **possible**, but requires **some playbook-assisted manual work**. Migration is **reversible with no or minor issues if done quickly enough**, but as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break. -- ⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) does not currently seem to preserve the "admin" flag for users (as found in the Synapse database). All users are imported as non-admin - see [element-hq/matrix-authentication-service#3440](https://github.com/element-hq/matrix-authentication-service/issues/3440). You may need update the Matrix Authentication Service's database manually and adjust the `can_request_admin` column in the `users` table to `true` for users that need to be administrators (e.g. `UPDATE users SET can_request_admin = true WHERE username = 'someone';`) - - ⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependant on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch. - ⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration). -- ⚠️ A [compatibility layer](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) is installed - all `/_matrix/client/*/login` (etc.) requests will be routed to MAS instead of going to the homeserver. This is done both publicly (e.g. `https://matrix.example.com/_matrix/client/*/login`) and on the internal Traefik entrypoint (e.g. `https://matrix-traefik:8008/_matrix/client/*/login`) which helps addon services reach the homeserver's Client-Server API. You typically don't need to do anything to make this work, but it's good to be aware of it, especially if you have a [custom webserver setup](./configuring-playbook-own-webserver.md). +- ⚠️ A [compatibility layer](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) is installed — all `/_matrix/client/*/login` (etc.) requests will be routed to MAS instead of going to the homeserver. This is done both publicly (e.g. `https://matrix.example.com/_matrix/client/*/login`) and on the internal Traefik entrypoint (e.g. `https://matrix-traefik:8008/_matrix/client/*/login`) which helps addon services reach the homeserver's Client-Server API. You typically don't need to do anything to make this work, but it's good to be aware of it, especially if you have a [custom webserver setup](./configuring-playbook-own-webserver.md). - ✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad. - ✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element Web](./configuring-playbook-client-element-web.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service -- ✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow. +- ✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work - ✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`. - ✅ Users that are prepared by the playbook (for bots, bridges, etc.) will continue to be registered automatically as expected. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. - - ## Installation flows ### New homeserver @@ -102,6 +95,11 @@ For existing Synapse homeservers: - then follow the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) instructions to perform the installation and migration +## Adjusting DNS records (optional) + +By default, this playbook installs the Matrix Authentication Service on the `matrix.` subdomain, at the `/auth` path (https://matrix.example.com/auth). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-matrix-authentication-service-url-optional) for details about DNS configuration. ## Adjusting the playbook configuration @@ -123,14 +121,11 @@ In the sub-sections that follow, we'll cover some additional configuration optio There are many other configuration options available. Consult the [`defaults/main.yml` file](../roles/custom/matrix-authentication-service/defaults/main.yml) in the [matrix-authentication-service role](../roles/custom/matrix-authentication-service/) to discover them. - -### Adjusting the Matrix Authentication Service URL - -By default, this playbook installs the Matrix Authentication Service on the `matrix.` subdomain, at the `/auth` path (https://matrix.example.com/auth). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Matrix Authentication Service URL (optional) By tweaking the `matrix_authentication_service_hostname` and `matrix_authentication_service_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -138,13 +133,16 @@ matrix_authentication_service_hostname: auth.example.com matrix_authentication_service_path_prefix: / ``` +If you've changed the default hostname, you may need to create a CNAME record for the Matrix Authentication Service domain (`auth.example.com`), which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + ### Marking an existing homeserver for migration The [configuration above](#adjusting-the-playbook-configuration) instructs existing users wishing to migrate to add `matrix_authentication_service_migration_in_progress: true` to their configuration. This is done temporarily. The migration steps are described in more detail in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) section below. - ### Upstream OAuth2 configuration To make Matrix Authentication Service delegate to an existing upstream OAuth 2.0/OIDC provider, you can use its [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers). @@ -154,7 +152,7 @@ The playbook exposes a `matrix_authentication_service_config_upstream_oauth2_pro
Click to expand the example configuration: -Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml matrix_authentication_service_config_upstream_oauth2_providers: @@ -248,7 +246,7 @@ matrix_authentication_service_config_upstream_oauth2_providers: #action: force #template: "{% raw %}{{ user.preferred_username }}{% endraw %}" # The display name is the user's display name. - displayname: + #displayname: #action: suggest #template: "{% raw %}{{ user.name }}{% endraw %}" # An email address to import. @@ -276,25 +274,34 @@ matrix_authentication_service_config_upstream_oauth2_providers: - go through the [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) process - remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration +### Extending the configuration -## Adjusting DNS records +There are some additional things you may wish to configure about the component. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the Matrix Authentication Service domain to the Matrix server. - -See [Configuring DNS](configuring-dns.md) for details about DNS changes. - -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +Take a look at: +- `roles/custom/matrix-authentication-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-authentication-service/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_authentication_service_configuration_extension_yaml` variable ## Installing -Now that you've [adjusted the playbook configuration](#adjusting-the-playbook-configuration) and [your DNS records](#adjusting-dns-records), you can run the [installation](installing.md) command: `just install-all` +Now that you've [adjusted the playbook configuration](#adjusting-the-playbook-configuration) and [your DNS records](#adjusting-dns-records), you can run the playbook with [playbook tags](playbook-tags.md) as below: -If you're in the process of migrating an existing Synapse homeserver to MAS, you should now follow the rest of the steps in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) guide. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` + +**Notes**: + +- 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. + +- If you're in the process of migrating an existing Synapse homeserver to MAS, you should now follow the rest of the steps in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) guide. 💡 After installation, you should [verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly). - ## Migrating an existing Synapse homeserver to Matrix Authentication Service Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide. @@ -333,7 +340,6 @@ The installation + migration steps are like this: 6. [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) - ### Migrate your data from Synapse to Matrix Authentication Service using syn2mas We **don't** ask you to [run the `syn2mas` migration advisor command](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#run-the-migration-advisor), because it only gives you the green light if your Synapse configuration (`homeserver.yaml`) is configured in a way that's compatible with MAS (delegating authentication to MAS; disabling Synapse's password config; etc.). Until we migrate your data with the `syn2mas` tool, we intentionally avoid doing these changes to allow existing user sessions to work. @@ -354,7 +360,7 @@ If you have existing OIDC users in your Synapse user database (which will be the If you don't do this, `syn2mas` would report errors like this one: -> [FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @user:example.com: Error: Unknown upstream provider oidc-keycloak] +> [FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @alice:example.com: Error: Unknown upstream provider oidc-keycloak] Below is an example situation and a guide for how to solve it. @@ -362,9 +368,9 @@ If in `matrix_synapse_oidc_providers` your provider `idp_id` is (was) named `key The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the MAS side, as defined in `matrix_authentication_service_config_upstream_oauth2_providers` (see the [Upstream OAuth2 configuration](#upstream-oauth2-configuration) section above). -To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `vars.yml` file: -```yml +```yaml # Adjust the mapping below to match your provider IDs on the Synapse side and the MAS side. # Don't forget that Synapse automatically adds an `oidc-` prefix to provider ids defined in its configuration. matrix_authentication_service_syn2mas_process_extra_arguments: @@ -407,7 +413,6 @@ just run-tags matrix-authentication-service-syn2mas Having performed a `syn2mas` migration once, trying to do it again will report errors for users that were already migrated (e.g. "Error: Unknown upstream provider oauth-delegated"). - ## Verify that Matrix Authentication Service is installed correctly After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly. @@ -430,7 +435,9 @@ If successful, you should see some output that looks like this: ✅ The legacy login API at "https://matrix.example.com/_matrix/client/v3/login" is reachable and is handled by MAS. ``` -## Management +## Usage + +### Management You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS. @@ -442,20 +449,26 @@ This documentation page already mentions: There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview. - -## User registration +### User registration After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration)). You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag). +### Working around email deliverability issues -## Working around email deliverability issues +Matrix Authentication Service only sends emails when: -Because Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user, you may need to work around email deliverability issues if [your email-sending configuration](./configuring-playbook-email.md) is not working. +- it verifies email addresses for users who are self-registering with a password -Matrix Authentication Service attempts to verify email addresses by sending a verification email to the address specified by the user whenever they log in to an account without a verified email address. +- a user tries to add an email to their account -If email delivery is not working, **you can retrieve the email configuration code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`). +If Matrix Authentication Service tries to send an email and it fails because [your email-sending configuration](./configuring-playbook-email.md) is not working, you may need to work around email deliverability. + +If email delivery is not working, **you can retrieve the email verification code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`). Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com` + +## 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-authentication-service`. diff --git a/docs/configuring-playbook-matrix-corporal.md b/docs/configuring-playbook-matrix-corporal.md index bb72dbb72..34c80fe6b 100644 --- a/docs/configuring-playbook-matrix-corporal.md +++ b/docs/configuring-playbook-matrix-corporal.md @@ -1,20 +1,26 @@ + + # Setting up Matrix Corporal (optional, advanced) -------------------------------------- - -**WARNING**: This is an advanced feature! It requires prior experience with Matrix and a specific need for using [Matrix Corporal](https://github.com/devture/matrix-corporal). If you're unsure whether you have such a need, you most likely don't. - -------------------------------------- +> [!WARNING] +> This is an advanced feature! It requires prior experience with Matrix and a specific need for using [Matrix Corporal](https://github.com/devture/matrix-corporal). If you're unsure whether you have such a need, you most likely don't. The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you. -In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment. See that project's documentation to learn what it does and why it might be useful to you. +In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment. + +See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you. If you decide that you'd like to let this playbook install it for you, you'd need to also: - (required) [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) - (optional, but encouraged) [set up the REST authentication password provider module](configuring-playbook-rest-auth.md) - ## Adjusting the playbook configuration Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): @@ -47,7 +53,7 @@ matrix_corporal_policy_provider_config: | "TimeoutMilliseconds": 300 } -# If you also want to enable Matrix Corporal's HTTP API.. +# If you also want to enable Matrix Corporal's HTTP API… matrix_corporal_http_api_enabled: true matrix_corporal_http_api_auth_token: "AUTH_TOKEN_HERE" @@ -114,10 +120,27 @@ aux_file_definitions: To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md). +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-corporal/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-corporal/templates/config.json.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_corporal_configuration_extension_json` variable + ## Installing -After configuring the playbook, run the [installation](installing.md) command (`--tags=setup-all,start` or `--tags=setup-aux-files,setup-corporal,start`). +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + +```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 run-tags setup-aux-files,setup-corporal,start` or `just setup-all` + +`just run-tags setup-aux-files,setup-corporal,start` 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. ## Matrix Corporal files @@ -129,4 +152,16 @@ The following local filesystem paths are mounted in the `matrix-corporal` contai - `/matrix/corporal/cache` is mounted at `/var/cache/matrix-corporal` (read and write) -As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths - `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write). +As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths — `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write). + +## 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-corporal`. + +### Increase logging verbosity + +If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: + +```yaml +matrix_corporal_debug: true +``` diff --git a/docs/configuring-playbook-matrix-ldap-registration-proxy.md b/docs/configuring-playbook-matrix-ldap-registration-proxy.md index 828dee04a..489bb6d74 100644 --- a/docs/configuring-playbook-matrix-ldap-registration-proxy.md +++ b/docs/configuring-playbook-matrix-ldap-registration-proxy.md @@ -1,22 +1,33 @@ + + # Setting up matrix-ldap-registration-proxy (optional) The playbook can install and configure [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) for you. This proxy handles Matrix registration requests and forwards them to LDAP. +See the project's [documentation](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/-/blob/main/README.md) to learn what it does and why it might be useful to you. + **Note**: This does support the full Matrix specification for registrations. It only provide a very coarse implementation of a basic password registration. -## Quickstart +## Adjusting the playbook configuration -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable the component, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): ```yaml matrix_ldap_registration_proxy_enabled: true + # LDAP credentials -matrix_ldap_registration_proxy_ldap_uri: -matrix_ldap_registration_proxy_ldap_base_dn: -matrix_ldap_registration_proxy_ldap_user: -matrix_ldap_registration_proxy_ldap_password: +matrix_ldap_registration_proxy_ldap_uri: YOUR_URI_HERE +matrix_ldap_registration_proxy_ldap_base_dn: YOUR_DN_HERE +matrix_ldap_registration_proxy_ldap_user: YOUR_USER_HERE +matrix_ldap_registration_proxy_ldap_password: YOUR_PASSWORD_HERE ``` If you already use the [synapse external password provider via LDAP](configuring-playbook-ldap-auth.md) (that is, you have `matrix_synapse_ext_password_provider_ldap_enabled: true` and other options in your configuration) you can use the following values as configuration: @@ -32,6 +43,27 @@ matrix_ldap_registration_proxy_systemd_wanted_services_list_custom: - matrix-synapse.service ``` +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-ldap-registration-proxy/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-ldap-registration-proxy`. diff --git a/docs/configuring-playbook-matrix-media-repo.md b/docs/configuring-playbook-matrix-media-repo.md index 161965d95..e660d434d 100644 --- a/docs/configuring-playbook-matrix-media-repo.md +++ b/docs/configuring-playbook-matrix-media-repo.md @@ -1,38 +1,81 @@ + + # Storing Matrix media files using matrix-media-repo (optional) -[matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) (often abbreviated "MMR") is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification. +The playbook can install and configure [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) (often abbreviated "MMR") for you. -Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment. +MMR is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification. -For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo. +**Notes**: +- If MMR is enabled, other media store roles should be disabled (if using Synapse with other media store roles). +- Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment. +- For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo. -| **Table of Contents** | -| :------------------------------------------------------------------------------------------ | -| [Quickstart](#quickstart) | -| [Additional configuration options](#configuring-the-media-repo) | -| [Importing data from an existing media store](#importing-data-from-an-existing-media-store) | +## Adjusting the playbook configuration -## Quickstart - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file and [re-run the installation process](./installing.md) for the playbook: +To enable matrix-media-repo, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_media_repo_enabled: true - -# (optional) Turned off by default -# matrix_media_repo_metrics_enabled: true ``` -The repo is pre-configured for integrating with the Postgres database, Traefik proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles). - By default, the media-repo will use the local filesystem for data storage. You can alternatively use a `s3` cloud backend as well. Access token caching is also enabled by default since the logout endpoints are proxied through the media repo. -## Configuring the media-repo +### Enable metrics + +The playbook can enable and configure the metrics of the service for you. + +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. + +To enable the metrics, add the following configuration to your `vars.yml` file: -Additional common configuration options: ```yaml +# Expose metrics (locally, on the container network). +matrix_media_repo_metrics_enabled: true +``` -# The postgres database pooling options +**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/matrix-media-repo` by adding the following configuration to your `vars.yml` file: + +```yaml +matrix_media_repo_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: + +```yaml +matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_enabled: true +matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_users: '' +``` + +To `matrix_media_repo_container_labels_traefik_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. + +#### Enable Grafana (optional) + +Probably you wish to enable Grafana along with Prometheus for generating graphs of the metics. + +To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions. + +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-media-repo/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + +Here is a list of additional common configuration options: + +```yaml +# The Postgres database pooling options # The maximum number of connects to hold open. More of these allow for more concurrent # processes to happen. @@ -46,7 +89,7 @@ matrix_media_repo_database_max_idle_connections: 5 # See docs/admin.md for information on what these people can do. They must belong to one of the # configured homeservers above. # matrix_media_repo_admins: [ -# "@your_username:example.org" +# "@alice:example.org" # ] matrix_media_repo_admins: [] @@ -59,10 +102,10 @@ matrix_media_repo_admins: [] # To disable this datastore, making it readonly, specify `forKinds: []`. # # The kinds available are: -# thumbnails - Used to store thumbnails of media (local and remote). -# remote_media - Original copies of remote media (servers not configured by this repo). -# local_media - Original uploads for local media. -# archives - Archives of content (GDPR and similar requests). +# thumbnails — Used to store thumbnails of media (local and remote). +# remote_media — Original copies of remote media (servers not configured by this repo). +# local_media — Original uploads for local media. +# archives — Archives of content (GDPR and similar requests). matrix_media_repo_datastore_file_for_kinds: ["thumbnails", "remote_media", "local_media", "archives"] matrix_media_repo_datastore_s3_for_kinds: [] @@ -84,11 +127,8 @@ matrix_media_repo_datastore_s3_opts_bucket_name: "your-media-bucket" # An optional storage class for tuning how the media is stored at s3. # See https://aws.amazon.com/s3/storage-classes/ for details; uncomment to use. # matrix_media_repo_datastore_s3_opts_storage_class: "STANDARD" - ``` -Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-media-repo/defaults/main.yml) - ## Signing Keys Authenticated media endpoints ([MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)) requires MMR to have a configured signing key to authorize outbound federation requests. Additionally, the signing key must be merged with your homeserver's signing key file. @@ -160,3 +200,15 @@ docker exec -it matrix-media-repo \ Enter `1` for the Machine ID when prompted (you are not doing any horizontal scaling) unless you know what you're doing. This should output a `msg="Import completed"` when finished successfully! + +## 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-media-repo`. + +### Increase logging verbosity + +If you want to turn on sentry's built-in debugging, add the following configuration to your `vars.yml` file and re-run the playbook: + +```yaml +matrix_media_repo_sentry_debug: true +``` diff --git a/docs/configuring-playbook-matrix-registration.md b/docs/configuring-playbook-matrix-registration.md index edc529eda..441c85973 100644 --- a/docs/configuring-playbook-matrix-registration.md +++ b/docs/configuring-playbook-matrix-registration.md @@ -1,14 +1,20 @@ + + # Setting up matrix-registration (optional) -The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you. +> [!WARNING] +> - This is a poorly maintained and buggy project. It's better to avoid using it. +> - This is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) -**WARNING**: this is a poorly maintained and buggy project. It's better to avoid using it. +The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you. It is a simple python application to have a token based Matrix registration. -**WARNING**: this is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) - -> matrix-registration is a simple python application to have a token based Matrix registration. - -Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows you to **keep your server's registration closed (private)**, but still allow certain people (these having a special link) to register a user account. +Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows certain people (these having a special link) to register a user account, **keeping your server's registration closed (private)**. **matrix-registration** provides 2 things: @@ -16,6 +22,11 @@ Use matrix-registration to **create unique registration links**, which people ca - **a user registration page**, where people can use these registration tokens. By default, exposed at `https://matrix.example.com/matrix-registration` +## Adjusting DNS records (optional) + +By default, this playbook installs the matrix-registration on the `matrix.` subdomain, at the `/matrix-registration` path (https://matrix.example.com/matrix-registration). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-matrix-registration-url-optional) for details about DNS configuration. ## Adjusting the playbook configuration @@ -24,17 +35,15 @@ To enable matrix-registration, add the following configuration to your `inventor ```yaml matrix_registration_enabled: true -# Generate a strong secret here. Consider generating it with `pwgen -s 64 1` +# Generate a strong secret here. You can create one with a command like `pwgen -s 64 1`. matrix_registration_admin_secret: "ENTER_SOME_SECRET_HERE" ``` -### Adjusting the matrix-registration URL - -By default, this playbook installs the matrix-registration on the `matrix.` subdomain, at the `/matrix-registration` path (https://matrix.example.com/matrix-registration). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the matrix-registration URL (optional) By tweaking the `matrix_registration_hostname` and `matrix_registration_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -42,37 +51,45 @@ matrix_registration_hostname: registration.example.com matrix_registration_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the matrix-registration domain (`registration.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the matrix-registration domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-registration/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-registration/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_registration_configuration_extension_yaml` variable ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```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 **matrix-registration** gets exposed at `https://matrix.example.com/matrix-registration` -It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) - for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`. +It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) — for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`. We make the most common APIs easy to use via the playbook (see below). - ### Creating registration tokens To **create a new user registration token (link)**, use this command: -```bash +```sh ansible-playbook -i inventory/hosts setup.yml \ --tags=generate-matrix-registration-token \ --extra-vars="one_time=yes ex_date=2021-12-31" @@ -82,12 +99,17 @@ The above command creates and returns a **one-time use** token, which **expires* Share the unique registration link (generated by the command above) with users to let them register on your Matrix server. - ### Listing registration tokens To **list the existing user registration tokens**, use this command: -```bash +```sh ansible-playbook -i inventory/hosts setup.yml \ --tags=list-matrix-registration-tokens ``` + +The shortcut command with `just` program is also available: `just run-tags list-matrix-registration-tokens` + +## 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-registration`. diff --git a/docs/configuring-playbook-mautrix-bridges.md b/docs/configuring-playbook-mautrix-bridges.md deleted file mode 100644 index 1747b079a..000000000 --- a/docs/configuring-playbook-mautrix-bridges.md +++ /dev/null @@ -1,135 +0,0 @@ -# Setting up a Generic Mautrix Bridge (optional) - -The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, facebook, instagram, signal, hangouts, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges. - -You can see each bridge's features at in the `ROADMAP.md` file in its corresponding [mautrix](https://github.com/mautrix) repository. - -## Adjusting the playbook configuration - -To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -# Replace SERVICENAME with one of: twitter, facebook, instagram, .. -matrix_mautrix_SERVICENAME_enabled: true -``` - -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. - -To **configure a user as an administrator for all bridges**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -matrix_admin: "@YOUR_USERNAME:{{ matrix_domain }}" -``` - -**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with: - -```yaml -matrix_mautrix_SERVICENAME_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:{{ matrix_domain }}': admin -``` - -## encryption - -Encryption support is off by default. If you would like to enable encryption, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -**for all bridges with encryption support**: - -```yaml -matrix_bridges_encryption_enabled: true -matrix_bridges_encryption_default: true -``` - -**Alternatively**, for a specific bridge: - -```yaml -matrix_mautrix_SERVICENAME_bridge_encryption_enabled: true -matrix_mautrix_SERVICENAME_bridge_encryption_default: true -``` - -## relay mode - -Relay mode is off by default. If you would like to enable relay mode, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -**for all bridges with relay mode support**: - -```yaml -matrix_bridges_relay_enabled: true -``` - -**Alternatively**, for a specific bridge: - -```yaml -matrix_mautrix_SERVICENAME_configuration_extension_yaml: | - bridge: - relay: - enabled: true -``` - -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 -matrix_mautrix_SERVICENAME_configuration_extension_yaml: | - bridge: - permissions: - '@YOUR_USERNAME:{{ matrix_domain }}': admin - encryption: - allow: true - default: true -``` - -## Setting the bot's username - -```yaml -matrix_mautrix_SERVICENAME_appservice_bot_username: "BOTNAME" -``` - -Can be used to set the username for the bridge. - -## Discovering additional configuration options - -You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` to find other things you would like to configure. - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` - -## Set up Double Puppeting - -To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook. - -The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook by adding - -```yaml -matrix_appservice_double_puppet_enabled: true -``` - -This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. - -## Controlling the logging level - -```yaml -matrix_mautrix_SERVICENAME_logging_level: WARN -``` - -to `vars.yml` to control the logging level, where you may replace WARN with one of the following to control the verbosity of the logs generated: TRACE, DEBUG, INFO, WARN, ERROR, or FATAL. - -If you have issues with a service, and are requesting support, the higher levels of logging will generally be more helpful. - - -## Usage - -You then need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). - -Send `login` to the bridge bot to get started. You can learn more here about authentication from the bridge's official documentation on Authentication: https://docs.mau.fi/bridges/python/SERVICENAME/authentication.html - -If you run into trouble, check the [Troubleshooting](#troubleshooting) section below. - - - -## Troubleshooting - -For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge. - -Reporting bridge bugs should happen upstream, in the corresponding mautrix repository, not to us. diff --git a/docs/configuring-playbook-nginx.md b/docs/configuring-playbook-nginx.md index 2d3353081..c15ad7f14 100644 --- a/docs/configuring-playbook-nginx.md +++ b/docs/configuring-playbook-nginx.md @@ -1,3 +1,14 @@ + + # Configure Nginx (optional, advanced) Since 2024-01, this playbook no longer uses nginx as its reverse-proxy. diff --git a/docs/configuring-playbook-ntfy.md b/docs/configuring-playbook-ntfy.md index abd10feed..8d5a63997 100644 --- a/docs/configuring-playbook-ntfy.md +++ b/docs/configuring-playbook-ntfy.md @@ -1,118 +1,161 @@ + + # Setting up the ntfy push notifications server (optional) The playbook can install and configure the [ntfy](https://ntfy.sh/) push notifications server for you. -Using the [UnifiedPush](https://unifiedpush.org) standard, ntfy enables self-hosted (Google-free) push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix compatible client apps running on Android and other devices. +ntfy lets you send push notifications to your phone or desktop via scripts from any computer, using simple HTTP PUT or POST requests. It makes it possible to send/receive notifications, without relying on servers owned and controlled by third parties. -This role is intended to support UnifiedPush notifications for use with the Matrix and Matrix-related services that this playbook installs. This role is not intended to support all of ntfy's other features. +With the [UnifiedPush](https://unifiedpush.org) standard, ntfy also enables self-hosted push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix client apps running on Android devices. -**Note**: In contrast to push notifications using Google's FCM or Apple's APNs, the use of UnifiedPush allows each end-user to choose the push notification server that they prefer. As a consequence, deploying this ntfy server does not by itself ensure any particular user or device or client app will use it. +See the project's [documentation](https://docs.ntfy.sh/) to learn what ntfy does and why it might be useful to you. +The [Ansible role for ntfy](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring ntfy, you can check them via: +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md) online +- 📁 `roles/galaxy/ntfy/docs/configuring-ntfy.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) + +**Note**: this playbook focuses on setting up a ntfy server for getting it send push notifications with UnifiedPush to Matrix-related services that this playbook installs, while the installed server will be available for other non-Matrix apps like [Tusky](https://tusky.app/) and [DAVx⁵](https://www.davx5.com/) as well. This playbook does not intend to support all of ntfy's features. If you want to use them as well, refer the role's documentation for details to configure them by yourself. + +### Improve push notification's privacy with ntfy + +By default, push notifications received on Matrix apps on Android/iOS act merely as "wake-up calls" for the application, which contain only event IDs, and do not transmit actual message payload such as text message data. + +While your messages remain private even without ntfy, it makes it possible to improve privacy and sovereignty of your Matrix installation, offering greater control over your data, by avoiding routing these "application wake-up calls" through Google or Apple servers and having them pass through the self-hosted ntfy instance on your Matrix server. + +### How ntfy works with UnifiedPush + +⚠️ [UnifiedPush does not work on iOS.](https://unifiedpush.org/users/faq/#will-unifiedpush-ever-work-on-ios) + +ntfy implements UnifiedPush, the standard which makes it possible to send and receive push notifications without using Google's Firebase Cloud Messaging (FCM) service. + +Working as a **Push Server**, a ntfy server can forward messages via [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/) as a **Distributor** to a UnifiedPush-compatible Matrix client such as Element Android and FluffyChat Android (see [here](https://unifiedpush.org/users/distributors/#definitions) for the definition of the Push Server and the Distributor). + +Note that UnifiedPush-compatible applications must be able to communicate with the ntfy Android app which works as the Distributor on the same device, in order to receive push notifications from the Push Server. + +As the ntfy Android app functions as the Distributor, you do not have to install something else on your device, besides a UnifiedPush-compatible Matrix client. + +## Adjusting DNS records + +By default, this playbook installs ntfy on the `ntfy.` subdomain (`ntfy.example.com`) and requires you to create a CNAME record for `ntfy`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration -To enable ntfy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +To enable a ntfy server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml -# Enabling it is the only required setting +######################################################################## +# # +# ntfy # +# # +######################################################################## + ntfy_enabled: true -# Uncomment to enable the ntfy web app (disabled by default) -# ntfy_web_root: app # defaults to "disable" - -# Uncomment and change to inject additional configuration options. -# ntfy_configuration_extension_yaml: | -# log_level: DEBUG +######################################################################## +# # +# /ntfy # +# # +######################################################################## ``` -For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/defaults/main.yml) of the ntfy Ansible role. +As the most of the necessary settings for the role have been taken care of by the playbook, you can enable the ntfy server on your Matrix server with this minimum configuration. -For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options). +See the role's documentation for details about configuring ntfy per your preference (such as [setting access control with authentication](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#enable-access-control-with-authentication-optional)). -### Adjusting the ntfy URL - -By default, this playbook installs ntfy on the `ntfy.` subdomain (`ntfy.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the ntfy URL (optional) By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one. -Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname ntfy_hostname: push.example.com ``` -## Adjusting DNS records +After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server. -Once you've decided on the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server. +### Enable web app (optional) -By default, you will need to create a CNAME record for `ntfy`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +The ntfy server can be accessed via its web app where you can subscribe to and push to "topics" from the browser. The web app may be helpful to troubleshoot notification issues or to use ntfy for other purposes than getting ntfy send UnifiedPush notifications to your Matrix-related services. + +**Note**: subscribing to a topic is not necessary for using the nfty server as the Push Server for UnifiedPush. + +To enable the web app, add the following configuration to your `vars.yml` file: + +```yaml +ntfy_web_root: app +``` + +See [the official documentation](https://docs.ntfy.sh/subscribe/web/) for details about how to use it. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```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 make use of your ntfy installation, on Android for example, you need two things: +To receive push notifications with UnifiedPush from the ntfy server, you need to **install [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/)** which works as the Distrubutor and then **configure a UnifiedPush-compatible Matrix client**. After setting up the ntfy Android app, the Matrix client listens to it, and push notitications are "distributed" from it. -* the `ntfy` app -* a UnifiedPush-compatible Matrix app +For details about installing and configuring the ntfy Android app, take a look at [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#install-the-ntfy-androidios-app) on the role's documentation. -You need to install the `ntfy` app on each device on which you want to receive push notifications through your ntfy server. The `ntfy` app will provide UnifiedPush notifications to any number of UnifiedPush-compatible messaging apps installed on the same device. +⚠️ Though the ntfy app is available for iOS ([App Store](https://apps.apple.com/us/app/ntfy/id1625396347); the app's source code can be retrieved from [here](https://github.com/binwiederhier/ntfy-ios)), **any Matrix clients for iOS currently do not support ntfy** due to [technical limitations of the iOS platform](https://github.com/binwiederhier/ntfy-ios/blob/main/docs/TECHNICAL_LIMITATIONS.md). If you develop your own Matrix client app for iOS, you may need to use the [Sygnal](configuring-playbook-sygnal.md) push gateway service to deliver push notifications to it. -### Setting up the `ntfy` Android app +### Setting up a UnifiedPush-compatible Matrix client -1. Install the [ntfy Android app](https://ntfy.sh/docs/subscribe/phone/) from F-droid or Google Play. -2. In its Settings -> `General: Default server`, enter your ntfy server URL, such as `https://ntfy.example.com`. -3. In its Settings -> `Advanced: Connection protocol`, choose `WebSockets`. +Having configured the ntfy Android app, you can configure a UnifiedPush-compatible Matrix client on the same device. -That is all you need to do in the ntfy app. It has many other features, but for our purposes you can ignore them. In particular you do not need to follow any instructions about subscribing to a notification topic as UnifiedPush will do that automatically. +Steps needed for specific Matrix clients: -### Setting up a UnifiedPush-compatible Matrix app +* FluffyChat-Android: this should auto-detect and use the app. No manual settings required. -Install any UnifiedPush-enabled Matrix app on that same device. The Matrix app will learn from the `ntfy` app that you have configured UnifiedPush on this device, and then it will tell your Matrix server to use it. - -Steps needed for specific Matrix apps: - -* FluffyChat-android: - - Should auto-detect and use it. No manual settings. - -* SchildiChat-android: +* SchildiChat-Android: 1. enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`. - 2. choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in `ntfy` app, force-close SchildiChat, re-open it.)* + 2. choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in the ntfy Android app, force-close SchildiChat, re-open it.)* 3. verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the "Troubleshooting" section. -* Element-android v1.4.26+: +* Element-Android v1.4.26+: 1. choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy` 2. verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings` -If the Matrix app asks, "Choose a distributor: FCM Fallback or ntfy", then choose "ntfy". - -If the Matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below. - -### Web App - -ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript). - -The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: "app"` and re-running Ansible. +If the Matrix client asks, "Choose a distributor: FCM Fallback or ntfy", then choose "ntfy". +If the Matrix client doesn't seem to pick it up, try restarting it and try the Troubleshooting section below. ## Troubleshooting -First check that the Matrix client app you are using supports UnifiedPush. There may well be different variants of the app. +The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device. -Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`. +### Check the Matrix client -To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element Android or SchildiChat Android, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL. +Make sure that the Matrix client you are using supports UnifiedPush. There may well be different variants of the app. + +To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element Android or SchildiChat Android, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL. In the "Notification Targets" screen in Element Android or SchildiChat Android, two relevant URLs are shown, "push\_key" and "Url", and both should begin with your ntfy server's URL. If "push\_key" shows your server but "Url" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the "Usage" section above. If it is not working, useful tools are "Settings -> Notifications -> Re-register push distributor" and "Settings -> Notifications -> Troubleshoot Notifications" in SchildiChat Android (possibly also Element Android). In particular the "Endpoint/FCM" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app. -The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device. +### Check the service's logs + +See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#check-the-services-logs) on the role's documentation for details. diff --git a/docs/configuring-playbook-own-webserver.md b/docs/configuring-playbook-own-webserver.md index c3aff0ac3..0cac72b64 100644 --- a/docs/configuring-playbook-own-webserver.md +++ b/docs/configuring-playbook-own-webserver.md @@ -1,3 +1,21 @@ + + # Using your own webserver, instead of this playbook's Traefik reverse-proxy (optional, advanced) By default, this playbook installs its own [Traefik](https://traefik.io/) reverse-proxy server (in a Docker container) which listens on ports 80 and 443. If that's okay, you can skip this document. @@ -18,13 +36,10 @@ To have the playbook install and use Traefik, add the following configuration to ```yaml matrix_playbook_reverse_proxy_type: playbook-managed-traefik - -traefik_config_certificatesResolvers_acme_email: YOUR_EMAIL_ADDRESS ``` Traefik will manage SSL certificates for all services seamlessly. - ### Traefik managed by you ```yaml @@ -57,10 +72,10 @@ By default, the playbook configured a `default` certificate resolver and multipl You need to configure 4 entrypoints for your Traefik server: -- `web` (TCP port `80`) - used for redirecting to HTTPS (`web-secure`) -- `web-secure` (TCP port `443`) - used for exposing the Matrix Client-Server API and all other services -- `matrix-federation` (TCP port `8448`) - used for exposing the Matrix Federation API -- `matrix-internal-matrix-client-api` (TCP port `8008`) - used internally for addon services (bridges, bots) to communicate with the homserver +- `web` (TCP port `80`) — used for redirecting to HTTPS (`web-secure`) +- `web-secure` (TCP port `443`) — used for exposing the Matrix Client-Server API and all other services +- `matrix-federation` (TCP port `8448`) — used for exposing the Matrix Federation API +- `matrix-internal-matrix-client-api` (TCP port `8008`) — used internally for addon services (bridges, bots) to communicate with the homserver Below is some configuration for running Traefik yourself, although we recommend using [Traefik managed by the playbook](#traefik-managed-by-the-playbook). @@ -128,11 +143,10 @@ Doing this is possible, but requires manual work. There are 2 ways to go about it: -- (recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) - using the playbook-managed reverse-proxy (Traefik), but disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports +- (recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) — using the playbook-managed reverse-proxy (Traefik), but disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports - (difficult) [Using no reverse-proxy on the Matrix side at all](#using-no-reverse-proxy-on-the-matrix-side-at-all) disabling the playbook-managed reverse-proxy (Traefik), exposing services one by one using `_host_bind_port` variables and forwarding traffic from your own webserver to those ports - ### Fronting the integrated reverse-proxy webserver with another reverse-proxy This method is about leaving the integrated reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.). @@ -201,10 +215,9 @@ To put it another way: - `curl http://127.0.0.1:81` will result in a `404 - not found` error - but `curl -H 'Host: matrix.example.com' http://127.0.0.1:81` should work. - ### Using no reverse-proxy on the Matrix side at all -Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way -- completely disabling the playbook-managed Traefik reverse-proxy. You would then need to reverse-proxy from your own webserver directly to each individual Matrix service. +Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way — completely disabling the playbook-managed Traefik reverse-proxy. You would then need to reverse-proxy from your own webserver directly to each individual Matrix service. This is more difficult, as you would need to handle the configuration for each service manually. Enabling additional services would come with extra manual work you need to do. diff --git a/docs/configuring-playbook-pantalaimon.md b/docs/configuring-playbook-pantalaimon.md index 91bc9a0d9..92ab32344 100644 --- a/docs/configuring-playbook-pantalaimon.md +++ b/docs/configuring-playbook-pantalaimon.md @@ -1,12 +1,19 @@ + + # Setting up Pantalaimon (E2EE aware proxy daemon) (optional) The playbook can install and configure the [pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. -See the project's [documentation](https://github.com/matrix-org/pantalaimon) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/matrix-org/pantalaimon/blob/master/README.md) to learn what it does and why it might be useful to you. This role exposes Pantalaimon's API only within the container network, so bots and clients installed on the same machine can use it. In particular the [Draupnir](configuring-playbook-bot-draupnir.md) and [Mjolnir](configuring-playbook-bot-mjolnir.md) roles (and possibly others) can use it. -## 1. Adjusting the playbook configuration +## Adjusting the playbook configuration Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs): @@ -14,8 +21,34 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/ matrix_pantalaimon_enabled: true ``` -The default configuration should suffice. For advanced configuration, you can override the variables documented in the role's [defaults](../roles/custom/matrix-pantalaimon/defaults/main.yml). +### Extending the configuration -## 2. Installing +There are some additional things you may wish to configure about the component. -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +Take a look at: + +- `roles/custom/matrix-pantalaimon/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_pantalaimon_configuration` variable + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-pantalaimon`. + +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 +# Valid values: Error, Warning, Info, Debug +matrix_pantalaimon_log_level: Debug +``` diff --git a/docs/configuring-playbook-postgres-backup.md b/docs/configuring-playbook-postgres-backup.md index 109cf8c20..d5bd0fc87 100644 --- a/docs/configuring-playbook-postgres-backup.md +++ b/docs/configuring-playbook-postgres-backup.md @@ -1,36 +1,17 @@ -# Setting up postgres backup (optional) + -For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [BorgBackup](configuring-playbook-backup-borg.md) instead. +# Setting up Postgres backup (optional) +The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you. -## Adjusting the playbook configuration +The [Ansible role for docker-postgres-backup-local](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring docker-postgres-backup-local, you can check them via: +- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/blob/main/docs/configuring-postgres-backup.md) online +- 📁 `roles/galaxy/postgres_backup/docs/configuring-postgres-backup.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) -To enable Postgres backup, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -postgres_backup_enabled: true -``` - -Refer to the table below for additional configuration variables and their default values. - - -| Name | Default value | Description | -| :-------------------------------- | :--------------------------- | :--------------------------------------------------------------- | -|`postgres_backup_enabled`|`false`|Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups| -|`postgres_backup_schedule`| `'@daily'` |Cron-schedule specifying the interval between postgres backups.| -|`postgres_backup_keep_days`|`7`|Number of daily backups to keep| -|`postgres_backup_keep_weeks`|`4`|Number of weekly backups to keep| -|`postgres_backup_keep_months`|`12`|Number of monthly backups to keep| -|`postgres_backup_base_path` | `"{{ matrix_base_data_path }}/postgres-backup"` | Base path for postgres-backup. Also see `postgres_backup_data_path` | -|`postgres_backup_data_path` | `"{{ postgres_backup_base_path }}/data"` | Storage path for postgres-backup database backups | - - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: - -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` +**Note**: for a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [BorgBackup](configuring-playbook-backup-borg.md) instead. diff --git a/docs/configuring-playbook-prometheus-grafana.md b/docs/configuring-playbook-prometheus-grafana.md index 440b9f224..c426af8ff 100644 --- a/docs/configuring-playbook-prometheus-grafana.md +++ b/docs/configuring-playbook-prometheus-grafana.md @@ -1,81 +1,162 @@ + + # Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server (optional) -The playbook can install [Grafana](https://grafana.com/) with [Prometheus](https://prometheus.io/) and configure performance metrics of your homeserver with graphs for you. +The playbook can install [Prometheus](https://prometheus.io/) with [Grafana](https://grafana.com/) and configure performance metrics of your homeserver with graphs for you. -## Adjusting the playbook configuration +> [!WARNING] +> Metrics and graphs contain a lot of information, and anyone who has access to them can make an educated guess about your server usage patterns. This especially applies to small personal/family scale homeservers, where the number of samples is fairly limited. Analyzing the metrics over time, one might be able to figure out your life cycle, such as when you wake up, go to bed, etc. Before enabling (anonymous) access, you should carefully evaluate the risk, and if you do enable it, it is highly recommended to change your Grafana password from the default one. +> +> Most of our Docker containers run with limited system access, but the `prometheus-node-exporter` can access the host network stack and (readonly) root filesystem. If it is fine, you can enable it and have it capture metrics about them (see [below](#enable-metrics-and-graphs-for-generic-system-information-optional) for the instruction). Even if `prometheus-node-exporter` is not enabled, you will still get Synapse homeserver metrics. Note that both of these dashboards are always be enabled, so you can still see historical data even after disabling either source. -To enable Grafana and/or Prometheus, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +## Adjusting DNS records + +By default, this playbook installs Grafana web user-interface on the `stats.` subdomain (`stats.example.com`) and requires you to create a CNAME record for `stats`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + +**Note**: It is possible to install Prometheus without installing Grafana. In this case it is not required to create the CNAME record. + +## Adjusting the playbook configuration — Prometheus + +Prometheus is an open-source systems monitoring and alerting toolkit. It is a time series database, which holds all the data we're going to talk about. + +To enable it, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml prometheus_enabled: true - -# You can remove this, if unnecessary. -prometheus_node_exporter_enabled: true - -# You can remove this, if unnecessary. -prometheus_postgres_exporter_enabled: true - -# You can remove this, if unnecessary. -matrix_prometheus_nginxlog_exporter_enabled: true - -grafana_enabled: true - -grafana_anonymous_access: false - -# This has no relation to your Matrix user ID. It can be any username you'd like. -# Changing the username subsequently won't work. -grafana_default_admin_user: "some_username_chosen_by_you" - -# Changing the password subsequently won't work. -grafana_default_admin_password: "some_strong_password_chosen_by_you" ``` -The retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically. +**Note**: the retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically. -### Adjusting the Grafana URL +### Enable metrics and graphs for generic system information (optional) -By default, this playbook installs Grafana web user-interface on the `stats.` subdomain (`stats.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +You can enable the [Node Exporter](https://prometheus.io/docs/guides/node-exporter/), an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures. + +To enable it, add the following configuration to your `vars.yml` file: + +```yaml +prometheus_node_exporter_enabled: true +``` + +### Enable metrics and graphs for Postgres (optional) + +Expanding on the metrics exposed by the Synapse exporter and the Node exporter, the playbook can also install and configure the [PostgreSQL Server Exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your Postgres database. + +Enabling the exporter sets up the docker container, connects it to the database and adds a 'job' to the Prometheus config which tells Prometheus about this new exporter. + +To enable it, add the following configuration to your `vars.yml` file: + +**Note**: `prometheus_postgres_exporter_database_username` has nothing to do with your Matrix user ID. It can be any string you'd like. + +```yaml +prometheus_postgres_exporter_enabled: true + +# The username for the user that the exporter uses to connect to the database. +# Uncomment and adjust this part if you'd like to use a username different than the default. +# prometheus_postgres_exporter_database_username: "matrix_prometheus_postgres_exporter" + +# The password for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook. +# Uncomment and adjust this part if you'd like to set the password by yourself. +# prometheus_postgres_exporter_database_password: "PASSWORD_HERE" +``` + +### Enable metrics and graphs for nginx logs (optional) + +The playbook can also install and configure the [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) service for you. + +It is an addon of sorts to expose nginx logs to Prometheus. The exporter will collect access logs from various nginx reverse-proxies which may be used internally (e.g. `matrix-synapse-reverse-proxy-companion`, if Synapse workers are enabled) and will make them available at a Prometheus-compatible `/metrics` endpoint. + +See the project's [documentation](https://github.com/martin-helmich/prometheus-nginxlog-exporter/blob/master/README.adoc) to learn what it does and why it might be useful to you. + +To enable it, add the following configuration to your `vars.yml` file: + +```yaml +matrix_prometheus_nginxlog_exporter_enabled: true +``` + +If you enable Grafana, a dedicated `NGINX PROXY` Grafana dashboard will be created. + +**Note**: nginx is only used internally by this Ansible playbook. With Traefik being our default reverse-proxy, collecting nginx metrics is less relevant. + +#### Docker image compatibility (optional) + +At the moment of writing only images for `amd64` and `arm64` architectures are available. The playbook currently does not support [self-building](./self-building.md) a container image on other architectures. You can however use a custom-build image by setting: + +```yaml +matrix_prometheus_nginxlog_exporter_docker_image_arch_check_enabled: false +matrix_prometheus_nginxlog_exporter_docker_image: path/to/docker/image:tag +``` + +### Extending the configuration + +There are some additional things you may wish to configure about Prometheus and its add-on. + +Take a look at: + +- [Prometheus role](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus/blob/main/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 `prometheus_configuration_extension_yaml` variable +- `roles/custom/matrix-prometheus-nginxlog-exporter/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + +## Adjusting the playbook configuration — Grafana + +Grafana is an open source visualization and analytics software. To enable it, add the following configuration to your `vars.yml` file. Make sure to replace `USERNAME_HERE` and `PASSWORD_HERE`. + +**Notes**: +- `grafana_default_admin_user` has nothing to do with your Matrix user ID. It can be any string you'd like. +- Changing the username/password subsequently won't work. + +```yaml +grafana_enabled: true + +grafana_default_admin_user: "USERNAME_HERE" +grafana_default_admin_password: "PASSWORD_HERE" + +# Uncomment to allow viewing Grafana without logging in. +# grafana_anonymous_access: true +``` + +Name | Description +-----|---------- +`grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in. +`grafana_default_admin_user`
`grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. You are asked to change the credentials on first login. If you feel this is insecure and you want to change them beforehand, you can do that here. +`grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option. + +### Adjusting the Grafana URL (optional) By tweaking the `grafana_hostname` variable, you can easily make the service available at a **different hostname** than the default one. -Example additional configuration for your `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname grafana_hostname: grafana.example.com ``` -## Adjusting DNS records - -Once you've decided on the domain, **you may need to adjust your DNS** records to point the Grafana domain to the Matrix server. - -By default, you will need to create a CNAME record for `stats`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. - -**Note**: It is possible to install Prometheus without installing Grafana. This case it is not required to create the CNAME record. +After changing the domain, **you may need to adjust your DNS** records to point the Grafana domain to the Matrix server. ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -## What does it do? + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` -Name | Description ------|---------- -`prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about. -`prometheus_node_exporter_enabled`|[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures -`prometheus_postgres_exporter_enabled`|[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus. -`matrix_prometheus_nginxlog_exporter_enabled`|[NGINX Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose NGINX logs to Prometheus. -`grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in -`grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option. -`grafana_default_admin_user`
`grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here - - -## Security and privacy - -Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password. - -Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source. +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. ## Collecting metrics to an external Prometheus server @@ -83,36 +164,58 @@ Most of our docker containers run with limited system access, but the `prometheu When you'd like **to collect metrics from an external Prometheus server**, you need to expose service metrics outside of the container network. -The playbook provides a single endpoint (`https://matrix.example.com/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/hookshot`, etc). To expose all services on this `/metrics/*` feature, use `matrix_metrics_exposure_enabled`. To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), see `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` below. +The playbook provides a single endpoint (`https://matrix.example.com/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/nginxlog`, `/metrics/hookshot`, etc). -When using `matrix_metrics_exposure_enabled`, you don't need to expose metrics for individual services one by one. +To expose all services on this `/metrics/*` feature, you can use `matrix_metrics_exposure_enabled`. When using it, you don't need to expose metrics for individual services one by one. If you think this is too much, refer [this section](#expose-metrics-of-other-services-roles) for details about exposing metrics on a per-service basis. + +To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. When enabled, all endpoints beneath `/metrics` will be protected with the same credentials. Alternatively, you can protect each endpoint with dedicated credentials. Refer [the section](#expose-metrics-of-other-services-roles) below for details about it. The following variables may be of interest: Name | Description -----|---------- -`matrix_metrics_exposure_enabled`|Set this to `true` to **enable metrics exposure for all services** on `https://matrix.example.com/metrics/*`. If you think this is too much, refer to the helpful (but nonexhaustive) list of individual `matrix_SERVICE_metrics_proxying_enabled` (or similar) variables below for exposing metrics on a per-service basis. -`matrix_metrics_exposure_http_basic_auth_enabled`|Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials). When enabled, all endpoints beneath `/metrics` will be protected with the same credentials +`matrix_metrics_exposure_enabled`|Set this to `true` to **enable metrics exposure for all services** on `https://matrix.example.com/metrics/*`. +`matrix_metrics_exposure_http_basic_auth_enabled`|Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials). `matrix_metrics_exposure_http_basic_auth_users`|Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs. -`matrix_synapse_metrics_enabled`|Set this to `true` to make Synapse expose metrics (locally, on the container network) -`matrix_synapse_metrics_proxying_enabled`|Set this to `true` to expose Synapse's metrics on `https://matrix.example.com/metrics/synapse/main-process` and `https://matrix.example.com/metrics/synapse/worker/TYPE-ID`. Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. -`prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network) -`prometheus_node_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. -`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network) -`prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. -`matrix_prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network) -`matrix_sliding_sync_metrics_enabled`|Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network) -`matrix_sliding_sync_metrics_proxying_enabled`|Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.example.com/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. -`matrix_bridge_hookshot_metrics_enabled`|Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network) -`matrix_bridge_hookshot_metrics_proxying_enabled`|Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.example.com/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. -`matrix_SERVICE_metrics_proxying_enabled`|Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role. -`matrix_media_repo_metrics_enabled`|Set this to `true` to make media-repo expose metrics (locally, on the container network) +`prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network). +`prometheus_node_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. +`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) (locally, on the container network). +`prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) metrics on `https://matrix.example.com/metrics/postgres-exporter`. +`matrix_prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [nginx Log exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) (locally, on the container network). +`matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled`|Set this to `true` to expose the [nginx Log exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) metrics on `https://matrix.example.com/metrics/nginxlog`. + +### Expose metrics of other services/roles + +Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. + +To password-protect the metrics of a specific role, you can use `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled` and `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by the role. + +**Note**: alternatively you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` in order to password-protect the metrics of all services. + +For example, you can enable and expose metrics for Synapse protecting them with dedicated credentials by adding the following configuration to your `vars.yml` file: + +```yaml +# Expose metrics (locally, on the container network). +matrix_synapse_metrics_enabled: true + +# Uncomment to expose metrics on https://matrix.example.com/metrics/synapse/main-process and https://matrix.example.com/metrics/synapse/worker/TYPE-ID. +# Read the section below ("Collecting Synapse worker metrics to an external Prometheus server") if you're running a Synapse worker setup by setting `matrix_synapse_workers_enabled` to true. +# matrix_synapse_metrics_proxying_enabled: true + +# Uncomment to password-protect the metrics for Synapse. +# matrix_synapse_container_labels_public_metrics_middleware_basic_auth_enabled: true + +# Uncomment and set this part to the Basic Authentication credentials (raw `htpasswd` file content) used to protect the endpoints. +# See https://doc.traefik.io/traefik/middlewares/http/basicauth/#users +# matrix_synapse_container_labels_public_metrics_middleware_basic_auth_users: '' +``` ### Collecting Synapse worker metrics to an external Prometheus server If you are using workers (`matrix_synapse_workers_enabled: true`) and have enabled `matrix_synapse_metrics_proxying_enabled` as described above, the playbook will also automatically expose all Synapse worker threads' metrics to `https://matrix.example.com/metrics/synapse/worker/ID`, where `ID` corresponds to the worker `id` as exemplified in `matrix_synapse_workers_enabled_list`. The playbook also generates an exemplary config file (`/matrix/synapse/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs. Make sure to edit the specified `password_file` path and contents and path to your `synapse-v2.rules`. It will look a bit like this: + ```yaml scrape_configs: - job_name: 'synapse' @@ -139,6 +242,14 @@ scrape_configs: index: 18111 ``` +## 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 the commands below: +- `journalctl -fu matrix-prometheus` for Prometheus +- `journalctl -fu matrix-prometheus-node-exporter` for Node Exporter +- `journalctl -fu matrix-prometheus-postgres-exporter` for PostgreSQL Server Exporter +- `journalctl -fu matrix-prometheus-nginxlog-exporter` for prometheus-nginxlog-exporter +- `journalctl -fu matrix-grafana` for Grafana ## More information @@ -147,3 +258,4 @@ scrape_configs: - [The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2) - [The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana) - [The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs) +- [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic Postgres dashboard) diff --git a/docs/configuring-playbook-prometheus-nginxlog.md b/docs/configuring-playbook-prometheus-nginxlog.md deleted file mode 100644 index e6ed3043a..000000000 --- a/docs/configuring-playbook-prometheus-nginxlog.md +++ /dev/null @@ -1,50 +0,0 @@ -# Enabling metrics and graphs for NginX logs (optional) - -It can be useful to have some (visual) insight into [nginx](https://nginx.org/) logs. - -This adds [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) to your Matrix deployment. - -It will collect access logs from various nginx reverse-proxies which may be used internally (e.g. `matrix-synapse-reverse-proxy-companion`, if Synapse workers are enabled) and will make them available at a Prometheus-compatible `/metrics` endpoint. - -**Note**: nginx is only used internally by this Ansible playbook. With Traefik being our default reverse-proxy, collecting nginx metrics is less relevant. - -To make use of this, you need to install [Prometheus](./configuring-playbook-prometheus-grafana.md) either via the playbook or externally. When using an external Prometheus, configuration adjustments are necessary - see [Save metrics on an external Prometheus server](#save-metrics-on-an-external-prometheus-server). - -If your setup includes [Grafana](./configuring-playbook-prometheus-grafana.md), a dedicated `NGINX PROXY` Grafana dashboard will be created. - -## Configuration - -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -matrix_prometheus_nginxlog_exporter_enabled: true -``` - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` - -## Docker Image Compatibility - -At the moment of writing only images for `amd64` and `arm64` architectures are available. The playbook currently does not support [self-building](./self-building.md) a container image on other architectures. You can however use a custom-build image by setting: - -```yaml -matrix_prometheus_nginxlog_exporter_docker_image_arch_check_enabled: false -matrix_prometheus_nginxlog_exporter_docker_image: path/to/docker/image:tag -``` - -## Security and privacy - -Metrics and resulting graphs can contain a lot of information. NginX logs contain information like IP address, URLs, UserAgents and more. This information can reveal usage patterns and could be considered Personally Identifiable Information (PII). Think about this before enabling (anonymous) access. Please make sure you change the default Grafana password. - -## Save metrics on an external Prometheus server - -The playbook will automatically integrate the metrics into the [Prometheus](./configuring-playbook-prometheus-grafana.md) server provided with this playbook (if enabled). In such cases, the metrics endpoint is not exposed publicly - it's only available on the container network. - -When using an external Prometheus server, you'll need to expose metrics publicly. See [Collecting metrics to an external Prometheus server](./configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). - -You can either use `matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled: true` to expose just this one service, or `matrix_metrics_exposure_enabled: true` to expose all services. - -Whichever way you go with, this service will expose its metrics endpoint **without password-protection** at `https://matrix.example.com/metrics/nginxlog` by default. - -For password-protection, use (`matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`) or (`matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled` and `matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users`). diff --git a/docs/configuring-playbook-prometheus-postgres.md b/docs/configuring-playbook-prometheus-postgres.md deleted file mode 100644 index f24bc0818..000000000 --- a/docs/configuring-playbook-prometheus-postgres.md +++ /dev/null @@ -1,29 +0,0 @@ -# Enabling metrics and graphs for Postgres (optional) - -Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database. - -## Adjusting the playbook configuration - -To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -prometheus_postgres_exporter_enabled: true -``` - -## Installing - -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` - -## What does it do? - -Name | Description ------|---------- -`prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false' -`prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter' -`prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook -`prometheus_postgres_exporter_container_labels_traefik_enabled`|If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page. - - -## More information - -- [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard) diff --git a/docs/configuring-playbook-rageshake.md b/docs/configuring-playbook-rageshake.md index 538e86928..14343f525 100644 --- a/docs/configuring-playbook-rageshake.md +++ b/docs/configuring-playbook-rageshake.md @@ -1,8 +1,23 @@ + + # Setting up the rageshake bug report server (optional) The playbook can install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server for you. -This is useful if you're developing your own applications and would like to collect bug reports for them. +See the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) to learn what it does and why it might be useful to you. + +**Note**: most people don't need to install rageshake to collect bug reports. This component is only useful to people who develop/build their own Matrix client applications themselves. + +## Adjusting DNS records + +By default, this playbook installs rageshake on the `rageshake.` subdomain (`rageshake.example.com`) and requires you to create a CNAME record for `rageshake`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. ## Adjusting the playbook configuration @@ -12,25 +27,11 @@ To enable rageshake, add the following configuration to your `inventory/host_var matrix_rageshake_enabled: true ``` -rageshake has various options which don't have dedicated Ansible variables. You can see the full list of options in the [`rageshake.sample.yaml` file](https://github.com/matrix-org/rageshake/blob/master/rageshake.sample.yaml). - -To set these, you can make use of the `matrix_rageshake_configuration_extension_yaml` variable like this: - -```yaml -matrix_rageshake_configuration_extension_yaml: | - github_token: secrettoken - - github_project_mappings: - my-app: octocat/HelloWorld -``` - -### Adjusting the rageshake URL - -By default, this playbook installs rageshake on the `rageshake.` subdomain (`rageshake.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the rageshake URL (optional) By tweaking the `matrix_rageshake_hostname` and `matrix_rageshake_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -41,23 +42,52 @@ matrix_rageshake_hostname: "{{ matrix_server_fqn_matrix }}" matrix_rageshake_path_prefix: /rageshake ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the rageshake domain to the Matrix server. - -By default, you will need to create a CNAME record for `rageshake`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the rageshake domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the server. + +Take a look at: + +- `roles/custom/matrix-rageshake/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-rageshake/templates/config.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_rageshake_configuration_extension_yaml` variable + +```yaml +matrix_rageshake_configuration_extension_yaml: | + # Your custom YAML configuration goes here. + # This configuration extends the default starting configuration (`matrix_rageshake_configuration_extension_yaml`). + # + # 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 + # completely redefining `matrix_rageshake_configuration_extension_yaml`. + + github_token: secrettoken + + github_project_mappings: + my-app: octocat/HelloWorld +``` + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```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 -Refer to the [rageshake documentation](https://github.com/matrix-org/rageshake) for available APIs, etc. +Refer to the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) for available APIs, etc. + +## 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-rageshake`. diff --git a/docs/configuring-playbook-rest-auth.md b/docs/configuring-playbook-rest-auth.md index c9352c6c6..216b71e37 100644 --- a/docs/configuring-playbook-rest-auth.md +++ b/docs/configuring-playbook-rest-auth.md @@ -1,8 +1,16 @@ + + # Setting up the REST authentication password provider module (optional, advanced) The playbook can install and configure [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) for you. -See that project's documentation to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/ma1uta/matrix-synapse-rest-password-provider/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -16,9 +24,9 @@ matrix_synapse_ext_password_provider_rest_auth_registration_profile_name_autofil matrix_synapse_ext_password_provider_rest_auth_login_profile_name_autofill: false ``` -## Authenticating only using a password provider +### Authenticating only using a password provider -If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it: +If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, you can disable it by adding the following configuration to your `vars.yml` file: ```yaml matrix_synapse_password_config_localdb_enabled: false @@ -26,4 +34,22 @@ matrix_synapse_password_config_localdb_enabled: false ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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 + +### Use ma1sd Identity Server for the backend (not recommended) + +This module does not provide direct integration with any backend. For the backend you can use [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server, which can be configured with the playbook. + +> [!WARNING] +> We recommend not bothering with installing ma1sd as it has been unmaintained for years. If you wish to install it anyway, consult the [ma1sd Identity Server configuration](configuring-playbook-ma1sd.md). diff --git a/docs/configuring-playbook-riot-web.md b/docs/configuring-playbook-riot-web.md index eb05e0267..1652f5eb9 100644 --- a/docs/configuring-playbook-riot-web.md +++ b/docs/configuring-playbook-riot-web.md @@ -1,3 +1,11 @@ + + # Configuring Riot-web (optional) By default, this playbook **used to install** the [Riot-web](https://github.com/element-hq/riot-web) Matrix client web application. @@ -7,7 +15,6 @@ Riot has since been [renamed to Element](https://element.io/blog/welcome-to-elem - to learn more about Element Web and its configuration, see our dedicated [Configuring Element Web](configuring-playbook-client-element-web.md) documentation page - to learn how to migrate from Riot to Element Web, see [Migrating to Element Web](#migrating-to-element-web) below - ## Migrating to Element Web ### Migrating your custom settings @@ -16,18 +23,25 @@ If you have custom `matrix_riot_web_` variables in your `inventory/host_vars/mat Some other playbook variables (but not all) with `riot` in their name are also renamed. The playbook checks and warns if you are using the old name for some commonly used ones. - ### Domain migration We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element Web at `element.example.com` by default. There are a few options for handling this: -- (**avoiding changes** - using the old `riot.example.com` domain and avoiding DNS changes) -- to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: "riot.{{ matrix_domain }}"` - -- (**embracing changes** - using only `element.example.com`) - set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case. +- (**avoiding changes** — using the old `riot.example.com` domain and avoiding DNS changes) — to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: "riot.{{ matrix_domain }}"` +- (**embracing changes** — using only `element.example.com`) — set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case. ### Re-running the playbook -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. diff --git a/docs/configuring-playbook-s3-goofys.md b/docs/configuring-playbook-s3-goofys.md index 81df60636..8fcf145a0 100644 --- a/docs/configuring-playbook-s3-goofys.md +++ b/docs/configuring-playbook-s3-goofys.md @@ -1,12 +1,21 @@ -# Storing Matrix media files on Amazon S3 with Goofys (optional) + -Another (and better performing) way to use S3 storage with Synapse is [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md). +# Storing Synapse media files on Amazon S3 with Goofys (optional) -Using a Goofys-backed media store works, but performance may not be ideal. If possible, try to use a region which is close to your Matrix server. +The playbook can install and configure [Goofys](https://github.com/kahing/goofys) for you. -If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), we also provide some migration instructions below. +Goofys makes it possible to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service) object storage. + +See the project's [documentation](https://github.com/kahing/goofys/blob/master/README.md) to learn what it does and why it might be useful to you. + +**Note**: as performance of a Goofys-backed media store may not be ideal, you may wish to use [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) instead, another (and better performing) way to mount a S3 bucket for Synapse. + +If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), you can refer our migration instructions below. ## Adjusting the playbook configuration @@ -29,7 +38,6 @@ matrix_s3_media_store_custom_endpoint: "https://your-custom-endpoint" If you have local media store files and wish to migrate to Backblaze B2 subsequently, follow our [migration guide to Backblaze B2](#migrating-to-backblaze-b2) below instead of applying this configuration as-is. - ## Migrating from local filesystem storage to S3 It's a good idea to [make a complete server backup](faq.md#how-do-i-back-up-the-data-on-my-server) before migrating your local media store to an S3-backed one. @@ -85,7 +93,6 @@ After making the backup, follow one of the guides below for a migration path fro 14. When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup` - ### Migrating to Backblaze B2 1. While all Matrix services are running, run the following command on the server: @@ -126,3 +133,7 @@ After making the backup, follow one of the guides below for a migration path fro 7. You're done! Verify that loading existing (old) media files works and that you can upload new ones. 8. When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup` + +## 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-goofys`. diff --git a/docs/configuring-playbook-s3.md b/docs/configuring-playbook-s3.md index 3620f70a8..bb7a51e7f 100644 --- a/docs/configuring-playbook-s3.md +++ b/docs/configuring-playbook-s3.md @@ -1,3 +1,11 @@ + + # Storing Synapse media files on Amazon S3 or another compatible Object Storage (optional) By default, this playbook configures your server to store Synapse's content repository (`media_store`) files on the local filesystem. If that's okay, you can skip this document. @@ -12,14 +20,13 @@ Then, [create the S3 bucket](#bucket-creation-and-security-configuration). Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md), [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md), or use s3 datastore with the [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html)). - ## Choosing an Object Storage provider You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Storj](https://storj.io), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), etc. Amazon S3, Backblaze B2, and Storj are pay-as-you with no minimum charges for storing too little data. -All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress. +All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB; check actual pricing [here](https://storj.dev/dcs/pricing)). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress. Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10). @@ -30,8 +37,7 @@ Here are some of the important aspects of choosing the right provider: - if a provider has a data region close to your Matrix server (if it's farther away, high latency may cause slowdowns) - if a provider's infrastructure such as data center is centralized or distributed - if a provider's price model is transparent (whether it includes hidden costs like minimum charge, minimum storage term, etc.) -- if a provider has free or cheap egress fee (in case you need to get the data out often, for some reason) - likely not too important for the common use-case - +- if a provider has free or cheap egress fee (in case you need to get the data out often, for some reason) — likely not too important for the common use-case ## Bucket creation and Security Configuration @@ -66,7 +72,6 @@ You'll need an Amazon S3 bucket and some IAM user credentials (access key + secr **Note**: This policy needs to be attached to an IAM user created from the **Security Credentials** menu. This is not a **Bucket Policy**. - ## Backblaze B2 To use [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html) you first need to sign up. @@ -86,19 +91,15 @@ The `keyID` value is your **Access Key** and `applicationKey` is your **Secret K For configuring [Goofys](configuring-playbook-s3-goofys.md) or [s3-synapse-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) you will need: -- **Endpoint URL** - this is the **Endpoint** value you saw above, but prefixed with `https://` - -- **Region** - use the value you see in the Endpoint (e.g. `us-west-002`) - -- **Storage Class** - use `STANDARD`. Backblaze B2 does not have different storage classes, so it doesn't make sense to use any other value. - +- **Endpoint URL** — this is the **Endpoint** value you saw above, but prefixed with `https://` +- **Region** — use the value you see in the Endpoint (e.g. `us-west-002`) +- **Storage Class** — use `STANDARD`. Backblaze B2 does not have different storage classes, so it doesn't make sense to use any other value. ## Other providers -For other S3-compatible providers, you may not need to configure security policies, etc. (just like for [Backblaze B2](#backblaze-b2)). - -You most likely just need to create an S3 bucket and get some credentials (access key and secret key) for accessing the bucket in a read/write manner. +For other S3-compatible providers, you most likely just need to create an S3 bucket and get some credentials (access key and secret key) for accessing the bucket in a read/write manner. You may not need to configure security policies, etc. +For details about setting up a bucket at Storj, please see the instruction [here](https://storj.dev/dcs/getting-started) to get started. ## Setting up diff --git a/docs/configuring-playbook-shared-secret-auth.md b/docs/configuring-playbook-shared-secret-auth.md index 0c11df290..07d42d762 100644 --- a/docs/configuring-playbook-shared-secret-auth.md +++ b/docs/configuring-playbook-shared-secret-auth.md @@ -1,8 +1,16 @@ + + # Setting up the Shared Secret Auth password provider module (optional, advanced) The playbook can install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you. -See that project's documentation to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/devture/matrix-synapse-shared-secret-auth/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -11,13 +19,13 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/ ```yaml matrix_synapse_ext_password_provider_shared_secret_auth_enabled: true -# Generate a strong shared secret here. Consider generating it with `pwgen -s 64 1` +# Generate a strong shared secret here. You can create one with a command like `pwgen -s 64 1`. matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: YOUR_SHARED_SECRET_GOES_HERE ``` -## Authenticating only using a password provider +### Authenticating only using a password provider -If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it: +If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, you can disable it by adding the following configuration to your `vars.yml` file: ```yaml matrix_synapse_password_config_localdb_enabled: false @@ -25,4 +33,13 @@ matrix_synapse_password_config_localdb_enabled: false ## Installing -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. diff --git a/docs/configuring-playbook-sliding-sync-proxy.md b/docs/configuring-playbook-sliding-sync-proxy.md index 52a9ee07c..38b1e815e 100644 --- a/docs/configuring-playbook-sliding-sync-proxy.md +++ b/docs/configuring-playbook-sliding-sync-proxy.md @@ -1,3 +1,16 @@ + + # Setting up the Sliding Sync proxy (optional) **Note**: The sliding-sync proxy is **not required** anymore as it's been replaced with a different method (called Simplified Sliding Sync) which is integrated into newer homeservers by default (**Conduit** homeserver from version `0.6.0` or **Synapse** from version `1.114`). This component and documentation remain here for historical purposes, but **installing this old sliding-sync proxy is generally not recommended anymore**. @@ -6,6 +19,11 @@ The playbook can install and configure [sliding-sync](https://github.com/matrix- Sliding Sync is an implementation of [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md) and a prerequisite for running Element X clients ([Element X iOS](https://github.com/element-hq/element-x-ios) and [Element X Android](https://github.com/element-hq/element-x-android)). See the project's [documentation](https://github.com/matrix-org/sliding-sync) to learn more. +## Adjusting DNS records (optional) + +By default, this playbook installs the Sliding Sync proxy on the `matrix.` subdomain, at the `/sliding-sync` path (https://matrix.example.com/sliding-sync). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-sliding-sync-proxy-url-optional) for details about DNS configuration. ## Adjusting the playbook configuration @@ -15,13 +33,11 @@ To enable Sliding Sync proxy, add the following configuration to your `inventory matrix_sliding_sync_enabled: true ``` -### Adjusting the Sliding Sync proxy URL - -By default, this playbook installs the Sliding Sync proxy on the `matrix.` subdomain, at the `/sliding-sync` path (https://matrix.example.com/sliding-sync). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Sliding Sync proxy URL (optional) By tweaking the `matrix_sliding_sync_hostname` and `matrix_sliding_sync_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -29,17 +45,30 @@ matrix_sliding_sync_hostname: ss.example.com matrix_sliding_sync_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the Sliding Sync proxy domain (`ss.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the Honoroit domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-sliding-sync/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all`. +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. ### External databases @@ -60,3 +89,7 @@ You **don't need to do anything special** to make use of the Sliding Sync proxy. When the Sliding Sync proxy is [installed](#installing), your `/.well-known/matrix/client` file is also updated. A new `org.matrix.msc3575.proxy` section and `url` property are added there and made to point to your Sliding Sync proxy's base URL (e.g. `https://matrix.example.com/sliding-sync`). This allows clients which support Sliding Sync to detect the Sliding Sync proxy's URL and make use of it. + +## 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-sliding-sync`. diff --git a/docs/configuring-playbook-ssl-certificates.md b/docs/configuring-playbook-ssl-certificates.md index e086d457f..50f2fbc2b 100644 --- a/docs/configuring-playbook-ssl-certificates.md +++ b/docs/configuring-playbook-ssl-certificates.md @@ -1,10 +1,20 @@ + + # Adjusting SSL certificate retrieval (optional, advanced) By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others) This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md). - ## Using staging Let's Encrypt certificates instead of real ones For testing purposes, you may wish to use staging certificates provide by Let's Encrypt. @@ -15,18 +25,16 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/ traefik_config_certificatesResolvers_acme_use_staging: true ``` - ## Disabling SSL termination For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`. -Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +Add the following configuration to your `vars.yml` file: ```yaml traefik_config_entrypoint_web_secure_enabled: false ``` - ## Using self-signed SSL certificates If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)): @@ -34,7 +42,6 @@ If you'd like to use your own SSL certificates, instead of the default (SSL cert - generate your self-signed certificate files - follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below - ## Using your own SSL certificates To use your own SSL certificates with Traefik, you need to: @@ -54,7 +61,7 @@ traefik_ssl_dir_enabled: true # Tell Traefik to load our custom ssl key pair by extending provider configuration. # The key pair files are created below, in `aux_file_definitions`. -# The `/ssl/..` path is an in-container path, not a path on the host (like `/matrix/traefik/ssl`). Do not change it! +# The `/ssl/…` path is an in-container path, not a path on the host (like `/matrix/traefik/ssl`). Do not change it! traefik_provider_configuration_extension_yaml: tls: certificates: diff --git a/docs/configuring-playbook-sygnal.md b/docs/configuring-playbook-sygnal.md index 28f50b78f..2bd800cdd 100644 --- a/docs/configuring-playbook-sygnal.md +++ b/docs/configuring-playbook-sygnal.md @@ -1,8 +1,15 @@ + + # Setting up the Sygnal push gateway (optional) The playbook can install and configure the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you. -See the project's [documentation](https://github.com/matrix-org/sygnal) to learn what it does and why it might be useful to you. +See the project's [documentation](https://github.com/matrix-org/sygnal/blob/master/README.md) to learn what it does and why it might be useful to you. **Note**: most people don't need to install their own gateway. As Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) documentation says: @@ -10,6 +17,12 @@ See the project's [documentation](https://github.com/matrix-org/sygnal) to learn This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves. +## Adjusting DNS records + +By default, this playbook installs Sygnal on the `sygnal.` subdomain (`sygnal.example.com`) and requires you to create a CNAME record for `sygnal`, which targets `matrix.example.com`. + +When setting, replace `example.com` with your own. + ## Adjusting the playbook configuration To enable Sygnal, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -23,11 +36,11 @@ matrix_sygnal_apps: com.example.myapp.ios: type: apns keyfile: /data/my_key.p8 - # .. more configuration .. + # … more configuration … com.example.myapp.android: type: gcm api_key: your_api_key_for_gcm - # .. more configuration .. + # … more configuration … aux_file_definitions: - dest: "{{ matrix_sygnal_data_path }}/my_key.p8" @@ -40,23 +53,19 @@ aux_file_definitions: group: "{{ matrix_user_groupname }}" ``` -For a more complete example of available fields and values they can take, see `roles/custom/matrix-sygnal/templates/sygnal.yaml.j2` (or the [upstream `sygnal.yaml.sample` configuration file](https://github.com/matrix-org/sygnal/blob/master/sygnal.yaml.sample)). - Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values. To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files. To do that, the above example configuration: - makes use of the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) (and its `aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml) of the `aux` role for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `aux`. -- references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/..` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container) +- references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/…` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container) -### Adjusting the Sygnal URL - -By default, this playbook installs Sygnal on the `sygnal.` subdomain (`sygnal.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records). +### Adjusting the Sygnal URL (optional) By tweaking the `matrix_sygnal_hostname` and `matrix_sygnal_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Switch to the domain used for Matrix services (`matrix.example.com`), @@ -67,25 +76,38 @@ matrix_sygnal_hostname: "{{ matrix_server_fqn_matrix }}" matrix_sygnal_path_prefix: /sygnal ``` -## Adjusting DNS records - -Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server. - -By default, you will need to create a CNAME record for `sygnal`. See [Configuring DNS](configuring-dns.md) for details about DNS changes. +After changing the domain, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server. If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration. +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-sygnal/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-sygnal/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_sygnal_configuration_extension_yaml` variable + ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: -``` + +```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 make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is to your Sygnal URL endpoint (e.g. `https://sygnal.example.com`). Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document. + +## 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-sygnal`. diff --git a/docs/configuring-playbook-synapse-admin.md b/docs/configuring-playbook-synapse-admin.md index 24547452e..4c992e09b 100644 --- a/docs/configuring-playbook-synapse-admin.md +++ b/docs/configuring-playbook-synapse-admin.md @@ -1,11 +1,28 @@ + + # Setting up Synapse Admin (optional) The playbook can install and configure [etkecc/synapse-admin](https://github.com/etkecc/synapse-admin) (a [feature-rich](https://github.com/etkecc/synapse-admin#fork-differences) fork of [Awesome-Technologies/synapse-admin](https://github.com/Awesome-Technologies/synapse-admin), community room: [#synapse-admin:etke.cc](https://matrix.to/#/#synapse-admin:etke.cc)) for you. -synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation and WON'T work with Dendrite because [Dendrite Admin API](https://matrix-org.github.io/dendrite/administration/adminapi) differs from [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/). +synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation and WON'T work with Dendrite because [Dendrite Admin API](https://element-hq.github.io/dendrite/administration/adminapi) differs from [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/). 💡 **Note**: the latest version of synapse-admin is hosted by [etke.cc](https://etke.cc/) at [admin.etke.cc](https://admin.etke.cc/). If you only need this service occasionally and trust giving your admin credentials to a 3rd party Single Page Application, you can consider using it from there and avoiding the (small) overhead of self-hosting. +## Adjusting DNS records (optional) + +By default, this playbook installs Synapse Admin on the `matrix.` subdomain, at the `/synapse-admin` path (https://matrix.example.com/synapse-admin). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-synapse-admin-url-optional) for details about DNS configuration. ## Adjusting the playbook configuration @@ -20,17 +37,16 @@ matrix_synapse_admin_enabled: true - for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` - for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true` -By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) - the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable. +By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) — the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable. -⚠️ **Warning**: If you're using [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS) for authentication, you will be able to [log into synapse-admin with an access token](https://github.com/etkecc/synapse-admin/pull/58), but certain synapse-admin features (especially those around user management) will be limited or not work at all. +> [!WARNING] +> If you're using [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS) for authentication, you will be able to [log into synapse-admin with an access token](https://github.com/etkecc/synapse-admin/pull/58), but certain synapse-admin features (especially those around user management) will be limited or not work at all. -### Adjusting the Synapse Admin URL - -By default, this playbook installs Synapse Admin on the `matrix.` subdomain, at the `/synapse-admin` path (https://matrix.example.com/synapse-admin). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the Synapse Admin URL (optional) By tweaking the `matrix_synapse_admin_hostname` and `matrix_synapse_admin_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -38,20 +54,37 @@ matrix_synapse_admin_hostname: admin.example.com matrix_synapse_admin_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the Synapse Admin domain (`admin.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the Synapse Admin domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-synapse-admin/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_synapse_admin_configuration_extension_json` variable ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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 After installation, Synapse Admin will be accessible at: `https://matrix.example.com/synapse-admin/` To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server. + +## 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-synapse-admin`. diff --git a/docs/configuring-playbook-synapse-auto-accept-invite.md b/docs/configuring-playbook-synapse-auto-accept-invite.md index d315f6410..f6f80120a 100644 --- a/docs/configuring-playbook-synapse-auto-accept-invite.md +++ b/docs/configuring-playbook-synapse-auto-accept-invite.md @@ -1,13 +1,22 @@ + + # Setting up Synapse Auto Invite Accept (optional) The playbook can install and configure [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) for you. -See that project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite) to learn what it does and why it might be useful to you. In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified. +In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified. + +See the project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite/blob/main/README.md) to learn what it does and why it might be useful to you. **Note**: Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the same feature [has been merged](https://github.com/element-hq/synapse/pull/17147) into Synapse (see the [Native alternative](#native-alternative) section below). You'd better use the native feature, instead of the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module. - -## Configuration +## Adjusting the playbook configuration If you decide that you'd like to let this playbook install the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite module for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -27,14 +36,13 @@ matrix_synapse_ext_synapse_auto_accept_invite_worker_to_run_on: 'matrix-synapse- There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18). - ## Native alternative Since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the functionality provided by the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module [has been made](https://github.com/element-hq/synapse/pull/17147) part of Synapse. Here's example configuration for using the **native** Synapse feature: -```yml +```yaml matrix_synapse_auto_accept_invites_enabled: true # Default settings below. Uncomment and adjust this part if necessary. diff --git a/docs/configuring-playbook-synapse-auto-compressor.md b/docs/configuring-playbook-synapse-auto-compressor.md index 3e1cda4bc..4934e65a0 100644 --- a/docs/configuring-playbook-synapse-auto-compressor.md +++ b/docs/configuring-playbook-synapse-auto-compressor.md @@ -1,11 +1,18 @@ + + # Setting up synapse-auto-compressor (optional) The playbook can install and configure [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) for you. It's a CLI tool that automatically compresses Synapse's `state_groups` database table in the background. -See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you. - +See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/blob/master/README.md#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -15,20 +22,49 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/ matrix_synapse_auto_compressor_enabled: true ``` +### Edit the schedule (optional) + +By default the task will run 0 a.m. every day based on the `matrix_synapse_auto_compressor_schedule` variable. It is defined in the format of systemd timer calendar. + +To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs): + +```yaml +matrix_synapse_auto_compressor_schedule: "*-*-* 00:00:00" +``` + +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-synapse-auto-compressor/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook, run the [installation](installing.md) command: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -``` + +```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 -After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_calendar` by default). +After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_schedule` by default). -## Manually start the tool +### Manually start the task -For testing your setup it can be helpful to not wait until 00:00. If you want to run the tool immediately, log onto the server and run `systemctl start matrix-synapse-auto-compressor`. Running this command will not return control to your terminal until the compression run is done, which may take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable. +Sometimes it can be helpful to execute compression as you'd like, avoiding to wait until 00:00, like when you test your configuration. + +If you want to execute it immediately, log in to the server with SSH and run `systemctl start matrix-synapse-auto-compressor`. + +This will not return until the compression is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable. + +## 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-synapse-auto-compressor`. diff --git a/docs/configuring-playbook-synapse-s3-storage-provider.md b/docs/configuring-playbook-synapse-s3-storage-provider.md index 410af46eb..0d7c312ce 100644 --- a/docs/configuring-playbook-synapse-s3-storage-provider.md +++ b/docs/configuring-playbook-synapse-s3-storage-provider.md @@ -1,9 +1,21 @@ + + # Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider (optional) -If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can use the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) media provider module for Synapse. +The playbook can install and configure the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) for you. -An alternative (which has worse performance) is to use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md). +It is a media provider module for Synapse to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service) object storage. +See the project's [documentation](https://github.com/matrix-org/synapse-s3-storage-provider/blob/main/README.md) to learn what it does and why it might be useful to you. + +**Note**: alternatively you can use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md) despite worse performance. ## How it works? @@ -18,14 +30,13 @@ The way media storage providers in Synapse work has some caveats: You may be thinking **if all files are stored locally as well, what's the point**? -You can run some scripts to delete the local files once in a while (which we do automatically by default - see [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem)), thus freeing up local disk space. If these files are needed in the future (for serving them to users, etc.), Synapse will pull them from the media storage provider on demand. +You can run some scripts to delete the local files once in a while (which we do automatically by default — see [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem)), thus freeing up local disk space. If these files are needed in the future (for serving them to users, etc.), Synapse will pull them from the media storage provider on demand. While you will need some local disk space around, it's only to accommodate usage, etc., and won't grow as large as your S3 store. +## Adjusting the playbook configuration -## Installing - -After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), you can proceed to configure `s3-storage-provider` in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`): +After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml matrix_synapse_ext_synapse_s3_storage_provider_enabled: true @@ -35,21 +46,42 @@ matrix_synapse_ext_synapse_s3_storage_provider_config_region_name: some-region-n matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url: https://s3.REGION_NAME.amazonaws.com # adjust this matrix_synapse_ext_synapse_s3_storage_provider_config_storage_class: STANDARD # or STANDARD_IA, etc. -# Authentication Method 1 - (access key ID + secret) +# Authentication Method 1 — (access key ID + secret) # This works on all providers (AWS and other compatible systems). # Uncomment the variables below to use it. # matrix_synapse_ext_synapse_s3_storage_provider_config_access_key_id: access-key-goes-here # matrix_synapse_ext_synapse_s3_storage_provider_config_secret_access_key: secret-key-goes-here -# Authentication Method 2 - EC2 instance profile which grants permission to access S3 +# Authentication Method 2 — EC2 instance profile which grants permission to access S3 # This only works on AWS when your server is hosted on an EC2 instance with the correct instance profile set. # Uncomment the variable below to use it. # matrix_synapse_ext_synapse_s3_storage_provider_config_ec2_instance_profile: true - -# For additional advanced settings, take a look at `roles/custom/matrix-synapse/defaults/main.yml` ``` -If you have existing files in Synapse's media repository (`/matrix/synapse/media-store/..`): +### Extending the configuration + +There are some additional things you may wish to configure about the server. + +Take a look at: + +- `roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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 + +If you have existing files in Synapse's media repository (`/matrix/synapse/storage/media-store/…`): - new files will start being stored both locally and on the S3 store - the existing files will remain on the local filesystem only until [migrating them to the S3 store](#migrating-your-existing-media-files-to-the-s3-store) @@ -57,29 +89,28 @@ If you have existing files in Synapse's media repository (`/matrix/synapse/media Regardless of whether you need to [Migrate your existing files to the S3 store](#migrating-your-existing-media-files-to-the-s3-store) or not, make sure you've familiarized yourself with [How it works?](#how-it-works) above and [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem) below. - -## Migrating your existing media files to the S3 store +### Migrating your existing media files to the S3 store Migrating your existing data can happen in multiple ways: - [using the `s3_media_upload` script from `synapse-s3-storage-provider`](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (very slow when dealing with lots of data) - [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload) (quicker when dealing with lots of data) -### Using the `s3_media_upload` script from `synapse-s3-storage-provider` +💡 **Note**: instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload). -Instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload). +#### Using the `s3_media_upload` script from `synapse-s3-storage-provider` To copy your existing files, SSH into the server and run `/matrix/synapse/ext/s3-storage-provider/bin/shell`. This launches a Synapse container, which has access to the local media store, Postgres database, S3 store and has some convenient environment variables configured for you to use (`MEDIA_PATH`, `BUCKET`, `ENDPOINT`, `UPDATE_DB_DAYS`, etc). -Then use the following commands (`$` values come from environment variables - they're **not placeholders** that you need to substitute): +Then use the following commands (`$` values come from environment variables — they're **not placeholders** that you need to substitute): -1. `s3_media_upload update-db $UPDATE_DB_DURATION` - create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on +1. `s3_media_upload update-db $UPDATE_DB_DURATION` — create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on - `$UPDATE_DB_DURATION` is influenced by the `matrix_synapse_ext_synapse_s3_storage_provider_update_db_day_count` variable (defaults to `0`) - `$UPDATE_DB_DURATION` defaults to `0d` (0 days), which means **include files which haven't been accessed for more than 0 days** (that is, **all files will be included**). -2. `s3_media_upload check-deleted $MEDIA_PATH` - check whether files in the local cache still exist in the local media repository directory -3. `s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` - uploads locally-stored files to S3 and deletes them from the local media repository directory +2. `s3_media_upload check-deleted $MEDIA_PATH` — check whether files in the local cache still exist in the local media repository directory +3. `s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` — uploads locally-stored files to S3 and deletes them from the local media repository directory The `s3_media_upload upload` command may take a lot of time to complete. @@ -88,9 +119,9 @@ Instead of running the above commands manually in the shell, you can also run th - it's what the upstream project demonstrates and it teaches you how to use the `s3_media_upload` tool - allows you to check and verify the output of each command, to catch mistakes - includes progress bars and detailed output for each command -- allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill ..`) +- allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill …`) -### Using another tool in combination with `s3_media_upload` +#### Using another tool in combination with `s3_media_upload` To migrate your existing local data to S3, we recommend to: @@ -98,7 +129,7 @@ To migrate your existing local data to S3, we recommend to: - **only then** [use the `s3_media_upload` tool to finish the migration](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (this checks to ensure all files are uploaded and then deletes the local files) -#### Copying data to Amazon S3 +##### Copying data to Amazon S3 To copy to AWS S3, start a container on the Matrix server like this: @@ -112,13 +143,13 @@ docker.io/amazon/aws-cli:2.9.16 \ -c 'aws s3 sync /work/. s3://$BUCKET/' ``` -#### Copying data to an S3 alternative using the aws-s3 tool +##### Copying data to an S3 alternative using the aws-s3 tool -To copy to a provider other than AWS S3 (e.g. Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument. +To copy to a provider other than AWS S3 (e.g. Storj, Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument. Add this argument to the command **as-is** (`$ENDPOINT` is an environment variable corresponding to `matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url`, so you don't need to touch it). Make sure to add the argument **before** the final quote (`'`) of the command. -#### Copying data to Backblaze B2 +##### Copying data to Backblaze B2 You can copy files to Backblaze B2 either by following the [Copying data to an S3 alternative using the aws-s3 tool](#copying-data-to-an-s3-alternative-using-the-aws-s3-tool) or by using the B2-specific [b2 command-line tool](https://www.backblaze.com/b2/docs/quick_command_line.html) as described below. @@ -136,14 +167,20 @@ docker.io/tianon/backblaze-b2:3.6.0 \ -c 'b2 authorize-account $B2_KEY_ID $B2_KEY_SECRET && b2 sync /work b2://$B2_BUCKET_NAME --skipNewer' ``` -## Periodically cleaning up the local filesystem +### Periodically cleaning up the local filesystem As described in [How it works?](#how-it-works) above, when new media is uploaded to the Synapse homeserver, it's first stored locally and then also stored on the remote S3 storage. By default, we periodically ensure that all local files are uploaded to S3 and are then removed from the local filesystem. This is done automatically using: - the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script -- .. invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service -- .. triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00 +- … invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service +- … triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00 -So.. you don't need to perform any maintenance yourself. +So… you don't need to perform any maintenance yourself. + +The schedule is defined in the format of systemd timer calendar. To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs): + +```yaml +matrix_synapse_ext_synapse_s3_storage_provider_periodic_migration_schedule: "*-*-* 05:00:00" +``` diff --git a/docs/configuring-playbook-synapse-simple-antispam.md b/docs/configuring-playbook-synapse-simple-antispam.md index 96072b248..b5d99844c 100644 --- a/docs/configuring-playbook-synapse-simple-antispam.md +++ b/docs/configuring-playbook-synapse-simple-antispam.md @@ -1,8 +1,17 @@ + + # Setting up Synapse Simple Antispam (optional, advanced) The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you. -See that project's documentation to learn what it does and why it might be useful to you. In short, it lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting). +It lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting). + +See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you. ## Adjusting the playbook configuration @@ -15,3 +24,16 @@ matrix_synapse_ext_spam_checker_synapse_simple_antispam_config_blocked_homeserve - example.com - example.net ``` + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. diff --git a/docs/configuring-playbook-synapse-usage-exporter.md b/docs/configuring-playbook-synapse-usage-exporter.md index b3180281a..cb66cdffe 100644 --- a/docs/configuring-playbook-synapse-usage-exporter.md +++ b/docs/configuring-playbook-synapse-usage-exporter.md @@ -1,9 +1,23 @@ + + # Enabling synapse-usage-exporter for Synapse usage statistics (optional) -[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus. +The playbook can install and configure [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) for you. + +It allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus. Synapse does not include usage statistics in its Prometheus metrics. They can be reported to an HTTP `PUT` endpoint 5 minutes after startup and from then on at a fixed interval of once every three hours. This role integrates a simple [Flask](https://flask.palletsprojects.com) project that offers an HTTP `PUT` endpoint and holds the most recent received record available to be scraped by Prometheus. +See the project's [documentation](https://github.com/loelkes/synapse-usage-exporter/blob/main/README.md) to learn what it does and why it might be useful to you. + +## What does it do? + Enabling this service will automatically: - install the synapse-usage-exporter service @@ -11,6 +25,12 @@ Enabling this service will automatically: - re-configure [Prometheus](./configuring-playbook-prometheus-grafana.md) (if Prometheus is enabled), to periodically scrape metrics from synapse-usage-exporter - add a new [Grafana](./configuring-playbook-prometheus-grafana.md) dashboard (if Grafana is enabled) containing Synapse usage statistics +## Adjusting DNS records (optional) + +By default, this playbook installs synapse-usage-exporter on the `matrix.` subdomain, at the `/report-usage-stats/push` path (https://matrix.example.com/report-usage-stats/push). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. + +If you wish to adjust it, see the section [below](#adjusting-the-synapse-usage-exporter-url-optional) for details about DNS configuration. + ## Adjusting the playbook configuration To enable synapse-usage-exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -25,13 +45,11 @@ matrix_synapse_usage_exporter_enabled: true # matrix_synapse_usage_exporter_proxying_enabled: true ``` -### Adjusting the synapse-usage-exporter URL - -By default, this playbook installs synapse-usage-exporter on the `matrix.` subdomain, at the `/report-usage-stats/push` path (https://matrix.example.com/report-usage-stats/push). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section. +### Adjusting the synapse-usage-exporter URL (optional) By tweaking the `matrix_synapse_usage_exporter_hostname` and `matrix_synapse_usage_exporter_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 `inventory/host_vars/matrix.example.com/vars.yml` file: +Example additional configuration for your `vars.yml` file: ```yaml # Change the default hostname and path prefix @@ -40,14 +58,31 @@ matrix_synapse_usage_exporter_hostname: sue.example.com matrix_synapse_usage_exporter_path_prefix: / ``` -## Adjusting DNS records +If you've changed the default hostname, you may need to create a CNAME record for the synapse-usage-exporter domain (`sue.example.com`), which targets `matrix.example.com`. -If you've changed the default hostname, **you may need to adjust your DNS** records to point the synapse-usage-exporter domain to the Matrix server. +When setting, replace `example.com` with your own. -See [Configuring DNS](configuring-dns.md) for details about DNS changes. +### Extending the configuration -If you've decided to use the default hostname, you won't need to do any extra DNS configuration. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-synapse-usage-exporter/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-synapse-usage-exporter`. diff --git a/docs/configuring-playbook-synapse.md b/docs/configuring-playbook-synapse.md index a529d3e34..4a15ef701 100644 --- a/docs/configuring-playbook-synapse.md +++ b/docs/configuring-playbook-synapse.md @@ -1,23 +1,23 @@ + + # Configuring Synapse (optional) By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, so that it works for the general case. If that's okay, you can skip this document. -The playbook provides lots of customization variables you could use to change Synapse's settings. +💡 See this page for details about maintaining Synapse: [Synapse maintenance](maintenance-synapse.md) -Their defaults are defined in [`roles/custom/matrix-synapse/defaults/main.yml`](../roles/custom/matrix-synapse/defaults/main.yml) and they ultimately end up in the generated `/matrix/synapse/config/homeserver.yaml` file (on the server). This file is generated from the [`roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2`](../roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2) template. +## Adjusting the playbook configuration -**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes. - -Alternatively, **if there is no pre-defined variable** for a Synapse setting you wish to change: - -- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Synapse's various settings that rarely get used. - -- or, you can **extend and override the default configuration** ([`homeserver.yaml.j2`](../roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2)) by making use of the `matrix_synapse_configuration_extension_yaml` variable. You can find information about this in [`roles/custom/matrix-synapse/defaults/main.yml`](../roles/custom/matrix-synapse/defaults/main.yml). - -- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`). You can find information about this in [`roles/custom/matrix-synapse/defaults/main.yml`](../roles/custom/matrix-synapse/defaults/main.yml). - - -## Load balancing with workers +### Load balancing with workers To have Synapse gracefully handle thousands of users, worker support should be enabled. It factors out some homeserver tasks and spreads the load of incoming client and server-to-server traffic between multiple processes. More information can be found in the [official Synapse workers documentation](https://github.com/element-hq/synapse/blob/master/docs/workers.md) and [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). @@ -31,40 +31,40 @@ matrix_synapse_workers_preset: one-of-each By default, this enables the `one-of-each` [worker preset](#worker-presets), but you may wish to use another preset or [control the number of worker instances](#controlling-the-number-of-worker-instances). -### Worker presets +#### Worker presets We support a few configuration presets (`matrix_synapse_workers_preset: one-of-each` being the default configuration right now): -- (federation-only) `little-federation-helper` - a very minimal worker configuration to improve federation performance -- (generic) `one-of-each` - defaults to one worker of each supported type - no smart routing, just generic workers -- (specialized) `specialized-workers` - defaults to one worker of each supported type, but disables generic workers and uses [specialized workers](#specialized-workers) instead +- (federation-only) `little-federation-helper` — a very minimal worker configuration to improve federation performance +- (generic) `one-of-each` — defaults to one worker of each supported type — no smart routing, just generic workers +- (specialized) `specialized-workers` — defaults to one worker of each supported type, but disables generic workers and uses [specialized workers](#specialized-workers) instead These presets represent a few common configurations. There are many worker types which can be mixed and matched based on your needs. -#### Generic workers +##### Generic workers Previously, the playbook only supported the most basic type of load-balancing. We call it **generic load-balancing** below, because incoming HTTP requests are sent to a generic worker. Load-balancing was done based on the requestor's IP address. This is simple, but not necessarily optimal. If you're accessing your account from multiple IP addresses (e.g. your mobile phone being on a different network than your PC), these separate requests may potentially be routed to different workers, each of which would need to cache roughly the same data. This is **still the default load-balancing method (preset) used by the playbook**. -To use generic load-balancing, do not specify `matrix_synapse_workers_preset` to make it use the default value (`one-of-each`), or better yet - explicitly set it as `one-of-each`. +To use generic load-balancing, do not specify `matrix_synapse_workers_preset` to make it use the default value (`one-of-each`), or better yet — explicitly set it as `one-of-each`. You may also consider [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each). -#### Specialized workers +##### Specialized workers -The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** - the access token (username) of the requestor and/or on the resource (room, etc.) being requested. +The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requestor and/or on the resource (room, etc.) being requested. The playbook supports these **4 types** of specialized workers: -- Room workers - handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) & [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs dedicated to handling specific rooms -- Sync workers - handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs related to synchronization (most notably [the `/sync` endpoint](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv3sync)) -- Client readers - handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs which are not for specific rooms (handled by **room workers**) or for synchronization (handled by **sync workers**) -- Federation readers - handles various [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs which are not for specific rooms (handled by **room workers**) +- Room workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) & [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs dedicated to handling specific rooms +- Sync workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs related to synchronization (most notably [the `/sync` endpoint](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv3sync)) +- Client readers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs which are not for specific rooms (handled by **room workers**) or for synchronization (handled by **sync workers**) +- Federation readers — handles various [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs which are not for specific rooms (handled by **room workers**) To use specialized load-balancing, consider enabling the `specialized-workers` [worker preset](#worker-presets) and potentially [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each). -#### Controlling the number of worker instances +##### Controlling the number of worker instances If you'd like more customization power, you can start with one of the [worker presets](#worker-presets) and then tweak various `matrix_synapse_workers_*_count` variables manually. @@ -72,7 +72,7 @@ To find what variables are available for you to override in your own `vars.yml` The only thing you **cannot** do is mix [generic workers](#generic-workers) and [specialized workers](#specialized-workers). -#### Effect of enabling workers on the rest of your server +##### Effect of enabling workers on the rest of your server When Synapse workers are enabled, the integrated [Postgres database is tuned](maintenance-postgres.md#tuning-postgresql), so that the maximum number of Postgres connections are increased from `200` to `500`. If you need to decrease or increase the number of maximum Postgres connections further, use the `postgres_max_connections` variable. @@ -80,13 +80,7 @@ A separate Ansible role (`matrix-synapse-reverse-proxy-companion`) and component In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/element-hq/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`. - -## Synapse Admin - -Certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace, if you install [Synapse Admin](configuring-playbook-synapse-admin.md). - - -## Synapse + OpenID Connect for Single-Sign-On +### Synapse + OpenID Connect for Single-Sign-On 💡 An alternative to setting up OIDC in Synapse is to use [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS). Newer clients (like Element X) only support SSO-based authentication via MAS and not via the legacy Synapse OIDC setup described below. That said, MAS is still a new experimental service which comes with its own downsides. Consult its documentation to learn if it will be a good fit for your deployment. @@ -98,7 +92,7 @@ For more detailed documentation on available options and how to setup keycloak, In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ; -```yml +```yaml matrix_synapse_oidc_enabled: true matrix_synapse_oidc_providers: @@ -117,8 +111,7 @@ matrix_synapse_oidc_providers: backchannel_logout_enabled: true # Optional ``` - -## Customizing templates +### Customizing templates [Templates](https://github.com/element-hq/synapse/blob/develop/docs/templates.md) are used by Synapse for showing **certain web pages** handled by the server, as well as for **email notifications**. @@ -128,7 +121,7 @@ If template customization is enabled, the playbook will build a custom container Your custom templates need to live in a public or private git repository. This repository will be cloned during Synapse image customization (during the playbook run). -To enable template customizations, use a configuration (`inventory/host_vars/matrix.example.com/vars.yml`) like this: +To enable template customizations, add the following configuration to your `vars.yml` file (adapt to your needs): ```yaml # If you'd like to ensure that the customized image is built each time the playbook runs, enable this. @@ -150,17 +143,61 @@ matrix_synapse_container_image_customizations_templates_git_repository_keyscan_h # If your git repository is public, do not define the private key (remove the variable). matrix_synapse_container_image_customizations_templates_git_repository_ssh_private_key: | -----BEGIN OPENSSH PRIVATE KEY----- - .... + … -----END OPENSSH PRIVATE KEY----- ``` As mentioned in Synapse's Templates documentation, Synapse will fall back to its own templates if a template is not found in that directory. Due to this, it's recommended to only store and maintain template files in your repository if you need to make custom changes. Other files (which you don't need to change), should not be duplicated, so that you don't need to worry about getting out-of-sync with the original Synapse templates. +### Extending the configuration -## Monitoring Synapse Metrics with Prometheus and Grafana +There are some additional things you may wish to configure about the server. + +Take a look at: + +- `roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file +- `roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_synapse_configuration_extension_yaml` variable + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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 + +### Synapse Admin + +With [Synapse Admin](configuring-playbook-synapse-admin.md), certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace. + +The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md). + +### Monitoring Synapse Metrics with Prometheus and Grafana This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse. -To enable Synapse runtime metrics see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) +To enable Synapse runtime metrics, see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) and [its subsection](configuring-playbook-prometheus-grafana.md#expose-metrics-of-other-services-roles) To enable Synapse usage metrics, see: [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md) + +## 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-synapse`. + +### Increase logging verbosity + +Because Synapse is originally very chatty when it comes to logging, we intentionally reduce its [logging level](https://docs.python.org/3/library/logging.html#logging-levels) from `INFO` to `WARNING`. + +If you'd like to debug an issue or [report a Synapse bug](https://github.com/element-hq/synapse/issues/new/choose) to the developers, it'd be better if you temporarily increase the logging verbosity to `INFO`. To do so, add the following configuration to your `vars.yml` file and re-run the playbook: + +```yaml +matrix_synapse_log_level: "INFO" +matrix_synapse_storage_sql_log_level: "INFO" +matrix_synapse_root_log_level: "INFO" diff --git a/docs/configuring-playbook-telemetry.md b/docs/configuring-playbook-telemetry.md index 37ad76b0b..58e67543a 100644 --- a/docs/configuring-playbook-telemetry.md +++ b/docs/configuring-playbook-telemetry.md @@ -1,11 +1,20 @@ + + # Enabling Telemetry for your Matrix server (optional) By default, this playbook configures your Matrix homeserver to not send any telemetry data anywhere. The [matrix.org](https://matrix.org) team would really appreciate it if you could help the project out by reporting usage statistics from your homeserver. Enabling usage statistics helps track the growth of the Matrix community, and helps to make Matrix a success. - -## Enabling Telemetry +## Adjusting the playbook configuration If you'd like to **help by enabling submission of general usage statistics** for your homeserver, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -15,9 +24,8 @@ matrix_synapse_report_stats: true # for synapse matrix_dendrite_report_stats: true # for dendrite ``` - ## Usage statistics being submitted When enabled, your homeserver will regularly upload a few dozen statistics about your server. This data includes your homeserver's domain, the total number of users, the number of active users, the total number of rooms, and the number of messages sent per day on your homeserver. -See [Synapse's documentation](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md#available-statistics) or [Dendrite's documentation](https://github.com/matrix-org/dendrite/blob/main/docs/FAQ.md#what-is-being-reported-when-enabling-phone-home-statistics) for the full list of statistics that are reported. +See [Synapse's documentation](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md#available-statistics) or [Dendrite's documentation](https://github.com/element-hq/dendrite/blob/main/docs/FAQ.md#what-is-being-reported-when-enabling-phone-home-statistics) for the full list of statistics that are reported. diff --git a/docs/configuring-playbook-traefik.md b/docs/configuring-playbook-traefik.md index 019265b16..46b236580 100644 --- a/docs/configuring-playbook-traefik.md +++ b/docs/configuring-playbook-traefik.md @@ -1,31 +1,31 @@ + + # Configuring the Traefik reverse-proxy (optional, advanced) -By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [ansible-role-traefik](https://github.com/mother-of-all-self-hosting/ansible-role-traefik) Ansible role. +By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [ansible-role-traefik](https://github.com/mother-of-all-self-hosting/ansible-role-traefik) Ansible role for you. If that's okay, you can skip this document. + +## Adjusting the playbook configuration This Ansible role support various configuration options. Feel free to consult its `default/main.yml` variables file. +### Disable access logs -## Adjusting SSL certificate retrieval - -See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page. - -## Increase logging verbosity - -```yaml -traefik_config_log_level: DEBUG -``` - -## Disable access logs - -This will disable access logging. +To disable access logging, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml traefik_config_accessLog_enabled: false ``` -## Enable Traefik Dashboard +### Enable Traefik Dashboard -This will enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`). +To enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`), add the following configuration to your `vars.yml` file: ```yaml traefik_dashboard_enabled: true @@ -35,31 +35,48 @@ traefik_dashboard_basicauth_user: YOUR_USERNAME_HERE traefik_dashboard_basicauth_password: YOUR_PASSWORD_HERE ``` -**WARNING**: Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts. +> [!WARNING] +> Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts. -## Additional configuration +### Extending the configuration -Use the `traefik_configuration_extension_yaml` variable provided by the Traefik Ansible role to override or inject additional settings, even when no dedicated variable exists. +There are some additional things you may wish to configure about the component. + +Take a look at: + +- [Traefik role](https://github.com/mother-of-all-self-hosting/ansible-role-traefik)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-traefik/blob/main/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 `traefik_configuration_extension_yaml` variable + +For example, to enable and secure the Dashboard, you can add the following configuration to your `vars.yml` file: + +**Note**: this is a contrived example as you can enable and secure the Dashboard using the dedicated variables. See above for details. ```yaml -# This is a contrived example. -# You can enable and secure the Dashboard using dedicated variables. See above. traefik_configuration_extension_yaml: | + # Your custom YAML configuration for Traefik goes here. + # This configuration extends the default starting configuration (`traefik_configuration_yaml`). + # + # 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 + # completely redefining `traefik_configuration_yaml`. + # + # Example configuration extension follows: + # api: dashboard: true ``` -## Reverse-proxying another service behind Traefik +### Reverse-proxying another service behind Traefik The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md). However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for. -## Reverse-proxying a remote HTTP/HTTPS service behind Traefik +#### Reverse-proxying a remote HTTP/HTTPS service behind Traefik If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://:` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host. -Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server - `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`. +Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`. First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files: @@ -89,7 +106,6 @@ traefik_configuration_extension_yaml: | insecureSkipVerify: true ``` - Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates. ```yaml @@ -111,7 +127,7 @@ aux_file_definitions: ``` Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP. -## Reverse-proxying another service behind Traefik without terminating SSL +#### Reverse-proxying another service behind Traefik without terminating SSL If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file: @@ -136,12 +152,12 @@ Changing the `url` to one with an `http://` prefix would allow to connect to the With these changes, all TCP traffic will be reverse-proxied to the target system. -**WARNING**: This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```. +> [!WARNING] +> This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```. +#### Traefik behind a `proxy_protocol` reverse-proxy -## Traefik behind a `proxy_protocol` reverse-proxy - -If you run a reverse-proxy which speaks `proxy_protocol`, add the following to your configuration file: +If you run a reverse-proxy which speaks `proxy_protocol`, add the following configuration to your `vars.yml` file: ```yaml traefik_configuration_extension_yaml: | @@ -159,3 +175,34 @@ traefik_configuration_extension_yaml: | - "/32" - "/128" ``` + +## Other configurations + +### Adjusting SSL certificate retrieval + +See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page. + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-traefik`. + +### Increase logging verbosity + +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 +traefik_config_log_level: DEBUG +``` diff --git a/docs/configuring-playbook-turn.md b/docs/configuring-playbook-turn.md index b52b54691..9c9b31271 100644 --- a/docs/configuring-playbook-turn.md +++ b/docs/configuring-playbook-turn.md @@ -1,63 +1,63 @@ -# Adjusting TURN server configuration (optional, advanced) + -By default, the Synapse chat server is configured, so that it points to the Coturn TURN server installed by the playbook. +# Configuring a TURN server (optional, advanced) +By default, this playbook installs and configures the [coturn](https://github.com/coturn/coturn) as a TURN server, through which clients can make audio/video calls even from [NAT](https://en.wikipedia.org/wiki/Network_address_translation)-ed networks. It also configures the Synapse chat server by default, so that it points to the coturn TURN server installed by the playbook. If that's okay, you can skip this document. -## Disabling Coturn +If you'd like to stop the playbook installing the server, see the section [below](#disabling-coturn) to check the configuration for disabling it. -If, for some reason, you'd like to prevent the playbook from installing Coturn, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +## Adjusting the playbook configuration -```yaml -matrix_coturn_enabled: false -``` +### Define public IP manually (optional) -In that case, Synapse would not point to any Coturn servers and audio/video call functionality may fail. +In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring coturn. -## Manually defining your public IP - -In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring Coturn. - -If you'd rather use a local IP for `ansible_host`, make sure to set up `matrix_coturn_turn_external_ip_address` replacing `YOUR_PUBLIC_IP` with the pubic IP used by the server. +If you'd rather use a local IP for `ansible_host`, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_PUBLIC_IP` with the pubic IP used by the server. ```yaml matrix_coturn_turn_external_ip_address: "YOUR_PUBLIC_IP" ``` -If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set `matrix_coturn_turn_external_ip_address` to an empty value. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable. +If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable. -If your server has multiple external IP addresses, the Coturn role offers a different variable for specifying them: +If your server has multiple external IP addresses, the coturn role offers a different variable for specifying them: ```yaml # Note: matrix_coturn_turn_external_ip_addresses is different than matrix_coturn_turn_external_ip_address matrix_coturn_turn_external_ip_addresses: ['1.2.3.4', '4.5.6.7'] ``` -## Changing the authentication mechanism +### Change the authentication mechanism (optional) The playbook uses the [`auth-secret` authentication method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L186-L199) by default, but you may switch to the [`lt-cred-mech` method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L178) which [some report](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3191) to be working better. -To do so, add this override to your configuration: +To do so, add the following configuration to your `vars.yml` file: -```yml +```yaml matrix_coturn_authentication_method: lt-cred-mech ``` -Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and Coturn. +Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and coturn. -If you're using [Jitsi](./configuring-playbook-jitsi.md), note that switching to `lt-cred-mech` will remove the integration between Jitsi and your own Coturn server, because Jitsi only seems to support the `auth-secret` authentication method. +If [Jitsi](configuring-playbook-jitsi.md) is installed, note that switching to `lt-cred-mech` will disable the integration between Jitsi and your coturn server, as Jitsi seems to support the `auth-secret` authentication method only. +### Use your own external coturn server (optional) -## Using your own external Coturn server - -If you'd like to use another TURN server (be it Coturn or some other one), you can configure the playbook like this: +If you'd like to use another TURN server (be it coturn or some other one), add the following configuration to your `vars.yml` file. Make sure to replace `HOSTNAME_OR_IP` with your own. ```yaml -# Disable integrated Coturn server +# Disable integrated coturn server matrix_coturn_enabled: false -# Point Synapse to your other Coturn server +# Point Synapse to your other coturn server matrix_synapse_turn_uris: - turns:HOSTNAME_OR_IP?transport=udp - turns:HOSTNAME_OR_IP?transport=tcp @@ -65,13 +65,58 @@ matrix_synapse_turn_uris: - turn:HOSTNAME_OR_IP?transport=tcp ``` -If you have or want to enable [Jitsi](configuring-playbook-jitsi.md), you might want to enable the TURN server there too. If you do not do it, Jitsi will fall back to an upstream service. +If you have or want to enable Jitsi, you might want to enable the TURN server there too. If you do not do it, Jitsi will fall back to an upstream service. ```yaml jitsi_web_stun_servers: - stun:HOSTNAME_OR_IP:PORT ``` -You can put multiple host/port combinations if you like. -## Further variables and configuration options -To see all the available configuration options, check roles/custom/matrix-coturn/defaults/main.yml +You can put multiple host/port combinations if you'd like to. + +### Edit the reloading schedule (optional) + +By default the service is reloaded on 6:30 a.m. every day based on the `matrix_coturn_reload_schedule` variable so that new SSL certificates can kick in. It is defined in the format of systemd timer calendar. + +To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs): + +```yaml +matrix_coturn_reload_schedule: "*-*-* 06:30:00" +``` + +**Note**: the actual job may run with a delay. See `matrix_coturn_reload_schedule_randomized_delay_sec` for its default value. + +### Extending the configuration + +There are some additional things you may wish to configure about the TURN server. + +Take a look at: + +- `roles/custom/matrix-coturn/defaults/main.yml` for some variables that you can customize via your `vars.yml` file + +## Disabling coturn + +If, for some reason, you'd like for the playbook to not install coturn (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file: + +```yaml +matrix_coturn_enabled: false +``` + +In that case, Synapse would not point to any coturn servers and audio/video call functionality may fail. + +## Installing + +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```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. + +## 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-coturn`. diff --git a/docs/configuring-playbook-user-verification-service.md b/docs/configuring-playbook-user-verification-service.md index e0566c86b..662f8408e 100644 --- a/docs/configuring-playbook-user-verification-service.md +++ b/docs/configuring-playbook-user-verification-service.md @@ -1,114 +1,143 @@ + + # Setting up Matrix User Verification Service (optional) -**[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) can only be installed after Matrix services are installed and running.** If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) flow and come back here later. +The playbook can install and configure [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) for you. -Currently, the main purpose of this role is to allow Jitsi to authenticate Matrix users and check if they are authorized to join a conference. Please refer to the documentation of the [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) to understand how it works. +See the project's [documentation](https://github.com/matrix-org/matrix-user-verification-service/blob/master/README.md) to learn what it does and why it might be useful to you. -**Note**: enabling Matrix User Verification Service, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. +Currently, the main purpose of this role is to allow Jitsi to authenticate Matrix users and check if they are authorized to join a conference. If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`. -If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`. - -__Some general concepts of UVS may be helpful to understand the rest, so here they are:__ +## What does it do? UVS can be used to verify two claims: * (A) Whether a given OpenID token is valid for a given server and * (B) whether a user is member of a given room and the corresponding PowerLevel -Verifying an OpenID token ID done by finding the corresponding Homeserver via '.well-known/matrix/server' for the given domain. The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this. By default, this playbook only checks against `matrix_server_fqn_matrix`. Therefore, the request will be made against the public openid API for `matrix_server_fqn_matrix`. +Verifying an OpenID token ID done by finding the corresponding Homeserver via `/.well-known/matrix/server` for the given domain. The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this. By default, this playbook only checks against `matrix_server_fqn_matrix`. Therefore, the request will be made against the public `openid` API for `matrix_server_fqn_matrix`. Verifying RoomMembership and PowerLevel is done against `matrix_user_verification_service_uvs_homeserver_url` which is by default done via the docker network. UVS will verify the validity of the token beforehand though. ## Prerequisites -In order to use UVS, an admin token for the configured homeserver must be supplied. For now this means configuring Synapse and creating the token before installing UVS. +### Open Matrix Federation port -## Enable +Enabling the UVS service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible. -To enable Matrix User Verification Service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: +### Install Matrix services + +UVS can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later. + +### Register a dedicated Matrix user (optional, recommended) + +We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username). **Because UVS requires an access token as an admin user, that user needs to be an admin.** + +Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`. + +You can use the playbook to [register a new user](registering-users.md): + +```sh +ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=uvs password=PASSWORD_FOR_THE_USER admin=yes' --tags=register-user +``` + +### Obtain an access token + +UVS requires an access token as an admin user to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). + +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + +## Adjusting the playbook configuration + +To enable UVS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token). ```yaml matrix_user_verification_service_enabled: true + +matrix_user_verification_service_uvs_access_token: "ACCESS_TOKEN_HERE" ``` -## Configuration - -The only required configuration variable is `matrix_user_verification_service_uvs_access_token` (see below). - -For a list of all configuration options see the role defaults [`roles/matrix-user-verification-service/defaults/main.yml`](../roles/custom/matrix-user-verification-service/defaults/main.yml). But be aware of all the plugging happening in `group_vars/matrix_servers`. - In the default configuration, the UVS Server is only reachable via the docker network, which is fine if e.g. Jitsi is also running in a container on the host. However, it is possible to expose UVS via setting `matrix_user_verification_service_container_http_host_bind_port`. -### Access token +### Custom Auth Token (optional) -The Synapse Access Token is used to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`. +It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header `Authorization: Bearer YOUR_TOKEN_HERE`. -We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username). Follow our [Registering users](registering-users.md) guide to register a user with administration privileges. +By default, the token (`YOUR_TOKEN_HERE`) will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`. -You are required to specify an access token (belonging to this new user) for UVS to work. To get an access token for the UVS user, you can follow the documentation on [how to do obtain an access token](obtaining-access-tokens.md). - -**Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone.** +To set your own token, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_TOKEN_HERE` with your own. ```yaml -matrix_user_verification_service_uvs_access_token: "YOUR ACCESS TOKEN HERE" +matrix_user_verification_service_uvs_auth_token: "YOUR_TOKEN_HERE" ``` -### (Optional) Custom Auth Token +If a Jitsi instance is also managed by this playbook and [`matrix` authentication](configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix) is enabled there, this collection will automatically configure Jitsi to use the configured auth token. -It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header "Authorization: Bearer TOKEN" +### Disable Authorization (optional) -By default, the token will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`. - -To set your own Token, simply put the following in your host_vars. - -```yaml -matrix_user_verification_service_uvs_auth_token: "TOKEN" -``` - -In case Jitsi is also managed by this playbook and 'matrix' authentication in Jitsi is enabled, this collection will automatically configure Jitsi to use the configured auth token. - -### (Optional) Disable Auth -Authorization is enabled by default. To disable set +Authorization is enabled by default. To disable it, add the following configuration to your `vars.yml` file: ```yaml matrix_user_verification_service_uvs_require_auth: false ``` -in your host_vars. +### Federation (optional) -### (Optional) Federation - -In theory (however currently untested), UVS can handle federation. Simply set: +In theory (however currently untested), UVS can handle federation. To enable it, add the following configuration to your `vars.yml` file: ```yaml matrix_user_verification_service_uvs_pin_openid_verify_server_name: false ``` -in your host_vars. +This will instruct UVS to verify the OpenID token against any domain given in a request. Homeserver discovery is done via `.well-known/matrix/server` of the given domain. -This will instruct UVS to verify the OpenID token against any domain given in a request. Homeserver discovery is done via '.well-known/matrix/server' of the given domain. +### Extending the configuration + +There are some additional things you may wish to configure about the component. + +Take a look at: + +- `roles/custom/matrix-user-verification-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file ## Installing -After these variables have been set, run the [installation](installing.md) command to restart UVS: +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -``` -ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-user-verification-service,start + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start ``` -## Logging +The shortcut commands with the [`just` program](just.md) are also available: `just install-service matrix-user-verification-service` or `just setup-all` -The configuration variable `UVS_LOG_LEVEL` can be set to: -- warning -- info -- debug +`just install-service matrix-user-verification-service` 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. + +## 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-user-verification-service`. + +### Increase logging verbosity + +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 +# See choices here: https://github.com/winstonjs/winston#logging-levels +matrix_user_verification_service_uvs_log_level: debug +``` + +### TLS Certificate Checking -## TLS Certificate Checking If the Matrix Homeserver does not provide a valid TLS certificate, UVS will fail with the following error message: > message: 'No response received: [object Object]', -This also applies to self-signed and let's encrypt staging certificates. +This also applies to self-signed and Let's Encrypt staging certificates. To disable certificate validation altogether (INSECURE! Not suitable for production use!) set: `NODE_TLS_REJECT_UNAUTHORIZED=0` diff --git a/docs/configuring-playbook.md b/docs/configuring-playbook.md index 72eef2fb0..3e8fb8861 100644 --- a/docs/configuring-playbook.md +++ b/docs/configuring-playbook.md @@ -1,6 +1,22 @@ + + # Configuring the playbook -⚡️[Quick start](quick-start.md) | [Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > Configuring the playbook > [Installing](installing.md) +[Prerequisites](prerequisites.md) > [Configuring DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > Configuring the playbook > [Installing](installing.md) If you've configured your DNS records and retrieved the playbook's source code to your computer, you can start configuring the playbook. To do so, follow these steps inside the playbook directory: @@ -8,13 +24,13 @@ If you've configured your DNS records and retrieved the playbook's source code t 2. copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`) -3. edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file. +3. edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files (after importing external roles with `just update` into `roles/galaxy`) and see if there's something you'd like to copy over and override in your `vars.yml` configuration file. 4. copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`) 5. edit the inventory hosts file (`inventory/hosts`) to your liking -6. (optional, advanced) you may wish to keep your `inventory` directory under version control with [git](https://git-scm.com/) or any other version-control system. +6. (optional, advanced) you may wish to keep your `inventory` directory under version control with [git](https://git-scm.com/) or any other version-control system. The `inventory` directory path is ignored via `.gitignore`, so it won't be part of the playbook repository. You can safely create a new git repository inside that directory with `git init`, etc. 7. (optional, advanced) to run Ansible against multiple servers with different `sudo` credentials, you can copy the sample inventory hosts yaml file for each of your hosts: (`cp examples/host.yml inventory/my_host1.yml` …) and use the [`ansible-all-hosts.sh`](../bin/ansible-all-hosts.sh) script [in the installation step](installing.md). @@ -24,9 +40,10 @@ For a more custom setup, see the [Other configuration options](#other-configurat [▶️](installing.md) When you're done with all the configuration you'd like to do, continue with [Installing](installing.md). - ## Other configuration options +**Note**: some of the roles like one for integrating Etherpad or Jitsi are managed by their own repositories, and the configuration files for them cannot be found locally (in `roles/galaxy`) until those roles are fetched from the upstream projects. Check [requirements.yml](../requirements.yml) for the URLs of those roles. + ### Core service adjustments - Homeserver configuration: @@ -34,12 +51,14 @@ For a more custom setup, see the [Other configuration options](#other-configurat - [Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation + - [Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation + - [Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation - Server components: - [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) - - [Adjusting TURN server configuration](configuring-playbook-turn.md) (advanced) + - [Configuring a TURN server](configuring-playbook-turn.md) (advanced) - [Configuring the Traefik reverse-proxy](configuring-playbook-traefik.md) (advanced) @@ -58,6 +77,8 @@ For a more custom setup, see the [Other configuration options](#other-configurat - [Controlling Matrix federation](configuring-playbook-federation.md) + - [Configuring IPv6](./configuring-ipv6.md) + ### Clients Web clients for Matrix that you can host on your own domains. @@ -70,6 +91,9 @@ Web clients for Matrix that you can host on your own domains. - [Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks +- [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/) + + ### Authentication and user-related Extend and modify how users are authenticated on your homeserver. @@ -98,16 +122,22 @@ Extend and modify how users are authenticated on your homeserver. Use alternative file storage to the default `media_store` folder. -- [Storing Matrix media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md) +- [Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md) - [Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md) -- [Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md) +- [Storing Synapse media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md) + +- [Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) ### Bridging other networks Bridges can be used to connect your Matrix installation with third-party communication networks. +- [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges + +- [Setting up Mautrix Bluesky bridging](configuring-playbook-bridge-mautrix-bluesky.md) + - [Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md) - [Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md) @@ -140,7 +170,7 @@ Bridges can be used to connect your Matrix installation with third-party communi - [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). - [Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md) @@ -156,8 +186,6 @@ Bridges can be used to connect your Matrix installation with third-party communi - [Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) -- [Setting up Email2Matrix](configuring-playbook-email2matrix.md) - - [Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md) - [Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md) @@ -166,28 +194,27 @@ Bridges can be used to connect your Matrix installation with third-party communi - [Setting up WeChat bridging](configuring-playbook-bridge-wechat.md) - ### Bots Bots provide various additional functionality to your installation. -- [Setting up baibot](configuring-playbook-bot-baibot.md) - a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md)) +- [Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md)) -- [Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) - a bot to remind you about stuff +- [Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff -- [Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) - a bot to create and manage registration tokens to invite users +- [Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users -- [Setting up maubot](configuring-playbook-bot-maubot.md) - a plugin-based Matrix bot system +- [Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system -- [Setting up Honoroit](configuring-playbook-bot-honoroit.md) - a helpdesk bot +- [Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot -- [Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) - a moderation tool/bot +- [Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot -- [Setting up Draupnir](configuring-playbook-bot-draupnir.md) - a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer +- [Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer -- [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 +- [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 -- [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 +- [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 ### Administration @@ -197,16 +224,14 @@ Services that help you in administrating and monitoring your Matrix installation - [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) -- [Enabling metrics and graphs for NginX logs](configuring-playbook-prometheus-nginxlog.md) - - [Setting up the rageshake bug report server](configuring-playbook-rageshake.md) - [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md) - Backups: - - [Setting up BorgBackup](configuring-playbook-backup-borg.md) - a full Matrix server backup solution, including the Postgres database + - [Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database - - [Setting up postgres backup](configuring-playbook-postgres-backup.md) - a Postgres-database backup solution (note: does not include other files) + - [Setting up Postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files) ### Other specialized services @@ -228,7 +253,7 @@ Various services that don't fit any other categories. - [Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md) -- [Setting up Cactus Comments](configuring-playbook-cactus-comments.md) - a federated comment system built on Matrix +- [Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix - [Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced) @@ -242,18 +267,18 @@ 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 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)) - [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)) -- [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)) +- [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)) -- [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)) +- [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)) + +- [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)) - [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)) -- [Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (deprecated in favor of the Google Chat bridge with [mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md)) - - [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)) - [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)) diff --git a/docs/configuring-well-known.md b/docs/configuring-well-known.md index 0dab9c6c6..ec5ad90ce 100644 --- a/docs/configuring-well-known.md +++ b/docs/configuring-well-known.md @@ -1,3 +1,16 @@ + + # Configuring Service Discovery via .well-known This documentation page explains how to configure Service discovery via `/.well-known/` files. Service discovery is a way for the Matrix network to discover where a Matrix server is. @@ -6,17 +19,17 @@ This documentation page explains how to configure Service discovery via `/.well- There are 3 types of well-known service discovery mechanism that Matrix makes use of: -- (important) **Federation Server discovery** (`/.well-known/matrix/server`) -- assists other servers in the Matrix network with finding your server. With the default playbook configuration specified on the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), this is necessary for federation to work. Without a proper configuration, your server will effectively not be part of the Matrix network. +- (important) **Federation Server discovery** (`/.well-known/matrix/server`) — assists other servers in the Matrix network with finding your server. With the default playbook configuration specified on the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), this is necessary for federation to work. Without a proper configuration, your server will effectively not be part of the Matrix network. -- (less important) **Client Server discovery** (`/.well-known/matrix/client`) -- assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. +- (less important) **Client Server discovery** (`/.well-known/matrix/client`) — assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. -- (optional) **Support service discovery** (`/.well-known/matrix/support`) -- returns server admin contact and support page of the domain. +- (optional) **Support service discovery** (`/.well-known/matrix/support`) — returns server admin contact and support page of the domain. ### Federation Server Discovery All services created by this playbook are meant to be installed on their own server (such as `matrix.example.com`), instead of the base domain (`example.com`). -As [per the Server-Server specification](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), to use a short Matrix user identifier like `@user:example.com` while hosting services on a subdomain such as `matrix.example.com`, the Matrix network needs to be instructed of [server delegation](howto-server-delegation.md) / redirection. +As [per the Server-Server specification](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), in order to use a short Matrix user ID like `@alice:example.com` instead of `@alice:matrix.example.com` while hosting services on a subdomain such as `matrix.example.com`, the Matrix network needs to be instructed of [server delegation](howto-server-delegation.md) / redirection. For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file. @@ -24,7 +37,7 @@ If you set up the DNS SRV record for server delegation instead, take a look at t ### Client Server Discovery -Client Server Service discovery lets various client programs which support it, to receive a full user ID (e.g. `@username:example.com`) and determine where the Matrix server is automatically (e.g. `https://matrix.example.com`). +Client Server Service discovery lets various client programs which support it, to receive a full user ID (e.g. `@alice:example.com`) and determine where the Matrix server is automatically (e.g. `https://matrix.example.com`). This lets you (and your users) easily connect to your Matrix server without having to customize connection URLs. When using client programs that support it, you won't need to point them to `https://matrix.example.com` in Custom Server options manually anymore. The connection URL would be discovered automatically from your full username. @@ -34,7 +47,7 @@ As [per the Client-Server specification](https://matrix.org/docs/spec/client_ser However, this playbook installs your Matrix server on another domain (e.g. `matrix.example.com`) and not on the base domain (e.g. `example.com`), so it takes a little extra manual effort to set up the file. -### (Optional) Support Service Discovery +### Support Service Discovery (optional) [MSC 1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929), which was added to [Matrix Specification version v1.10](https://spec.matrix.org/v1.10/client-server-api/#getwell-knownmatrixsupport), specifies a way to add contact details of admins, as well as a link to a support page for users who are having issues with the service. Automated services may also index this information and use it for abuse reports, etc. @@ -67,7 +80,7 @@ To implement the service discovery mechanisms, your base domain's server (e.g. ` If you don't have a server for your base domain at all, you can use the Matrix server for this. If you don't need the base domain (e.g. `example.com`) for anything else (hosting a website, etc.), you can point it to the Matrix server's IP address and tell the playbook to configure it. -**This is the easiest way to set up well-known serving** -- letting the playbook handle the whole base domain for you (including SSL certificates, etc.) and take care to serve the appropriate well-known files automatically. +**This is the easiest way to set up well-known serving** — letting the playbook handle the whole base domain for you (including SSL certificates, etc.) and take care to serve the appropriate well-known files automatically. If you decide to go this route, you don't need to read ahead in this document. Instead, go to [Serving the base domain](configuring-playbook-base-domain-serving.md) to learn how the playbook can help you set it up. @@ -97,7 +110,7 @@ This is relatively easy to do and possibly your only choice if you can only host This option is less fragile and generally better. -On the base domain's server (e.g. `example.com`), you can set up reverse-proxying, 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 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. @@ -177,7 +190,6 @@ Make sure to: - **replace `example.com`** in the server configuration with your actual domain name - and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be - ## Confirming it works 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: @@ -186,4 +198,4 @@ No matter which method you've used to set up the well-known files, if you've don - `https://example.com/.well-known/matrix/client` - `https://example.com/.well-known/matrix/support` -You can also check if everything is configured correctly, by [checking if services work](maintenance-checking-services.md). +You can also check if everything is configured correctly, by [checking if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work). diff --git a/docs/container-images.md b/docs/container-images.md index 77d83eeb3..844cce810 100644 --- a/docs/container-images.md +++ b/docs/container-images.md @@ -1,16 +1,33 @@ + + # Container images used by the playbook This page summarizes the container ([Docker](https://www.docker.com/)) images used by the playbook when setting up your server. We try to stick to official images (provided by their respective projects) as much as possible. - ## Homeserver | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | | [Synapse](configuring-playbook-synapse.md) | [element-hq/synapse](https://ghcr.io/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | | [Conduit](configuring-playbook-conduit.md) | [matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | +| [conduwuit](configuring-playbook-conduwuit.md) | [girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | | [Dendrite](configuring-playbook-dendrite.md) | [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | ## Clients @@ -31,9 +48,9 @@ Services that run on the server to make the various parts of your installation w | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | | [PostgreSQL](configuring-playbook-external-postgres.md) | [postgres](https://hub.docker.com/_/postgres/) | ✅ | Database for Synapse. [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) is also possible. | -| [Coturn](configuring-playbook-turn.md) | [coturn/coturn](https://hub.docker.com/r/coturn/coturn/) | ✅ | STUN/TURN server for WebRTC audio/video calls | -| [Traefik](configuring-playbook-traefik.md) | [Traefik](https://hub.docker.com/_/traefik/) | ✅ | Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](configuring-playbook-own-webserver.md) | -| [Let's Encrypt](configuring-playbook-ssl-certificates.md) | [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) | ✅ | The [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/) | +| [coturn](configuring-playbook-turn.md) | [coturn/coturn](https://hub.docker.com/r/coturn/coturn/) | ✅ | STUN/TURN server for WebRTC audio/video calls | +| [Traefik](configuring-playbook-traefik.md) | [Traefik](https://hub.docker.com/_/traefik/) | ✅ | Web server, listening on ports 80, 443 and 8448 — standing in front of all the other services. [Using your own webserver](configuring-playbook-own-webserver.md) is also possible. | +| [Let's Encrypt](configuring-playbook-ssl-certificates.md) | [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) | ✅ | [Certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/) | | [Exim](configuring-playbook-email.md) | [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | | [ma1sd](configuring-playbook-ma1sd.md) | [ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/) | ❌ | Matrix Identity Server | | [ddclient](configuring-playbook-dynamic-dns.md) | [linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient) | ❌ | Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider | @@ -47,10 +64,10 @@ Extend and modify how users are authenticated on your homeserver. | [matrix-synapse-rest-auth](configuring-playbook-rest-auth.md) | (N/A) | ❌ | REST authentication password provider module | | [matrix-synapse-shared-secret-auth](configuring-playbook-shared-secret-auth.md) | (N/A) | ❌ | Password provider module | | [matrix-synapse-ldap3](configuring-playbook-ldap-auth.md) (advanced) | (N/A) | ❌ | LDAP Auth password provider module | -| [matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) | [activism.international/matrix_ldap_registration_proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/container_registry) | ❌ | A proxy that handles Matrix registration requests and forwards them to LDAP. | -| [matrix-registration](configuring-playbook-matrix-registration.md) | [zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/) | ❌ | A simple python application to have a token based Matrix registration | -| [Matrix User Verification Service](configuring-playbook-user-verification-service.md) (UVS) | [matrixdotorg/matrix-user-verification-service](https://hub.docker.com/r/atrixdotorg/matrix-user-verification-service) | ❌ | Service to verify details of a user based on an Open ID token | -| [synapse-simple-antispam](configuring-playbook-synapse-simple-antispam.md) (advanced) | (N/A) | ❌ | A spam checker module | +| [matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) | [activism.international/matrix_ldap_registration_proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/container_registry) | ❌ | Proxy that handles Matrix registration requests and forwards them to LDAP | +| [matrix-registration](configuring-playbook-matrix-registration.md) | [zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/) | ❌ | Simple python application to have a token based Matrix registration | +| [Matrix User Verification Service](configuring-playbook-user-verification-service.md) | [matrixdotorg/matrix-user-verification-service](https://hub.docker.com/r/atrixdotorg/matrix-user-verification-service) | ❌ | Service to verify details of a user based on an Open ID token | +| [synapse-simple-antispam](configuring-playbook-synapse-simple-antispam.md) (advanced) | (N/A) | ❌ | Spam checker module | ## File Storage @@ -60,7 +77,7 @@ Use alternative file storage to the default `media_store` folder. | ------- | --------------- | -------- | ----------- | | [Goofys](configuring-playbook-s3-goofys.md) | [ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/) | ❌ | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | | [synapse-s3-storage-provider](configuring-playbook-s3.md) | (N/A) | ❌ | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | -| [matrix-media-repo](configuring-playbook-matrix-media-repo.md) | [t2bot/matrix-media-repo](https://ghcr.io/t2bot/matrix-media-repo) | ❌ | matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. | +| [matrix-media-repo](configuring-playbook-matrix-media-repo.md) | [t2bot/matrix-media-repo](https://ghcr.io/t2bot/matrix-media-repo) | ❌ | Highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. | # Bridges @@ -68,6 +85,7 @@ Bridges can be used to connect your Matrix installation with third-party communi | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | +| [mautrix-bluesky](configuring-playbook-bridge-mautrix-bluesky.md) | [mautrix/bluesky](https://mau.dev/mautrix/bluesky/container_registry) | ❌ | Bridge to [Bluesky](https://bsky.social/about) | | [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) | [mautrix/discord](https://mau.dev/mautrix/discord/container_registry) | ❌ | Bridge to [Discord](https://discord.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/) | @@ -94,7 +112,6 @@ Bridges can be used to connect your Matrix installation with third-party communi | [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) | [mx-puppet/discord/mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/container_registry) | ❌ | Bridge to [Discord](https://discordapp.com/) | | [mx-puppet-groupme](configuring-playbook-bridge-mx-puppet-groupme.md) | [xangelix/mx-puppet-groupme](https://hub.docker.com/r/xangelix/mx-puppet-groupme) | ❌ | Bridge to [GroupMe](https://groupme.com/) | | [mx-puppet-steam](configuring-playbook-bridge-mx-puppet-steam.md) | [icewind1991/mx-puppet-steam](https://hub.docker.com/r/icewind1991/mx-puppet-steam) | ❌ | Bridge to [Steam](https://steamapp.com/) | -| [Email2Matrix](configuring-playbook-email2matrix.md) | [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) | ❌ | Bridge for relaying emails to Matrix rooms | | [Postmoogle](configuring-playbook-bridge-postmoogle.md) | [etke.cc/postmoogle](https://github.com/etkecc/postmoogle/container_registry) | ❌ | Email to Matrix bridge | ## Bots @@ -103,13 +120,13 @@ Bots provide various additional functionality to your installation. | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | -| [baibot](configuring-playbook-bot-baibot.md) | [etke.cc/baibot](https://ghcr.io/etkecc/baibot) | ❌ | A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you | +| [baibot](configuring-playbook-bot-baibot.md) | [etke.cc/baibot](https://ghcr.io/etkecc/baibot) | ❌ | Bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you | | [matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) | [anoa/matrix-reminder-bot](https://hub.docker.com/r/anoa/matrix-reminder-bot) | ❌ | Bot for scheduling one-off & recurring reminders and alarms | | [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) | [moanos/matrix-registration-bot](https://hub.docker.com/r/moanos/matrix-registration-bot/) | ❌ | Bot for invitations by creating and managing registration tokens | -| [maubot](configuring-playbook-bot-maubot.md) | [dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry) | ❌ | A plugin-based Matrix bot system | -| [Honoroit](configuring-playbook-bot-honoroit.md) | [etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry) | ❌ | A helpdesk bot | -| [Mjolnir](configuring-playbook-bot-mjolnir.md) | [matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir) | ❌ | A moderation tool for Matrix | -| [Draupnir](configuring-playbook-bot-draupnir.md) | [gnuxie/draupnir](https://hub.docker.com/r/gnuxie/draupnir) | ❌ | A moderation tool for Matrix (Fork of Mjolnir) | +| [maubot](configuring-playbook-bot-maubot.md) | [dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry) | ❌ | Plugin-based Matrix bot system | +| [Honoroit](configuring-playbook-bot-honoroit.md) | [etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry) | ❌ | Helpdesk bot | +| [Mjolnir](configuring-playbook-bot-mjolnir.md) | [matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir) | ❌ | Moderation tool for Matrix | +| [Draupnir](configuring-playbook-bot-draupnir.md) | [gnuxie/draupnir](https://hub.docker.com/r/gnuxie/draupnir) | ❌ | Moderation tool for Matrix (Fork of Mjolnir) | | [Buscarron](configuring-playbook-bot-buscarron.md) | [etke.cc/buscarron](https://ghcr.io/etkecc/buscarron) | ❌ | Web forms (HTTP POST) to Matrix | ## Administration @@ -120,12 +137,13 @@ Services that help you in administrating and monitoring your Matrix installation | ------- | --------------- | -------- | ----------- | | [matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md) | [metio/matrix-alertmanager-receiver](https://hub.docker.com/r/metio/matrix-alertmanager-receiver) | ❌ | Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client | | [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) | [element-hq/matrix-authentication-service](https://ghcr.io/element-hq/matrix-authentication-service) | ❌ | OAuth 2.0 and OpenID Provider server | -| [synapse-admin](configuring-playbook-synapse-admin.md) | [etke.cc/synapse-admin](https://ghcr.io/etkecc/synapse-admin) | ❌ | A web UI tool for administrating users and rooms on your Matrix server | +| [synapse-admin](configuring-playbook-synapse-admin.md) | [etke.cc/synapse-admin](https://ghcr.io/etkecc/synapse-admin) | ❌ | Web UI tool for administrating users and rooms on your Matrix server | | [Metrics and Graphs](configuring-playbook-prometheus-grafana.md) | [prom/prometheus](https://hub.docker.com/r/prom/prometheus/) | ❌ | [Prometheus](https://prometheus.io) time-series database server | | [Metrics and Graphs](configuring-playbook-prometheus-grafana.md) | [prom/node-exporter](https://hub.docker.com/r/prom/node-exporter/) | ❌ | Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter | | [Metrics and Graphs](configuring-playbook-prometheus-grafana.md) | [grafana/grafana](https://hub.docker.com/r/grafana/grafana/) | ❌ | Graphing tool that works well with the above two images. Our playbook also adds two dashboards for [Synapse](https://github.com/element-hq/synapse/tree/master/contrib/grafana) and [Node Exporter](https://github.com/rfrail3/grafana-dashboards) | -| [Metrics and Graphs](configuring-playbook-prometheus-nginxlog.md) | [martin-helmich/prometheus-nginxlog-exporter/exporter](https://ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter) | ❌ | Addon for Prometheus that gathers access logs from various nginx reverse-proxies | +| [Metrics and Graphs](configuring-playbook-prometheus-grafana.md#enable-metrics-and-graphs-for-nginx-logs-optional) | [martin-helmich/prometheus-nginxlog-exporter/exporter](https://ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter) | ❌ | Addon for Prometheus that gathers access logs from various nginx reverse-proxies | | [Borg](configuring-playbook-backup-borg.md) | (N/A) | ❌ | Backups | +| [postgres-backup-local](configuring-playbook-postgres-backup.md) | [prodrigestivill/postgres-backup-local](https://hub.docker.com/r/prodrigestivill/postgres-backup-local) | ❌ | Create automatic database backups | | [rageshake](configuring-playbook-rageshake.md) | [matrix-org/rageshake](https://ghcr.io/matrix-org/rageshake) | ❌ | Bug report server | | [synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md) | Self-building | ❌ | Export the usage statistics of a Synapse homeserver to be scraped by Prometheus. | @@ -136,17 +154,17 @@ Various services that don't fit any other categories. | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | | [sliding-sync](configuring-playbook-sliding-sync-proxy.md) | [matrix-org/sliding-sync](https://ghcr.io/matrix-org/sliding-sync) | ❌ | Sliding Sync support for clients which require it (like old Element X versions, before it got switched to Simplified Sliding Sync) | -| [synapse_auto_accept_invite](configuring-playbook-synapse-auto-accept-invite.md) | (N/A) | ❌ | A Synapse module to automatically accept invites. | -| [synapse_auto_compressor](configuring-playbook-synapse-auto-compressor.md) | [etke.cc/rust-synapse-compress-state](https://gitlab.com/etke.cc/rust-synapse-compress-state/container_registry) | ❌ | A cli tool that automatically compresses `state_groups` database table in background. | +| [synapse_auto_accept_invite](configuring-playbook-synapse-auto-accept-invite.md) | (N/A) | ❌ | Synapse module to automatically accept invites | +| [synapse_auto_compressor](configuring-playbook-synapse-auto-compressor.md) | [etke.cc/rust-synapse-compress-state](https://gitlab.com/etke.cc/rust-synapse-compress-state/container_registry) | ❌ | Cli tool that automatically compresses `state_groups` database table in background | | [Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced) | [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/) | ❌ | Reconciliator and gateway for a managed Matrix server | -| [Etherpad](configuring-playbook-etherpad.md) | [etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/) | ❌ | An open source collaborative text editor | -| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/web](https://hub.docker.com/r/jitsi/web) | ❌ | the [Jitsi](https://jitsi.org/) web UI | -| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo) | ❌ | the [Jitsi](https://jitsi.org/) Focus component | -| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/prosody](https://hub.docker.com/r/jitsi/prosody) | ❌ | the [Jitsi](https://jitsi.org/) Prosody XMPP server component | -| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/jvb](https://hub.docker.com/r/jitsi/jvb) | ❌ | the [Jitsi](https://jitsi.org/) Video Bridge component | -| [Cactus Comments](configuring-playbook-cactus-comments.md) | [cactuscomments/cactus-appservice](https://hub.docker.com/r/cactuscomments/cactus-appservice/) | ❌ | A federated comment system built on Matrix | -| [Cactus Comments](configuring-playbook-cactus-comments.md) | [joseluisq/static-web-server](https://hub.docker.com/r/joseluisq/static-web-server) | ❌ | A federated comment system built on Matrix | -| [Pantalaimon](configuring-playbook-pantalaimon.md) | [matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon) | ❌ | An E2EE aware proxy daemon | +| [Etherpad](configuring-playbook-etherpad.md) | [etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/) | ❌ | Open source collaborative text editor | +| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/web](https://hub.docker.com/r/jitsi/web) | ❌ | [Jitsi](https://jitsi.org/) web UI | +| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo) | ❌ | [Jitsi](https://jitsi.org/) Focus component | +| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/prosody](https://hub.docker.com/r/jitsi/prosody) | ❌ | [Jitsi](https://jitsi.org/) Prosody XMPP server component | +| [Jitsi](configuring-playbook-jitsi.md) | [jitsi/jvb](https://hub.docker.com/r/jitsi/jvb) | ❌ | [Jitsi](https://jitsi.org/) Video Bridge component | +| [Cactus Comments](configuring-playbook-cactus-comments.md) | [cactuscomments/cactus-appservice](https://hub.docker.com/r/cactuscomments/cactus-appservice/) | ❌ | Federated comment system built on Matrix | +| [Cactus Comments](configuring-playbook-cactus-comments.md) | [joseluisq/static-web-server](https://hub.docker.com/r/joseluisq/static-web-server) | ❌ | Federated comment system built on Matrix | +| [Pantalaimon](configuring-playbook-pantalaimon.md) | [matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon) | ❌ | E2EE aware proxy daemon | | [Sygnal](configuring-playbook-sygnal.md) | [matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/) | ❌ | Reference Push Gateway for Matrix | | [ntfy](configuring-playbook-ntfy.md) | [binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/) | ❌ | Self-hosted, UnifiedPush-compatible push notifications server | @@ -157,9 +175,9 @@ The list of the deprecated or unmaintained services is available [here](configur | Service | Container image | Default? | Description | | ------- | --------------- | -------- | ----------- | | [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md) | [turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks) | ❌ | Bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.) | -| [Dimension](configuring-playbook-dimension.md) | [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) | ❌ | An open source integration manager for Matrix clients | -| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | A multi functional bot written in Go | +| [Dimension](configuring-playbook-dimension.md) | [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) | ❌ | Open source integration manager for Matrix clients | +| [Email2Matrix](configuring-playbook-email2matrix.md) | [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) | ❌ | Bridge for relaying emails to Matrix rooms | +| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | Multi functional bot written in Go | | [matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md) | [matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot) | ❌ | Accessing ChatGPT via your favourite Matrix client | | [mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md) | [mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry) | ❌ | Bridge to [Facebook](https://facebook.com/) | -| [mautrix-hangouts](configuring-playbook-bridge-mautrix-hangouts.md) | [mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry) | ❌ | Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) | | [mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md) | [mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry) | ❌ | Bridge to [Instagram](https://instagram.com/) | diff --git a/docs/faq.md b/docs/faq.md index 4a7e459a5..9f1ddc6e3 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,3 +1,15 @@ + + # Frequently Asked Questions This documentation page tries to answer various Frequently Asked Questions about all things [Matrix](https://matrix.org/), with a focus on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)). @@ -6,8 +18,7 @@ This FAQ page does not intend to replace the [matrix.org FAQ](https://matrix.org We've only started this FAQ recently, so it's still somewhat empty. -Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to [Prerequisites](prerequisites.md) to get guided into installing Matrix. - +Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to installation. To get started, see [below](#how-do-i-run-the-installation) about our installation guides. ## Introductory @@ -27,13 +38,13 @@ In the world of the Matrix chat protocol, there are various client programs. The Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`). -If someone else is hosting your Matrix server (you being `@user:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android. +If someone else is hosting your Matrix server (you being `@alice:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android. -If you'd like to host your own server (you being `@user:example.com`), you'd need to set up a Matrix server program, like Synapse. +If you'd like to host your own server (you being `@alice:example.com`), you'd need to set up a Matrix server program, like Synapse. In short: -- Matrix is the protocol - a set of rules about how the chat network operates +- Matrix is the protocol — a set of rules about how the chat network operates - Element is a client program you can use to participate on the Matrix chat network via some server (yours or someone else's). There are also [many other client programs](https://matrix.org/clients/). - Synapse is a server program you can use to host your very own Matrix server. @@ -49,15 +60,15 @@ Besides setting up your own bridges (preferable), you can also use some [public ### How do I get started with Matrix? -One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people - one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`). +One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people — one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`). There are 3 ways to get into Matrix, depending on your technical ability and needs: -- **using the existing default server** - the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting. +- **using the existing default server** — the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting. -- **using some other server** - instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login. +- **using some other server** — instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login. -- **using your own server** - running your own server puts you in ultimate control of your data. It also lets you have your own user identifiers (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server). +- **using your own server** — running your own server puts you in ultimate control of your data. It also lets you have your own user IDs (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server). ### How do I set up my own Matrix server? @@ -66,7 +77,8 @@ Normally, you'd first choose the [Matrix](https://matrix.org/) server software y There are [many guides about installing Synapse](https://matrix.org/docs/guides/#installing-synapse). Using this Ansible playbook is just one way of doing it. Naturally, we're biased, so our usual recommendation is to go with this [Ansible](https://www.ansible.com/) playbook, instead of installing Synapse (and many many other things around it) manually. -To get started with the playbook, start at the [Prerequisites](prerequisites.md) page. + +To get started with the playbook, check out the [Quick start](quick-start.md) or full installation guide (starting at the [Prerequisites](prerequisites.md) page). ### What is Ansible? How does it work? @@ -98,7 +110,7 @@ Reading the documentation of this Ansible playbook, you may also be thinking: > I don't know what [Ansible](https://www.ansible.com/) is. I don't know what [Docker](https://www.docker.com/) is. This looks more complicated. -.. so you may be leaning toward [installing Synapse manually](https://github.com/element-hq/synapse/blob/master/INSTALL.md). +… so you may be leaning toward [installing Synapse manually](https://github.com/element-hq/synapse/blob/master/INSTALL.md). The problem with a manual installation is: @@ -117,15 +129,19 @@ All services run in Docker containers (most being officially provided by each co Reasons are similar to the reasons for not installing manually. -Besides Synapse, you'd need other things - a Postgres database, likely the [Element](https://element.io) client, etc., etc. +Besides Synapse, you'd need other things — a Postgres database, likely the [Element](https://element.io) client, etc., etc. Using the playbook, you get all these components in a way that works well together out of the box. +### Occasionally I see some people are talking about "MDAD". What is it? + +It is the acronym of us: **m**atrix-**d**ocker-**a**nsible-**d**eploy. + ### What's different about this Ansible playbook compared to [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy)? This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but: -- this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** - especially for folks not familiar with Ansible +- this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** — especially for folks not familiar with Ansible - this one installs and hooks together **a lot more Matrix-related services** for you (see above) @@ -193,7 +209,7 @@ The only thing we need on the distro is systemd and Python (we install Docker ou Instead of using [docker-compose](https://docs.docker.com/compose/), we prefer installing systemd services and scheduling those independently. -There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625). +There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625). There is also a demo project ([element-docker-demo](https://github.com/element-hq/element-docker-demo)) by Element. ### Can I run this on a distro without systemd? @@ -225,18 +241,13 @@ Besides the regular Matrix stuff, we also support things like video-conferencing If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container. - ## Configuration ### Why install my server at matrix.example.com and not at the base domain? It's the same with email servers. Your email address is likely `name@company.com`, not `name@mail.company.com`, even though it's `mail.company.com` that is really handling your data for `@company.com` email to work. -Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc. - -We allow `matrix.example.com` to be the Matrix server handling Matrix stuff for `example.com` by [Server Delegation](howto-server-delegation.md). During the installation procedure, we recommend that you set up server delegation using the [.well-known](configuring-well-known.md) method. - -If you'd really like to install Matrix services directly on the base domain, see [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain) +Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc. Therefore, this playbook sets up services on your Matrix server (`matrix.example.com`) by default. ### I don't control anything on the base domain and can't set up delegation to matrix.example.com. What do I do? @@ -248,11 +259,7 @@ If you really can't obtain an HTTPS certificate for your base domain, you can ta ### How do I install on matrix.example.com without involving the base domain? -This Ansible playbook guides you into installing a server for `example.com` (user identifiers are like this: `@user:example.com`), while the server is at `matrix.example.com`. - -We allow `matrix.example.com` to be the Matrix server handling Matrix stuff for `example.com` by [Server Delegation](howto-server-delegation.md). During the installation procedure, we recommend that you set up server delegation using the [.well-known](configuring-well-known.md) method. - -If you're fine with uglier identifiers (`@user:matrix.example.com`, which is the equivalent of having an email address like `bob@mail.company.com`, instead of just `bob@company.com`), you can do that as well using the following configuration in your `vars.yml` file: +Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml # This is what your identifiers are like (e.g. `@bob:matrix.example.com`). @@ -267,20 +274,30 @@ matrix_server_fqn_matrix: "matrix.example.com" # Feel free to use `element.matrix.example.com`, if you'd prefer that. matrix_server_fqn_element: "element.example.com" -# This is where you access Dimension (if enabled via `matrix_dimension_enabled: true`; NOT enabled by default). +# This is where you access Etherpad (if enabled via `etherpad_enabled: true`; NOT enabled by default). # -# Feel free to use `dimension.matrix.example.com`, if you'd prefer that. -matrix_server_fqn_dimension: "dimension.example.com" - -# This is where you access Jitsi (if enabled via `jitsi_enabled: true`; NOT enabled by default). -# -# Feel free to use `jitsi.matrix.example.com`, if you'd prefer that. -matrix_server_fqn_jitsi: "jitsi.example.com" +# Feel free to use `etherpad.matrix.example.com`, if you'd prefer that. +matrix_server_fqn_etherpad: "etherpad.example.com" ``` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: + + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` + +**Notes**: + +- 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. + +- Without setting up [server delegation](howto-server-delegation.md) to `matrix.example.com`, your user IDs will be like `@alice:matrix.example.com`. This is equivalent to having an email address like `bob@mail.company.com`, instead of just `bob@company.com`. + ### I don't use the base domain for anything. How am I supposed to set up Server Delegation for Matrix services? -If you don't use your base domain for anything, then it's hard for you to "serve files over HTTPS" on it -- something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md)). +If you don't use your base domain for anything, then it's hard for you to "serve files over HTTPS" on it — something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md)). Luckily, the playbook can set up your Matrix server (at `matrix.example.com`) to also handle traffic for the base domain (`example.com`). @@ -291,9 +308,6 @@ See [Serving the base domain](configuring-playbook-base-domain-serving.md). You can disable some not-so-important services to save on memory. ```yaml -# An identity server is not a must. -matrix_ma1sd_enabled: false - # Disabling this will prevent email-notifications and other such things from working. exim_relay_enabled: false @@ -366,24 +380,29 @@ Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable a **Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`). - ## Installation ### How do I run the installation? See [Installing](installing.md) to learn how to use Ansible to install Matrix services. -Of course, don't just jump straight to Installing. Rather, start at [Prerequisites](prerequisites.md) and get guided from there (into [setting up DNS](configuring-dns.md), [configuring the playbook](configuring-playbook.md), etc). +However, we recommend you to follow our installation guide, instead of jumping straight to installing. + +There are two guides available: + +- ⚡ **[Quick start](quick-start.md)** (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with "opinionated defaults". + +- **Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](prerequisites.md)** documentation page. ### I installed Synapse some other way. Can I migrate such a setup to the playbook? Yes, you can. -You generally need to do a playbook installation (start at the [Prerequisites](prerequisites.md) page), followed by importing your existing data into it. +You generally need to do a playbook installation. It's recommended to follow the full installation guide (starting at the [Prerequisites](prerequisites.md) page), not the [Quick start](quick-start.md) guide. The full installation guide will tell you when it's time to import your existing data into the newly-prepared server. -This Ansible playbook guides you into installing a server for `example.com` (user identifiers are like this: `@user:example.com`), while the server is at `matrix.example.com`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `example.com`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup - [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain) +This Ansible playbook guides you into installing a server for `example.com` (user IDs are like this: `@alice:example.com`), while the server is at `matrix.example.com`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `example.com`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup — [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain) -After configuring the playbook and installing and **before starting** services (done with `ansible-playbook ... --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md). +After configuring the playbook and installing and **before starting** services (done with `ansible-playbook … --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md). ### I've downloaded Ansible and the playbook on the server. It can't connect using SSH. @@ -393,48 +412,9 @@ It can perform a local connection instead. Just set `ansible_connection=local` a If you're running Ansible from within a container (one of the possibilities we list on our [dedicated Ansible documentation page](ansible.md)), then using `ansible_connection=local` is not possible. +## Maintenance and Troubleshooting -## Troubleshooting - -### I get "Error response from daemon: configured logging driver does not support reading" when I do `docker logs matrix-synapse`. - -See [How can I see the logs?](#how-can-i-see-the-logs). - -### How can I see the logs? - -We utilize [systemd/journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Description) for logging. - -To see logs for Synapse, run `journalctl -fu matrix-synapse.service`. You may wish to see the [manual page for journalctl](https://www.commandlinux.com/man-page/man1/journalctl.1.html). - -Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server. - -Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that. - -We also disable Docker logging, so you can't use `docker logs matrix-*` either. We do this to prevent useless double (or even triple) logging and to avoid having to rotate log files. - -We just simply delegate logging to journald and it takes care of persistence and expiring old data. - -Also see: [How long do systemd/journald logs persist for?](#how-long-do-systemdjournald-logs-persist-for) - -### How long do systemd/journald logs persist for? - -On some distros, the journald logs are just in-memory and not persisted to disk. - -Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`. - -To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this: - -```ini -[Journal] -RuntimeMaxUse=200M -SystemMaxUse=1G -RateLimitInterval=0 -RateLimitBurst=0 -Storage=persistent -``` - - -## Maintenance +💡 Also see this page for generic information about maintaining the services and troubleshooting: [Maintenance and Troubleshooting](maintenance-and-troubleshooting.md) ### Do I need to do anything to keep my Matrix server updated? @@ -444,37 +424,26 @@ See our [documentation page about upgrading services](maintenance-upgrading-serv ### How do I move my existing installation to another (VM) server? -If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server using [our dedicated server migration guide](maintenance-migrating.md). +If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server following [our dedicated server migration guide](maintenance-migrating.md). If your previous installation is done in some other way (not using this Ansible playbook), see [I installed Synapse some other way. Can I migrate such a setup to the playbook?](#i-installed-synapse-some-other-way-can-i-migrate-such-a-setup-to-the-playbook). -### How do I back up the data on my server? - -We haven't documented this properly yet, but the general advice is to: - -- back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) - -- back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql)). - -You can later restore these roughly like this: - -- restore the `/matrix` directory and files on the new server manually -- run the playbook again (see [Installing](installing.md)), but **don't** start services yet (**don't run** `... --tags=start`). This step will fix any file permission mismatches and will also set up additional software (Docker, etc.) and files on the server (systemd service, etc.). -- perform a Postgres database import (see [Importing Postgres](importing-postgres.md)) to restore your database backup -- start services (see [Finalize the installation](installing.md#finalize-the-installation)) - -If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again. - ### What is this `/matrix/postgres/data-auto-upgrade-backup` directory that is taking up so much space? When you [perform a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql), we save the the old data files in `/matrix/postgres/data-auto-upgrade-backup`, just so you could easily restore them should something have gone wrong. After verifying that everything still works after the Postgres upgrade, you can safely delete `/matrix/postgres/data-auto-upgrade-backup` -### How do I debug or force SSL certificate renewal? +### I get "Error response from daemon: configured logging driver does not support reading" when I run `docker logs matrix-synapse`. Why? -SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server. +To prevent double-logging, Docker logging is disabled by explicitly passing `--log-driver=none` to all containers. Due to this, you cannot view logs using `docker logs matrix-*`. -If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`). +See [this section](maintenance-and-troubleshooting.md#how-to-see-the-logs) on the page for maintenance and troubleshooting for more details to see the logs. -If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way. +## Miscellaneous + +### I would like to see this favorite service of mine integrated and become available on my Matrix server. How can I request it? + +You can freely create an issue for feature request on the repository at GitHub [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new/choose). Note this is a community project with no financial backing, and there is not assurance that your request would be eventually picked up by others and the requested feature would become available. The easiest way to get a feature into this project is to just develop it yourself. + +Also, please note that this playbook intends to focus solely on Matrix and Matrix-related services. If your request is not specific to Matrix, you may as well to consider to submit it to the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), maintained by the members behind this matrix-docker-ansible-deploy project. [This document on the interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) describes how to deploy services along with the Matrix services easily. diff --git a/docs/getting-the-playbook.md b/docs/getting-the-playbook.md index 07d5154f5..7f725038b 100644 --- a/docs/getting-the-playbook.md +++ b/docs/getting-the-playbook.md @@ -1,31 +1,34 @@ + + # Getting the playbook -⚡️[Quick start](quick-start.md) | [Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > Getting the playbook > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md) +[Prerequisites](prerequisites.md) > [Configuring DNS settings](configuring-dns.md) > Getting the playbook > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md) This Ansible playbook is meant to be executed on your own computer (not the Matrix server). In special cases (if your computer cannot run Ansible, etc.) you may put the playbook on the server as well. You can retrieve the playbook's source code by: - - [Using git to get the playbook](#using-git-to-get-the-playbook) (recommended) - - [Downloading the playbook as a ZIP archive](#downloading-the-playbook-as-a-zip-archive) (not recommended) - ## Using git to get the playbook We recommend using the [git](https://git-scm.com/) tool to get the playbook's source code, because it lets you easily keep up to date in the future when [Maintaining services](maintenance-upgrading-services.md). Once you've installed git on your computer, you can go to any directory of your choosing and run the following command to retrieve the playbook's source code: -```bash +```sh git clone https://github.com/spantaleev/matrix-docker-ansible-deploy.git ``` This will create a new `matrix-docker-ansible-deploy` directory. You're supposed to execute all other installation commands inside that directory. - ## Downloading the playbook as a ZIP archive Alternatively, you can download the playbook as a ZIP archive. This is not recommended, as it's not easy to keep up to date with future updates. We suggest you [use git](#using-git-to-get-the-playbook) instead. @@ -34,7 +37,6 @@ The latest version is always at the following URL: https://github.com/spantaleev You can extract this archive anywhere. You'll get a directory called `matrix-docker-ansible-deploy-master`. You're supposed to execute all other installation commands inside that directory. - --------------------------------------------- [▶️](configuring-playbook.md) No matter which method you've used to download the playbook, you can proceed by [Configuring the playbook](configuring-playbook.md). diff --git a/docs/howto-server-delegation.md b/docs/howto-server-delegation.md index a4056f397..fb6a26f79 100644 --- a/docs/howto-server-delegation.md +++ b/docs/howto-server-delegation.md @@ -1,3 +1,15 @@ + + # Server Delegation By default, this playbook sets up services on your Matrix server (`matrix.example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection. @@ -11,7 +23,7 @@ Both methods have their place and will continue to do so. You only need to use j For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file. However, that method may have some downsides that are not to your liking. Hence this guide about alternative ways to set up Server Delegation. -**Note**: as an alternative, it is possible to install the server such that it uses only the `matrix.example.com` domain (instead of identifying as the shorter base domain - `example.com`). This should be helpful if you are not in control of anything on the base domain (`example.com`). In this case, you would not need to configure server delegation, but you would need to add other configuration. 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. +**Note**: as an alternative, it is possible to install the server such that it uses only the `matrix.example.com` domain (instead of identifying as the shorter base domain — `example.com`). This should be helpful if you are not in control of anything on the base domain (`example.com`). In this case, you would not need to configure server delegation, but you would need to add other configuration. 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. ## Server Delegation via a well-known file @@ -33,7 +45,6 @@ Server Delegation by means of a `/.well-known/matrix/server` file is the most st Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced) (much more complicated). - ## Server Delegation via a DNS SRV record (advanced) **Note**: doing Server Delegation via a DNS SRV record is a more **advanced** way to do it and is not the default for this playbook. This is usually **much more complicated** to set up, so **we don't recommend it**. If you're not an experienced sysadmin, you'd better stay away from this. @@ -52,7 +63,7 @@ To use DNS SRV record validation, you need to: For more details on how to configure the playbook to work with SRV delegation, take a look at this documentation: [Server Delegation via a DNS SRV record (advanced)](howto-srv-server-delegation.md) -### Obtaining certificates +### Obtain certificates How you can obtain a valid certificate for `example.com` on the `matrix.example.com` server is up to you. @@ -60,7 +71,6 @@ If `example.com` and `matrix.example.com` are hosted on the same machine, you ca If `example.com` and `matrix.example.com` are not hosted on the same machine, you can copy over the certificate files manually. Don't forget that they may get renewed once in a while, so you may also have to transfer them periodically. How often you do that is up to you, as long as the certificate files don't expire. - ### Serving the Federation API with your certificates Regardless of which method for obtaining certificates you've used, once you've managed to get certificates for your base domain onto the `matrix.example.com` machine you can put them to use. diff --git a/docs/howto-srv-server-delegation.md b/docs/howto-srv-server-delegation.md index f4b028b0b..7a13ddab4 100644 --- a/docs/howto-srv-server-delegation.md +++ b/docs/howto-srv-server-delegation.md @@ -1,3 +1,11 @@ + + # Server Delegation via a DNS SRV record (advanced) **Reminder** : unless you are affected by the [Downsides of well-known-based Server Delegation](howto-server-delegation.md#downsides-of-well-known-based-server-delegation), we suggest you **stay on the simple/default path**: [Server Delegation](howto-server-delegation.md) by [configuring well-known files](configuring-well-known.md) at the base domain. @@ -14,11 +22,11 @@ This means that this is **limited to the list of DNS providers supported by Trae The up-to-date list can be accessed on [traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers) -## The changes +## Adjusting the playbook configuration **Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels: -- if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md) or [Dendrite](./configuring-playbook-dendrite.md)) +- if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md) or [Dendrite](./configuring-playbook-dendrite.md)) - if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached Also, all instructions below are from an older version of the playbook and may not work anymore. @@ -64,7 +72,6 @@ traefik_configuration_extension_yaml: | acme: # To use a staging endpoint for testing purposes, uncomment the line below. # caServer: https://acme-staging-v02.api.letsencrypt.org/directory - email: {{ traefik_config_certificatesResolvers_acme_email | to_json }} dnsChallenge: provider: cloudflare resolvers: @@ -83,17 +90,17 @@ traefik_environment_variables_additional_variables: | traefik_certResolver_primary: dns ``` -## Adjust Coturn's configuration +## Adjust coturn's configuration -The last step is to alter the generated Coturn configuration. +The last step is to alter the generated coturn configuration. -By default, Coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent Coturn from starting. +By default, coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent coturn from starting. -We also need to indicate to Coturn where the wildcard certificate is. +We also need to indicate to coturn where the wildcard certificate is. -**⚠️ WARNING ⚠️** : On first start of the services, Coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the Coturn service (`just start-group coturn`). +⚠️ **Warning** : On first start of the services, coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the coturn service (`just start-group coturn`). -This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the Coturn service is setup to restart periodically. +This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the coturn service is setup to restart periodically. ```yaml # Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things @@ -124,7 +131,6 @@ matrix_coturn_container_additional_volumes: | ```yaml # Choosing the reverse proxy implementation matrix_playbook_reverse_proxy_type: playbook-managed-traefik -traefik_config_certificatesResolvers_acme_email: redacted@example.com # To serve the federation from any domain, as long as the path matches matrix_synapse_container_labels_public_federation_api_traefik_rule: PathPrefix(`/_matrix/federation`) @@ -141,7 +147,6 @@ traefik_configuration_extension_yaml: | acme: # To use a staging endpoint for testing purposes, uncomment the line below. # caServer: https://acme-staging-v02.api.letsencrypt.org/directory - email: {{ traefik_config_certificatesResolvers_acme_email | to_json }} dnsChallenge: provider: cloudflare resolvers: @@ -159,7 +164,7 @@ traefik_environment_variables_additional_variables: | CF_DNS_API_TOKEN=redacted LEGO_DISABLE_CNAME_SUPPORT=true -# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart Coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things +# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things matrix_coturn_systemd_required_services_list: ['docker.service'] # This changes the path of the loaded certificate, while maintaining the original functionality, we're now loading the wildcard certificate. diff --git a/docs/importing-postgres.md b/docs/importing-postgres.md index 762900c64..a27c7d6d5 100644 --- a/docs/importing-postgres.md +++ b/docs/importing-postgres.md @@ -1,8 +1,19 @@ + + # Importing an existing Postgres database from another installation (optional) -Run this if you'd like to import your database from a previous installation. -(don't forget to import your Synapse `media_store` files as well - see [the importing-synape-media-store guide](importing-synapse-media-store.md)). +You can manually import your database from a previous default installation of Synapse. +**Notes**: +- Don't forget to import your Synapse `media_store` files as well — see [the importing-synapse-media-store guide](importing-synapse-media-store.md) for more details. +- If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server following [our dedicated server migration guide](maintenance-migrating.md). ## Prerequisites @@ -10,11 +21,10 @@ For this to work, **the database name in Postgres must match** what this playboo The playbook supports importing Postgres dump files in **text** (e.g. `pg_dump > dump.sql`) or **gzipped** formats (e.g. `pg_dump | gzip -c > dump.sql.gz`). Importing multiple databases (as dumped by `pg_dumpall`) is also supported. -The migration might be a good moment, to "reset" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new rooms, ...) +The migration might be a good moment, to "reset" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new rooms, …) Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay). - ## Importing To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server): @@ -34,6 +44,7 @@ just run-tags import-postgres \ ## Troubleshooting ### Table Ownership + A table ownership issue can occur if you are importing from a Synapse installation which was both: - migrated from SQLite to Postgres, and @@ -56,7 +67,7 @@ ALTER TABLE public.account_data OWNER TO synapse_user; ALTER TABLE public.account_data_max_stream_id OWNER TO synapse_user; ALTER TABLE public.account_validity OWNER TO synapse_user; ALTER TABLE public.application_services_state OWNER TO synapse_user; -... +… ``` It can be worked around by changing the username to `synapse`, for example by using `sed`: @@ -65,7 +76,7 @@ It can be worked around by changing the username to `synapse`, for example by us $ sed -i "s/OWNER TO synapse_user;/OWNER TO synapse;/g" homeserver.sql ``` -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. +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. 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: @@ -86,6 +97,7 @@ In this case you can use the command suggested in the import task to clear the d Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc. If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database. + ``` "ERROR: role synapse does not exist" ``` @@ -94,7 +106,7 @@ Once the database is clear and the ownership of the tables has been fixed in the Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal) -``` +```sh /usr/bin/env docker run --rm --name matrix-postgres-import --log-driver=none --user=998:1001 --cap-drop=ALL --network=matrix --env-file=/matrix/postgres/env-postgres-psql --mount type=bind,src=/migration/synapse_dump.sql,dst=/synapse_dump.sql,ro --entrypoint=/bin/sh docker.io/postgres:15.0-alpine -c "cat /synapse_dump.sql | grep -vE '^(CREATE|ALTER) ROLE (matrix)(;| WITH)' | grep -vE '^CREATE DATABASE (matrix)\s' | psql -v ON_ERROR_STOP=1 -h matrix-postgres --dbname=synapse" ``` diff --git a/docs/importing-synapse-media-store.md b/docs/importing-synapse-media-store.md index 01180edab..08993f952 100644 --- a/docs/importing-synapse-media-store.md +++ b/docs/importing-synapse-media-store.md @@ -1,7 +1,13 @@ + + # Importing `media_store` data files from an existing Synapse installation (optional) -Run this if you'd like to import your `media_store` files from a previous installation of Synapse. - +You can manually import your `media_store` files from a previous installation of Synapse. ## Prerequisites @@ -13,11 +19,12 @@ As an alternative, you can perform a manual restore using the [AWS CLI tool](htt **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. - ## Importing Run this command (make sure to replace `` with a path on your server): - ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_media_store=' --tags=import-synapse-media-store +```sh +ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_media_store=' --tags=import-synapse-media-store +``` **Note**: `` must be a file path to a `media_store` directory on the server (not on your local machine!). diff --git a/docs/importing-synapse-sqlite.md b/docs/importing-synapse-sqlite.md index b850cfa64..f3ce1d2f4 100644 --- a/docs/importing-synapse-sqlite.md +++ b/docs/importing-synapse-sqlite.md @@ -1,11 +1,20 @@ + + # Importing an existing SQLite database from another Synapse installation (optional) -Run this if you'd like to import your database from a previous default installation of Synapse (don't forget to import your `media_store` files as well - see [the importing-synapse-media-store guide](importing-synapse-media-store.md)). +You can manually import your database from a previous default installation of Synapse. While this playbook only supports running Synapse in combination with PostgreSQL, a Synapse instance installed manually usually defaults to using an SQLite database. If you have such a Synapse setup and wish to migrate it to one managed by the playbook (and over to PostgreSQL), this documentation page is for you. +**Note**: don't forget to import your Synapse `media_store` files as well — see [the importing-synapse-media-store guide](importing-synapse-media-store.md) for more details. ## Prerequisites diff --git a/docs/installing.md b/docs/installing.md index 7ca37e584..f63f0fdcb 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -1,6 +1,20 @@ + + # Installing -⚡️[Quick start](quick-start.md) | [Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > Installing +[Prerequisites](prerequisites.md) > [Configuring DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > Installing If you've configured your DNS records and the playbook, you can start the installation procedure. @@ -27,7 +41,7 @@ If you **don't** use SSH keys for authentication, but rather a regular password, 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 all Ansible commands. -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). +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). **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. @@ -53,7 +67,8 @@ To do the installation **without** starting services, run `ansible-playbook` wit ansible-playbook -i inventory/hosts setup.yml --tags=install-all ``` -**Note**: 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) +> [!WARNING] +> 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) When this command completes, services won't be running yet. @@ -65,7 +80,7 @@ You can now: - [Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional) -.. and then proceed to starting all services: +… and then proceed to starting all services: ```sh ansible-playbook -i inventory/hosts setup.yml --tags=ensure-matrix-users-created,start @@ -83,13 +98,13 @@ To create your user account (as an administrator of the server) via this Ansible **Notes**: - Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE` -- For `YOUR_USERNAME_HERE`, use a plain username like `john`, not your full identifier (`@user:example.com`) +- For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`) - Use `admin=yes` to make your user account an administrator of the Matrix server ```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=YOUR_USERNAME_HERE password=YOUR_PASSWORD_HERE admin=yes' --tags=register-user -# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=john password=secret-password admin=yes' --tags=register-user +# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=alice password=secret-password admin=yes' --tags=register-user ``` 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`. @@ -104,7 +119,7 @@ This is required for federation to work! Without a proper configuration, your se To configure the delegation, you have these two options. Choose one of them according to your situation. -- 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 identifier like `@:example.com` while hosting services on a subdomain like `matrix.example.com`. +- 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`. - 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). 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: @@ -119,20 +134,22 @@ After configuring the playbook, run the command below: ansible-playbook -i inventory/hosts setup.yml --tags=install-matrix-static-files,start ``` +**If an error is not returned, the installation has completed and the services have been started successfully**🎉 + ## Things to do next -After finilizing the installation, you can: +After completing the installation, you can: -- [check if services work](maintenance-checking-services.md) +- [check if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work) - or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.) - or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md) - or learn how to [maintain your server](faq.md#maintenance) - or join some Matrix rooms: * 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. - * 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. + * 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. - or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate)) -### Maintaining your setup in the future +### ⚠️ Keep the playbook and services up-to-date 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**. @@ -140,6 +157,20 @@ The upstream projects, which this playbook makes use of, occasionally if not oft 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. -For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md) +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) -Feel free to **re-run the setup command any time** you think something is off with the server configuration. Ansible will take your configuration and update your server to match. +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. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags. + +### Make full use of `just` shortcut commands + +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. + +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. + +You can learn about the shortcut commands on this page: [Running `just` commands](just.md) diff --git a/docs/just.md b/docs/just.md index d47ae00f3..c12743b74 100644 --- a/docs/just.md +++ b/docs/just.md @@ -1,27 +1,34 @@ + + # Running `just` commands We have previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers [`ansible-galaxy`](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html)). Our [`Makefile`](../Makefile) is still around, and you can still run these commands. -In addition, we have added support for running commands via [`just`](https://github.com/casey/just) - a more modern command-runner alternative to `make`. It can be used to invoke `ansible-playbook` commands with less typing. +In addition, we have added support for running commands via [`just`](https://github.com/casey/just) — a more modern command-runner alternative to `make`. It can be used to invoke `ansible-playbook` commands with less typing. The `just` utility executes shortcut commands (called as "recipes"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile). Most of the just recipes have no corresponding `Makefile` targets. -For some recipes such as `just update`, our `justfile` recommends installing [`agru`](https://github.com/etkecc/agru) (a faster alternative to `ansible-galaxy`) to speed up the process. +For some recipes such as `just update`, our `justfile` recommends installing `agru` (a faster alternative to `ansible-galaxy`) to speed up the process. Here are some examples of shortcuts: -| Shortcut | Result | -|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------| -| `just roles` | Install the necessary Ansible roles pinned in [`requirements.yml`](../requirements.yml) | -| `just update` | Run `git pull` (to update the playbook) and install the Ansible roles | -| `just install-all` | Run `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` | -| `just setup-all` | Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start` | -| `just install-all --ask-vault-pass` | Run commands with additional arguments (`--ask-vault-pass` will be appended to the above installation command) | -| `just run-tags install-mautrix-slack,start` | Run specific playbook tags (here `install-mautrix-slack` and `start`) | -| `just install-service mautrix-slack` | Run `just run-tags install-mautrix-slack,start` with even less typing | -| `just start-all` | (Re-)starts all services | -| `just stop-group postgres` | Stop only the Postgres service | -| `just register-user john secret-password yes` | Registers a `john` user with the `secret-password` password and admin access (admin = `yes`) | +| Shortcut | Result | +|------------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| `just roles` | Install the necessary Ansible roles pinned in [`requirements.yml`](../requirements.yml) | +| `just update` | Run `git pull` (to update the playbook) and install the Ansible roles | +| `just install-all` | Run `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` | +| `just setup-all` | Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start` | +| `just install-all --ask-vault-pass` | Run commands with additional arguments (`--ask-vault-pass` will be appended to the above installation command) | +| `just run-tags install-mautrix-slack,start` | Run specific playbook tags (here `install-mautrix-slack` and `start`) | +| `just install-service mautrix-slack` | Run `just run-tags install-mautrix-slack,start` with even less typing | +| `just start-all` | (Re-)starts all services | +| `just stop-group postgres` | Stop only the Postgres service | +| `just register-user alice secret-password yes` | Registers an `alice` user with the `secret-password` password and admin access (admin = `yes`) | While [our documentation on prerequisites](prerequisites.md) lists `just` as one of the requirements for installation, using `just` is optional. If you find it difficult to install it, do not find it useful, or want to prefer raw `ansible-playbook` commands for some reason, feel free to run all commands manually. For example, you can run `ansible-galaxy` directly to install the Ansible roles: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`. @@ -35,4 +42,4 @@ For example, these two commands are different: The just recipe runs `ensure-matrix-users-created` and `start` tags after `install-all`, while the latter runs only `install-all` tag. The correct shortcut of the latter is `just run-tags install-all`. -Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components which may prevent your from importing old data. +Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components, which may prevent you from importing the data. diff --git a/docs/maintenance-and-troubleshooting.md b/docs/maintenance-and-troubleshooting.md index e16b75977..bd3e4b84c 100644 --- a/docs/maintenance-and-troubleshooting.md +++ b/docs/maintenance-and-troubleshooting.md @@ -1,9 +1,58 @@ + + # Maintenance and Troubleshooting -## How to see the current status of your services +## Maintenance + +### How to back up the data on your server + +We haven't documented this properly yet, but the general advice is to: + +- back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) + +- back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql)). + +You can later restore these by: + +- Restoring the `/matrix` directory and files on the new server manually +- Following the instruction described on [Installing a server into which you'll import old data](installing.md#installing-a-server-into-which-youll-import-old-data) + +If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again. + +### Remove unused Docker data + +You can free some disk space from Docker by removing its unused data. See [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information. + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=run-docker-prune +``` + +The shortcut command with `just` program is also available: `just run-tags run-docker-prune` + +### Postgres + +See the dedicated [PostgreSQL maintenance](maintenance-postgres.md) documentation page. + +### Synapse + +See the dedicated [Synapse maintenance](maintenance-synapse.md) documentation page. + +## Troubleshooting + +### How to see the current status of your services You can check the status of your services by using `systemctl status`. Example: -``` + +```sh sudo systemctl status matrix-synapse ● matrix-synapse.service - Synapse server @@ -11,44 +60,57 @@ sudo systemctl status matrix-synapse Active: active (running) since Sun 2024-01-14 09:13:06 UTC; 1h 31min ago ``` +### How to see the logs + Docker containers that the playbook configures are supervised by [systemd](https://wiki.archlinux.org/title/Systemd) and their logs are configured to go to [systemd-journald](https://wiki.archlinux.org/title/Systemd/Journal). -To prevent double-logging, Docker logging is disabled by explicitly passing `--log-driver=none` to all containers. Due to this, you **cannot** view logs using `docker logs`. - -To view systemd-journald logs using [journalctl](https://man.archlinux.org/man/journalctl.1), run a command like this: +For example, you can find the logs of `matrix-synapse` in `systemd-journald` by logging in to the server with SSH and running the command as below: ```sh sudo journalctl -fu matrix-synapse ``` +Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server. Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that. -## Increasing Synapse logging +We just simply delegate logging to journald and it takes care of persistence and expiring old data. -Because the [Synapse](https://github.com/element-hq/synapse) Matrix server is originally very chatty when it comes to logging, we intentionally reduce its [logging level](https://docs.python.org/3/library/logging.html#logging-levels) from `INFO` to `WARNING`. +#### Enable systemd/journald logs persistence -If you'd like to debug an issue or [report a Synapse bug](https://github.com/element-hq/synapse/issues/new/choose) to the developers, it'd be better if you temporarily increasing the logging level to `INFO`. +On some distros, the journald logs are just in-memory and not persisted to disk. -Example configuration (`inventory/host_vars/matrix.example.com/vars.yml`): +Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`. -```yaml -matrix_synapse_log_level: "INFO" -matrix_synapse_storage_sql_log_level: "INFO" -matrix_synapse_root_log_level: "INFO" +To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this: + +```ini +[Journal] +RuntimeMaxUse=200M +SystemMaxUse=1G +RateLimitInterval=0 +RateLimitBurst=0 +Storage=persistent ``` -Re-run the playbook after making these configuration changes. +### How to check if services work -## Remove unused Docker data +The playbook can perform a check to ensure that you've configured things correctly and that services are running. -You can free some disk space from Docker, see [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information. -```bash -ansible-playbook -i inventory/hosts setup.yml --tags=run-docker-prune +To perform the check, run: + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=self-check ``` -## Postgres +The shortcut command with `just` program is also available: `just run-tags self-check` -See the dedicated [PostgreSQL Maintenance](maintenance-postgres.md) documentation page. +If it's all green, everything is probably running correctly. -## Ma1sd +Besides this self-check, 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. -See the dedicated [Adjusting ma1sd Identity Server configuration](configuring-playbook-ma1sd.md) documentation page. +### How to debug or force SSL certificate renewal + +SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server. + +If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`). + +If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way. diff --git a/docs/maintenance-checking-services.md b/docs/maintenance-checking-services.md deleted file mode 100644 index 457cd0f47..000000000 --- a/docs/maintenance-checking-services.md +++ /dev/null @@ -1,13 +0,0 @@ -# Checking if services work - -This playbook can perform a check to ensure that you've configured things correctly and that services are running. - -To perform the check, run: - -```bash -ansible-playbook -i inventory/hosts setup.yml --tags=self-check -``` - -If it's all green, everything is probably running correctly. - -Besides this self-check, 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. diff --git a/docs/maintenance-migrating.md b/docs/maintenance-migrating.md index d71a13e3d..2b07201c4 100644 --- a/docs/maintenance-migrating.md +++ b/docs/maintenance-migrating.md @@ -1,14 +1,80 @@ -> **Note**: This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`). -> -> If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is not possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore. + # Migrating to new server -1. Prepare by lowering DNS TTL for your domains (`matrix.example.com`, etc.), so that DNS record changes (step 4 below) would happen faster, leading to less downtime -2. Stop all services on the old server and make sure they won't be starting again. Execute this on the old server: `systemctl disable --now matrix*` (you might have to cd to /etc/systemd/system/ first) -3. Copy directory `/matrix` from the old server to the new server. Make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)! -4. Make sure your DNS records are adjusted to point to the new server's IP address -5. Remove old server from the `inventory/hosts` file and add new server. -6. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-system-user`. This will create the `matrix` user and group on the new server -7. Because the `matrix` user and group are created dynamically on each server, the user/group ID may differ between the old and new server. We suggest that you adjust ownership of `/matrix` files manually by running this on the new server: `chown -R matrix:matrix /matrix`. -8. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` to finish the installation and start all services +This documentation explains how to migrate your Matrix services (server, client, bridges, etc.) and data **from an old server to a new server**. + +**Notes**: +- This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`). + + If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is **not** possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore. +- If you have any questions about migration or encountered an issue during migration, do not hesitate to ask for help on [our Matrix room](https://matrix.to/#/%23matrix-docker-ansible-deploy:devture.com). You probably might want to prepare a temporary/sub account on another Matrix server in case it becomes impossible to use your server due to migration failure by any chance. + +- You can't change the domain (specified in the `matrix_domain` variable) after the initial deployment. + +## Lower DNS TTL + +Prepare by lowering DNS TTL for your domains (`matrix.example.com`, etc.), so that DNS record changes would happen faster, leading to less downtime. + +## Stop services on the old server completely + +Before migrating, you need to stop all services on the old server and make sure they won't be starting again. + +To do so, it is recommended to run the `systemctl` command on the server. Running the playbook's `stop` tag also stops the services, but just once; they will start again if you reboot the server. + +Log in to the old server and run the command as `root` (or a user that can run it with `sudo`): + +```sh +cd /etc/systemd/system/ && systemctl disable --now matrix* +``` + +## Copy data directory to the new server + +After you've confirmed that all services were stopped, copy the `/matrix` directory from the old server to the new server. When copying, make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)! + +## Adjust DNS records + +Make sure your DNS records are adjusted to point to the new server's IP address. + +## Update `inventory/hosts` file + +Having adjusted DNS records, replace the old server's external IP address on the `inventory/hosts` file with that of the new server. + +## Create `matrix` user and group on the new server + +Then, run the command below on your local computer to create the `matrix` user and group on the new server: + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-system-user +``` + +The shortcut command with `just` program is also available: `just run-tags setup-system-user` + +**Note**: because the `matrix` user and group are created dynamically on each server, the user/group ID may differ between the old and new server. We suggest that you adjust ownership of `/matrix` files. To adjust the ownership, log in to the new server and run the command: + +```sh +chown -R matrix:matrix /matrix +``` + +## Install and start all services on the new server + +Finally, run the command below on your local computer to finish the installation and start all services: + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start +``` + +The shortcut command with `just` program is also available: `just run-tags install-all,start` + +### Check if services work + +After starting the services, you probably might want to ensure that you've migrated things correctly and that services are running. For instructions, see: [check if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work) + +Having make sure that both services and federation work as expected, you can safely shutdown the old server. diff --git a/docs/maintenance-postgres.md b/docs/maintenance-postgres.md index deac1faa7..af630af5d 100644 --- a/docs/maintenance-postgres.md +++ b/docs/maintenance-postgres.md @@ -1,22 +1,29 @@ + + # PostgreSQL maintenance This document shows you how to perform various maintenance tasks related to the Postgres database server used by Matrix. Table of contents: - - [Getting a database terminal](#getting-a-database-terminal), for when you wish to execute SQL queries - - [Vacuuming PostgreSQL](#vacuuming-postgresql), for when you wish to run a Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) (optimizing disk space) - - [Backing up PostgreSQL](#backing-up-postgresql), for when you wish to make a backup - - [Upgrading PostgreSQL](#upgrading-postgresql), for upgrading to new major versions of PostgreSQL. Such **manual upgrades are sometimes required**. - - [Tuning PostgreSQL](#tuning-postgresql) to make it run faster ## Getting a database terminal -You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server. +You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/current/app-psql.html)) to the PostgreSQL server. If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available. @@ -28,8 +35,8 @@ To change to another database (for example `synapse`), run `\connect synapse` (o You can then proceed to write queries. Example: `SELECT COUNT(*) FROM users;` -**Be careful**. Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption. When in doubt, consider [making a backup](#backing-up-postgresql). - +> [!WARNING] +> **Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption.** When in doubt, consider [making a backup](#backing-up-postgresql). ## Vacuuming PostgreSQL @@ -50,14 +57,13 @@ Example playbook invocations: - `just run-tags run-postgres-vacuum`: runs the default `vacuum-complete` preset and restarts all services - `just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze`: runs the `analyze` preset with all services remaining operational at all times - ## Backing up PostgreSQL -To automatically make Postgres database backups on a fixed schedule, see [Setting up postgres backup](configuring-playbook-postgres-backup.md). +To automatically make Postgres database backups on a fixed schedule, consider enabling the [Postgres Backup](configuring-playbook-postgres-backup.md) service. -To make a one off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server: +To make a one-off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server: -```bash +```sh /usr/bin/docker exec \ --env-file=/matrix/postgres/env-postgres-psql \ matrix-postgres \ @@ -70,7 +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). - ## Upgrading PostgreSQL Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you. @@ -79,7 +84,7 @@ Once installed, the playbook attempts to preserve the Postgres version it starts Upgrades must be performed manually. -This playbook can upgrade your existing Postgres setup with the following command: +The playbook can upgrade your existing Postgres setup with the following command: ```sh just run-tags upgrade-postgres @@ -91,12 +96,10 @@ The auto-upgrade-backup directory stays around forever, until you **manually dec 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"` -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"` +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"` **All databases, roles, etc. on the Postgres server are migrated**. - ## Tuning PostgreSQL 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. diff --git a/docs/maintenance-synapse.md b/docs/maintenance-synapse.md index a7220f5b8..15b6eb62b 100644 --- a/docs/maintenance-synapse.md +++ b/docs/maintenance-synapse.md @@ -1,30 +1,41 @@ + + # Synapse maintenance This document shows you how to perform various maintenance tasks related to the Synapse chat server. Table of contents: - - [Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api), for when you wish to delete in-use (but old) data from the Synapse database - - [Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state) - - [Browse and manipulate the database](#browse-and-manipulate-the-database), for when you really need to take matters into your own hands - - [Make Synapse faster](#make-synapse-faster) +💡 See this page for details about configuring Synapse: [Configuring Synapse](configuring-playbook-synapse.md) + ## Purging old data with the Purge History API You can use the **[Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md)** to delete old messages on a per-room basis. **This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**. To make use of this Synapse Admin API, **you'll need an admin access token** first. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. + Synapse's Admin API is not exposed to the internet by default, following [official Synapse reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). To expose it you will need to add `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` to your `vars.yml` file. Follow the [Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md) documentation page for the actual purging instructions. After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql). - ## Compressing state with rust-synapse-compress-state [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database. @@ -35,15 +46,16 @@ After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintena To ask the playbook to run rust-synapse-compress-state, execute: -``` +```sh ansible-playbook -i inventory/hosts setup.yml --tags=rust-synapse-compress-state ``` +The shortcut command with `just` program is also available: `just run-tags rust-synapse-compress-state` + By default, all rooms with more than `100000` state group rows will be compressed. If you need to adjust this, pass: `--extra-vars='matrix_synapse_rust_synapse_compress_state_min_state_groups_required=SOME_NUMBER_HERE'` to the command above. After state compression, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql). - ## Browse and manipulate the database When the [Synapse Admin API](https://github.com/element-hq/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs. @@ -52,14 +64,14 @@ Editing the database manually is not recommended or supported by the Synapse dev First, set up an SSH tunnel to your Matrix server (skip if it is your local machine): -``` +```sh # you may replace 1799 with an arbitrary port unbound on both machines ssh -L 1799:localhost:1799 matrix.example.com ``` Then start up an ephemeral [adminer](https://www.adminer.org/) container on the Matrix server, connecting it to the `matrix` network and linking the postgresql container: -``` +```sh docker run --rm --publish 1799:8080 --link matrix-postgres --net matrix adminer ``` @@ -85,15 +97,15 @@ Tuning the cache factor is useful only to a limited degree (as its crude to do i Cache autotuning is **enabled by default** and controlled via the following variables: -- `matrix_synapse_cache_autotuning_max_cache_memory_usage` - defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes -- `matrix_synapse_cache_autotuning_target_cache_memory_usage` - defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes -- `matrix_synapse_cache_autotuning_min_cache_ttl` - defaults to `30s` +- `matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s` 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). To **disable cache auto-tuning**, unset all values: -```yml +```yaml matrix_synapse_cache_autotuning_max_cache_memory_usage: '' matrix_synapse_cache_autotuning_target_cache_memory_usage: '' matrix_synapse_cache_autotuning_min_cache_ttl: '' diff --git a/docs/maintenance-upgrading-services.md b/docs/maintenance-upgrading-services.md index 94fcafdcc..7f0f1bc17 100644 --- a/docs/maintenance-upgrading-services.md +++ b/docs/maintenance-upgrading-services.md @@ -1,3 +1,14 @@ + + # Upgrading the Matrix services This playbook not only installs the various Matrix services for you, but can also upgrade them as new versions are made available. @@ -14,27 +25,47 @@ If you want to be notified when new versions of Synapse are released, you should ## Steps to upgrade the Matrix services +### Check the changelog + Before updating the playbook and the Ansible roles in the playbook, take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of. -If it looks good to you, go to the `matrix-docker-ansible-deploy` directory, then: +### Update the playbook and the Ansible roles -- update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) using: +If it looks good to you, go to the `matrix-docker-ansible-deploy` directory, update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) by running: - - either: `just update` - - or: a combination of `git pull` and `just roles` (or `make roles` if you have `make` program on your computer instead of `just`) +- either: `just update` +- or: a combination of `git pull` and `just roles` (or `make roles` if you have `make` program on your computer instead of `just`) - If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force` +If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force` - For details about `just` commands, take a look at: [Running `just` commands](just.md). +**Note**: for details about `just` commands, take a look at: [Running `just` commands](just.md). -- re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services: +### Re-run the playbook setup - ```sh - ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start - ``` +After updating the Ansible roles, then re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services: -Note that if you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with `--tags=setup-all` instead of `--tags=install-all`. See [this page on the playbook tags](playbook-tags.md) for more information. +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start +``` -A way to invoke these `ansible-playbook` commands with less typing is to run the `just` "recipe": `just install-all` or `just setup-all`. +If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below: -**Note**: major version upgrades to the internal PostgreSQL database are not done automatically. To upgrade it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql). +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start +``` + +**Notes**: + +- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any. + +- Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information. + +- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too. + +- See [this page on the playbook tags](playbook-tags.md) for more information about those tags. + +## PostgreSQL major version upgrade + +Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually. + +For details about upgrading it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql). diff --git a/docs/obtaining-access-tokens.md b/docs/obtaining-access-tokens.md index ba9381a82..c72f5840c 100644 --- a/docs/obtaining-access-tokens.md +++ b/docs/obtaining-access-tokens.md @@ -1,14 +1,24 @@ + + # Obtaining an Access Token When setting up some optional features like bots and bridges you will need to provide an access token for some user. This document provides documentation on how to obtain such an access token. -**Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone.** +> [!WARNING] +> Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone. ## Prerequisites The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already. -Below, we describe 2 ways to generate an access token for a user - using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password. +Below, we describe 2 ways to generate an access token for a user — using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password. ## Obtain an access token via Element Web @@ -20,14 +30,13 @@ Below, we describe 2 ways to generate an access token for a user - using [Elemen ![Obtaining an access token with Element Web](assets/obtain_admin_access_token_element_web.png) - ## Obtain an access token via curl You can use the following command to get an access token for your user directly from the [Matrix Client-Server API](https://www.matrix.org/docs/guides/client-server-api#login): -``` +```sh curl -XPOST -d '{ - "identifier": { "type": "m.id.user", "user": "USERNAME" }, + "identifier": { "type": "m.id.user", "user": "alice" }, "password": "PASSWORD", "type": "m.login.password", "device_id": "YOURDEVICEID" @@ -41,7 +50,7 @@ Your response will look like this (prettified): ``` { - "user_id":"@USERNAME:example.com", + "user_id":"@alice:example.com", "access_token":">>>YOUR_ACCESS_TOKEN_IS_HERE<<<", "home_server":"example.com", "device_id":"YOURDEVICEID" diff --git a/docs/playbook-tags.md b/docs/playbook-tags.md index 8e2a064ce..42d2354d6 100644 --- a/docs/playbook-tags.md +++ b/docs/playbook-tags.md @@ -1,24 +1,33 @@ + + # Playbook tags The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks. -The general command syntax is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE` +The general command syntax is: +- (**recommended**) when using `just`: `just run-tags COMMA_SEPARATED_TAGS_GO_HERE` +- when not using `just`: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE` Here are some playbook tags that you should be familiar with: -- `setup-all` - runs all setup tasks (installation and uninstallation) for all components, but does not start/restart services +- `setup-all` — runs all setup tasks (installation and uninstallation) for all components, but does not start/restart services -- `install-all` - like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed +- `install-all` — like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed -- `setup-SERVICE` (e.g. `setup-postmoogle`) - runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag). +- `setup-SERVICE` (e.g. `setup-postmoogle`) — runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag). -- `install-SERVICE` (e.g. `install-postmoogle`) - like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information. +- `install-SERVICE` (e.g. `install-postmoogle`) — like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information. -- `start` - starts all systemd services and makes them start automatically in the future +- `start` — starts all systemd services and makes them start automatically in the future -- `stop` - stops all systemd services +- `stop` — stops all systemd services -- `ensure-matrix-users-created` - a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created +- `ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created **Notes**: - `setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc. diff --git a/docs/prerequisites.md b/docs/prerequisites.md index 412cace93..e53246d98 100644 --- a/docs/prerequisites.md +++ b/docs/prerequisites.md @@ -1,11 +1,24 @@ + + # Prerequisites -⚡️[Quick start](quick-start.md) | Prerequisites > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md) +Prerequisites > [Configuring DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md) To install Matrix services using this Ansible playbook, you need to prepare several requirements both on your local computer (where you will run the playbook to configure the server) and the server (where the playbook will install the Matrix services for you). **These requirements need to be set up manually** before proceeding to the next step. We will be using `example.com` as the domain in the following instruction. Please remember to replace it with your own domain before running any commands. +**Note**: if you do not have an existing Matrix server and want to start quickly with "opinionated defaults", we suggest you to follow ⚡ **[Quick start](quick-start.md)** installation guide. + ## Your local computer - [Ansible](http://ansible.com/) program. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible. @@ -14,7 +27,7 @@ We will be using `example.com` as the domain in the following instruction. Pleas - [`git`](https://git-scm.com/) as the recommended way to download the playbook. `git` may also be required on the server if you will be [self-building](self-building.md) components. -- [`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually. Take at look at this documentation for more information: [Running `just` commands](just.md). +- [`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually. Take a look at this documentation for more information: [Running `just` commands](just.md). - Strong password (random strings) generator. The playbook often requires you to create a strong password and use it for settings on `vars.yml`, components, etc. As any tools should be fine, this playbook has adopted [`pwgen`](https://linux.die.net/man/1/pwgen) (running `pwgen -s 64 1`). [Password Tech](https://pwgen-win.sourceforge.io/), formerly known as "PWGen for Windows", is available as free and open source password generator for Windows. Generally, using a random generator available on the internet is not recommended. @@ -26,7 +39,7 @@ We will be using `example.com` as the domain in the following instruction. Pleas - **Debian** (10/Buster or newer) - **Ubuntu** (18.04 or newer, although [20.04 may be problematic](ansible.md#supported-ansible-versions) if you run the Ansible playbook on it) - Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. This playbook can take over your whole server or co-exist with other services that you have there. + Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. The playbook can take over your whole server or co-exist with other services that you have there. This playbook somewhat supports running on non-`amd64` architectures like ARM. See [Alternative Architectures](alternative-architectures.md). @@ -46,11 +59,11 @@ We will be using `example.com` as the domain in the following instruction. Pleas - `80/tcp`: HTTP webserver - `443/tcp` and `443/udp`: HTTPS webserver - - `3478/tcp`: TURN over TCP (used by Coturn) - - `3478/udp`: TURN over UDP (used by Coturn) - - `5349/tcp`: TURN over TCP (used by Coturn) - - `5349/udp`: TURN over UDP (used by Coturn) - - `8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. In some cases, this **may necessary even with federation disabled**. Integration Servers (like Dimension) and Identity Servers (like ma1sd) may need to access `openid` APIs on the federation port. + - `3478/tcp`: STUN/TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) + - `3478/udp`: STUN/TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) + - `5349/tcp`: TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) + - `5349/udp`: TURN over UDP (used by [coturn](./docs/configuring-playbook-turn.md)) + - `8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**. - the range `49152-49172/udp`: TURN over UDP - potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that. diff --git a/docs/quick-start.md b/docs/quick-start.md index 11af61f11..ae9328f0a 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -1,3 +1,9 @@ + + # Quick start @@ -35,18 +43,21 @@ One of the main reasons of basic errors is using an incompatible version of requ ## Configure your DNS settings -This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring your DNS settings](configuring-dns.md) +This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring DNS settings](configuring-dns.md) After installing and configuring prerequisites, you will need to **configure DNS records**. To configure Matrix services in the default settings, go to your DNS service provider, and adjust DNS records as below. -| Type | Host | Priority | Weight | Port | Target | -| ----- | ---------------------------- | -------- | ------ | ---- | ---------------------| -| A | `matrix` | - | - | - | `matrix-server-IP` | -| CNAME | `element` | - | - | - | `matrix.example.com` | +| Type | Host | Priority | Weight | Port | Target | +| ----- | ----------| -------- | ------ | ---- | ---------------------| +| A | `matrix` | - | - | - | `matrix-server-IPv4` | +| AAAA | `matrix` | - | - | - | `matrix-server-IPv6` | +| CNAME | `element` | - | - | - | `matrix.example.com` | -As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine). +As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IPv4/IPv6 address. + +If you don't have IPv6 connectivity yet, you can skip the `AAAA` record. For more details about IPv6, see the [Configuring IPv6](./configuring-ipv6.md) documentation page. It might take some time for the DNS records to propagate after creation. @@ -134,12 +145,12 @@ To create your user account (as an administrator of the server) via this Ansible **💡 Notes**: - Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE` -- For `YOUR_USERNAME_HERE`, use a plain username like `john`, not your full identifier (`@user:example.com`) +- For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`) ```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=YOUR_USERNAME_HERE password=YOUR_PASSWORD_HERE admin=yes' --tags=register-user -# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=john password=secret-password admin=yes' --tags=register-user +# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=alice password=secret-password admin=yes' --tags=register-user ``` + # Registering users This documentation page tells you how to create user accounts on your Matrix server. Table of contents: - - [Registering users](#registering-users) - [Registering users manually](#registering-users-manually) - [Managing users via a Web UI](#managing-users-via-a-web-ui) @@ -11,12 +20,11 @@ Table of contents: - [Enabling public user registration](#enabling-public-user-registration) - [Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user) - ## Registering users manually **Notes**: - Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE` -- For `USERNAME_HERE`, use a plain username like `john`, not a full identifier (`@user:example.com`) +- For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`) - Use `admin=yes` or `admin=no` depending on whether you wish to make the user an administrator of the Matrix server After registering a user (using one of the methods below), **you can log in with that user** via the [Element Web](configuring-playbook-client-element-web.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`. @@ -30,7 +38,7 @@ To register a user via this Ansible playbook: ```sh just register-user USERNAME_HERE PASSWORD_HERE -# Example: `just register-user john secret-password yes` +# Example: `just register-user alice secret-password yes` ``` **or** by invoking `ansible-playbook` manually: @@ -38,12 +46,13 @@ just register-user USERNAME_HERE PASSWORD_HERE ```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=USERNAME_HERE password=PASSWORD_HERE admin=' --tags=register-user -# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=john password=secret-password admin=yes' --tags=register-user +# Example: ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=alice password=secret-password admin=yes' --tags=register-user ``` Feel free to register as many users (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your user account only (with `admin=yes`), and others should be created with `admin=no`. -⚠️ **Warning**: If you're registering users against Matrix Authentication Service, do note that it [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information. +> [!WARNING] +> If you're registering users against Matrix Authentication Service, do note that it [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information. ### Registering users manually for Synapse @@ -52,7 +61,7 @@ If you're using the [Synapse](configuring-playbook-synapse.md) homeserver implem ```sh /matrix/synapse/bin/register-user USERNAME_HERE PASSWORD_HERE -# Example: `/matrix/synapse/bin/register-user john secret-password 1` +# Example: `/matrix/synapse/bin/register-user alice secret-password 1` ``` ### Registering users manually for Dendrite @@ -62,7 +71,7 @@ If you're using the [Dendrite](./configuring-playbook-dendrite.md) homeserver im ```sh /matrix/dendrite/bin/create-account USERNAME_HERE PASSWORD_HERE -# Example: `/matrix/dendrite/bin/create-account john secret-password 1` +# Example: `/matrix/dendrite/bin/create-account alice secret-password 1` ``` ### Registering users manually for Matrix Authentication Service @@ -72,7 +81,7 @@ If you're using the [Matrix Authentication Service](./configuring-playbook-matri ```sh /matrix/matrix-authentication-service/bin/register-user USERNAME_HERE PASSWORD_HERE -# Example: `/matrix/matrix-authentication-service/bin/register-user john secret-password 1` +# Example: `/matrix/matrix-authentication-service/bin/register-user alice secret-password 1` ``` This `register-user` script actually invokes the `mas-cli manage register-user` command under the hood. If you'd like more control over the registration process, consider invoking the `mas-cli` command directly: @@ -81,21 +90,20 @@ This `register-user` script actually invokes the `mas-cli manage register-user` /matrix/matrix-authentication-service/bin/mas-cli manage register-user --help ``` -⚠️ **Warning**: Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information. - +> [!WARNING] +> Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information. ## Managing users via a Web UI To manage users more easily (via a web user-interace), you can install [Synapse Admin](configuring-playbook-synapse-admin.md). -⚠️ **Warning**: If you're using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), note that user management via synapse-admin is not fully working yet. See the [Expectations](configuring-playbook-matrix-authentication-service.md#expectations) section for more information. - +> [!WARNING] +> If you're using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), note that user management via synapse-admin is not fully working yet. See the [Expectations](configuring-playbook-matrix-authentication-service.md#expectations) section for more information. ## Letting certain users register on your private server If you'd rather **keep your server private** (public registration closed, as is the default), and **let certain people create accounts by themselves** (instead of creating user accounts manually like this), consider installing and making use of [matrix-registration](configuring-playbook-matrix-registration.md). - ## Enabling public user registration To **open up user registration publicly** (usually **not recommended**), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: @@ -112,10 +120,20 @@ For Dendrite: matrix_dendrite_client_api_registration_disabled: false ``` -After configuring the playbook, run the [installation](installing.md) command: `just install-all` or `just setup-all` +After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: -If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md). + +```sh +ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start +``` +**Notes**: + +- 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. + +- If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md). ## Adding/Removing Administrator privileges to an existing user @@ -124,7 +142,7 @@ If you're opening up registrations publicly like this, you might also wish to [c To change the admin privileges for a user in Synapse's local database, you need to run an SQL query like this against the `synapse` database: ```sql -UPDATE users SET admin=ADMIN_VALUE WHERE name = '@USER:example.com'; +UPDATE users SET admin=ADMIN_VALUE WHERE name = '@alice:example.com'; ``` where: @@ -134,8 +152,8 @@ where: If you're using the integrated Postgres server and not an [external Postgres server](configuring-playbook-external-postgres.md), you can launch a Postgres into the `synapse` database by: -- running `/matrix/postgres/bin/cli` - to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html) -- running `\c synapse` - to change to the `synapse` database +- running `/matrix/postgres/bin/cli` — to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html) +- running `\c synapse` — to change to the `synapse` database You can then proceed to run the query above. diff --git a/docs/self-building.md b/docs/self-building.md index 4304f4ded..d1aa855b7 100644 --- a/docs/self-building.md +++ b/docs/self-building.md @@ -1,3 +1,17 @@ + + # Self-building **Caution: self-building does not have to be used on its own. See the [Alternative Architectures](alternative-architectures.md) page.** @@ -28,7 +42,6 @@ Possibly outdated list of roles where self-building the Docker image is currentl - `matrix-bridge-appservice-webhooks` - `matrix-bridge-beeper-linkedin` - `matrix-bridge-mautrix-facebook` -- `matrix-bridge-mautrix-hangouts` - `matrix-bridge-mautrix-googlechat` - `matrix-bridge-mautrix-telegram` - `matrix-bridge-mautrix-signal` @@ -39,7 +52,6 @@ Possibly outdated list of roles where self-building the Docker image is currentl - `matrix-bot-honoroit` - `matrix-bot-matrix-reminder-bot` - `matrix-bot-maubot` -- `matrix-email2matrix` - `matrix-pantalaimon` Adding self-building support to other roles is welcome. Feel free to contribute! diff --git a/docs/uninstalling.md b/docs/uninstalling.md index 73a414ede..1a0f3f6ef 100644 --- a/docs/uninstalling.md +++ b/docs/uninstalling.md @@ -1,14 +1,16 @@ + + # Uninstalling -**Warnings**: - -- If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating. - -- If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**. - - ------------------ - +> [!WARNING] +> - If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating. +> - If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**. ## Uninstalling using a script @@ -16,7 +18,6 @@ Installing places a `/matrix/bin/remove-all` script on the server. You can run it to to have it uninstall things for you automatically (see below). **Use with caution!** - ## Uninstalling manually If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself): @@ -32,5 +33,3 @@ If you prefer to uninstall manually, run these commands (most are meant to be ex - uninstall Docker itself, if necessary - delete the `/matrix` directory (`rm -rf /matrix`) - - diff --git a/docs/updating-users-passwords.md b/docs/updating-users-passwords.md index 6461e1198..7a9eade91 100644 --- a/docs/updating-users-passwords.md +++ b/docs/updating-users-passwords.md @@ -1,37 +1,47 @@ + + # Updating users passwords ## Option 1 (if you are using the integrated Postgres database): **Notes**: - Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE` -- For `USERNAME_HERE`, use a plain username like `john`, not a full identifier (`@user:example.com`) +- For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`) You can reset a user's password via the Ansible playbook: -``` +```sh ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=USERNAME_HERE password=PASSWORD_HERE' --tags=update-user-password ``` **You can then log in with that user** via Element Web that this playbook has created for you at a URL like this: `https://element.example.com/`. - ## Option 2 (if you are using an external Postgres server): You can manually generate the password hash by using the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#finalize-the-installation): -``` +```sh docker exec -it matrix-synapse /usr/local/bin/hash_password -c /data/homeserver.yaml ``` -and then connecting to the postgres server and executing: +and then connecting to the Postgres server and executing: ```sql -UPDATE users SET password_hash = '' WHERE name = '@someone:example.com'; +UPDATE users SET password_hash = '' WHERE name = '@alice:example.com'; ``` where `` is the hash returned by the docker command above. - ## Option 3: Use the Synapse User Admin API as described here: https://github.com/element-hq/synapse/blob/master/docs/admin_api/user_admin_api.rst#reset-password @@ -41,7 +51,11 @@ This requires an [access token](obtaining-access-tokens.md) from a server admin If you didn't make your account a server admin when you created it, you can learn how to switch it now by reading about it in [Adding/Removing Administrator privileges to an existing user in Synapse](registering-users.md#addingremoving-administrator-privileges-to-an-existing-user-in-synapse). ### Example: -To set @user:example.com's password to `correct_horse_battery_staple` you could use this curl command: -``` -curl -XPOST -d '{ "new_password": "correct_horse_battery_staple" }' "https://matrix.example.com/_matrix/client/r0/admin/reset_password/@user:example.com?access_token=MDA...this_is_my_access_token + +To set @alice:example.com's password to `correct_horse_battery_staple` you could use this curl command: + +```sh +curl -XPOST -d '{ "new_password": "correct_horse_battery_staple" }' "https://matrix.example.com/_matrix/client/r0/admin/reset_password/@alice:example.com?access_token=ACCESS_TOKEN_HERE ``` + +Make sure to replace `ACCESS_TOKEN_HERE` with the access token of the server admin account. diff --git a/examples/host.yml b/examples/host.yml index 85d2f3170..cd43db4da 100644 --- a/examples/host.yml +++ b/examples/host.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This is a host file for usage with the `../bin/ansible-all-hosts.sh` script, diff --git a/examples/hosts b/examples/hosts index d9407b2ab..e4500455d 100644 --- a/examples/hosts +++ b/examples/hosts @@ -1,4 +1,4 @@ -# We explicitly ask for your server's external IP address, because the same value is used for configuring Coturn. +# We explicitly ask for your server's external IP address, because the same value is used for configuring coturn. # If you'd rather use a local IP here, make sure to set up `matrix_coturn_turn_external_ip_address`. # # To connect using a non-root user (and elevate to root with sudo later), diff --git a/examples/hosts.license b/examples/hosts.license new file mode 100644 index 000000000..91ac0d395 --- /dev/null +++ b/examples/hosts.license @@ -0,0 +1,8 @@ +SPDX-FileCopyrightText: 2017 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Dan Arnfield +SPDX-FileCopyrightText: 2019 MDAD project contributors +SPDX-FileCopyrightText: 2021 Aaron Raimist +SPDX-FileCopyrightText: 2023 David Holdeman +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/examples/reverse-proxies/README.md b/examples/reverse-proxies/README.md index 91e10d5f6..3f8f12868 100644 --- a/examples/reverse-proxies/README.md +++ b/examples/reverse-proxies/README.md @@ -1,3 +1,9 @@ + + ## Using other reverse-proxies for fronting the integrated Traefik reverse-proxy This directory contains sample configuration for various webservers, showing you how to put these reverse-proxies in front of the integrated Traefik reverse-proxy used by the playbook. diff --git a/examples/reverse-proxies/apache/README.md b/examples/reverse-proxies/apache/README.md index b4608c87c..89b6fde58 100644 --- a/examples/reverse-proxies/apache/README.md +++ b/examples/reverse-proxies/apache/README.md @@ -1,3 +1,11 @@ + + # Apache reverse-proxy This directory contains sample files that show you how to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with your Apache reverse-proxy. diff --git a/examples/reverse-proxies/apache/matrix-client-element.conf b/examples/reverse-proxies/apache/matrix-client-element.conf index d4321c2bd..d3f281856 100644 --- a/examples/reverse-proxies/apache/matrix-client-element.conf +++ b/examples/reverse-proxies/apache/matrix-client-element.conf @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # This is a sample file demonstrating how to set up reverse-proxy for element.example.com. # If you're not using Element Web (`matrix_client_element_enabled: false`), you won't need this. diff --git a/examples/reverse-proxies/apache/matrix-domain.conf b/examples/reverse-proxies/apache/matrix-domain.conf index 18aaabd25..cce7723b0 100644 --- a/examples/reverse-proxies/apache/matrix-domain.conf +++ b/examples/reverse-proxies/apache/matrix-domain.conf @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # This is a sample file demonstrating how to set up reverse-proxy for matrix.example.com diff --git a/examples/reverse-proxies/caddy2-in-container/Caddyfile b/examples/reverse-proxies/caddy2-in-container/Caddyfile index 0a3d1df07..d5611c06d 100644 --- a/examples/reverse-proxies/caddy2-in-container/Caddyfile +++ b/examples/reverse-proxies/caddy2-in-container/Caddyfile @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + matrix.example.com { handle { diff --git a/examples/reverse-proxies/caddy2-in-container/README.md b/examples/reverse-proxies/caddy2-in-container/README.md index 51881ac60..cef786aed 100644 --- a/examples/reverse-proxies/caddy2-in-container/README.md +++ b/examples/reverse-proxies/caddy2-in-container/README.md @@ -1,10 +1,16 @@ + + # Caddy reverse-proxy fronting the playbook's integrated Traefik reverse-proxy This directory contains a sample config that shows you how to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with your own **containerized** [Caddy](https://caddyserver.com/) reverse-proxy. If you have a server with a Caddy container already serving several applications and you want to install Matrix on it (with no changes to existing traffic routing), then this guide is for you. **Note**: if you're running Caddy on the host itself (not in a container), refer to the [caddy2](../caddy2/README.md) example instead. - ## Prerequisite configuration To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.example.com/vars.yml`). diff --git a/examples/reverse-proxies/caddy2-in-container/docker-compose.yaml b/examples/reverse-proxies/caddy2-in-container/docker-compose.yaml index 5884018dd..c6b1889c7 100644 --- a/examples/reverse-proxies/caddy2-in-container/docker-compose.yaml +++ b/examples/reverse-proxies/caddy2-in-container/docker-compose.yaml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- version: "3.9" @@ -14,7 +19,7 @@ services: volumes: - ./Caddyfile:/etc/caddy/Caddyfile # - ./site:/var/www - # Other configurations ... + # Other configurations … networks: # add this as well diff --git a/examples/reverse-proxies/caddy2/Caddyfile b/examples/reverse-proxies/caddy2/Caddyfile index c63b794ca..bf0a2b425 100644 --- a/examples/reverse-proxies/caddy2/Caddyfile +++ b/examples/reverse-proxies/caddy2/Caddyfile @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2020 - 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Olaf Schoenwald +# SPDX-FileCopyrightText: 2020 Panagiotis Vasilopoulos +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 François Darveau +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + matrix.example.com { handle { diff --git a/examples/reverse-proxies/caddy2/README.md b/examples/reverse-proxies/caddy2/README.md index 29693edc6..0da1fe3e4 100644 --- a/examples/reverse-proxies/caddy2/README.md +++ b/examples/reverse-proxies/caddy2/README.md @@ -1,13 +1,21 @@ + + # Caddy reverse-proxy fronting the playbook's integrated Traefik reverse-proxy This directory contains a sample config that shows you how to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with your own [Caddy](https://caddyserver.com/) reverse-proxy. - ## Prerequisite configuration To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.example.com/vars.yml`). - ## Using the Caddyfile You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile. diff --git a/examples/reverse-proxies/haproxy/README.md b/examples/reverse-proxies/haproxy/README.md index 086e49aa5..b2b389536 100644 --- a/examples/reverse-proxies/haproxy/README.md +++ b/examples/reverse-proxies/haproxy/README.md @@ -1,3 +1,11 @@ + + # HAproxy reverse-proxy This directory contains sample files that show you how to do reverse-proxying using HAproxy. diff --git a/examples/reverse-proxies/haproxy/haproxy.cfg b/examples/reverse-proxies/haproxy/haproxy.cfg index 57c562bdd..633922065 100644 --- a/examples/reverse-proxies/haproxy/haproxy.cfg +++ b/examples/reverse-proxies/haproxy/haproxy.cfg @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2019 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + global log /dev/log local0 log /dev/log local1 notice diff --git a/examples/reverse-proxies/nginx-proxy-manager/README.md b/examples/reverse-proxies/nginx-proxy-manager/README.md index 735901c3f..dad498435 100644 --- a/examples/reverse-proxies/nginx-proxy-manager/README.md +++ b/examples/reverse-proxies/nginx-proxy-manager/README.md @@ -1,17 +1,24 @@ + + # Nginx Proxy Manager fronting the playbook's integrated Traefik reverse-proxy Similar to standard nginx, [Nginx Proxy Manager](https://nginxproxymanager.com/) provides nginx capabilities but inside a pre-built Docker container. With the ability for managing proxy hosts and automatic SSL certificates via a simple web interface. This page summarizes how to use Nginx Proxy Manager (NPM) to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver. - ## Prerequisite configuration To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.example.com/vars.yml`). If Matrix federation is enabled, then you will need to make changes to [NPM's Docker configuration](https://nginxproxymanager.com/guide/#quick-setup). By default NPM already exposes ports `80` and `443`, but you would also need to **additionally expose the Matrix Federation port** (as it appears on the public side): `8448`. - ## Using Nginx Proxy Manager You'll need to create two proxy hosts in NPM for Matrix web and federation traffic. diff --git a/examples/reverse-proxies/nginx/README.md b/examples/reverse-proxies/nginx/README.md index dfe53057c..9ca86c86a 100644 --- a/examples/reverse-proxies/nginx/README.md +++ b/examples/reverse-proxies/nginx/README.md @@ -1,13 +1,21 @@ + + # Nginx reverse-proxy fronting the playbook's integrated Traefik reverse-proxy This directory contains a sample config that shows you how to use the [nginx](https://nginx.org/) webserver to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with another reverse-proxy. - ## Prerequisite configuration To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.example.com/vars.yml`). - ## Using the nginx configuration Copy the [matrix.conf](matrix.conf) file to your nginx server's filesystem, modify it to your needs and include it in your nginx configuration (e.g. `include /path/to/matrix.conf;`). diff --git a/examples/reverse-proxies/nginx/matrix.conf b/examples/reverse-proxies/nginx/matrix.conf index 0919011ef..8e6c89711 100644 --- a/examples/reverse-proxies/nginx/matrix.conf +++ b/examples/reverse-proxies/nginx/matrix.conf @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Jost Alemann +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + server { # TODO: once per IP and port you should add `reuseport`, if you don't have that in any other nginx config file, add it here by uncommenting the lines below and commenting the one after with `quic` but without `reuseport` #listen 443 quic reuseport; @@ -11,9 +17,9 @@ server { http3 on; # TODO: add/remove services and their subdomains if you use/don't use them - # this example is using hosting something on the base domain and an element web client, so example.com and element.example.com are listed in addition to matrix.example.com + # this example is using hosting something on the base domain and an Element Web client, so example.com and element.example.com are listed in addition to matrix.example.com # if you don't use those, you can remove them - # if you use e.g. dimension on dimension.example.com, add dimension.example.com to the server_name list + # if you use e.g. Dimension on dimension.example.com, add dimension.example.com to the server_name list server_name example.com matrix.example.com element.example.com; location / { diff --git a/examples/vars.yml b/examples/vars.yml index 45c631f14..b5e0b0a35 100644 --- a/examples/vars.yml +++ b/examples/vars.yml @@ -1,6 +1,6 @@ --- # The bare domain name which represents your Matrix identity. -# Matrix user IDs for your server will be of the form (`@user:example.com`). +# Matrix user IDs for your server will be of the form (`@alice:example.com`). # # Note: this playbook does not touch the server referenced here. # Installation happens on another server ("matrix.example.com", see `matrix_server_fqn_matrix`). @@ -12,7 +12,7 @@ matrix_domain: example.com # The Matrix homeserver software to install. # See: # - `roles/custom/matrix-base/defaults/main.yml` for valid options -# - the `docs/configuring-playbook-IMPLEMENTATION_NAME.md` documentation page, if one is available for your implementation choice +# - the `docs/configuring-playbook-IMPLEMENTATION_NAME.md` documentation page, if one is available for your implementation choice # # By default, we use Synapse, because it's the only full-featured Matrix server at the moment. # @@ -20,7 +20,7 @@ matrix_domain: example.com matrix_homeserver_implementation: synapse # A secret used as a base, for generating various other secrets. -# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`). +# You can put any string here, but generating a strong one is preferred. You can create one with a command like `pwgen -s 64 1`. matrix_homeserver_generic_secret_key: '' # By default, the playbook manages its own Traefik (https://doc.traefik.io/traefik/) reverse-proxy server. @@ -28,23 +28,32 @@ matrix_homeserver_generic_secret_key: '' # For alternatives, see `docs/configuring-playbook-own-webserver.md`. matrix_playbook_reverse_proxy_type: playbook-managed-traefik -# This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains. +# Controls whether container networks will be created with IPv6 support. # -# In case SSL renewal fails at some point, you'll also get an email notification there. +# If you also have IPv6 support on your server/network and AAAA DNS records pointing to the server, +# enabling this will effectively give you full public IPv6 connectivity (powered by NAT66). # -# If you decide to use another method for managing SSL certificates (different than the default Let's Encrypt), -# you won't be required to define this variable (see `docs/configuring-playbook-ssl-certificates.md`). +# We recommend leaving this enabled even if you don't currently have IPv6 connectivity on your server/network. +# This way, once you eventually get IPv6 connectivity, you won't have to change anything (besides DNS records). # -# Example value: someone@example.com -traefik_config_certificatesResolvers_acme_email: '' +# Flipping this setting later on requires manual work (stopping services, deleting and recreating all container networks). +# +# In the future, this setting will likely default to `true`, so if you really want IPv6 disabled, explicitly set this to `false`. +# +# People managing Docker themselves and running an older Docker version will need additional configuration. +# +# Learn more in `docs/configuring-ipv6.md`. +devture_systemd_docker_base_ipv6_enabled: true # A Postgres password to use for the superuser Postgres user (called `matrix` by default). # -# The playbook creates additional Postgres users and databases (one for each enabled service) -# using this superuser account. +# The playbook creates additional Postgres users and databases (one for each enabled service) using this superuser account. +# +# Changing this value subsequently requires manual work. +# The value used here must be shorter than 100 characters. postgres_connection_password: '' -# By default, we configure Coturn's external IP address using the value specified for `ansible_host` in your `inventory/hosts` file. +# By default, we configure coturn's external IP address using the value specified for `ansible_host` in your `inventory/hosts` file. # If this value is an external IP address, you can skip this section. # # If `ansible_host` is not the server's external IP address, you have 2 choices: @@ -52,7 +61,7 @@ postgres_connection_password: '' # 2. Uncomment and adjust the line below to specify an IP address manually # # By default, auto-detection will be attempted using the `https://ifconfig.co/json` API. -# Default values for this are specified in `matrix_coturn_turn_external_ip_address_auto_detection_*` variables in the Coturn role +# Default values for this are specified in `matrix_coturn_turn_external_ip_address_auto_detection_*` variables in the coturn role # (see `roles/custom/matrix-coturn/defaults/main.yml`). # # If your server has multiple IP addresses, you may define them in another variable which allows a list of addresses. diff --git a/examples/vars.yml.license b/examples/vars.yml.license new file mode 100644 index 000000000..a0845f66a --- /dev/null +++ b/examples/vars.yml.license @@ -0,0 +1,9 @@ +SPDX-FileCopyrightText: 2017 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2018 MDAD project contributors +SPDX-FileCopyrightText: 2020 Olaf Schoenwald +SPDX-FileCopyrightText: 2021 Kim Brose +SPDX-FileCopyrightText: 2022 Marko Weltzer +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/group_vars/jitsi_jvb_servers b/group_vars/jitsi_jvb_servers index af927c9f1..91d33fead 100644 --- a/group_vars/jitsi_jvb_servers +++ b/group_vars/jitsi_jvb_servers @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Antonis Christofides +# +# SPDX-License-Identifier: AGPL-3.0-or-later + jitsi_architecture: "{{ matrix_architecture }}" jitsi_hostname: "{{ matrix_server_fqn_jitsi }}" jitsi_uid: "{{ matrix_user_uid }}" diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index fd6279e89..d858a7865 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -21,18 +21,29 @@ matrix_playbook_docker_installation_enabled: true matrix_playbook_docker_installation_daemon_options: "{{ matrix_playbook_docker_installation_daemon_options_auto | combine(matrix_playbook_docker_installation_daemon_options_custom, recursive=True) }}" -matrix_playbook_docker_installation_daemon_options_auto: - experimental: "{{ devture_systemd_docker_base_ipv6_enabled }}" - ip6tables: "{{ devture_systemd_docker_base_ipv6_enabled }}" +# Since Docker 27.0.1, Docker daemon options do not need to be changed to enable IPv6 support on the daemon side. +# See: https://docs.docker.com/engine/release-notes/27/#ipv6 +# We only enable `ip6tables` and `experimental` for people who explicitly request it (perhaps due to running an old Docker version). +# +# Despite IPv6-enablement at the Docker level being a thing, for IPv6 to work for containers +# networks need to be created with IPv6 explicitly enabled. +# This is controlled by the `devture_systemd_docker_base_ipv6_enabled` variable and it's up to the various roles to +# respect this variable when creating their networks. +matrix_playbook_docker_installation_daemon_options_auto: | + {{ + ({'experimental': true, 'ip6tables': true} if devture_systemd_docker_base_ipv6_daemon_options_changing_enabled else {}) + }} matrix_playbook_docker_installation_daemon_options_custom: {} +matrix_playbook_docker_installation_daemon_options_file_path: /etc/docker/daemon.json + # Controls whether to attach Traefik labels to services. # This is separate from `traefik_enabled`, because you may wish to disable Traefik installation by the playbook, # yet still use Traefik installed in another way. matrix_playbook_traefik_labels_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" -matrix_playbook_reverse_proxy_container_network: "{{ traefik_container_network if traefik_enabled else 'traefik' }}" +matrix_playbook_reverse_proxy_container_network: "{{ traefik_container_network if traefik_enabled else 'traefik' if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] else '' }}" matrix_playbook_reverse_proxy_hostname: "{{ traefik_identifier if traefik_enabled else 'traefik' }}" matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled: "{{ traefik_config_http_middlewares_compression_enabled if (traefik_enabled and traefik_config_http_middlewares_compression_enabled) else false }}" @@ -107,6 +118,8 @@ matrix_homeserver_container_extra_arguments_auto: | + (['--mount type=bind,src=' + matrix_hookshot_base_path + '/registration.yml,dst=/hookshot-registration.yml,ro'] if matrix_hookshot_enabled else []) + + (['--mount type=bind,src=' + matrix_mautrix_bluesky_config_path + '/registration.yaml,dst=/matrix-mautrix-bluesky-registration.yaml,ro'] if matrix_mautrix_bluesky_enabled else []) + + (['--mount type=bind,src=' + matrix_mautrix_discord_config_path + '/registration.yaml,dst=/matrix-mautrix-discord-registration.yaml,ro'] if matrix_mautrix_discord_enabled else []) + (['--mount type=bind,src=' + matrix_mautrix_slack_config_path + '/registration.yaml,dst=/matrix-mautrix-slack-registration.yaml,ro'] if matrix_mautrix_slack_enabled else []) @@ -115,8 +128,6 @@ matrix_homeserver_container_extra_arguments_auto: | + (['--mount type=bind,src=' + matrix_mautrix_googlechat_config_path + '/registration.yaml,dst=/matrix-mautrix-googlechat-registration.yaml,ro'] if matrix_mautrix_googlechat_enabled else []) + - (['--mount type=bind,src=' + matrix_mautrix_hangouts_config_path + '/registration.yaml,dst=/matrix-mautrix-hangouts-registration.yaml,ro'] if matrix_mautrix_hangouts_enabled else []) - + (['--mount type=bind,src=' + matrix_mautrix_instagram_config_path + '/registration.yaml,dst=/matrix-mautrix-instagram-registration.yaml,ro'] if matrix_mautrix_instagram_enabled else []) + (['--mount type=bind,src=' + matrix_mautrix_signal_config_path + '/registration.yaml,dst=/matrix-mautrix-signal-registration.yaml,ro'] if matrix_mautrix_signal_enabled else []) @@ -180,6 +191,8 @@ matrix_homeserver_app_service_config_files_auto: | + (['/hookshot-registration.yml'] if matrix_hookshot_enabled else []) + + (['/matrix-mautrix-bluesky-registration.yaml'] if matrix_mautrix_bluesky_enabled else []) + + (['/matrix-mautrix-discord-registration.yaml'] if matrix_mautrix_discord_enabled else []) + (['/matrix-mautrix-slack-registration.yaml'] if matrix_mautrix_slack_enabled else []) @@ -188,8 +201,6 @@ matrix_homeserver_app_service_config_files_auto: | + (['/matrix-mautrix-googlechat-registration.yaml'] if matrix_mautrix_googlechat_enabled else []) + - (['/matrix-mautrix-hangouts-registration.yaml'] if matrix_mautrix_hangouts_enabled else []) - + (['/matrix-mautrix-instagram-registration.yaml'] if matrix_mautrix_instagram_enabled else []) + (['/matrix-mautrix-signal-registration.yaml'] if matrix_mautrix_signal_enabled else []) @@ -232,7 +243,7 @@ matrix_addons_homeserver_client_api_url: "{{ ('http://' + matrix_playbook_revers matrix_addons_homeserver_systemd_services_list: "{{ ([traefik_identifier + '.service'] if matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' else []) if matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled else matrix_homeserver_systemd_services_list }}" # Starting from version `0.6.0` Conduit natively supports some sync v3 (sliding-sync) features. -matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_sliding_sync_enabled else (matrix_homeserver_url if matrix_homeserver_implementation in ['conduit'] else '') }}" +matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_sliding_sync_enabled else (matrix_homeserver_url if matrix_homeserver_implementation in ['conduit', 'conduwuit'] else '') }}" ######################################################################## # # @@ -249,7 +260,7 @@ matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_s # This list is not exhaustive and final. # Synapse workers are still injected into the list at runtime. -# Additional JVB workers (jitsi_jvb.yml -- roles/galaxy/jitsi/tasks/init_additional_jvb.yml) override this variable at runtime as well. +# Additional JVB workers (jitsi_jvb.yml — roles/galaxy/jitsi/tasks/init_additional_jvb.yml) override this variable at runtime as well. # # Priority levels are like this: # - Traefik starts first with a level of 250, so that: @@ -257,19 +268,19 @@ matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_s # - so that addon services (starting later) can communicte with the homeserver via Traefik's internal entrypoint # (see `matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled`) # - core services (the homeserver) get a level of ~1000 -# - services that the homeserver depends on (database, Redis, ntfy, Coturn, etc.) get a lower level - between 500 and 1000 -# - Coturn gets a higher level if `devture_systemd_service_manager_service_restart_mode == 'one-by-one'` to intentionally delay it, because: +# - services that the homeserver depends on (database, Redis, ntfy, coturn, etc.) get a lower level — between 500 and 1000 +# - coturn gets a higher level if `devture_systemd_service_manager_service_restart_mode == 'one-by-one'` to intentionally delay it, because: # - starting services one by one means that the service manager role waits for each service to fully start before proceeding to the next one -# - if Coturn has a lower priority than the homeserver, it would be started before it -# - since Coturn is started before the homeserver, there's no container label telling Traefik to get a `matrix.example.com` certificate -# - thus, Coturn would spin and wait for a certificate until it fails. We'd get a playbook failure due to it, but service manager will proceed to start all other services anyway. +# - if coturn has a lower priority than the homeserver, it would be started before it +# - since coturn is started before the homeserver, there's no container label telling Traefik to get a `matrix.example.com` certificate +# - thus, coturn would spin and wait for a certificate until it fails. We'd get a playbook failure due to it, but service manager will proceed to start all other services anyway. # - only later, when the homeserver actually starts, would that certificate be fetched and dumped # - reverse-proxying services get level 3000 # - Matrix utility services (bridges, bots) get a level of 2000/2200, so that: # - they can start before the reverse-proxy # - so that, when the reverse-proxy is up (Matrix is up), all bots and bridges can be interacted with -# - monitoring services (Prometheus, Grafana, ..) get a level of 4000 - they can start later than all-of-Matrix -# - services which aren't time-sensitive (various crons and timers) get a level of 5000 - they can start later than all-of-Matrix +# - monitoring services (Prometheus, Grafana, …) get a level of 4000 — they can start later than all-of-Matrix +# - services which aren't time-sensitive (various crons and timers) get a level of 5000 — they can start later than all-of-Matrix devture_systemd_service_manager_services_list_auto: | {{ ([{'name': (backup_borg_identifier + '.timer'), 'priority': 5000, 'groups': ['matrix', 'backup', 'borg']}] if backup_borg_enabled else []) @@ -324,6 +335,8 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-hookshot.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'hookshot', 'bridge-hookshot']}] if matrix_hookshot_enabled else []) + + ([{'name': 'matrix-mautrix-bluesky.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-bluesky']}] if matrix_mautrix_bluesky_enabled else []) + + ([{'name': 'matrix-mautrix-discord.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-discord']}] if matrix_mautrix_discord_enabled else []) + ([{'name': 'matrix-mautrix-slack.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-slack']}] if matrix_mautrix_slack_enabled else []) @@ -332,8 +345,6 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-mautrix-googlechat.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-googlechat']}] if matrix_mautrix_googlechat_enabled else []) + - ([{'name': 'matrix-mautrix-hangouts.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-hangouts']}] if matrix_mautrix_hangouts_enabled else []) - + ([{'name': 'matrix-mautrix-instagram.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-instagram']}] if matrix_mautrix_instagram_enabled else []) + ([{'name': 'matrix-mautrix-signal.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-signal', 'mautrix-signal']}] if matrix_mautrix_signal_enabled else []) @@ -382,6 +393,8 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-client-schildichat.service', 'priority': 2000, 'groups': ['matrix', 'clients', 'schildichat', 'client-schildichat']}] if matrix_client_schildichat_enabled else []) + + ([{'name': 'matrix-client-fluffychat.service', 'priority': 2000, 'groups': ['matrix', 'clients', 'fluffychat', 'client-fluffychat']}] if matrix_client_fluffychat_enabled else []) + + ([{'name': ('matrix-' + matrix_homeserver_implementation + '.service'), 'priority': 1000, 'groups': ['matrix', 'homeservers', matrix_homeserver_implementation]}] if matrix_homeserver_enabled else []) + ([{'name': 'matrix-corporal.service', 'priority': 1500, 'groups': ['matrix', 'corporal']}] if matrix_corporal_enabled else []) @@ -396,8 +409,6 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-dynamic-dns.service', 'priority': 5000, 'groups': ['matrix', 'dynamic-dns']}] if matrix_dynamic_dns_enabled else []) + - ([{'name': 'matrix-email2matrix.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'email2matrix']}] if matrix_email2matrix_enabled else []) - + ([{'name': (etherpad_identifier + '.service'), 'priority': 4000, 'groups': ['matrix', 'etherpad']}] if etherpad_enabled else []) + ([{'name': (grafana_identifier + '.service'), 'priority': 4000, 'groups': ['matrix', 'monitoring', 'grafana']}] if grafana_enabled else []) @@ -432,10 +443,6 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-prometheus-nginxlog-exporter.service', 'priority': 3900, 'groups': ['matrix', 'monitoring', 'prometheus-exporters', 'prometheus-nginxlog-exporter']}] if matrix_prometheus_nginxlog_exporter_enabled else []) + - ([{'name': (redis_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'redis']}] if redis_enabled else []) - + - ([{'name': (keydb_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'keydb']}] if keydb_enabled else []) - + ([{'name': (valkey_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'valkey']}] if valkey_enabled else []) + ([{'name': 'matrix-pantalaimon.service', 'priority': 4000, 'groups': ['matrix', 'pantalaimon']}] if matrix_pantalaimon_enabled else []) @@ -468,7 +475,7 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': (matrix_static_files_identifier + '.service'), 'priority': 4000, 'groups': ['matrix', 'matrix-static-files']}] if matrix_static_files_enabled else []) + - ([{'name': (devture_container_socket_proxy_identifier + '.service'), 'priority': 200, 'groups': ['matrix', 'reverse-proxies', 'container-socket-proxy']}] if devture_container_socket_proxy_enabled else []) + ([{'name': (container_socket_proxy_identifier + '.service'), 'priority': 200, 'groups': ['matrix', 'reverse-proxies', 'container-socket-proxy']}] if container_socket_proxy_enabled else []) + ([{'name': (traefik_identifier + '.service'), 'priority': 250, 'groups': ['matrix', 'traefik', 'reverse-proxies']}] if traefik_enabled else []) + @@ -559,6 +566,7 @@ matrix_homeserver_container_client_api_endpoint: |- 'synapse': ('matrix-synapse-reverse-proxy-companion:8008' if matrix_synapse_reverse_proxy_companion_enabled | default(false) else ('matrix-synapse:'+ matrix_synapse_container_client_api_port | default('8008') | string)), 'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string), 'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string), + 'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string), }[matrix_homeserver_implementation] }} @@ -568,6 +576,7 @@ matrix_homeserver_container_federation_api_endpoint: |- 'synapse': ('matrix-synapse-reverse-proxy-companion:8048' if matrix_synapse_reverse_proxy_companion_enabled else ('matrix-synapse:'+ matrix_synapse_container_federation_api_plain_port | default('8008') | string)), 'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string), 'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string), + 'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string), }[matrix_homeserver_implementation] }} @@ -590,6 +599,8 @@ matrix_integration_manager_ui_url: "{{ matrix_dimension_integrations_ui_url if m # We don't enable this by default. matrix_alertmanager_receiver_enabled: false +matrix_alertmanager_receiver_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_alertmanager_receiver_container_image_registry_prefix_upstream_default }}" + matrix_alertmanager_receiver_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_alertmanager_receiver_container_network: "{{ matrix_addons_container_network }}" @@ -673,6 +684,8 @@ matrix_authentication_service_config_email_port: "{{ 8025 if exim_relay_enabled matrix_authentication_service_config_email_mode: "{{ 'plain' if exim_relay_enabled else 'starttls' }}" matrix_authentication_service_config_email_from_address: "{{ exim_relay_sender_address }}" +matrix_authentication_service_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_authentication_service_container_image_registry_prefix_upstream_default }}" + matrix_authentication_service_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_authentication_service_container_network: "{{ matrix_homeserver_container_network }}" @@ -745,6 +758,8 @@ matrix_appservice_discord_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_discord_database_hostname == postgres_connection_hostname) else []) }} +matrix_appservice_discord_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_discord_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_discord_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9005') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_appservice_discord_container_network: "{{ matrix_addons_container_network }}" @@ -759,7 +774,7 @@ matrix_appservice_discord_container_additional_networks_auto: |- }} # If the homeserver disables presence, it's likely better (less wasteful) to also disable presence on the bridge side. -matrix_appservice_discord_bridge_disablePresence: "{{ not matrix_synapse_presence_enabled }}" +matrix_appservice_discord_bridge_disablePresence: "{{ (not matrix_synapse_presence_enabled) if matrix_homeserver_implementation == 'synapse' else false }}" matrix_appservice_discord_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'discord.as.token', rounds=655555) | to_uuid }}" @@ -794,6 +809,8 @@ matrix_appservice_webhooks_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_appservice_webhooks_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_webhooks_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_webhooks_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_appservice_webhooks_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ matrix_appservice_webhooks_matrix_port) if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -846,6 +863,8 @@ matrix_appservice_slack_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_slack_database_hostname == postgres_connection_hostname) else []) }} +matrix_appservice_slack_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_slack_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_slack_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_appservice_slack_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ matrix_appservice_slack_slack_port) if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -903,6 +922,8 @@ matrix_appservice_irc_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_irc_database_hostname == postgres_connection_hostname) else []) }} +matrix_appservice_irc_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_irc_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_irc_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_appservice_irc_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9999') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -920,7 +941,7 @@ matrix_appservice_irc_container_additional_networks_auto: |- # The IRC bridge docs say that if homeserver presence is disabled, it's better to also disable # IRC bridge presence, for performance reasons. -matrix_appservice_irc_homeserver_enablePresence: "{{ matrix_synapse_presence_enabled }}" +matrix_appservice_irc_homeserver_enablePresence: "{{ matrix_synapse_presence_enabled if matrix_homeserver_implementation == 'synapse' else true }}" matrix_appservice_irc_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'irc.as.token', rounds=655555) | to_uuid }}" @@ -954,6 +975,10 @@ matrix_appservice_kakaotalk_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_kakaotalk_database_hostname == postgres_connection_hostname) else []) }} +matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream_default }}" + +matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_kakaotalk_container_network: "{{ matrix_addons_container_network }}" matrix_appservice_kakaotalk_container_additional_networks_auto: |- @@ -999,6 +1024,8 @@ matrix_beeper_linkedin_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_beeper_linkedin_database_hostname == postgres_connection_hostname) else []) }} +matrix_beeper_linkedin_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_beeper_linkedin_docker_image_registry_prefix_upstream_default }}" + matrix_beeper_linkedin_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_beeper_linkedin_container_network: "{{ matrix_addons_container_network }}" @@ -1017,18 +1044,20 @@ matrix_beeper_linkedin_appservice_token: "{{ '%s' | format(matrix_homeserver_gen matrix_beeper_linkedin_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_beeper_linkedin_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'linked.hs.token', rounds=655555) | to_uuid }}" -matrix_beeper_linkedin_login_shared_secret: |- +matrix_beeper_linkedin_bridge_login_shared_secret_map_auto: |- {{ - ("as_token:" + matrix_appservice_double_puppet_registration_as_token) + ({ + matrix_beeper_linkedin_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token) + }) if matrix_appservice_double_puppet_enabled else ( - matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled + {matrix_beeper_linkedin_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret} if matrix_synapse_ext_password_provider_shared_secret_auth_enabled - else "" + else {} ) }} -matrix_beeper_linkedin_bridge_presence: "{{ matrix_synapse_presence_enabled if matrix_synapse_enabled else true }}" +matrix_beeper_linkedin_bridge_presence: "{{ (matrix_synapse_presence_enabled if matrix_synapse_enabled else true) if matrix_homeserver_implementation == 'synapse' else true }}" matrix_beeper_linkedin_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" matrix_beeper_linkedin_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maulinkedin.db', rounds=655555) | to_uuid }}" @@ -1056,6 +1085,8 @@ matrix_go_skype_bridge_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_go_skype_bridge_database_hostname == postgres_connection_hostname) else []) }} +matrix_go_skype_bridge_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default }}" + matrix_go_skype_bridge_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_go_skype_bridge_container_network: "{{ matrix_addons_container_network }}" @@ -1087,6 +1118,77 @@ matrix_go_skype_bridge_database_password: "{{ '%s' | format(matrix_homeserver_ge # ###################################################################### +###################################################################### +# +# matrix-bridge-mautrix-bluesky +# +###################################################################### + +# We don't enable bridges by default. +matrix_mautrix_bluesky_enabled: false + +matrix_mautrix_bluesky_systemd_required_services_list_auto: | + {{ + matrix_addons_homeserver_systemd_services_list + + + ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_bluesky_database_hostname == postgres_connection_hostname) else []) + }} + +matrix_mautrix_bluesky_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_bluesky_docker_image_registry_prefix_upstream_default }}" + +matrix_mautrix_bluesky_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" + +matrix_mautrix_bluesky_container_network: "{{ matrix_addons_container_network }}" + +matrix_mautrix_bluesky_container_additional_networks_auto: |- + {{ + ( + ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) + + + ([postgres_container_network] if (postgres_enabled and matrix_mautrix_bluesky_database_hostname == postgres_connection_hostname and matrix_mautrix_bluesky_container_network != postgres_container_network) else []) + + + ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and matrix_mautrix_bluesky_container_labels_traefik_enabled else []) + ) | unique + }} + +matrix_mautrix_bluesky_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" +matrix_mautrix_bluesky_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" +matrix_mautrix_bluesky_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" +matrix_mautrix_bluesky_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" + +matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}" +matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}" + +matrix_mautrix_bluesky_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'bsky.as.token', rounds=655555) | to_uuid }}" + +matrix_mautrix_bluesky_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" +matrix_mautrix_bluesky_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'bsky.hs.token', rounds=655555) | to_uuid }}" + +matrix_mautrix_bluesky_provisioning_shared_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.bsky.prov', rounds=655555) | to_uuid }}" + +matrix_mautrix_bluesky_double_puppet_secrets_auto: |- + {{ + ({ + matrix_mautrix_bluesky_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token) + }) + if matrix_appservice_double_puppet_enabled + else {} + }} + +matrix_mautrix_bluesky_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" + +matrix_mautrix_bluesky_metrics_proxying_enabled: "{{ matrix_mautrix_bluesky_metrics_enabled and matrix_metrics_exposure_enabled }}" +matrix_mautrix_bluesky_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}" +matrix_mautrix_bluesky_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/mautrix-bluesky" + +matrix_mautrix_bluesky_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" +matrix_mautrix_bluesky_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.twt.db', rounds=655555) | to_uuid if postgres_enabled else '' }}" + +###################################################################### +# +# /matrix-bridge-mautrix-bluesky +# +###################################################################### ###################################################################### # @@ -1097,6 +1199,8 @@ matrix_go_skype_bridge_database_password: "{{ '%s' | format(matrix_homeserver_ge # We don't enable bridges by default. matrix_mautrix_discord_enabled: false +matrix_mautrix_discord_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_discord_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_discord_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mautrix_discord_container_network: "{{ matrix_addons_container_network }}" @@ -1107,9 +1211,16 @@ matrix_mautrix_discord_container_additional_networks_auto: |- ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) + ([postgres_container_network] if postgres_enabled and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname else []) + + + ([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_mautrix_discord_container_labels_traefik_enabled) else []) ) | unique }} +matrix_mautrix_discord_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" +matrix_mautrix_discord_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" +matrix_mautrix_discord_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" +matrix_mautrix_discord_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" + matrix_mautrix_discord_systemd_required_services_list_auto: | {{ matrix_addons_homeserver_systemd_services_list @@ -1120,9 +1231,13 @@ matrix_mautrix_discord_systemd_required_services_list_auto: | matrix_mautrix_discord_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maudisc.as.tok', rounds=655555) | to_uuid }}" matrix_mautrix_discord_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" -matrix_mautrix_discord_homeserver_public_address: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_server_fqn_matrix }}" matrix_mautrix_discord_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maudisc.hs.tok', rounds=655555) | to_uuid }}" +matrix_mautrix_discord_bridge_avatar_proxy_key: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maudisc.avatar', rounds=655555) | to_uuid }}" + +matrix_mautrix_discord_hostname: "{{ matrix_server_fqn_matrix }}" +matrix_mautrix_discord_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" + matrix_mautrix_discord_bridge_login_shared_secret_map_auto: |- {{ ({ @@ -1164,6 +1279,8 @@ matrix_mautrix_slack_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_slack_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_slack_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_slack_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_slack_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mautrix_slack_container_network: "{{ matrix_addons_container_network }}" @@ -1222,6 +1339,8 @@ matrix_mautrix_facebook_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_facebook_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_facebook_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_facebook_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_facebook_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9008') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -1259,7 +1378,7 @@ matrix_mautrix_facebook_appservice_public_prefix: "/{{ '%s' | format(matrix_home matrix_mautrix_facebook_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" -matrix_mautrix_facebook_bridge_presence: "{{ matrix_synapse_presence_enabled if matrix_synapse_enabled else true }}" +matrix_mautrix_facebook_bridge_presence: "{{ (matrix_synapse_presence_enabled if matrix_synapse_enabled else true) if matrix_homeserver_implementation == 'synapse' else true }}" matrix_mautrix_facebook_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" @@ -1296,6 +1415,8 @@ matrix_mautrix_googlechat_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_googlechat_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_googlechat_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_googlechat_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_googlechat_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_googlechat_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9007') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -1357,73 +1478,6 @@ matrix_mautrix_googlechat_database_password: "{{ '%s' | format(matrix_homeserver ###################################################################### -###################################################################### -# -# matrix-bridge-mautrix-hangouts -# -###################################################################### - -# We don't enable bridges by default. -matrix_mautrix_hangouts_enabled: false - -matrix_mautrix_hangouts_systemd_required_services_list_auto: | - {{ - matrix_addons_homeserver_systemd_services_list - + - ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_hangouts_database_hostname == postgres_connection_hostname) else []) - }} - -matrix_mautrix_hangouts_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" - -matrix_mautrix_hangouts_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9007') if matrix_playbook_service_host_bind_interface_prefix else '' }}" - -matrix_mautrix_hangouts_container_network: "{{ matrix_addons_container_network }}" - -matrix_mautrix_hangouts_container_additional_networks_auto: |- - {{ - ( - ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) - + - ([postgres_container_network] if (postgres_enabled and matrix_mautrix_hangouts_database_hostname == postgres_connection_hostname and matrix_mautrix_hangouts_container_network != postgres_container_network) else []) - + - ([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_mautrix_gmessages_container_labels_traefik_enabled) else []) - ) | unique - }} - -matrix_mautrix_hangouts_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" -matrix_mautrix_hangouts_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" -matrix_mautrix_hangouts_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" -matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" - -matrix_mautrix_hangouts_container_labels_public_endpoint_hostname: "{{ matrix_server_fqn_matrix }}" - -matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}" -matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}" - -matrix_mautrix_hangouts_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ho.as.token', rounds=655555) | to_uuid }}" - -matrix_mautrix_hangouts_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" -matrix_mautrix_hangouts_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ho.hs.token', rounds=655555) | to_uuid }}" - -matrix_mautrix_hangouts_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" - -matrix_mautrix_hangouts_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" - -matrix_mautrix_hangouts_metrics_proxying_enabled: "{{ matrix_mautrix_hangouts_metrics_enabled and matrix_metrics_exposure_enabled }}" -matrix_mautrix_hangouts_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}" -matrix_mautrix_hangouts_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/mautrix-hangouts" - -# Postgres is the default, except if not using internal Postgres server -matrix_mautrix_hangouts_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}" -matrix_mautrix_hangouts_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" -matrix_mautrix_hangouts_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.hangouts.db', rounds=655555) | to_uuid }}" - -###################################################################### -# -# /matrix-bridge-mautrix-hangouts -# -###################################################################### - ###################################################################### # @@ -1441,6 +1495,8 @@ matrix_mautrix_instagram_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_instagram_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_instagram_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_instagram_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_instagram_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_instagram_container_network: "{{ matrix_addons_container_network }}" @@ -1471,7 +1527,7 @@ matrix_mautrix_instagram_homeserver_token: "{{ '%s' | format(matrix_homeserver_g matrix_mautrix_instagram_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" -matrix_mautrix_instagram_bridge_presence: "{{ matrix_synapse_presence_enabled if matrix_synapse_enabled else true }}" +matrix_mautrix_instagram_bridge_presence: "{{ (matrix_synapse_presence_enabled if matrix_synapse_enabled else true) if matrix_homeserver_implementation == 'synapse' else true }}" matrix_mautrix_instagram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" @@ -1507,6 +1563,8 @@ matrix_mautrix_signal_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_signal_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_signal_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_signal_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_signal_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mautrix_signal_container_network: "{{ matrix_addons_container_network }}" @@ -1581,6 +1639,8 @@ matrix_mautrix_meta_messenger_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_meta_messenger_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream_default }}" + matrix_mautrix_meta_messenger_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_meta_messenger_container_network: "{{ matrix_addons_container_network }}" @@ -1655,6 +1715,8 @@ matrix_mautrix_meta_instagram_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_meta_instagram_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream_default }}" + matrix_mautrix_meta_instagram_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_meta_instagram_container_network: "{{ matrix_addons_container_network }}" @@ -1731,10 +1793,14 @@ matrix_mautrix_telegram_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_telegram_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream_default }}" + +matrix_mautrix_telegram_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_telegram_docker_image_registry_prefix_upstream_default }}" + # Images are multi-arch (amd64 and arm64, but not arm32). matrix_mautrix_telegram_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" -matrix_telegram_lottieconverter_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" -matrix_telegram_lottieconverter_container_image_self_build_mask_arch: "{{ matrix_architecture != 'amd64' }}" +matrix_mautrix_telegram_lottieconverter_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" +matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch: "{{ matrix_architecture != 'amd64' }}" matrix_mautrix_telegram_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9006') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -1811,6 +1877,8 @@ matrix_mautrix_twitter_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_twitter_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_twitter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_twitter_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_twitter_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_mautrix_twitter_container_network: "{{ matrix_addons_container_network }}" @@ -1839,17 +1907,15 @@ matrix_mautrix_twitter_appservice_token: "{{ '%s' | format(matrix_homeserver_gen matrix_mautrix_twitter_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_twitter_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'twt.hs.token', rounds=655555) | to_uuid }}" -matrix_mautrix_twitter_bridge_login_shared_secret_map_auto: |- +matrix_mautrix_twitter_provisioning_shared_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.twit.prov', rounds=655555) | to_uuid }}" + +matrix_mautrix_twitter_double_puppet_secrets_auto: |- {{ ({ matrix_mautrix_twitter_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token) }) if matrix_appservice_double_puppet_enabled - else ( - {matrix_mautrix_twitter_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret} - if matrix_synapse_ext_password_provider_shared_secret_auth_enabled - else {} - ) + else {} }} matrix_mautrix_twitter_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" @@ -1883,6 +1949,8 @@ matrix_mautrix_gmessages_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else []) }} +matrix_mautrix_gmessages_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_gmessages_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_gmessages_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mautrix_gmessages_container_network: "{{ matrix_addons_container_network }}" @@ -1960,6 +2028,8 @@ matrix_mautrix_wsproxy_hostname: "wsproxy.{{ matrix_mautrix_wsproxy_homeserver_d matrix_mautrix_wsproxy_syncproxy_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" +matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_wsproxy_container_network: "{{ matrix_addons_container_network }}" matrix_mautrix_wsproxy_container_additional_networks: | @@ -2003,6 +2073,8 @@ matrix_wechat_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_wechat_database_hostname == postgres_connection_hostname) else []) }} +matrix_wechat_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_wechat_container_image_registry_prefix_upstream_default }}" + matrix_wechat_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_wechat_agent_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" @@ -2047,6 +2119,8 @@ matrix_wechat_database_password: "{{ '%s' | format(matrix_homeserver_generic_sec # We don't enable bridges by default. matrix_mautrix_whatsapp_enabled: false +matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream_default }}" + matrix_mautrix_whatsapp_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mautrix_whatsapp_container_network: "{{ matrix_addons_container_network }}" @@ -2124,6 +2198,8 @@ matrix_sms_bridge_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else []) }} +matrix_sms_bridge_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_sms_bridge_docker_image_registry_prefix_upstream_default }}" + matrix_sms_bridge_container_network: "{{ matrix_addons_container_network }}" matrix_sms_bridge_container_additional_networks_auto: |- @@ -2159,6 +2235,8 @@ matrix_heisenbridge_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_heisenbridge_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_heisenbridge_docker_image_registry_prefix_upstream_default }}" + matrix_heisenbridge_container_network: "{{ matrix_addons_container_network }}" matrix_heisenbridge_container_additional_networks_auto: |- @@ -2196,6 +2274,8 @@ matrix_heisenbridge_homeserver_url: "{{ matrix_addons_homeserver_client_api_url # We don't enable bridges by default. matrix_hookshot_enabled: false +matrix_hookshot_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_hookshot_docker_image_registry_prefix_upstream_default }}" + matrix_hookshot_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_hookshot_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'hookshot.as.tok', rounds=655555) | to_uuid }}" @@ -2208,17 +2288,13 @@ matrix_hookshot_systemd_wanted_services_list: | {{ matrix_addons_homeserver_systemd_services_list + - ([(redis_identifier + '.service')] if redis_enabled and matrix_hookshot_cache_redis_host == redis_identifier else []) - + - ([(keydb_identifier + '.service')] if keydb_enabled and matrix_hookshot_cache_redis_host == keydb_identifier else []) - + ([(valkey_identifier + '.service')] if valkey_enabled and matrix_hookshot_cache_redis_host == valkey_identifier else []) }} # Hookshot's experimental encryption feature (and possibly others) may benefit from Redis, if available. # We only connect to Redis if encryption is enabled (not for everyone who has Redis enabled), # because connectivity is still potentially troublesome and is to be investigated. -matrix_hookshot_cache_redis_host: "{{ valkey_identifier if valkey_enabled else (redis_identifier if redis_enabled else (keydb_identifier if keydb_enabled else '')) }}" +matrix_hookshot_cache_redis_host: "{{ valkey_identifier if valkey_enabled else '' }}" matrix_hookshot_container_network: "{{ matrix_addons_container_network }}" @@ -2227,10 +2303,6 @@ matrix_hookshot_container_additional_networks_auto: | ( ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) + - ([redis_container_network] if redis_enabled and matrix_hookshot_cache_redis_host == redis_identifier else []) - + - ([keydb_container_network] if keydb_enabled and matrix_hookshot_cache_redis_host == keydb_identifier else []) - + ([valkey_container_network] if valkey_enabled and matrix_hookshot_cache_redis_host == valkey_identifier else []) + ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and matrix_hookshot_container_labels_traefik_enabled else []) @@ -2288,6 +2360,8 @@ matrix_mx_puppet_slack_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_slack_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_slack_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_slack_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_slack_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_mx_puppet_slack_container_network: "{{ matrix_addons_container_network }}" @@ -2346,6 +2420,8 @@ matrix_mx_puppet_twitter_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_twitter_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_twitter_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_mx_puppet_twitter_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '' ~ matrix_mx_puppet_twitter_appservice_port) if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -2405,6 +2481,8 @@ matrix_mx_puppet_instagram_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_instagram_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_instagram_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_mx_puppet_instagram_container_network: "{{ matrix_addons_container_network }}" @@ -2454,6 +2532,8 @@ matrix_mx_puppet_discord_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_discord_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_discord_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_discord_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_discord_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_mx_puppet_discord_container_network: "{{ matrix_addons_container_network }}" @@ -2503,6 +2583,8 @@ matrix_mx_puppet_steam_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_steam_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_steam_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_steam_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_steam_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_mx_puppet_steam_container_network: "{{ matrix_addons_container_network }}" @@ -2553,6 +2635,8 @@ matrix_mx_puppet_groupme_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mx_puppet_groupme_database_hostname == postgres_connection_hostname) else []) }} +matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream_default }}" + matrix_mx_puppet_groupme_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_mx_puppet_groupme_container_network: "{{ matrix_addons_container_network }}" @@ -2595,6 +2679,8 @@ matrix_mx_puppet_groupme_database_password: "{{ '%s' | format(matrix_homeserver_ # We don't enable bridges by default. matrix_postmoogle_enabled: false +matrix_postmoogle_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_postmoogle_docker_image_registry_prefix_upstream_default }}" + matrix_postmoogle_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_postmoogle_ssl_path: |- @@ -2678,6 +2764,8 @@ matrix_bot_matrix_reminder_bot_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if postgres_enabled and matrix_bot_matrix_reminder_bot_database_hostname == postgres_connection_hostname else []) }} +matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream_default }}" + matrix_bot_matrix_reminder_bot_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_bot_matrix_reminder_bot_container_network: "{{ matrix_addons_container_network }}" @@ -2723,16 +2811,20 @@ matrix_bot_matrix_registration_bot_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream_default }}" + matrix_bot_matrix_registration_bot_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_bot_matrix_registration_bot_container_network: "{{ matrix_addons_container_network }}" matrix_bot_matrix_registration_bot_container_additional_networks_auto: |- {{ - ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) + ([matrix_homeserver_container_network] if matrix_bot_matrix_registration_bot_container_network != matrix_homeserver_container_network else []) }} -matrix_bot_matrix_registration_bot_matrix_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" +# Using `matrix_addons_homeserver_client_api_url` would not work here, +# because `matrix-traefik:8008` (matrix-internal-client-api) does not expose any `/_synapse` paths. +matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_container_url }}" ###################################################################### # @@ -2768,6 +2860,8 @@ matrix_bot_maubot_homeserver_secret: |- }[matrix_homeserver_implementation] | default('') }} +matrix_bot_maubot_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_maubot_docker_image_registry_prefix_upstream_default }}" + matrix_bot_maubot_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_bot_maubot_container_management_interface_http_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '' ~ matrix_bot_maubot_server_port | string) if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -2824,6 +2918,8 @@ matrix_bot_honoroit_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if postgres_enabled and matrix_bot_honoroit_database_hostname == postgres_connection_hostname else []) }} +matrix_bot_honoroit_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_honoroit_docker_image_registry_prefix_upstream_default }}" + matrix_bot_honoroit_container_network: "{{ matrix_addons_container_network }}" matrix_bot_honoroit_container_additional_networks: | @@ -2878,6 +2974,8 @@ matrix_bot_buscarron_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_bot_buscarron_database_hostname == postgres_connection_hostname) else []) }} +matrix_bot_buscarron_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_buscarron_docker_image_registry_prefix_upstream_default }}" + matrix_bot_buscarron_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_bot_buscarron_container_network: "{{ matrix_addons_container_network }}" @@ -2921,6 +3019,8 @@ matrix_bot_buscarron_database_password: "{{ '%s' | format(matrix_homeserver_gene # We don't enable bots by default. matrix_bot_baibot_enabled: false +matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_baibot_container_image_registry_prefix_upstream_default }}" + matrix_bot_baibot_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_bot_baibot_systemd_required_services_list_auto: | @@ -2954,6 +3054,8 @@ matrix_bot_baibot_container_additional_networks_auto: |- # We don't enable bots by default. matrix_bot_chatgpt_enabled: false +matrix_bot_chatgpt_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_chatgpt_container_image_registry_prefix_upstream_default }}" + matrix_bot_chatgpt_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_bot_chatgpt_container_network: "{{ matrix_addons_container_network }}" @@ -2988,6 +3090,8 @@ matrix_bot_go_neb_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_bot_go_neb_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_go_neb_container_image_registry_prefix_upstream_default }}" + matrix_bot_go_neb_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '4050') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_bot_go_neb_container_network: "{{ matrix_addons_container_network }}" @@ -3029,6 +3133,8 @@ matrix_bot_mjolnir_systemd_required_services_list_auto: | (['matrix-pantalaimon.service'] if matrix_bot_mjolnir_pantalaimon_use else []) }} +matrix_bot_mjolnir_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_mjolnir_docker_image_registry_prefix_upstream_default }}" + matrix_bot_mjolnir_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_bot_mjolnir_container_network: "{{ matrix_addons_container_network }}" @@ -3065,6 +3171,8 @@ matrix_bot_draupnir_systemd_required_services_list_auto: | (['matrix-pantalaimon.service'] if matrix_bot_draupnir_pantalaimon_use else []) }} +matrix_bot_draupnir_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bot_draupnir_docker_image_registry_prefix_upstream_default }}" + matrix_bot_draupnir_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_bot_draupnir_container_network: "{{ matrix_addons_container_network }}" @@ -3113,6 +3221,8 @@ matrix_appservice_draupnir_for_all_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_draupnir_for_all_database_hostname == postgres_connection_hostname) else []) }} +matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream_default }}" + matrix_appservice_draupnir_for_all_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_appservice_draupnir_for_all_container_network: "{{ matrix_addons_container_network }}" @@ -3170,6 +3280,8 @@ matrix_pantalaimon_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_pantalaimon_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_pantalaimon_docker_image_registry_prefix_upstream_default }}" + matrix_pantalaimon_container_network: "{{ matrix_homeserver_container_network }}" matrix_pantalaimon_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" @@ -3192,7 +3304,6 @@ matrix_pantalaimon_homeserver_url: "{{ matrix_addons_homeserver_client_api_url } backup_borg_enabled: false backup_borg_identifier: matrix-backup-borg -backup_borg_retention_prefix: matrix- backup_borg_storage_archive_name_format: matrix-{now:%Y-%m-%d-%H%M%S} backup_borg_base_path: "{{ matrix_base_data_path }}/backup-borg" @@ -3201,6 +3312,8 @@ backup_borg_username: "{{ matrix_user_username }}" backup_borg_uid: "{{ matrix_user_uid }}" backup_borg_gid: "{{ matrix_user_gid }}" +backup_borg_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else backup_borg_docker_image_registry_prefix_upstream_default }}" + backup_borg_container_network: "{{ postgres_container_network if postgres_enabled else backup_borg_identifier }}" backup_borg_postgresql_version_detection_postgres_role_name: "{{ 'galaxy/postgres' if postgres_enabled else '' }}" @@ -3212,14 +3325,14 @@ backup_borg_postgresql_databases_hostname: "{{ postgres_connection_hostname if p backup_borg_postgresql_databases_username: "{{ postgres_connection_username if postgres_enabled else '' }}" backup_borg_postgresql_databases_password: "{{ postgres_connection_password if postgres_enabled else '' }}" backup_borg_postgresql_databases_port: "{{ postgres_connection_port if postgres_enabled else 5432 }}" -backup_borg_postgresql_databases: "{{ postgres_managed_databases | map(attribute='name') if postgres_enabled else [] }}" +backup_borg_postgresql_databases_auto: "{{ postgres_managed_databases | map(attribute='name') if postgres_enabled else [] }}" backup_borg_location_source_directories: - "{{ matrix_base_data_path }}" backup_borg_location_exclude_patterns: | {{ - ([matrix_synapse_media_store_path + '/local_thumbnails', matrix_synapse_media_store_path + '/remote_thumbnail', matrix_synapse_media_store_path + '/url_cache', matrix_synapse_media_store_path + '/url_cache_thumbnails'] if matrix_homeserver_implementation == 'synapse' else []) + ([matrix_synapse_media_store_path + '/remote_content', matrix_synapse_media_store_path + '/local_thumbnails', matrix_synapse_media_store_path + '/remote_thumbnail', matrix_synapse_media_store_path + '/url_cache', matrix_synapse_media_store_path + '/url_cache_thumbnails'] if matrix_homeserver_implementation == 'synapse' else []) + ([postgres_data_path] if postgres_enabled else []) }} @@ -3251,6 +3364,8 @@ matrix_cactus_comments_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_cactus_comments_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_cactus_comments_docker_image_registry_prefix_upstream_default }}" + matrix_cactus_comments_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_cactus_comments_container_network: "{{ matrix_addons_container_network }}" @@ -3281,6 +3396,8 @@ matrix_cactus_comments_client_enabled: "{{ matrix_cactus_comments_enabled }}" matrix_cactus_comments_client_hostname: "{{ matrix_server_fqn_matrix }}" +matrix_cactus_comments_client_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_cactus_comments_client_container_image_registry_prefix_upstream_default }}" + matrix_cactus_comments_client_container_network: "{{ matrix_addons_container_network }}" matrix_cactus_comments_client_container_additional_networks_auto: |- @@ -3314,7 +3431,9 @@ matrix_corporal_systemd_required_services_list_auto: | (['matrix-' + matrix_homeserver_implementation + '.service']) }} -matrix_corporal_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm32', 'arm64'] }}" +matrix_corporal_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_corporal_docker_image_registry_prefix_upstream_default }}" + +matrix_corporal_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_corporal_container_http_gateway_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '41080') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_corporal_container_http_api_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '41081') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -3366,6 +3485,8 @@ matrix_rageshake_container_image_self_build: "{{ matrix_architecture not in ['am matrix_rageshake_hostname: "{{ matrix_server_fqn_rageshake }}" +matrix_rageshake_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_rageshake_container_image_registry_prefix_upstream_default }}" + matrix_rageshake_container_network: matrix-rageshake matrix_rageshake_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" @@ -3391,6 +3512,8 @@ matrix_rageshake_container_labels_traefik_tls_certResolver: "{{ traefik_certReso matrix_coturn_enabled: true +matrix_coturn_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_coturn_docker_image_registry_prefix_upstream_default }}" + matrix_coturn_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm32', 'arm64'] }}" # We make the assumption that `ansible_host` points to an external IP address, which may not always be the case. @@ -3462,11 +3585,13 @@ matrix_coturn_systemd_required_services_list: | matrix_dimension_enabled: false -matrix_dimension_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" - matrix_dimension_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" matrix_dimension_hostname: "{{ matrix_server_fqn_dimension }}" +matrix_dimension_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_dimension_docker_image_registry_prefix_upstream_default }}" + +matrix_dimension_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" + matrix_dimension_container_network: "{{ matrix_addons_container_network }}" # Dimension is connected both to `matrix_addons_homeserver_container_network` and `matrix_homeserver_container_network`, @@ -3523,7 +3648,7 @@ matrix_dimension_database_password: "{{ '%s' | format(matrix_homeserver_generic_ ###################################################################### # -# etke/etherpad +# etherpad # ###################################################################### @@ -3539,13 +3664,15 @@ etherpad_framing_enabled: "{{ matrix_dimension_enabled or jitsi_enabled }}" etherpad_hostname: "{{ matrix_server_fqn_etherpad }}" +etherpad_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else etherpad_container_image_registry_prefix_upstream_default }}" + etherpad_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" etherpad_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9001') if matrix_playbook_service_host_bind_interface_prefix else '' }}" etherpad_container_network: "{{ matrix_addons_container_network }}" -etherpad_container_additional_networks: | +etherpad_container_additional_networks_auto: | {{ ( ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else []) @@ -3559,10 +3686,8 @@ etherpad_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_pr etherpad_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" etherpad_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" -etherpad_systemd_required_services_list: | +etherpad_systemd_required_services_list_auto: | {{ - [devture_systemd_docker_base_docker_service_name] - + ([postgres_identifier ~ '.service'] if postgres_enabled else []) }} @@ -3573,7 +3698,7 @@ etherpad_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_k ###################################################################### # -# /etke/etherpad +# /etherpad # ###################################################################### @@ -3585,6 +3710,8 @@ etherpad_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_k matrix_dynamic_dns_enabled: false +matrix_dynamic_dns_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_dynamic_dns_docker_image_registry_prefix_upstream_default }}" + matrix_dynamic_dns_container_network: matrix-dynamic-dns ###################################################################### @@ -3593,34 +3720,6 @@ matrix_dynamic_dns_container_network: matrix-dynamic-dns # ###################################################################### -###################################################################### -# -# matrix-email2matrix -# -###################################################################### - -matrix_email2matrix_enabled: false - -matrix_email2matrix_systemd_required_services_list_auto: | - {{ - matrix_addons_homeserver_systemd_services_list - }} - -matrix_email2matrix_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm32', 'arm64'] }}" - -matrix_email2matrix_container_network: "{{ matrix_addons_container_network }}" - -matrix_email2matrix_container_additional_networks_auto: |- - {{ - ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) - }} - -###################################################################### -# -# /matrix-email2matrix -# -###################################################################### - ###################################################################### # # jitsi @@ -3642,6 +3741,8 @@ jitsi_gid: "{{ matrix_user_gid }}" jitsi_user_username: "{{ matrix_user_username }}" +jitsi_web_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_web_container_image_registry_prefix_upstream_default }}" + jitsi_web_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '13080') if matrix_playbook_service_host_bind_interface_prefix else '' }}" jitsi_web_container_additional_networks_auto: | @@ -3649,6 +3750,8 @@ jitsi_web_container_additional_networks_auto: | ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else []) }} +jitsi_jvb_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_jvb_container_image_registry_prefix_upstream_default }}" + jitsi_jvb_container_colibri_ws_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '13090') if matrix_playbook_service_host_bind_interface_prefix else '' }}" jitsi_jvb_container_additional_networks_auto: | @@ -3656,6 +3759,8 @@ jitsi_jvb_container_additional_networks_auto: | ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else []) }} +jitsi_prosody_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_prosody_container_image_registry_prefix_upstream_default }}" + jitsi_prosody_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '5280') if matrix_playbook_service_host_bind_interface_prefix else '' }}" jitsi_prosody_container_additional_networks_auto: | @@ -3663,6 +3768,8 @@ jitsi_prosody_container_additional_networks_auto: | ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else []) }} +jitsi_jicofo_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_jicofo_container_image_registry_prefix_upstream_default }}" + jitsi_container_labels_traefik_enabled: "{{ matrix_playbook_traefik_labels_enabled }}" jitsi_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" jitsi_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" @@ -3685,13 +3792,13 @@ jitsi_web_stun_servers: | # The Jitsi instance installed by this playbook is meant for embedding into Matrix clients, so framing is allowed. jitsi_web_framing_enabled: true -# Jitsi (Prosody) only seems to support authenticating with Coturn using `auth-secret`, not `lt-cred-mech`. +# Jitsi (Prosody) only seems to support authenticating with coturn using `auth-secret`, not `lt-cred-mech`. # See: https://prosody.im/doc/coturn jitsi_turn_credentials: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}" jitsi_turn_host: "{{ ('turn.' + matrix_server_fqn_matrix) if matrix_coturn_enabled else '' }}" jitsi_turns_host: "{{ ('turn.' + matrix_server_fqn_matrix) if matrix_coturn_enabled else '' }}" -jitsi_turn_port: "{{ matrix_coturn_container_stun_plain_host_bind_port.split(':')[-1] if matrix_coturn_enabled else '' }}" -jitsi_turns_port: "{{ matrix_coturn_container_stun_tls_host_bind_port.split(':')[-1] if matrix_coturn_enabled else '' }}" +jitsi_turn_port: "{{ matrix_coturn_container_stun_plain_host_bind_port_tcp.split(':')[-1] if matrix_coturn_enabled else '' }}" +jitsi_turns_port: "{{ matrix_coturn_container_stun_tls_host_bind_port_tcp.split(':')[-1] if matrix_coturn_enabled else '' }}" # If the self-hosted Etherpad instance is available, it will also show up in Jitsi conferences, # unless explicitly disabled by setting `jitsi_etherpad_enabled` to false. @@ -3736,6 +3843,8 @@ matrix_ldap_registration_proxy_systemd_required_services_list_auto: | matrix_addons_homeserver_systemd_services_list }} +matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream_default }}" + matrix_ldap_registration_proxy_container_network: "{{ matrix_addons_container_network }}" matrix_ldap_registration_proxy_container_additional_networks_auto: |- @@ -3776,12 +3885,14 @@ exim_relay_base_path: "{{ matrix_base_data_path }}/exim-relay" exim_relay_uid: "{{ matrix_user_uid }}" exim_relay_gid: "{{ matrix_user_gid }}" -exim_relay_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm32', 'arm64'] }}" - exim_relay_hostname: "{{ matrix_server_fqn_matrix }}" exim_relay_sender_address: "matrix@{{ exim_relay_hostname }}" +exim_relay_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else exim_relay_container_image_registry_prefix_upstream_default }}" + +exim_relay_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm32', 'arm64'] }}" + ######################################################################## # # # /exim-relay # @@ -3809,6 +3920,8 @@ matrix_ma1sd_enabled: false matrix_ma1sd_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" matrix_ma1sd_hostname: "{{ matrix_server_fqn_matrix }}" +matrix_ma1sd_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_ma1sd_docker_image_registry_prefix_upstream_default }}" + matrix_ma1sd_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_ma1sd_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '' ~ matrix_ma1sd_container_port | string) if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -3883,6 +3996,8 @@ matrix_ma1sd_database_password: "{{ '%s' | format(matrix_homeserver_generic_secr matrix_media_repo_enabled: false +matrix_media_repo_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_media_repo_docker_image_registry_prefix_upstream_default }}" + matrix_media_repo_container_network: "{{ matrix_homeserver_container_network }}" matrix_media_repo_container_additional_networks: | @@ -3989,6 +4104,10 @@ postgres_systemd_services_to_stop_for_maintenance_list_auto: "{{ devture_systemd postgres_max_connections: "{{ 500 if matrix_synapse_workers_enabled else 200 }}" +postgres_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else postgres_container_image_registry_prefix_upstream_default }}" + +postgres_pgloader_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else postgres_pgloader_container_image_registry_prefix_upstream_default }}" + postgres_managed_databases_auto: | {{ ([{ @@ -4137,18 +4256,18 @@ postgres_managed_databases_auto: | 'password': matrix_wechat_database_password, }] if (matrix_wechat_enabled and matrix_wechat_database_engine == 'postgres' and matrix_wechat_database_hostname == postgres_connection_hostname) else []) + + ([{ + 'name': matrix_mautrix_bluesky_database_name, + 'username': matrix_mautrix_bluesky_database_username, + 'password': matrix_mautrix_bluesky_database_password, + }] if (matrix_mautrix_bluesky_enabled and matrix_mautrix_bluesky_database_engine == 'postgres' and matrix_mautrix_bluesky_database_hostname == postgres_connection_hostname) else []) + + ([{ 'name': matrix_mautrix_facebook_database_name, 'username': matrix_mautrix_facebook_database_username, 'password': matrix_mautrix_facebook_database_password, }] if (matrix_mautrix_facebook_enabled and matrix_mautrix_facebook_database_engine == 'postgres' and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else []) + - ([{ - 'name': matrix_mautrix_hangouts_database_name, - 'username': matrix_mautrix_hangouts_database_username, - 'password': matrix_mautrix_hangouts_database_password, - }] if (matrix_mautrix_hangouts_enabled and matrix_mautrix_hangouts_database_engine == 'postgres' and matrix_mautrix_hangouts_database_hostname == postgres_connection_hostname) else []) - + ([{ 'name': matrix_mautrix_googlechat_database_name, 'username': matrix_mautrix_googlechat_database_username, @@ -4309,6 +4428,8 @@ postgres_backup_systemd_required_services_list_auto: | ([(postgres_identifier + '.service')] if (postgres_enabled and postgres_backup_connection_hostname == postgres_connection_hostname) else []) }} +postgres_backup_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else postgres_backup_container_image_registry_prefix_upstream_default }}" + postgres_backup_container_network: "{{ (postgres_container_network if (postgres_enabled and postgres_backup_connection_hostname == postgres_connection_hostname) else postgres_backup_identifier) }}" postgres_backup_container_additional_networks_auto: |- @@ -4327,7 +4448,7 @@ postgres_backup_connection_password: "{{ postgres_connection_password if postgre postgres_backup_postgres_data_path: "{{ postgres_data_path if postgres_enabled else '' }}" postgres_backup_postgres_role_include_name: galaxy/postgres -postgres_backup_databases: "{{ postgres_managed_databases | map(attribute='name') if postgres_enabled else [] }}" +postgres_backup_databases_auto: "{{ postgres_managed_databases | map(attribute='name') if postgres_enabled else [] }}" ######################################################################## # # @@ -4349,6 +4470,8 @@ matrix_sygnal_metrics_prometheus_enabled: "{{ prometheus_enabled or matrix_metri matrix_sygnal_hostname: "{{ matrix_server_fqn_sygnal }}" +matrix_sygnal_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_sygnal_docker_image_registry_prefix_upstream_default }}" + matrix_sygnal_container_network: "{{ matrix_homeserver_container_network }}" matrix_sygnal_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" @@ -4368,7 +4491,7 @@ matrix_sygnal_container_labels_traefik_tls_certResolver: "{{ traefik_certResolve ###################################################################### # -# etke/ntfy +# ntfy # ###################################################################### @@ -4383,7 +4506,9 @@ ntfy_gid: "{{ matrix_user_gid }}" ntfy_hostname: "{{ matrix_server_fqn_ntfy }}" -ntfy_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" +ntfy_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else ntfy_container_image_registry_prefix_upstream_default }}" + +ntfy_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" ntfy_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '2586') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -4399,58 +4524,7 @@ ntfy_visitor_request_limit_exempt_hosts_hostnames_auto: | ###################################################################### # -# /etky/ntfy -# -###################################################################### - -###################################################################### -# -# redis -# -###################################################################### - -redis_enabled: "{{ not (keydb_enabled or valkey_enabled) and (matrix_synapse_workers_enabled or (matrix_hookshot_enabled and matrix_hookshot_experimental_encryption_enabled)) }}" - -redis_identifier: matrix-redis - -redis_uid: "{{ matrix_user_uid }}" -redis_gid: "{{ matrix_user_gid }}" - -redis_base_path: "{{ matrix_base_data_path }}/redis" - -###################################################################### -# -# /redis -# -###################################################################### - -###################################################################### -# -# keydb -# -###################################################################### - -keydb_enabled: false - -keydb_identifier: matrix-keydb - -keydb_uid: "{{ matrix_user_uid }}" -keydb_gid: "{{ matrix_user_gid }}" - -keydb_base_path: "{{ matrix_base_data_path }}/keydb" - -keydb_arch: |- - {{ - ({ - 'amd64': 'x86_64', - 'arm32': 'arm32', - 'arm64': 'arm64', - })[matrix_architecture] - }} - -###################################################################### -# -# keydb +# /ntfy # ###################################################################### @@ -4461,7 +4535,7 @@ keydb_arch: |- # ###################################################################### -valkey_enabled: "{{ matrix_synapse_workers_enabled or (matrix_hookshot_enabled and matrix_hookshot_experimental_encryption_enabled) or matrix_element_call_enabled }}" +valkey_enabled: "{{ matrix_synapse_workers_enabled or (matrix_hookshot_enabled and matrix_hookshot_encryption_enabled) or matrix_element_call_enabled }}" valkey_identifier: matrix-valkey @@ -4472,6 +4546,8 @@ valkey_base_path: "{{ matrix_base_data_path }}/valkey" valkey_arch: "{{ matrix_architecture }}" +valkey_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else valkey_container_image_registry_prefix_upstream_default }}" + ###################################################################### # # valkey @@ -4491,6 +4567,8 @@ matrix_client_element_enabled: true matrix_client_element_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" +matrix_client_element_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_client_element_docker_image_registry_prefix_upstream_default }}" + matrix_client_element_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_element_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -4551,6 +4629,8 @@ matrix_client_element_element_call_url: "{{ matrix_element_call_public_url if ma matrix_client_hydrogen_enabled: false +matrix_client_hydrogen_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_client_hydrogen_docker_image_registry_prefix_upstream_default }}" + matrix_client_hydrogen_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_hydrogen_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8768') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -4587,6 +4667,8 @@ matrix_client_hydrogen_self_check_validate_certificates: "{{ matrix_playbook_ssl matrix_client_cinny_enabled: false +matrix_client_cinny_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_client_cinny_docker_image_registry_prefix_upstream_default }}" + matrix_client_cinny_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_cinny_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8080') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -4625,6 +4707,8 @@ matrix_client_schildichat_enabled: false matrix_client_schildichat_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" +matrix_client_schildichat_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_client_schildichat_docker_image_registry_prefix_upstream_default }}" + matrix_client_schildichat_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_schildichat_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -4666,6 +4750,39 @@ matrix_client_schildichat_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if # ###################################################################### +###################################################################### +# +# matrix-client-fluffychat +# +###################################################################### + +matrix_client_fluffychat_enabled: false + +matrix_client_fluffychat_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" + +matrix_client_fluffychat_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_client_fluffychat_docker_image_registry_prefix_upstream_default }}" + +matrix_client_fluffychat_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" + +matrix_client_fluffychat_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8770') if matrix_playbook_service_host_bind_interface_prefix else '' }}" + +matrix_client_fluffychat_container_network: "{{ matrix_addons_container_network }}" + +matrix_client_fluffychat_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_client_fluffychat_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}" + +matrix_client_fluffychat_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" +matrix_client_fluffychat_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" +matrix_client_fluffychat_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" +matrix_client_fluffychat_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" + +matrix_client_fluffychat_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}" + +###################################################################### +# +# /matrix-client-fluffychat +# +###################################################################### + ###################################################################### # # matrix-synapse @@ -4680,6 +4797,10 @@ matrix_synapse_gid: "{{ matrix_user_gid }}" matrix_synapse_federation_enabled: "{{ matrix_homeserver_federation_enabled }}" +matrix_synapse_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_docker_image_registry_prefix_upstream_default }}" + +matrix_s3_goofys_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_s3_goofys_docker_image_registry_prefix_upstream_default }}" + matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_synapse_account_threepid_delegates_msisdn_mas1sd_url: "{{ ('http://matrix-ma1sd:' + matrix_ma1sd_container_port| string) }}" @@ -4705,10 +4826,6 @@ matrix_synapse_container_additional_networks_auto: | + ([postgres_container_network] if (postgres_enabled and postgres_container_network != matrix_synapse_container_network and matrix_synapse_database_host == postgres_connection_hostname) else []) + - ([redis_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == redis_identifier else []) - + - ([keydb_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == keydb_identifier else []) - + ([valkey_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == valkey_identifier else []) + ([exim_relay_container_network] if (exim_relay_enabled and matrix_synapse_email_enabled and matrix_synapse_email_smtp_host == exim_relay_identifier and matrix_synapse_container_network != exim_relay_container_network) else []) @@ -4771,19 +4888,7 @@ matrix_synapse_email_smtp_port: 8025 matrix_synapse_email_smtp_require_transport_security: false matrix_synapse_email_notif_from: "Matrix <{{ exim_relay_sender_address }}>" -matrix_synapse_turn_uris: | - {{ - ([ - 'turns:' + matrix_server_fqn_matrix + '?transport=udp', - 'turns:' + matrix_server_fqn_matrix + '?transport=tcp', - ] if matrix_coturn_enabled and matrix_coturn_tls_enabled else []) - + - ([ - 'turn:' + matrix_server_fqn_matrix + '?transport=udp', - 'turn:' + matrix_server_fqn_matrix + '?transport=tcp', - ] if matrix_coturn_enabled else []) - }} - +matrix_synapse_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}" matrix_synapse_turn_shared_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}" matrix_synapse_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" matrix_synapse_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" @@ -4794,10 +4899,6 @@ matrix_synapse_systemd_required_services_list_auto: | {{ ([postgres_identifier ~ '.service'] if (postgres_enabled and postgres_container_network != matrix_synapse_container_network and matrix_synapse_database_host == postgres_connection_hostname) else []) + - ([redis_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == redis_identifier else []) - + - ([keydb_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == keydb_identifier else []) - + ([valkey_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == valkey_identifier else []) + (['matrix-goofys.service'] if matrix_s3_media_store_enabled else []) @@ -4813,9 +4914,9 @@ matrix_synapse_systemd_wanted_services_list_auto: | }} # Synapse workers (used for parallel load-scaling) need Redis for IPC. -matrix_synapse_redis_enabled: "{{ redis_enabled or keydb_enabled or valkey_enabled }}" -matrix_synapse_redis_host: "{{ valkey_identifier if valkey_enabled else (redis_identifier if redis_enabled else (keydb_identifier if keydb_enabled else '')) }}" -matrix_synapse_redis_password: "{{ valkey_connection_password if valkey_enabled else (redis_connection_password if redis_enabled else (keydb_connection_password if keydb_enabled else '')) }}" +matrix_synapse_redis_enabled: "{{ valkey_enabled }}" +matrix_synapse_redis_host: "{{ valkey_identifier if valkey_enabled else '' }}" +matrix_synapse_redis_password: "{{ valkey_connection_password if valkey_enabled else '' }}" matrix_synapse_container_extra_arguments_auto: "{{ matrix_homeserver_container_extra_arguments_auto }}" matrix_synapse_app_service_config_files_auto: "{{ matrix_homeserver_app_service_config_files_auto }}" @@ -4864,6 +4965,8 @@ matrix_synapse_auto_compressor_gid: "{{ matrix_user_gid }}" matrix_synapse_auto_compressor_postgres_image: "{{ postgres_container_image_to_use }}" +matrix_synapse_auto_compressor_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_auto_compressor_container_image_registry_prefix_upstream_default }}" + matrix_synapse_auto_compressor_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_synapse_auto_compressor_container_network: "{{ (postgres_container_network if (postgres_enabled and matrix_synapse_auto_compressor_database_hostname == matrix_synapse_database_host and matrix_synapse_database_host == postgres_connection_hostname) else 'matrix-synapse-auto-compressor') }}" @@ -4894,6 +4997,8 @@ matrix_synapse_auto_compressor_systemd_required_services_list_auto: | matrix_synapse_reverse_proxy_companion_enabled: "{{ matrix_synapse_enabled and matrix_synapse_workers_enabled }}" +matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream_default }}" + matrix_synapse_reverse_proxy_companion_container_network: "{{ matrix_synapse_container_network }}" matrix_synapse_reverse_proxy_companion_container_additional_networks_auto: | @@ -4964,6 +5069,8 @@ matrix_synapse_reverse_proxy_companion_access_log_syslog_integration_server_port matrix_synapse_admin_enabled: false +matrix_synapse_admin_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_admin_docker_image_registry_prefix_upstream_default }}" + matrix_synapse_admin_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8766') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_synapse_admin_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" @@ -4995,6 +5102,10 @@ matrix_synapse_admin_config_asManagedUsers_auto: | '^@'+(matrix_bot_buscarron_login | default('') | regex_escape) +':'+(matrix_domain | regex_escape)+'$', ] if matrix_bot_buscarron_enabled else []) + + ([ + '^@'+(matrix_bot_draupnir_login | default('') | regex_escape) +':'+(matrix_domain | regex_escape)+'$', + ] if matrix_bot_draupnir_enabled else []) + + ([ '^@'+(matrix_bot_chatgpt_matrix_bot_username_localpart | default('') | regex_escape) +':'+(matrix_domain | regex_escape)+'$', ] if matrix_bot_chatgpt_enabled else []) @@ -5056,6 +5167,11 @@ matrix_synapse_admin_config_asManagedUsers_auto: | '^@'+(matrix_hookshot_generic_userIdPrefix | default('') | regex_escape)+'[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', ] if matrix_hookshot_enabled else []) + + ([ + '^@'+(matrix_mautrix_bluesky_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', + '^@bluesky_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', + ] if matrix_mautrix_bluesky_enabled else []) + + ([ '^@'+(matrix_mautrix_discord_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', '^@discord_[0-9]+:'+(matrix_domain | regex_escape)+'$', @@ -5076,11 +5192,6 @@ matrix_synapse_admin_config_asManagedUsers_auto: | '^@googlechat_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', ] if matrix_mautrix_googlechat_enabled else []) + - ([ - '^@'+(matrix_mautrix_hangouts_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', - '^@hangouts_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', - ] if matrix_mautrix_hangouts_enabled else []) - + ([ '^@'+(matrix_mautrix_instagram_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', '^@instagram_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', @@ -5176,6 +5287,8 @@ matrix_synapse_admin_config_asManagedUsers_auto: | matrix_synapse_usage_exporter_enabled: false +matrix_synapse_usage_exporter_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_usage_exporter_container_image_registry_prefix_upstream_default }}" + matrix_synapse_usage_exporter_container_network: "{{ matrix_monitoring_container_network }}" matrix_synapse_usage_exporter_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" @@ -5193,7 +5306,7 @@ matrix_synapse_usage_exporter_container_labels_traefik_tls_certResolver: "{{ tra ###################################################################### # -# etke/prometheus_node_exporter +# prometheus_node_exporter # ###################################################################### @@ -5208,9 +5321,11 @@ prometheus_node_exporter_gid: "{{ matrix_user_gid }}" prometheus_node_exporter_hostname: "{{ matrix_server_fqn_matrix }}" +prometheus_node_exporter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_node_exporter_docker_image_registry_prefix_upstream_default }}" + prometheus_node_exporter_container_network: "{{ matrix_monitoring_container_network }}" -prometheus_node_exporter_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" +prometheus_node_exporter_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}" prometheus_node_exporter_container_labels_traefik_enabled: "{{ matrix_metrics_exposure_enabled }}" prometheus_node_exporter_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" @@ -5222,14 +5337,14 @@ prometheus_node_exporter_container_labels_metrics_middleware_basic_auth_users: " ###################################################################### # -# /etke/prometheus_node_exporter +# /prometheus_node_exporter # ###################################################################### ###################################################################### # -# etke/prometheus_postgres_exporter +# prometheus_postgres_exporter # ###################################################################### @@ -5244,6 +5359,8 @@ prometheus_postgres_exporter_gid: "{{ matrix_user_gid }}" prometheus_postgres_exporter_hostname: "{{ matrix_server_fqn_matrix }}" +prometheus_postgres_exporter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_postgres_exporter_docker_image_registry_prefix_upstream_default }}" + prometheus_postgres_exporter_container_network: "{{ matrix_monitoring_container_network }}" prometheus_postgres_exporter_container_additional_networks: | @@ -5273,7 +5390,7 @@ prometheus_postgres_exporter_systemd_required_services_list_auto: | ###################################################################### # -# /etke/prometheus_postgres_exporter +# /prometheus_postgres_exporter # ###################################################################### @@ -5290,6 +5407,8 @@ matrix_prometheus_nginxlog_exporter_identifier: matrix-prometheus-nginxlog-expor matrix_prometheus_nginxlog_exporter_hostname: "{{ matrix_server_fqn_matrix }}" +matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream_default }}" + matrix_prometheus_nginxlog_exporter_container_network: "{{ matrix_monitoring_container_network }}" matrix_prometheus_nginxlog_exporter_container_additional_networks_auto: |- @@ -5332,6 +5451,8 @@ prometheus_base_path: "{{ matrix_base_data_path }}/prometheus" prometheus_uid: "{{ matrix_user_uid }}" prometheus_gid: "{{ matrix_user_gid }}" +prometheus_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_container_image_registry_prefix_upstream_default }}" + prometheus_container_network: "{{ matrix_monitoring_container_network }}" prometheus_container_additional_networks_auto: | @@ -5426,7 +5547,7 @@ matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs ###################################################################### # -# etke/grafana +# grafana # ###################################################################### @@ -5441,6 +5562,8 @@ grafana_hostname: "{{ matrix_server_fqn_grafana }}" grafana_base_path: "{{ matrix_base_data_path }}/grafana" +grafana_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else grafana_container_image_registry_prefix_upstream_default }}" + grafana_container_network: "{{ matrix_monitoring_container_network }}" grafana_container_additional_networks_auto: | @@ -5501,12 +5624,13 @@ grafana_default_home_dashboard_path: |- 'synapse': ('/etc/grafana/dashboards/synapse.json' if matrix_synapse_metrics_enabled and matrix_synapse_metrics_enabled else ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else '')), 'dendrite': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), 'conduit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), + 'conduwuit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), }[matrix_homeserver_implementation] }} ###################################################################### # -# /etke/grafana +# /grafana # ###################################################################### @@ -5528,6 +5652,8 @@ matrix_registration_systemd_required_services_list_auto: | ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_registration_database_hostname == postgres_connection_hostname) else []) }} +matrix_registration_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_registration_docker_image_registry_prefix_upstream_default }}" + matrix_registration_container_image_self_build: "{{ matrix_architecture != 'amd64' }}" matrix_registration_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8767') if matrix_playbook_service_host_bind_interface_prefix else '' }}" @@ -5558,6 +5684,7 @@ matrix_registration_shared_secret: |- 'synapse': matrix_synapse_registration_shared_secret | default (''), 'dendrite': matrix_dendrite_client_api_registration_shared_secret | default (''), 'conduit': '', + 'conduwuit': '', }[matrix_homeserver_implementation] }} @@ -5592,6 +5719,8 @@ matrix_sliding_sync_hostname: "{{ matrix_server_fqn_matrix }}" matrix_sliding_sync_path_prefix: /sliding-sync +matrix_sliding_sync_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_sliding_sync_container_image_registry_prefix_upstream_default }}" + matrix_sliding_sync_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_sliding_sync_container_network: "{{ matrix_homeserver_container_network }}" @@ -5653,6 +5782,8 @@ matrix_dendrite_hostname: "{{ matrix_server_fqn_matrix }}" matrix_dendrite_federation_enabled: "{{ matrix_homeserver_federation_enabled }}" +matrix_dendrite_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_dendrite_docker_image_registry_prefix_upstream_default }}" + matrix_dendrite_container_network: "{{ matrix_homeserver_container_network }}" matrix_dendrite_container_additional_networks_auto: | @@ -5696,20 +5827,7 @@ matrix_dendrite_database_hostname: "{{ postgres_connection_hostname if postgres_ matrix_dendrite_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'dendrite.db', rounds=655555) | to_uuid }}" -# Even if TURN doesn't support TLS (it does by default), -# it doesn't hurt to try a secure connection anyway. -matrix_dendrite_client_api_turn_uris: | - {{ - [ - 'turns:' + matrix_server_fqn_matrix + '?transport=udp', - 'turns:' + matrix_server_fqn_matrix + '?transport=tcp', - 'turn:' + matrix_server_fqn_matrix + '?transport=udp', - 'turn:' + matrix_server_fqn_matrix + '?transport=tcp', - ] - if matrix_coturn_enabled - else [] - }} - +matrix_dendrite_client_api_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}" matrix_dendrite_client_api_turn_shared_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}" matrix_dendrite_client_api_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" matrix_dendrite_client_api_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" @@ -5754,6 +5872,8 @@ matrix_conduit_hostname: "{{ matrix_server_fqn_matrix }}" matrix_conduit_allow_federation: "{{ matrix_homeserver_federation_enabled }}" +matrix_conduit_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_conduit_docker_image_registry_prefix_upstream_default }}" + matrix_conduit_container_network: "{{ matrix_homeserver_container_network }}" matrix_conduit_container_additional_networks_auto: | @@ -5778,19 +5898,7 @@ matrix_conduit_container_labels_public_federation_api_traefik_tls: "{{ matrix_fe matrix_conduit_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}" matrix_conduit_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}" -matrix_conduit_turn_uris: | - {{ - ([ - 'turns:' + matrix_server_fqn_matrix + '?transport=udp', - 'turns:' + matrix_server_fqn_matrix + '?transport=tcp', - ] if matrix_coturn_enabled and matrix_coturn_tls_enabled else []) - + - ([ - 'turn:' + matrix_server_fqn_matrix + '?transport=udp', - 'turn:' + matrix_server_fqn_matrix + '?transport=tcp', - ] if matrix_coturn_enabled else []) - }} - +matrix_conduit_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}" matrix_conduit_turn_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}" matrix_conduit_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" matrix_conduit_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" @@ -5802,6 +5910,58 @@ matrix_conduit_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix ###################################################################### +###################################################################### +# +# matrix-conduwuit +# +###################################################################### + +matrix_conduwuit_enabled: "{{ matrix_homeserver_implementation == 'conduwuit' }}" + +matrix_conduwuit_hostname: "{{ matrix_server_fqn_matrix }}" + +matrix_conduwuit_config_allow_federation: "{{ matrix_homeserver_federation_enabled }}" + +matrix_conduwuit_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_conduwuit_docker_image_registry_prefix_upstream_default }}" + +matrix_conduwuit_container_network: "{{ matrix_homeserver_container_network }}" + +matrix_conduwuit_container_additional_networks_auto: | + {{ + ( + ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_conduwuit_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network else []) + ) | unique + }} + +matrix_conduwuit_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and not matrix_synapse_workers_enabled }}" +matrix_conduwuit_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" +matrix_conduwuit_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" +matrix_conduwuit_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" + +matrix_conduwuit_container_labels_public_client_root_redirection_enabled: "{{ matrix_conduwuit_container_labels_public_client_root_redirection_url != '' }}" +matrix_conduwuit_container_labels_public_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}" + +matrix_conduwuit_container_labels_public_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix_federation }}" +matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}" +matrix_conduwuit_container_labels_public_federation_api_traefik_tls: "{{ matrix_federation_traefik_entrypoint_tls }}" + +matrix_conduwuit_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}" +matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}" + +matrix_conduwuit_config_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}" +matrix_conduwuit_config_turn_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}" +matrix_conduwuit_config_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" +matrix_conduwuit_config_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}" + +matrix_conduwuit_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}" + +###################################################################### +# +# /matrix-conduwuit +# +###################################################################### + + ###################################################################### # # matrix-user-creator @@ -5857,6 +6017,12 @@ matrix_user_creator_users_auto: | 'initial_password': matrix_bot_maubot_initial_password, 'initial_type': 'bot', }] if matrix_bot_maubot_enabled else []) + + + ([{ + 'username': matrix_bot_draupnir_login, + 'initial_password': matrix_bot_draupnir_password, + 'initial_type': 'bot', + }] if matrix_bot_draupnir_enabled and matrix_bot_draupnir_password else []) }} ###################################################################### @@ -5881,6 +6047,8 @@ matrix_user_verification_service_systemd_required_services_list: | (['matrix-' + matrix_homeserver_implementation + '.service']) }} +matrix_user_verification_service_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_user_verification_service_docker_image_registry_prefix_upstream_default }}" + matrix_user_verification_service_container_network: "{{ matrix_addons_container_network }}" matrix_user_verification_service_container_additional_networks: | @@ -5892,7 +6060,7 @@ matrix_user_verification_service_container_additional_networks: | ) | unique }} -# If Jitsi is managed by this playbook we can use the docker network - no need to expose a port. +# If Jitsi is managed by this playbook we can use the docker network — no need to expose a port. # If Jitsi is not managed by this playbook, or you otherwise have a need for it, you can expose # matrix-user-verfification-services's client-server port to port 3003. # By default Matrix-User-Verification-Service binds to port 3000, which collides with grafana, therefore this uses port 3003. @@ -5923,6 +6091,8 @@ matrix_user_verification_service_uvs_auth_token: "{{ '%s' | format(matrix_homese matrix_static_files_enabled: true +matrix_static_files_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_static_files_container_image_registry_prefix_upstream_default }}" + matrix_static_files_container_network: "{{ (matrix_static_files_identifier if matrix_playbook_reverse_proxy_type == 'none' else matrix_playbook_reverse_proxy_container_network) }}" matrix_static_files_container_labels_traefik_enabled: "{{ matrix_playbook_traefik_labels_enabled }}" @@ -5938,7 +6108,7 @@ matrix_static_files_container_labels_base_domain_traefik_hostname: "{{ matrix_do # If we're not serving a static webpage, serve a redirect instead of a 404. matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: "{{ not matrix_static_files_file_index_html_enabled }}" -matrix_static_files_container_labels_base_domain_root_path_redirection_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_matrix }}" +matrix_static_files_container_labels_base_domain_root_path_redirection_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_matrix }}/${1}" matrix_static_files_file_matrix_client_property_io_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jitsi_enabled else '' }}" @@ -5981,25 +6151,27 @@ matrix_static_files_self_check_hostname_identity: "{{ matrix_domain }}" ######################################################################## # # -# com.devture.ansible.role.container_socket_proxy # +# container-socket-proxy # # # ######################################################################## -devture_container_socket_proxy_enabled: "{{ matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' }}" +container_socket_proxy_enabled: "{{ matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' }}" -devture_container_socket_proxy_identifier: matrix-container-socket-proxy +container_socket_proxy_identifier: matrix-container-socket-proxy -devture_container_socket_proxy_base_path: "{{ matrix_base_data_path }}/container-socket-proxy" +container_socket_proxy_base_path: "{{ matrix_base_data_path }}/container-socket-proxy" -devture_container_socket_proxy_uid: "{{ matrix_user_uid }}" -devture_container_socket_proxy_gid: "{{ matrix_user_gid }}" +container_socket_proxy_uid: "{{ matrix_user_uid }}" +container_socket_proxy_gid: "{{ matrix_user_gid }}" # Traefik requires read access to the containers APIs to do its job -devture_container_socket_proxy_api_containers_enabled: true +container_socket_proxy_api_containers_enabled: true + +container_socket_proxy_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else container_socket_proxy_container_image_registry_prefix_upstream_default }}" ######################################################################## # # -# /com.devture.ansible.role.container_socket_proxy # +# /container-socket-proxy # # # ######################################################################## @@ -6030,18 +6202,20 @@ traefik_additional_entrypoints_auto: | ([matrix_playbook_internal_matrix_client_api_traefik_entrypoint_definition] if matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled else []) }} -traefik_config_providers_docker_endpoint: "{{ devture_container_socket_proxy_endpoint if devture_container_socket_proxy_enabled else 'unix:///var/run/docker.sock' }}" +traefik_config_providers_docker_endpoint: "{{ container_socket_proxy_endpoint if container_socket_proxy_enabled else 'unix:///var/run/docker.sock' }}" + +traefik_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else traefik_container_image_registry_prefix_upstream_default }}" traefik_container_additional_networks_auto: | {{ - ([devture_container_socket_proxy_container_network] if devture_container_socket_proxy_enabled else []) + ([container_socket_proxy_container_network] if container_socket_proxy_enabled else []) }} traefik_systemd_required_services_list: | {{ ([devture_systemd_docker_base_docker_service_name]) + - ([devture_container_socket_proxy_identifier + '.service'] if devture_container_socket_proxy_enabled else []) + ([container_socket_proxy_identifier + '.service'] if container_socket_proxy_enabled else []) }} ######################################################################## @@ -6068,6 +6242,8 @@ traefik_certs_dumper_gid: "{{ matrix_user_gid }}" traefik_certs_dumper_ssl_dir_path: "{{ traefik_ssl_dir_path if traefik_enabled else '' }}" +traefik_certs_dumper_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else traefik_certs_dumper_container_image_registry_prefix_upstream_default }}" + ######################################################################## # # # /traefik_certs_dumper # diff --git a/group_vars/matrix_servers.license b/group_vars/matrix_servers.license new file mode 100644 index 000000000..1325849fc --- /dev/null +++ b/group_vars/matrix_servers.license @@ -0,0 +1,65 @@ +SPDX-FileCopyrightText: 2019 - 2021 Aaron Raimist +SPDX-FileCopyrightText: 2019 - 2021 Stuart Mumford +SPDX-FileCopyrightText: 2019 - 2025 MDAD project contributors +SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Dan Arnfield +SPDX-FileCopyrightText: 2019 Daniel Hoffend +SPDX-FileCopyrightText: 2019 Edgars Voroboks +SPDX-FileCopyrightText: 2019 Thomas Kuehne +SPDX-FileCopyrightText: 2020 - 2021 Sabine Laszakovits +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 David Gnedt +SPDX-FileCopyrightText: 2020 Horvath Gergely +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2020 Max Klenk +SPDX-FileCopyrightText: 2020 Rodrigo Belem +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2020 Tulir Asokan +SPDX-FileCopyrightText: 2020 Zach Mertes +SPDX-FileCopyrightText: 2021 - 2022 Matthew Cengia +SPDX-FileCopyrightText: 2021 - 2023 Shreyas Ajjarapu +SPDX-FileCopyrightText: 2021 Ahmad Haghighi +SPDX-FileCopyrightText: 2021 Alexandar Mechev +SPDX-FileCopyrightText: 2021 Béla Becker +SPDX-FileCopyrightText: 2021 Christos Karamolegkos +SPDX-FileCopyrightText: 2021 Cody Neiman +SPDX-FileCopyrightText: 2021 Marc Leuser +SPDX-FileCopyrightText: 2021 Marcus Proest +SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +SPDX-FileCopyrightText: 2021 Raymond Coetzee +SPDX-FileCopyrightText: 2021 Stuart Thomson +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2021 Yannick Goossens +SPDX-FileCopyrightText: 2021 boris runakov +SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 - 2023 Samuel Meenzen +SPDX-FileCopyrightText: 2022 - 2024 Charles Wright +SPDX-FileCopyrightText: 2022 - 2024 László Várady +SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Arthur Brugière +SPDX-FileCopyrightText: 2022 Devin Dooley +SPDX-FileCopyrightText: 2022 Hefty Zauk +SPDX-FileCopyrightText: 2022 Jim Myhrberg +SPDX-FileCopyrightText: 2022 Jip J. Dekker +SPDX-FileCopyrightText: 2022 Julian Foad +SPDX-FileCopyrightText: 2022 Kim Brose +SPDX-FileCopyrightText: 2022 Marko Weltzer +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2022 Vladimir Panteleev +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2023 Antonis Christofides +SPDX-FileCopyrightText: 2023 Benjamin Kampmann +SPDX-FileCopyrightText: 2023 Catalan Lover +SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2023 Johan Swetzén +SPDX-FileCopyrightText: 2023 Kabir Kwatra +SPDX-FileCopyrightText: 2023 Thomas Baer +SPDX-FileCopyrightText: 2024 Chasethechicken +SPDX-FileCopyrightText: 2024 Fabio Bonelli +SPDX-FileCopyrightText: 2024 Igor Goldenberg +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/i18n/.gitignore b/i18n/.gitignore new file mode 100644 index 000000000..dcb737746 --- /dev/null +++ b/i18n/.gitignore @@ -0,0 +1,6 @@ +.venv/ +doctrees +.doctrees/ +/**/*.mo + +/translations/* diff --git a/i18n/PUBLISHED_LANGUAGES b/i18n/PUBLISHED_LANGUAGES new file mode 100644 index 000000000..e69de29bb diff --git a/i18n/README.md b/i18n/README.md new file mode 100644 index 000000000..94cf013e4 --- /dev/null +++ b/i18n/README.md @@ -0,0 +1,104 @@ + + +# Internationalization + +Translated documentation files are published and maintained in [`translations/`](translations/) directory. + +Currently, we support translation of: + +- Markdown files found at the top level project directory +- Markdown files found in the [`docs`](../docs/) directory (this is where the bulk of the documentation is) +- this current document in the `i18n` directory + +💡 For readers' sake, we only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold (requiring that at least the project README and core installation guides are translated). + +Organization of this `i18n` directory is as follows: + +- [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory) +- [.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionaly ignore translated results (`translations/` directories) for languages taht are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold. +- [justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner +- [requirements.txt](requirements.txt): a list of Python packages required to work with translations +- [translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files +- [locales/](locales/): localization files for languages +- [translations/](translations/): translated documents for published languages (see [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) and [publish translations in a new language](#publish-translations-in-a-new-language)) + +## Guide for translators + +This project uses [Sphinx](https://www.sphinx-doc.org/) to generate translated documents. + +For details about using Sphinx for translation, refer [this official document](https://www.sphinx-doc.org/en/master/usage/advanced/intl.html) as well. + +For now, translations are handled manually by editing `.po` files in the `locales/` directory. In the future, we plan on integrating with [Weblate](https://weblate.org/) to allow for translating from a web interface. + +### (Recommended) Using the uv package manager and just command runner + +If you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed, you can use our [justfile](justfile) recipes to easily manage translation files and build translated documents. + +The recipes will use [uv](https://github.com/astral-sh/uv) to auto-create [a Python virtual environment](https://docs.astral.sh/uv/pip/environments/) in the `.venv` directory and install the required Python packages (as per [requirements.txt](requirements.txt)) to it. + +#### Preparation + +Make sure you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed. + +#### Translation + +Recommended flow when working on a new language (replace `` with the language code, e.g. `bg`): + +- Update the locale files for your language: `just sync-for-language ` (internally, this automatically runs `just extract-translation-templates` to make sure the translation templates are up-to-date) + +- Use an editor to translate the files in the `locales/` directory + +- Build translated documents: `just build-for-language ` + +- Preview the result in the `translations/` directory + +- Commit your changes done to the `locales/` directory + +- If you have progressed with the translation beyond a certain threshold, consider [Publishing translations in a new language](#publish-translations-in-a-new-language) + +### Using any other package manager and manual scripts + +If you cannot use [uv](https://docs.astral.sh/uv/) and/or [just](https://github.com/casey/just), you can: + +- manage Python packages in another way ([pip](https://pip.pypa.io/en/stable/), [Poetry](https://python-poetry.org/), etc.) +- manage translation strings and build translated documents manually by invoking scripts from the [bin](bin/) directory + +#### Preparation + +##### virtualenv and pip + +- Create a Python virtual environment in the `.venv` directory: `virtualenv .venv` +- Activate the virtual environment: `source .venv/bin/activate` +- Install the required Python packages using [pip](https://pip.pypa.io/en/stable/): `pip install -r requirements.txt` + +#### Translation + +Recommended flow when working on a new language (replace `` with the language code, e.g. `bg`): + +- Ensure the English translation templates ([translation-templates/](translation-templates/)) are extracted: `./bin/extract-translation-templates.sh` + +- Update the locale files for your language: `./bin/sync-translation-templates-to-locales.sh ` + +- Use an editor to translate the files in the `locales/` directory + +- Build translated documents: `./bin/build-translated-result.sh ` + +- Preview the result in the `translations/` directory + +- Commit your changes done to the `locales/` directory + +- If you have progressed with the translation beyond a certain threshold, consider [Publishing translations in a new language](#publish-translations-in-a-new-language) + +### Publish translations in a new language + +To publish prebuilt documents translated in a new language to the `translations/` directory: + +- add its language code to the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file +- whitelist its `translations/` directory by adding a `!translations/` rule to the [.gitignore](.gitignore) file + +💡 Leave a trailing new line at the end of the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file. diff --git a/i18n/bin/build-translated-result.sh b/i18n/bin/build-translated-result.sh new file mode 100755 index 000000000..0f860fe7f --- /dev/null +++ b/i18n/bin/build-translated-result.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# This script builds the translated result (translated project) for a given language in the `translations//` directory. + +set -euxo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +LANGUAGE=$1 + +base_path="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" + +if [ ! -f ${base_path}/i18n/locales/${LANGUAGE}/LC_MESSAGES/README.po ]; then + echo "Locales for ${LANGUAGE} not found. Please run the `sync-translation-templates-to-locales.sh` script first." + exit 1 +fi + +# Prepare a clean build directory +if [ -d ${base_path}/i18n/translated-result-build-${LANGUAGE} ]; then + rm -rf ${base_path}/i18n/translated-result-build-${LANGUAGE} +fi +mkdir -p ${base_path}/i18n/translated-result-build-${LANGUAGE} + +# Build the translated documentation +sphinx-build \ + -b markdown \ + -D language="${LANGUAGE}" \ + ${base_path}/ \ + ${base_path}/i18n/translated-result-build-${LANGUAGE} + +# Clean up .mo files produced during the build. +# We don't commit them to the repository anyway, so they can be left alone, +# but we'd rather keep things clean anyway. +find ${base_path}/i18n/locales/${LANGUAGE} -type f -name '*.mo' -delete + +# Clean up the build directory +rm -rf ${base_path}/i18n/translated-result-build-${LANGUAGE}/.doctrees + +# Copy assets +cp -r ${base_path}/docs/assets ${base_path}/i18n/translated-result-build-${LANGUAGE}/docs/assets/ + +# Remove the old result directory for this language +if [ -d ${base_path}/i18n/translations/${LANGUAGE} ]; then + rm -rf ${base_path}/i18n/translations/${LANGUAGE} +fi + +# Make sure the `translations/` directory exists +if [ ! -d ${base_path}/i18n/translations ]; then + mkdir -p ${base_path}/i18n/translations +fi + +# Relocate the built result to translations/ +mv ${base_path}/i18n/translated-result-build-${LANGUAGE} ${base_path}/i18n/translations/${LANGUAGE} diff --git a/i18n/bin/extract-translation-templates.sh b/i18n/bin/extract-translation-templates.sh new file mode 100755 index 000000000..f023ea28c --- /dev/null +++ b/i18n/bin/extract-translation-templates.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# This script extracts translation templates (original English strings) into the `translation-templates/` directory. +# These templates are later used to generate locale files for each language in the `locales/` directory. +# +# By default `sphinx-build` extracts the templates into a `build/gettext` directory, while we'd like to have them in the `translation-templates/` directory. +# To avoid the `POT-Creation-Date` information in templates being updated every time we extract them, +# we restore the `translation-templates/` directory to the `build/gettext` directory before running the script. + +set -euxo pipefail + +base_path="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" + +# Restore the `translation-templates/` directory to the `build/gettext` directory +if [ -d ${base_path}/i18n/build ]; then + rm -rf ${base_path}/i18n/build +fi +mkdir -p ${base_path}/i18n/build +cp -r ${base_path}/i18n/translation-templates ${base_path}/i18n/build/gettext + +# Extract translation templates from the documentation into the `build/gettext` directory +sphinx-build -M gettext ${base_path} ${base_path}/i18n/build + +# Clean up the build directory +rm -rf ${base_path}/i18n/build/gettext/.doctrees + +# Update the `translation-templates/` directory with the new templates +if [ -d ${base_path}/i18n/translation-templates ]; then + rm -rf ${base_path}/i18n/translation-templates +fi +mv ${base_path}/i18n/build/gettext ${base_path}/i18n/translation-templates + +# Get rid of the `build` directory +rmdir ${base_path}/i18n/build diff --git a/i18n/bin/sync-translation-templates-to-locales.sh b/i18n/bin/sync-translation-templates-to-locales.sh new file mode 100755 index 000000000..c1678a393 --- /dev/null +++ b/i18n/bin/sync-translation-templates-to-locales.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# This script updates the translation files (locales//**/*.po) for a given language. +# It uses the translation templates (translation-templates/**/*.pot) to generate the translation files. + +set -euxo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +LANGUAGE=$1 + +base_path="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" + +if [ ! -f ${base_path}/i18n/translation-templates/README.pot ]; then + echo "Translation templates not found. Please run the `extract-translation-templates.sh` script first." + exit 1 +fi + +# Create necessary directories to avoid race conditions caused by +# Sphinx potentially trying to concurrently create them from separate threads below. +mkdir -p ${base_path}/i18n/locales/${LANGUAGE}/LC_MESSAGES/docs + +# Update the translation files +sphinx-intl update \ + --pot-dir ${base_path}/i18n/translation-templates \ + --locale-dir ${base_path}/i18n/locales \ + --language ${LANGUAGE} + +# Post-process all .po files to remove word-wrapping. +# +# Tools for editing .po files like Poedit don't use word-wrapping, +# and us not using word-wrapping here means diffs can be smaller. +for po_file in $(find ${base_path}/i18n/locales -name '*.po'); do + msgcat --no-wrap -o "$po_file" "$po_file" +done diff --git a/i18n/justfile b/i18n/justfile new file mode 100644 index 000000000..57b9d8400 --- /dev/null +++ b/i18n/justfile @@ -0,0 +1,65 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Shows help +default: + @just --list --justfile {{ justfile() }} + +# Extracts original English strings (translation templates) into the `translation-templates/` directory +extract-translation-templates: _venv + @echo "Extracting translation templates…" + PATH={{ justfile_directory() }}/.venv/bin:$PATH {{ justfile_directory() }}/bin/extract-translation-templates.sh + +# Syncs the translation templates (affects `translation-templates/`) and strings (affects `locales/*`) for all published languages (`PUBLISHED_LANGUAGES`) +sync-for-all-published-languages: _venv + #!/bin/sh + cat {{ justfile_directory() }}/PUBLISHED_LANGUAGES | while read language ; do + {{ just_executable() }} sync-for-language $language + done + +# Syncs the translation templates (affects `translation-templates/`) and strings for all known languages (`KNOWN_LANGUAGES`) +sync-for-all-known-languages: + #!/bin/sh + find {{ justfile_directory() }}/locales -mindepth 1 -maxdepth 1 -type d | while read path ; do + language=$(basename "$path") + echo "Syncing for language $language…" + {{ just_executable() }} sync-for-language $language + done + +# Updates the translation templates (affects `translation-templates/`) and syncs the translation strings for a given language (affects `locales/{{ language }}`) +sync-for-language language: extract-translation-templates (_sync-translation-templates-to-locales-for-language language) + +# Updates `locales/{{ language }}` files based on the original template strings from `translation-templates/` +_sync-translation-templates-to-locales-for-language language: _venv + PATH={{ justfile_directory() }}/.venv/bin:$PATH {{ justfile_directory() }}/bin/sync-translation-templates-to-locales.sh {{ language }} + +# Builds the translated result for a given language into the `translations/{{ language }}` directory +build-for-language language: _venv + PATH={{ justfile_directory() }}/.venv/bin:$PATH {{ justfile_directory() }}/bin/build-translated-result.sh {{ language }} + +# Builds the translated result for all published languages into the `translations/` directory +build-for-all-published-languages: + #!/bin/sh + cat {{ justfile_directory() }}/PUBLISHED_LANGUAGES | while read language ; do + {{ just_executable() }} build-for-language $language + done + +# Builds the translated result for all known languages into the `translations/` directory +build-for-all-known-languages: + #!/bin/sh + find {{ justfile_directory() }}/locales -mindepth 1 -maxdepth 1 -type d | while read path ; do + language=$(basename "$path") + echo "Building for language $language…" + {{ just_executable() }} build-for-language $language + done + +# Creates the virtual environment and installs the required Python packages +_venv: + #!/bin/sh + if [ ! -f {{ justfile_directory() }}/.venv/bin/sphinx-build ]; then + echo "No sphinx-build found, creating virtual environment and installing requirements…" + uv venv {{ justfile_directory() }}/.venv + VIRTUAL_ENV={{ justfile_directory() }}/.venv uv pip install -r {{ justfile_directory() }}/requirements.txt + fi diff --git a/i18n/locales/bg/LC_MESSAGES/CHANGELOG.po b/i18n/locales/bg/LC_MESSAGES/CHANGELOG.po new file mode 100644 index 000000000..23a80c042 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/CHANGELOG.po @@ -0,0 +1,7070 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../CHANGELOG.md:1 +msgid "2025-01-27" +msgstr "" + +#: ../../../CHANGELOG.md:3 +msgid "Redis and KeyDB are no longer part of the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:5 +msgid "**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead." +msgstr "" + +#: ../../../CHANGELOG.md:7 +msgid "The playbook has gone through several iterations of memorystore implementations:" +msgstr "" + +#: ../../../CHANGELOG.md:9 +msgid "It initially used Redis, auto-installing it when needed by features/services" +msgstr "" + +#: ../../../CHANGELOG.md:10 +msgid "[Switched to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis) as the default, while keeping Redis support for those who wished to remain on Redis" +msgstr "" + +#: ../../../CHANGELOG.md:11 +msgid "[Switched to Valkey](#backward-compatibility-break-the-playbook-now-defaults-to-valkey-instead-of-keydb) due to [KeyDB issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), while keeping Redis and KeyDB support, for those who wished to remain on them" +msgstr "" + +#: ../../../CHANGELOG.md:13 +msgid "To reduce configuration complexity and maintenance overhead, we are now:" +msgstr "" + +#: ../../../CHANGELOG.md:15 +msgid "removing Redis and KeyDB support entirely" +msgstr "" + +#: ../../../CHANGELOG.md:16 +msgid "using Valkey as the sole Redis-compatible memorystore implementation" +msgstr "" + +#: ../../../CHANGELOG.md:18 +msgid "To update your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:20 +msgid "**Most users** don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:21 +msgid "**Users that were explicitly sticking to Redis/KeyDB** need to update their `vars.yml` to use `valkey_*` variables instead" +msgstr "" + +#: ../../../CHANGELOG.md:24 +msgid "2025-01-19" +msgstr "" + +#: ../../../CHANGELOG.md:26 +msgid "conduwuit support" +msgstr "" + +#: ../../../CHANGELOG.md:28 +msgid "Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [conduwuit](https://conduwuit.puppyirl.gay/) homeserver support for new installations." +msgstr "" + +#: ../../../CHANGELOG.md:30 +msgid "conduwuit is a fork of [Conduit](./docs/configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../CHANGELOG.md:32 +msgid "Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:34 +msgid "To try out conduwuit, we recommend that you **use a new server**. Refer to our [Configuring conduwuit](./docs/configuring-playbook-conduwuit.md) guide for details." +msgstr "" + +#: ../../../CHANGELOG.md:36 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to conduwuit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:39 +msgid "2025-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:41 +msgid "(Backward Compatibility Break) Synapse v1.122.0 requires Postgres v13" +msgstr "" + +#: ../../../CHANGELOG.md:43 +msgid "The Synapse homeserver [requires Postgres v13 or newer](https://github.com/element-hq/synapse/issues/18034)." +msgstr "" + +#: ../../../CHANGELOG.md:45 +msgid "If you've been maintaining your setup for a while and you haven't been doing [Postgres upgrades](docs/maintenance-postgres.md#upgrading-postgresql), you may be on an old version of Postgres. The easiest way to check is to see the contents of the `/matrix/postgres/data/PG_VERSION` file." +msgstr "" + +#: ../../../CHANGELOG.md:47 +msgid "If you're on a Postgres version older than v13, you need to [upgrade your Postgres setup](docs/maintenance-postgres.md#upgrading-postgresql) or Synapse will produce an error on startup." +msgstr "" + +#: ../../../CHANGELOG.md:49 +msgid "If you're using an external Postgres server (not installed by this playbook), you'll need to figure out how to upgrade it yourself." +msgstr "" + +#: ../../../CHANGELOG.md:51 +msgid "If you're not ready to upgrade your Postgres setup yet, you can temporarily remain on an old Synapse version by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:59 +msgid "2024-11-26" +msgstr "" + +#: ../../../CHANGELOG.md:61 +msgid "(Backward Compatibility Break) Synapse now defaults to enabling authenticated media" +msgstr "" + +#: ../../../CHANGELOG.md:63 +msgid "**TLDR**: with this update, your Synapse homeserver will start requiring authentication for newly-uploaded media files. While the majority of the ecosystem (clients, bots, etc.) should support this, certain software may lack support for it (and you may wish to turn it off, if it's causing issues)." +msgstr "" + +#: ../../../CHANGELOG.md:65 +msgid "The default configuration for the Synapse homeserver now [enforces Authenticated media by default](https://element-hq.github.io/synapse/v1.120/upgrade.html#authenticated-media-is-now-enforced-by-default)." +msgstr "" + +#: ../../../CHANGELOG.md:67 +msgid "Servers like `matrix.org` have already [sunset unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) months ago." +msgstr "" + +#: ../../../CHANGELOG.md:69 +msgid "Now that **various clients, bots, bridges and extra services have caught up with authenticated media support**, Synapse developers seem confident that it's time to enable authenticated media by default." +msgstr "" + +#: ../../../CHANGELOG.md:71 +msgid "We're changing the playbook configuration for authenticated media to keep up with upstream defaults changing." +msgstr "" + +#: ../../../CHANGELOG.md:73 +msgid "Old and unmaintained bridges (like all mx-puppet bridges, etc.) do not support authenticated media. Other software may be similarly affected. If you experience issues with some Matrix-related software, you may wish to disable authenticated media and contact the software maintainers to let them know." +msgstr "" + +#: ../../../CHANGELOG.md:75 +msgid "You can disable authenticated media at any time by setting `matrix_synapse_enable_authenticated_media: false` in your `vars.yml` configuration file and re-running the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:78 +msgid "2024-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:80 +msgid "(Backward Compatibility Break) The playbook now defaults to Valkey, instead of KeyDB" +msgstr "" + +#: ../../../CHANGELOG.md:82 +msgid "**TLDR**: if the playbook installed KeyDB (or Redis) as a dependency for you before, it will now replace it with [Valkey](https://valkey.io/) (a drop-in alternative). We [previously switched from Redis to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis), but Valkey is a better alternative, so we're switching again." +msgstr "" + +#: ../../../CHANGELOG.md:84 +msgid "The playbook used to install Redis or KeyDB if services have a need for a Redis-compatible implementation ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.)." +msgstr "" + +#: ../../../CHANGELOG.md:86 +msgid "Earlier this year, we switched from Redis to KeyDB — see [(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis)." +msgstr "" + +#: ../../../CHANGELOG.md:88 +msgid "Because Valkey seems to be a better successor to Redis (than KeyDB) and likely doesn't suffer from [issues like this one](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), we now replace KeyDB with Valkey." +msgstr "" + +#: ../../../CHANGELOG.md:90 +msgid "Valkey (like KeyDB and Redis in the past) is an implicitly enabled dependency — you don't need custom configuration in `vars.yml` to enable it." +msgstr "" + +#: ../../../CHANGELOG.md:92 +msgid "Next time your run the playbook (via the `setup-all` tag), **KeyDB will be automatically uninstalled and replaced with Valkey**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:94 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for Valkey**, nor the Valkey role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of Valkey (or Redis/KeyDB). If Redis is necessary in an `arm32` deployment, disabling Valkey and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:96 ../../../CHANGELOG.md:436 +msgid "**The playbook still supports Redis** and you can keep using Redis (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:107 +msgid "**The playbook still supports KeyDB** and you can keep using KeyDB (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:117 +msgid "At some point in time in the future, we'll remove both KeyDB and Redis from the playbook, so we recommend that you migrate to Valkey earlier anyway." +msgstr "" + +#: ../../../CHANGELOG.md:120 +msgid "2024-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:122 +msgid "HTTP-compression support for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:124 +msgid "The playbook now **automatically enables HTTP-compression support** for major services powered by the playbook, like [Cinny](./docs/configuring-playbook-client-cinny.md), [Element Web](./docs/configuring-playbook-client-element-web.md), [Hydrogen](./docs/configuring-playbook-client-hydrogen.md), as well as for Matrix Client-Server and Federation APIs (`matrix.example.com`)." +msgstr "" + +#: ../../../CHANGELOG.md:126 +msgid "Other services installed by the playbook are currently not compression-enabled, but may become so over time. This change is rolled out on a per-service basis (as opposed to doing it globally, at the Traefik entrypoint level) to allow certain services or route endpoints which do not behave well when compressed (e.g. [issue 3749](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3749)) to be excluded from compression." +msgstr "" + +#: ../../../CHANGELOG.md:128 +msgid "A long time ago, various services were operating with `gzip`-compression enabled at the nginx level. Since the switch to Traefik (see [Goodbye, `matrix-nginx-proxy` 🪦](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/57c5271d9d6265a34a9d9cceb93365f685074f96/CHANGELOG.md#goodbye-matrix-nginx-proxy-)), all services (with the exception of Matrix APIs for Synapse worker-enabled setups which are powered by `nginx` via `synapse-reverse-proxy-companion`) have been operating without HTTP-compression support." +msgstr "" + +#: ../../../CHANGELOG.md:130 +msgid "HTTP-compression is now done via Traefik's [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware. We use the default configuration for this middleware, which enables `zstd`, `br` and `gzip` support (in this order). This middleware's configuration can be configured via variables in the Traefik role (see `traefik_config_http_middlewares_compression_middleware_options`)." +msgstr "" + +#: ../../../CHANGELOG.md:132 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you can benefit from the same by:" +msgstr "" + +#: ../../../CHANGELOG.md:134 +msgid "defining a [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware (via the [file](https://doc.traefik.io/traefik/providers/file/) or [Docker](https://doc.traefik.io/traefik/providers/docker/) providers)" +msgstr "" + +#: ../../../CHANGELOG.md:135 +msgid "setting `matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled` to `true`" +msgstr "" + +#: ../../../CHANGELOG.md:136 +msgid "specifying the middleware's name in `matrix_playbook_reverse_proxy_traefik_middleware_compression_name` (e.g. `matrix_playbook_reverse_proxy_traefik_middleware_compression_name: my-compression-middleware@file`)" +msgstr "" + +#: ../../../CHANGELOG.md:138 +msgid "Timeout adjustments for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:140 +msgid "The playbook now supports configuring various [transport.respondingTimeouts](https://doc.traefik.io/traefik/routing/entrypoints/#respondingtimeouts) timeout values (`readTimeout`, `writeTimeout`, `idleTimeout`) for the `web`, `web-secure` and `matrix-federation` entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:142 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you may wish to do similar configuration changes to your setup manually." +msgstr "" + +#: ../../../CHANGELOG.md:144 +msgid "The most interesting of these is the `readTimeout` configuration value (the maximum duration for reading the entire request, including the body), which used to default to `60s`. For large and slowly progressing file uploads, `60s` would often not be enough for the transfer to finish and uploads would end up being interrupted. The playbook now raises the `readTimeout` value to 5 minutes (`300s`) to improve this use-case." +msgstr "" + +#: ../../../CHANGELOG.md:146 +msgid "The `traefik_config_entrypoint_web_transport_respondingTimeouts_*` variables (for the `web` entrypoint) cascade to affecting the timeout values for the `web-secure` and `matrix-federation` entrypoints, so you can easily adjust all timeout values using them." +msgstr "" + +#: ../../../CHANGELOG.md:148 +msgid "Example of the default timeout values used by the playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:159 +msgid "Alternatively, you may adjust the timeout values for specific entrypoints (like `web-secure` and `matrix-federation`) using dedicated variables (like `traefik_config_entrypoint_web_secure_transport_respondingTimeouts_readTimeout` and `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_transport_respondingTimeouts_readTimeout`)." +msgstr "" + +#: ../../../CHANGELOG.md:162 +msgid "2024-11-08" +msgstr "" + +#: ../../../CHANGELOG.md:164 +msgid "Support for synapse-admin auto-configuration via /.well-known/matrix/client" +msgstr "" + +#: ../../../CHANGELOG.md:166 +msgid "You can administrate your Synapse-powered homeserver using synapse-admin hosted externally (e.g. [admin.etke.cc](https://admin.etke.cc/)) and the synapse-admin instance would still auto-configure itself correctly for your server by [reading its `/.well-known/matrix/client` file](https://github.com/etkecc/synapse-admin/pull/126)." +msgstr "" + +#: ../../../CHANGELOG.md:168 +msgid "The playbook now configures the `/.well-known/matrix/client` file for this by default, injecting into it a `cc.etke.synapse-admin` section that contains the full synapse-admin configuration. This is done even if you don't enable the synapse-admin service in your configuration. The reason for always doing it is to allow users to skip the (small) overhead of self-hosting the non-core synapse-admin service, yet still be able to use it from elsewhere when needed." +msgstr "" + +#: ../../../CHANGELOG.md:170 +msgid "If you don't ever plan on using synapse-admin from other servers (besides your own due to [self-hosting synapse-admin](./docs/configuring-playbook-synapse-admin.md)), you **can disable this** `/.well-known/matrix/client` configuration via `matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:173 +msgid "2024-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:175 +msgid "(BC Break) Postmoogle's variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:177 +msgid "Due to the recategorization of [Postmoogle](./docs/configuring-playbook-bridge-postmoogle.md) from the bot to the bridge, its variables were renamed (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`). You need to adjust your `vars.yml` configuration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:179 +msgid "2024-10-19" +msgstr "" + +#: ../../../CHANGELOG.md:181 +msgid "Support for Matrix Authentication Service" +msgstr "" + +#: ../../../CHANGELOG.md:183 +msgid "The playbook now supports installing and configuring [Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../CHANGELOG.md:185 +msgid "Huge thanks to [Quentin Gliech](https://github.com/sandhose) from the [Element](https://element.io/) / [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service) team for answering our numerous questions about MAS." +msgstr "" + +#: ../../../CHANGELOG.md:187 +msgid "This is an **experimental service** and there are **still certain issues with it** (see [Expectations](./docs/configuring-playbook-matrix-authentication-service.md#expectations)). Matrix server administrators should only consider switching if they identify with one or more [reasons to use Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md#reasons-to-use-matrix-authentication-service). As MAS adoption improves and more services are adjusted to support it, we expect that using MAS will become the norm." +msgstr "" + +#: ../../../CHANGELOG.md:189 +msgid "Our [Setting up Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) documentation page has more details about this new service, what you might expect from the switch and how you can migrate your existing (Synapse) homeserver setup to MAS." +msgstr "" + +#: ../../../CHANGELOG.md:192 +msgid "2024-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:194 +msgid "(BC Break) Postgres & Traefik roles have been relocated and variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:196 +msgid "Various roles have been relocated from the [devture](https://github.com/devture) organization to the [mother-of-all-self-hosting](https://github.com/mother-of-all-self-hosting) organization." +msgstr "" + +#: ../../../CHANGELOG.md:198 +msgid "Along with the relocation, the `devture_` prefix was dropped from their variable names, so you need to adjust your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:200 +msgid "You need to do the following replacements:" +msgstr "" + +#: ../../../CHANGELOG.md:202 +msgid "`devture_postgres_` -> `postgres_`" +msgstr "" + +#: ../../../CHANGELOG.md:203 +msgid "`devture_traefik_` -> `traefik_`" +msgstr "" + +#: ../../../CHANGELOG.md:205 +msgid "As always, the playbook would let you know about this and point out any variables you may have missed." +msgstr "" + +#: ../../../CHANGELOG.md:208 +msgid "2024-09-12" +msgstr "" + +#: ../../../CHANGELOG.md:210 +msgid "Support for baibot" +msgstr "" + +#: ../../../CHANGELOG.md:212 +msgid "The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) — a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../CHANGELOG.md:214 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as well as many other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../CHANGELOG.md:216 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to the now-unmaintained [matrix-chatgpt-bot](./docs/configuring-playbook-bot-chatgpt.md)." +msgstr "" + +#: ../../../CHANGELOG.md:218 +msgid "To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baibot.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:220 +msgid "Switching synapse-admin to etke.cc's fork" +msgstr "" + +#: ../../../CHANGELOG.md:222 +msgid "The playbook now installs [etke.cc](https://etke.cc/)'s [fork](https://github.com/etkecc/synapse-admin) of [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) (originally developed by [Awesome-Technologies](https://github.com/Awesome-Technologies)). This fork is a drop-in replacement for the original software." +msgstr "" + +#: ../../../CHANGELOG.md:224 +msgid "The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) — to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork." +msgstr "" + +#: ../../../CHANGELOG.md:226 +msgid "If upstream synapse-admin picks up the pace and improves, the etke.cc fork may disappear and the playbook may switch to the original software again. Until that time comes, we believe that etke.cc's fork is the better software to use right now." +msgstr "" + +#: ../../../CHANGELOG.md:228 +msgid "If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:241 +msgid "2024-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:243 +msgid "New appservice-double-puppet service for better double-puppeting" +msgstr "" + +#: ../../../CHANGELOG.md:245 +msgid "Mautrix bridges are undergoing large changes as announced in the [August 2024 releases & progress](https://mau.fi/blog/2024-08-mautrix-release/) blog post." +msgstr "" + +#: ../../../CHANGELOG.md:247 +msgid "The playbook has already upgraded to the rewritten mautrix-slack ([v0.1.0](https://github.com/mautrix/slack/releases/tag/v0.1.0)) and mautrix-signal ([v0.7.0](https://github.com/mautrix/signal/releases/tag/v0.7.0)) bridges." +msgstr "" + +#: ../../../CHANGELOG.md:249 +msgid "The newly rewritten bridges do not support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) anymore, which has prompted us to switch to the new & better [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new) for double-puppeting. The playbook automates this double-puppeting setup for you if you enable the new [Appservice Double Puppet](./docs/configuring-playbook-appservice-double-puppet.md) service." +msgstr "" + +#: ../../../CHANGELOG.md:251 +msgid "All non-deprecated mautrix bridges in the playbook have been reworked to support double-puppeting via an Appservice. Most bridges still support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md), so the playbook supports it too. If only Shared Secret Auth is enabled, double-puppeting will be configured using that method (for the bridges that support it). That said, **Shared Secret Auth double-puppeting is being phased out and we recommend replacing it with the new Appservice method**." +msgstr "" + +#: ../../../CHANGELOG.md:253 +msgid "We recommend **enabling double-puppeting via the new Appservice method** by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:259 +msgid "You can still **keep** [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) enabled. Non-mautrix bridges and other services (e.g. [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) may still require it." +msgstr "" + +#: ../../../CHANGELOG.md:261 +msgid "When both double-puppeting methods are enabled, the playbook will automatically choose the new and better Appservice method for bridges that support it." +msgstr "" + +#: ../../../CHANGELOG.md:264 +msgid "2024-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:266 +msgid "matrix-media-repo now configured for Authenticated Media" +msgstr "" + +#: ../../../CHANGELOG.md:268 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), our matrix-media-repo implementation now automatically [sets up signing keys](https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/) for Authenticated Media (as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916))." +msgstr "" + +#: ../../../CHANGELOG.md:270 +msgid "If you had never heard of Authenticated Media before, the [Sunsetting unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) article on [matrix.org](https://matrix.org/) is a good introduction." +msgstr "" + +#: ../../../CHANGELOG.md:272 +msgid "This feature is enabled for matrix-media-repo installations by default and will append an additional (matrix-media-repo-generated signing key) to your homeserver's (Synapse or Dendrite) signing key. See the [Signing keys](./docs/configuring-playbook-matrix-media-repo.md#signing-keys) and [Key backup and revoking](./docs/configuring-playbook-matrix-media-repo.md#key-backup-and-revoking) sections of the matrix-media-repo documentation for more details." +msgstr "" + +#: ../../../CHANGELOG.md:274 +msgid "If you'd like to avoid this new feature, you can disable it by setting `matrix_media_repo_generate_signing_key: false` in your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:277 +msgid "2024-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:279 +msgid "(Backward Compatibility Break) matrix-corporal has been upgraded to v3" +msgstr "" + +#: ../../../CHANGELOG.md:281 +msgid "The playbook now installs [matrix-corporal](https://github.com/devture/matrix-corporal) v3.0.0, which brings support for **power-level management** (thanks to [this PR](https://github.com/devture/matrix-corporal/pull/32))." +msgstr "" + +#: ../../../CHANGELOG.md:283 +msgid "This upgrade necessitates configuration policy changes as described in [matrix-corporal's changelog entry](https://github.com/devture/matrix-corporal/blob/5287cb81c82cd3b951c2a099b4697c3e0b384559/CHANGELOG.md#version-300-2024-08-08)." +msgstr "" + +#: ../../../CHANGELOG.md:285 +msgid "If you'd like to remain on the old (v2) version of matrix-corporal, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:291 +msgid "2024-07-25" +msgstr "" + +#: ../../../CHANGELOG.md:293 +msgid "synapse-usage-exporter support" +msgstr "" + +#: ../../../CHANGELOG.md:295 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) — a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape." +msgstr "" + +#: ../../../CHANGELOG.md:297 +msgid "To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](docs/configuring-playbook-synapse-usage-exporter.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:300 +msgid "2024-07-06" +msgstr "" + +#: ../../../CHANGELOG.md:302 +msgid "matrix-alertmanager-receiver support" +msgstr "" + +#: ../../../CHANGELOG.md:304 +msgid "For those wishing to more easily integrate [Prometheus](https://prometheus.io/)' alerting service ([Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)) with Matrix, the playbook can now set up [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)." +msgstr "" + +#: ../../../CHANGELOG.md:306 +msgid "See [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](./docs/configuring-playbook-alertmanager-receiver.md) for more details." +msgstr "" + +#: ../../../CHANGELOG.md:308 +msgid "Traefik v3 and HTTP/3 are here now" +msgstr "" + +#: ../../../CHANGELOG.md:310 +msgid "**TLDR**: Traefik was migrated from v2 to v3. Minor changes were done to the playbook. Mostly everything else worked out of the box. Most people will not have to do any tweaks to their configuration. In addition, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is now auto-enabled for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. If you have a firewall in front of your server and you wish to benefit from `HTTP3`, you will need to open the `443` and `8448` UDP ports in it." +msgstr "" + +#: ../../../CHANGELOG.md:312 +msgid "Traefik v3" +msgstr "" + +#: ../../../CHANGELOG.md:314 +msgid "The reverse-proxy that the playbook uses by default (Traefik) has recently been upgraded to v3 (see [this blog post](https://traefik.io/blog/announcing-traefik-proxy-v3-rc/) to learn about its new features). Version 3 includes some small breaking configuration changes requiring a [migration](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:316 +msgid "We have **updated the playbook to Traefik v3** (make sure to run `just roles` / `make roles` to get it)." +msgstr "" + +#: ../../../CHANGELOG.md:318 +msgid "There were **only minor playbook changes required** to adapt to Traefik v3, and only to the Ansible role for [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) where we changed a few [`PathPrefix` instances to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp), because these instances were using a regular expression instead of a fixed path. For fixed-path values, `PathPrefix` is still the preferred matcher function to use." +msgstr "" + +#: ../../../CHANGELOG.md:320 +msgid "**Most people using the playbook should not have to do any changes**." +msgstr "" + +#: ../../../CHANGELOG.md:322 +msgid "If you're using the playbook's Traefik instance to reverse-proxy to some other services of your own (not managed by the playbook), you may wish to review their Traefik labels and make sure they're in line with the [Traefik v2 to v3 migration guide](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:324 +msgid "If you've tweaked any of this playbook's `_path_prefix` variables and made them use a regular expression, you will now need to make additional adjustments. The playbook makes extensive use of `PathPrefix()` matchers in Traefik rules and `PathPrefix` does not support regular expressions anymore. To work around it, you may now need to override a whole `_traefik_rule` variable and switch it from [`PathPrefix` to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp)." +msgstr "" + +#: ../../../CHANGELOG.md:326 +msgid "If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` — a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand." +msgstr "" + +#: ../../../CHANGELOG.md:328 +msgid "HTTP/3 is enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:330 +msgid "In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now. Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:332 +msgid "HTTP3 uses the UDP protocol and **the playbook (together with Docker) will make sure that the appropriate ports** (`443` over UDP & `8448` over UDP) **are exposed and whitelisted in your server's firewall**. However, **if you have another firewall in front of your server** (as is the case for many cloud providers), **you will need to manually open these UDP ports**." +msgstr "" + +#: ../../../CHANGELOG.md:334 +msgid "If you do not open the UDP ports correctly or there is some other issue, clients (browsers, mostly) will fall-back to [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2) or even [HTTP/1.1](https://en.wikipedia.org/wiki/HTTP)." +msgstr "" + +#: ../../../CHANGELOG.md:336 +msgid "Still, if HTTP/3 cannot function correctly in your setup, it's best to disable advertising support for it (and misleading clients into trying to use HTTP/3)." +msgstr "" + +#: ../../../CHANGELOG.md:338 +msgid "To **disable HTTP/3**, you can use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:352 +msgid "If you are using [your own webserver](./docs/configuring-playbook-own-webserver.md) (in front of Traefik), port binding on UDP port `8448` by default due to HTTP/3 is either unnecessary or [may get in the way](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402). If it does, you can disable it:" +msgstr "" + +#: ../../../CHANGELOG.md:365 +msgid "2024-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:367 +msgid "synapse-admin is now restricted to your homeserver's URL by default" +msgstr "" + +#: ../../../CHANGELOG.md:369 +msgid "A new feature introduced in synapse-admin [v0.10.0](https://github.com/Awesome-Technologies/synapse-admin/releases/tag/0.10.0) (released and supported by the playbook since a a few months ago) provides the ability to [restrict its usage to a specific homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) (or multiple homeservers)." +msgstr "" + +#: ../../../CHANGELOG.md:371 +msgid "The playbook has just started making use of this feature. **From now on, your synapse-admin instance will be restricted to the homeserver you're managing via the playbook**. When configured like this, the *Homeserver URL* field in synapse-admin's web UI changes from a text field to a dropdown having a single value (the URL of your homeserver). This makes usage simpler for most people, as they won't need to manually enter a *Homeserver URL* anymore." +msgstr "" + +#: ../../../CHANGELOG.md:373 +msgid "If you'd like **to go back to the old unrestricted behavior**, use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:381 +msgid "2024-06-25" +msgstr "" + +#: ../../../CHANGELOG.md:383 +msgid "The URL-prefix for Hookshot generic webhooks has changed" +msgstr "" + +#: ../../../CHANGELOG.md:385 +msgid "Until now, generic Hookshot webhook URLs looked like this: `https://matrix.example.com/hookshot/webhooks/:hookId`." +msgstr "" + +#: ../../../CHANGELOG.md:387 +msgid "The `/hookshot/webhooks` common prefix gets stripped by Traefik automatically, so Hookshot only sees the part that comes after (`/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:389 +msgid "[A few years ago](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681), Hookshot started to prefer to handle webhooks at a `/webhook/:hookId` path (instead of directly at `/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:391 +msgid "To avoid future problems, we've [reconfigured](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/4704a60718946fd469aeee7fc3ae8127c633bb6b) our Hookshot configuration to use webhook URLs that include `/webhook` in the URL suffix (e.g. `/hookshot/webhooks/webhook/:hookId`, instead of `/hookshot/webhooks/:hookId`). This means that when we strip the common prefi (`/hookshot/webhooks`), we'll end up sending `/webhook/:hookId` to Hookshot, just like recommended." +msgstr "" + +#: ../../../CHANGELOG.md:393 +msgid "When generating new webhooks, you should start seeing the new URLs being used." +msgstr "" + +#: ../../../CHANGELOG.md:395 +msgid "**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work**, so your webhooks will not break just yet." +msgstr "" + +#: ../../../CHANGELOG.md:397 +msgid "However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side — you merely need to reconfigure the remote systems that use your webhook URLs." +msgstr "" + +#: ../../../CHANGELOG.md:400 +msgid "2024-06-22" +msgstr "" + +#: ../../../CHANGELOG.md:402 +msgid "The maubot user is now managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:404 +msgid "To make things easier and to be consistent with other roles, the [maubot](./docs/configuring-playbook-bot-maubot.md) user (`bot.maubot` by default) is [now](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3376) automatically created be the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:406 +msgid "If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined. Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable." +msgstr "" + +#: ../../../CHANGELOG.md:408 +msgid "If you've registered another username for the bot (other than the recommended default of `bot.maubot`), consider adjusting the `matrix_bot_maubot_login` variable (e.g. `matrix_bot_maubot_login: my.maubot.username`)." +msgstr "" + +#: ../../../CHANGELOG.md:411 +msgid "2024-06-03" +msgstr "" + +#: ../../../CHANGELOG.md:413 +msgid "WeChat bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:415 +msgid "Thanks to [Tobias Diez](https://github.com/tobiasdiez)'s [efforts](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3241), the playbook now supports bridging to [WeChat](https://www.wechat.com/) via the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:417 +msgid "See our [Setting up WeChat bridging](docs/configuring-playbook-bridge-wechat.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:420 +msgid "2024-03-26" +msgstr "" + +#: ../../../CHANGELOG.md:422 +msgid "(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis" +msgstr "" + +#: ../../../CHANGELOG.md:424 +msgid "**TLDR**: if the playbook used installed Redis as a dependency for you before, it will now replace it with [KeyDB](https://docs.keydb.dev/) (a drop-in alternative) due to [Redis having changed its license](https://redis.com/blog/redis-adopts-dual-source-available-licensing/)." +msgstr "" + +#: ../../../CHANGELOG.md:426 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now uses [KeyDB](https://docs.keydb.dev/) (a drop-in alternative for Redis), instead of [Redis](https://redis.io/)." +msgstr "" + +#: ../../../CHANGELOG.md:428 +msgid "The playbook used to install Redis (and now installs KeyDB in its place) if services have a need for it ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.) or if you explicitly enabled the service (`redis_enabled: true` or `keydb_enabled: true`)." +msgstr "" + +#: ../../../CHANGELOG.md:430 +msgid "This change is provoked by the fact that [Redis is now \"source available\"](https://redis.com/blog/redis-adopts-dual-source-available-licensing/). According to the Limitations of [the new license](https://redis.com/legal/rsalv2-agreement/) (as best as we understand them, given that we're not lawyers), using Redis in the playbook (even in a commercial FOSS service like [etke.cc](https://etke.cc/)) does not violate the new Redis license. That said, we'd rather neither risk it, nor endorse shady licenses and products that pretend to be free-software. Another high-quality alternative to Redis seems to be [Dragonfly](https://www.dragonflydb.io/), but the [Dragonfly license](https://github.com/dragonflydb/dragonfly?tab=License-1-ov-file#readme) is no better than Redis's." +msgstr "" + +#: ../../../CHANGELOG.md:432 +msgid "Next time your run the playbook (via the `setup-all` tag), **Redis will be automatically uninstalled and replaced with KeyDB**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:434 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for KeyDB**, nor the KeyDB role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of KeyDB (or Redis). If Redis is necessary in an `arm32` deployment, disabling KeyDB and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:445 +msgid "2024-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:447 +msgid "Initial work on IPv6 support" +msgstr "" + +#: ../../../CHANGELOG.md:449 +msgid "Thanks to [Tilo Spannagel](https://github.com/tilosp), the playbook can now enable IPv6 for container networks for various components (roles) via [the `devture_systemd_docker_base_ipv6_enabled` variable](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L14-L31)." +msgstr "" + +#: ../../../CHANGELOG.md:451 +msgid "It should be noted that:" +msgstr "" + +#: ../../../CHANGELOG.md:453 +msgid "Matrix roles (`roles/custom/matrix-*`) respect this variable, but external roles (those defined in `requirements.yml` and installed via `just roles`) do not respect it yet. Additional work is necessary" +msgstr "" + +#: ../../../CHANGELOG.md:454 +msgid "changing the variable subsequently may not change existing container networks. Refer to [these instructions](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L26-L30)" +msgstr "" + +#: ../../../CHANGELOG.md:455 +msgid "this is all very new and untested" +msgstr "" + +#: ../../../CHANGELOG.md:457 +msgid "Pantalaimon support" +msgstr "" + +#: ../../../CHANGELOG.md:459 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms — see our Draupnir docs for details." +msgstr "" + +#: ../../../CHANGELOG.md:461 +msgid "See our [Setting up Pantalaimon](docs/configuring-playbook-pantalaimon.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:464 +msgid "2024-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:466 +msgid "Support for Draupnir-for-all" +msgstr "" + +#: ../../../CHANGELOG.md:468 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) (aka multi-instance Draupnir running in appservice mode)." +msgstr "" + +#: ../../../CHANGELOG.md:470 +msgid "This is an alternative to [running Draupnir in bot mode](./docs/configuring-playbook-bot-draupnir.md), which is still supported by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:472 +msgid "The documentation page for [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) contains more information on how to install it." +msgstr "" + +#: ../../../CHANGELOG.md:475 +msgid "2024-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:477 +msgid "Support for bridging to Facebook/Messenger via the new mautrix-meta bridge" +msgstr "" + +#: ../../../CHANGELOG.md:479 +msgid "The [mautrix-facebook](./docs/configuring-playbook-bridge-mautrix-facebook.md) and [mautrix-instagram](./docs/configuring-playbook-bridge-mautrix-instagram.md) bridges are being [superseded by a new bridge](https://github.com/mautrix/facebook/issues/332) — the [mautrix-meta](https://github.com/mautrix/meta) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:481 +msgid "The playbook now supports the new mautrix-meta bridge — a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time." +msgstr "" + +#: ../../../CHANGELOG.md:483 +msgid "If you're using mautrix-facebook or mautrix-instagram right now, **you can still continue using the old bridges, but may wish to change to the new bridge implementations**. See:" +msgstr "" + +#: ../../../CHANGELOG.md:485 +msgid "[Setting up Instagram bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../CHANGELOG.md:487 +msgid "[Setting up Messenger bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../CHANGELOG.md:489 +msgid "The documentation pages contain more information on how to migrate." +msgstr "" + +#: ../../../CHANGELOG.md:492 +msgid "2024-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:494 +msgid "Much larger Synapse caches and cache auto-tuning enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:496 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). This work and the default values used by the playbook are inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/deployment/synapse.html)." +msgstr "" + +#: ../../../CHANGELOG.md:498 +msgid "The playbook has always used a very conservative cache factor (`matrix_synapse_caches_global_factor`) value of `0.5`, which may be OK for small and underactive deployments, but is not ideal for larger servers. Paradoxically, a small global cache factor value [does not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../CHANGELOG.md:500 +msgid "The playbook now uses **a 20x larger cache factor** (currently `10`), adjusts a few other cache-related variables, and **enables cache auto-tuning** via the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:502 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:503 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:504 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../CHANGELOG.md:506 +msgid "These values should be good defaults for most servers, but may change over time as we experiment further." +msgstr "" + +#: ../../../CHANGELOG.md:508 +msgid "Refer to our new [Tuning caches and cache autotuning](docs/maintenance-synapse.md#tuning-caches-and-cache-autotuning) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:511 +msgid "2024-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:513 +msgid "(Backward-compatibility break) Minor changes necessary for some people serving a static website at the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:515 +msgid "This only affects people who are [Serving a static website at the base domain](./docs/configuring-playbook-base-domain-serving.md#serving-a-static-website-at-the-base-domain), but not managing its `index.html` through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:517 +msgid "That is, for people who have `matrix_static_files_file_index_html_enabled: false` in their `vars.yml` configuration, the playbook has a new default behavior. Since the playbook is not managing the `index.html` file, it will default to a more sensible way of handling the base domain — redirecting `https://example.com/` to `https://matrix.example.com/`, instead of serving a 404 page." +msgstr "" + +#: ../../../CHANGELOG.md:519 +msgid "If you are managing your static website by yourself (by dropping files into `/matrix/static-files/public` somehow), then you probably don't wish for such redirection to happen. You can disable it by adding `matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:522 +msgid "2024-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:524 +msgid "Support for more efficient (specialized) Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:526 +msgid "Thanks to [Charles Wright](https://github.com/cvwright) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook has [received support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3100) for load-balancing the Synapse workload via [specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) which are supposed to work better than our old [generic workers](./docs/configuring-playbook-synapse.md#generic-workers) implementation." +msgstr "" + +#: ../../../CHANGELOG.md:528 +msgid "For now, playbook defaults remain unchanged and the `one-of-each` [workers preset](./docs/configuring-playbook-synapse.md#worker-presets) continues being the default. However, the default may change in the future. If you'd like to remain on this preset even if/when the defaults change, consider explicitly adding `matrix_synapse_workers_preset: one-of-each` to your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:530 +msgid "Our specialized workers setup is based on recommendations found in [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). What's special about our new setup is that we try to parse information out of the request (who the user is; which room is being operated on) and try to forward similar requests to the same worker. As an example, this means that once a worker caches some room information, subsequent requests for the same room will be routed to the same worker (which supposedly still has the room's state cached)." +msgstr "" + +#: ../../../CHANGELOG.md:532 +msgid "To get started, refer to our [Specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) documentation section." +msgstr "" + +#: ../../../CHANGELOG.md:535 +msgid "2024-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:537 +msgid "Switching to Element's AGPLv3-licensed Synapse release" +msgstr "" + +#: ../../../CHANGELOG.md:539 +msgid "A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under:" +msgstr "" + +#: ../../../CHANGELOG.md:541 +msgid "the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license — the same license that this Ansible playbook has always used" +msgstr "" + +#: ../../../CHANGELOG.md:542 +msgid "a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license" +msgstr "" + +#: ../../../CHANGELOG.md:544 +msgid "You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation." +msgstr "" + +#: ../../../CHANGELOG.md:546 +msgid "The change has [already happened](https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/) and the first Synapse release under the new license is here: [v1.99.0](https://github.com/element-hq/synapse/releases/tag/v1.99.0)." +msgstr "" + +#: ../../../CHANGELOG.md:548 +msgid "There is no up-to-date alternative Synapse fork right now and this free-software (AGPLv3-licensed) playbook is definitely not against free-software licenses, so we are now switching to the Element-maintained Synapse release." +msgstr "" + +#: ../../../CHANGELOG.md:550 +msgid "**What does this mean to you?**" +msgstr "" + +#: ../../../CHANGELOG.md:552 +msgid "For most home users, it doesn't mean anything. Your installation will continue working as it should and you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:554 +msgid "For people building commercial products on top of Synapse, they may have to either buy a license exception from Element (from what we hear, the fee depends on the number of monthly-active users on your instance) or they may need to release all related code as free-software (which is what we've been doing at [etke.cc](https://etke.cc/) ([here](https://gitlab.com/etke.cc)) all along)." +msgstr "" + +#: ../../../CHANGELOG.md:556 +msgid "We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own!" +msgstr "" + +#: ../../../CHANGELOG.md:558 +msgid "If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this:" +msgstr "" + +#: ../../../CHANGELOG.md:570 +msgid "Notes:" +msgstr "" + +#: ../../../CHANGELOG.md:572 +msgid "if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` — see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version" +msgstr "" + +#: ../../../CHANGELOG.md:574 +msgid "running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution." +msgstr "" + +#: ../../../CHANGELOG.md:576 +msgid "2024-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:578 +msgid "`Draupnir` has been relicensed to AFL-3.0" +msgstr "" + +#: ../../../CHANGELOG.md:580 +msgid "As of [#204](https://github.com/the-draupnir-project/Draupnir/pull/204) Draupnir changed its licence to AFL-3.0 from the CSL licence. This change affects playbook users who could not run Draupnir under the old license restrictions. The new license is considerably less restrictive and is OSI approved. Draupnir version v1.86.0 and later are covered by this license change." +msgstr "" + +#: ../../../CHANGELOG.md:582 +msgid "2024-01-15" +msgstr "" + +#: ../../../CHANGELOG.md:584 +msgid "Goodbye, `matrix-nginx-proxy` 🪦" +msgstr "" + +#: ../../../CHANGELOG.md:586 +msgid "**TLDR**: All traces of the `matrix-nginx-proxy` reverse-proxy component are now gone. This brought about many other internal changes (and security improvements), so setups may need minor adjustments or suffer some (temporary) breakage. People who have been on the Traefik-native setup may upgrade without much issues. Those running their own Traefik instance may need minor changes. People who have been postponing the migration away from `matrix-nginx-proxy` (for more than a year already!) will now finally need to do something about it." +msgstr "" + +#: ../../../CHANGELOG.md:588 +msgid "Backstory on `matrix-nginx-proxy`" +msgstr "" + +#: ../../../CHANGELOG.md:590 +msgid "We gather here today to celebrate the loss of a once-beloved component in our stack — `matrix-nginx-proxy`. It's been our [nginx](https://nginx.org/)-based reverse-proxy of choice since the [first commit](https://github.com/spantaleev/matrix-docker-ansible-deploy/tree/87f5883f2455fb115457b65f267f17de305c053c) of this playbook, 7 years ago." +msgstr "" + +#: ../../../CHANGELOG.md:592 +msgid "For 6 years, `matrix-nginx-proxy` has been the front-most reverse-proxy in our setup (doing SSL termination, etc.). After [transitioning to Traefik last year](#traefik-is-the-default-reverse-proxy-now), `matrix-nginx-proxy` took a step back. Nevertheless, since it was so ingrained into the playbook, it still remained in use — even if only internally. Despite our warnings of its imminent death, many of you have indubitably continued to use it instead of Traefik. Its suffering continued for too long, because it served many different purposes and massive effort was required to transition them to others." +msgstr "" + +#: ../../../CHANGELOG.md:594 +msgid "To us, `matrix-nginx-proxy` was:" +msgstr "" + +#: ../../../CHANGELOG.md:596 +msgid "an [nginx](https://nginx.org/)-based reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:597 +msgid "an Ansible role organizing the work of [certbot](https://certbot.eff.org/) — retrieving free [Let's Encrypt](https://letsencrypt.org/) SSL certificates for `matrix-nginx-proxy` and for the [coturn TURN server](./docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../CHANGELOG.md:598 +msgid "a central component for reverse-proxying to the [long list of services](./docs/configuring-playbook.md) supported by the playbook. As such, it became a dependency that all these services had to inject themselves into during runtime" +msgstr "" + +#: ../../../CHANGELOG.md:599 +msgid "an intermediary through which addons (bridges, bots) communicated with the homeserver. Going through an intermediary (instead of directly talking to the homeserver) is useful when certain components (like [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) are enabled, because it lets these services \"steal routes\" from the homeserver" +msgstr "" + +#: ../../../CHANGELOG.md:600 +msgid "a webserver for serving the `/.well-known/matrix` static files (generated by the `matrix-base` role until now)" +msgstr "" + +#: ../../../CHANGELOG.md:601 +msgid "a webserver [serving your base domain](./docs/configuring-playbook-base-domain-serving.md) (and also generating the `index.html` page for it)" +msgstr "" + +#: ../../../CHANGELOG.md:602 +msgid "a central component providing global [HTTP Basic Auth](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) password-protection for all `/metrics` endpoints when metrics were exposed publicly for consumption from a remote Prometheus server" +msgstr "" + +#: ../../../CHANGELOG.md:604 +msgid "Talk about a jack of all trades! The [UNIX philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) (and Docker container philosophy) of \"do one thing and do it well\" had been severely violated for too long." +msgstr "" + +#: ../../../CHANGELOG.md:606 +msgid "On a related note, we also had a large chain of reverse-proxies in the mix. In the worst case, it was something like this: (Traefik -> `matrix-nginx-proxy:8080` -> `matrix-nginx-proxy:12080` -> `matrix-synapse-reverse-proxy-companion:8008` -> `matrix-synapse:8008`)." +msgstr "" + +#: ../../../CHANGELOG.md:608 +msgid "Due to complexity and the playbook's flexibility (trying to accommodate a mix of tens of components), many layers of indirection were necessary. We do like reverse-proxies, but… not quite enough to enjoy going through a chain of ~4 of them before reaching the target service." +msgstr "" + +#: ../../../CHANGELOG.md:610 +msgid "After **a ton of work** in the last weeks (200+ commits, which changed 467 files - 8684 insertions and 8913 deletions), **we're finally saying goodbye** to `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:612 +msgid "Going Traefik-native and cutting out all middlemen" +msgstr "" + +#: ../../../CHANGELOG.md:614 +msgid "In our new setup, you'll see the bare minimum number of reverse-proxies." +msgstr "" + +#: ../../../CHANGELOG.md:616 +msgid "In most cases, there's only Traefik and all services being registered directly with it. When [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) are enabled, `matrix-synapse-reverse-proxy-companion` remains as an extra reverse-proxy that requests go through (for load-balancing to the correct Synapse worker), but in all other cases services are exposed directly." +msgstr "" + +#: ../../../CHANGELOG.md:618 +msgid "This reduces \"network\" hops (improving performance) and also decreases the number of components (containers). Each Ansible role in our setup is now independent and doesn't need to interact with other roles during runtime." +msgstr "" + +#: ../../../CHANGELOG.md:620 +msgid "Traefik now has an extra job" +msgstr "" + +#: ../../../CHANGELOG.md:622 +msgid "Previously, **Traefik had a single purpose** — being the main reverse-proxy. It was either front-most (terminating SSL, etc.) or you were [fronting Traefik with your own other reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). In any case — it had this central (yet decentralized) job." +msgstr "" + +#: ../../../CHANGELOG.md:624 +msgid "Now, **Traefik has one more role** — it serves as an intermediary which allows addon services (bridges, bots, etc.) to communicate with the homeserver. As mentioned above, such an intermediary service is not strictly necessary in all kinds of setups, but more complex setups (including [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) benefit from it." +msgstr "" + +#: ../../../CHANGELOG.md:626 +msgid "To perform this new role, Traefik now has a new internal [entrypoint](https://doc.traefik.io/traefik/routing/entrypoints/) called `matrix-internal-matrix-client-api`. All homeservers (Conduit, Dendrite, Synapse and even `matrix-synapse-reverse-proxy-companion`) and homeserver-related core services ([matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md), [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md) and potentially others) register their routes (using [container labels](https://docs.docker.com/config/labels-custom-metadata/)) not only on the public entrypoints (`web-secure`, `matrix-federation`), but also on this new internal entrypoint." +msgstr "" + +#: ../../../CHANGELOG.md:628 +msgid "Doing so, services can contact Traefik on this entrypoint's dedicated port (the URL defaults to `http://matrix-traefik:8008`) and reach the homeserver Client-Server API as they expect. Internally, Traefik takes care of the routing to the correct service." +msgstr "" + +#: ../../../CHANGELOG.md:630 +msgid "We've also considered keeping it simple and having services talk to the homeserver over the public internet (e.g. `https://matrix.example.com`) thus reusing all existing Traefik routing labels. In this scenario, performance was incredibly poor (e.g. 70 rps, instead of 1400 rps) due to TLS and networking overhead. The need for fast internal communication (via the new internal non-TLS-enabled Traefik entrypoint) is definitely there. In our benchmarks, Traefik even proved more efficient than nginx at doing this: ~1200 rps for Traefik compared to ~900 rps for nginx (out of ~1400 rps when talking to the Synapse homeserver directly)." +msgstr "" + +#: ../../../CHANGELOG.md:632 +msgid "Traefik serving this second purpose has a few downsides:" +msgstr "" + +#: ../../../CHANGELOG.md:634 +msgid "Traefik becomes a runtime dependency for all homeserver-dependant container services" +msgstr "" + +#: ../../../CHANGELOG.md:635 +msgid "all homeserver-dependant services now need to be connected to the `traefik` container network, even if they don't need public internet exposure" +msgstr "" + +#: ../../../CHANGELOG.md:637 +msgid "Despite these downsides (which the playbook manages automatically), we believe it's still a good compromise given the amount of complexity it eliminates and the performance benefits it yields. One alternative we've [considered](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3045#issuecomment-1867327001) was adding a new intermediary service (e.g. `matrix-homeserver-proxy` powered by nginx), but this both had much higher complexity (one more component in the mix; duplication of effort to produce nginx-compatible route definitions for it) and slightly worse performance (see above)." +msgstr "" + +#: ../../../CHANGELOG.md:639 +msgid "People running the default Traefik setup do not need to do anything to make Traefik take on this extra job. Your Traefik configuration will be updated automatically." +msgstr "" + +#: ../../../CHANGELOG.md:641 +msgid "**People runnning their own Traefik reverse-proxy need to do [minor adjustments](#people-managing-their-own-traefik-instance-need-to-do-minor-changes)**, as described in the section below." +msgstr "" + +#: ../../../CHANGELOG.md:643 +msgid "You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a \"simpler\" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended." +msgstr "" + +#: ../../../CHANGELOG.md:645 +msgid "People managing their own Traefik instance need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:647 +msgid "This section is for people [managing their own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you). Those [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) don't need to do any changes." +msgstr "" + +#: ../../../CHANGELOG.md:649 +msgid "Because [Traefik has an extra job now](#traefik-now-has-an-extra-job), you need to adapt your configuration to add the additional `matrix-internal-matrix-client-api` entrypoint and potentially configure the `matrix_playbook_reverse_proxy_container_network` variable. See the [Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:651 +msgid "People fronting Traefik with another reverse proxy need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:653 +msgid "We've already previously mentioned that you need to do some minor [configuration changes related to `traefik_additional_entrypoints_auto`](#backward-compatibility-configuration-changes-required-for-people-fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:655 +msgid "If you don't do these changes (switching from `traefik_additional_entrypoints_auto` to multiple other variables), your Traefik setup will not automatically receive the new `matrix-internal-matrix-client-api` Traefik entrypoint and Traefik would not be able to perform [its new duty of connecting addons with the homeserver](#traefik-now-has-an-extra-job)." +msgstr "" + +#: ../../../CHANGELOG.md:657 +msgid "Supported reverse proxy types are now fewer" +msgstr "" + +#: ../../../CHANGELOG.md:659 +msgid "This section is for people using a more custom reverse-proxy setup — those having `matrix_playbook_reverse_proxy_type` set to a value different than the default (`playbook-managed-traefik`)." +msgstr "" + +#: ../../../CHANGELOG.md:661 +msgid "Previously, we allowed you to set `matrix_playbook_reverse_proxy_type` to 7 different values to accommodate various reverse-proxy setups." +msgstr "" + +#: ../../../CHANGELOG.md:663 +msgid "The complexity of this is too high, so we only support 3 values right now:" +msgstr "" + +#: ../../../CHANGELOG.md:665 +msgid "(the default) `playbook-managed-traefik`, when you're [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:666 +msgid "`other-traefik-container`, when you're [managing your own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)" +msgstr "" + +#: ../../../CHANGELOG.md:667 +msgid "`none`, when you wish for [no reverse-proxy integration to be done at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all)" +msgstr "" + +#: ../../../CHANGELOG.md:669 +msgid "The `none` value is not recommended and may not work adequately, due to lack of testing and [Traefik's new responsibilities](#traefik-now-has-an-extra-job) in our setup." +msgstr "" + +#: ../../../CHANGELOG.md:671 +msgid "**Previous values that are now gone** (and the playbook would report them as such) are: `playbook-managed-nginx`, `other-nginx-non-container`, `other-on-same-host` and `other-on-another-host`." +msgstr "" + +#: ../../../CHANGELOG.md:673 +msgid "If you were using these values as a way to stay away from Traefik, you now have 2 options:" +msgstr "" + +#: ../../../CHANGELOG.md:675 +msgid "(recommended) [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)" +msgstr "" + +#: ../../../CHANGELOG.md:676 +msgid "(not recommended) [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all) and reverse-proxying to each and every service manually" +msgstr "" + +#: ../../../CHANGELOG.md:678 +msgid "Container networking changes" +msgstr "" + +#: ../../../CHANGELOG.md:680 +msgid "Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out some other long-overdue technical debt." +msgstr "" + +#: ../../../CHANGELOG.md:682 +msgid "Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network." +msgstr "" + +#: ../../../CHANGELOG.md:684 +msgid "Moving components (especially the database) into other container networks was difficult — it required changes to many other components to ensure correct connectivity." +msgstr "" + +#: ../../../CHANGELOG.md:686 +msgid "All the hard work has been done now. We've added much more isolation between services by splitting them up into separate networks (`matrix-homeserver`, `matrix-addons`, `matrix-monitoring`, `matrix-exim-relay`, etc). Components are only joined to the networks they need and should (for the most part) not be able to access unrelated things." +msgstr "" + +#: ../../../CHANGELOG.md:688 +msgid "Carrying out these container networking changes necessitated modifying many components, so **we're hoping not too many bugs were introduced in the process**." +msgstr "" + +#: ../../../CHANGELOG.md:690 +msgid "We've refrained from creating too many container networks (e.g. one for each component), to avoid exhausting Docker's default network pool and contaminating the container networks list too much." +msgstr "" + +#: ../../../CHANGELOG.md:692 +msgid "Metrics exposure changes" +msgstr "" + +#: ../../../CHANGELOG.md:694 +msgid "This section is for people who are exposing monitoring metrics publicly, to be consumed by an external Prometheus server." +msgstr "" + +#: ../../../CHANGELOG.md:696 +msgid "Previously, `matrix-nginx-proxy` was potentially password-protecting all `/metrics/*` endpoints with the same username and password (specified as plain-text in your `vars.yml` configuration file)." +msgstr "" + +#: ../../../CHANGELOG.md:698 +msgid "From now on, there are new variables for doing roughly the same — `matrix_metrics_exposure_enabled`, `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. See the [Prometheus & Grafana](./docs/configuring-playbook-prometheus-grafana.md) docs page for details." +msgstr "" + +#: ../../../CHANGELOG.md:700 +msgid "`matrix-nginx-proxy` is not acting as a \"global guardian\" anymore. Now, each role provides its own metrics exposure and protection by registering with Traefik. Nevertheless, all roles are wired (via playbook configuration in `group_vars/matrix_servers`) to obey these new `matrix_metrics_exposure_*` variables. We've eliminated the centralization, but have kept the ease of use. Now, you can also do per-service password-protection (with different credentials), should you need to do that for some reason." +msgstr "" + +#: ../../../CHANGELOG.md:702 +msgid "The playbook will tell you about all variables that you need to migrate during runtime, so rest assured — you shouldn't be able to miss anything!" +msgstr "" + +#: ../../../CHANGELOG.md:704 +msgid "Matrix static files" +msgstr "" + +#: ../../../CHANGELOG.md:706 +msgid "As mentioned above, static files like `/.well-known/matrix/*` or your base domain's `index.html` file (when [serving the base domain via the Matrix server](./docs/configuring-playbook-base-domain-serving.md) was enabled) were generated by the `matrix-base` or `matrix-nginx-proxy` roles and put into a `/matrix/static-files` directory on the server. Then `matrix-nginx-proxy` was serving all these static files." +msgstr "" + +#: ../../../CHANGELOG.md:708 +msgid "All of this has been extracted into a new `matrix-static-files` Ansible role that's part of the playbook. The static files generated by this new role still live at roughly the same place (`/matrix/static-files/public` directory, instead of `/matrix/static-files`)." +msgstr "" + +#: ../../../CHANGELOG.md:710 +msgid "The playbook will migrate and update the `/.well-known/matrix/*` files automatically but not your own files in `nginx-proxy/data/matrix-domain/` you will need to back these up yourself otherwise they will be lost. It will also warn you about usage of old variable names, so you can adapt to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:712 +msgid "A note on performance" +msgstr "" + +#: ../../../CHANGELOG.md:714 +msgid "Some of you have been voicing their concerns (for a long time) about Traefik being too slow and nginx being better." +msgstr "" + +#: ../../../CHANGELOG.md:716 +msgid "Some online benchmarks support this by demonstrating slightly higher SSL-termination performance in favor of nginx. The upcoming Traefik v3 release is [said to](https://medium.com/beyn-technology/is-nginx-dead-is-traefik-v3-20-faster-than-traefik-v2-f28ffb7eed3e) improve Traefik's SSL performance by some 20%, but that still ends up being somewhat slower than nginx." +msgstr "" + +#: ../../../CHANGELOG.md:718 +msgid "We believe that using Traefik provides way too many benefits to worry about this minor performance impairment." +msgstr "" + +#: ../../../CHANGELOG.md:720 +msgid "The heaviest part of running a Matrix homeserver is all the slow and potentially inefficient things the homeserver (e.g. Synapse) is doing. These things affect performance much more than whatever reverse-proxy is in front. Your server will die the same way by joining the famously large **Matrix HQ** room, no matter which reverse-proxy you put in front." +msgstr "" + +#: ../../../CHANGELOG.md:722 +msgid "Even our previously mentioned benchmarks (yielding ~1300 rps) are synthetic — hitting a useless `/_matrix/client/versions` endpoint. Real-use does much more than this." +msgstr "" + +#: ../../../CHANGELOG.md:724 +msgid "If this is still not convincing enough for you and you want the best possible performance, consider [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (thus having the slowest part — SSL termination — happen elsewhere) or [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all). The playbook will not get in your way of doing that, but these options may make your life much harder. Performance comes at a cost, after all." +msgstr "" + +#: ../../../CHANGELOG.md:726 +msgid "Migration procedure" +msgstr "" + +#: ../../../CHANGELOG.md:728 +msgid "The updated playbook will automatically perform some migration tasks for you:" +msgstr "" + +#: ../../../CHANGELOG.md:730 +msgid "It will stop and remove the `matrix-nginx-proxy` systemd service and container for you. This behavior cannot be disabled. It's essential that this service gets stopped, because it remaining running (and having container labels) may confuse Traefik as to where to route HTTP requests." +msgstr "" + +#: ../../../CHANGELOG.md:732 +msgid "It will delete the `/matrix/nginx-proxy` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_uninstallation_enabled: false` to your `vars.yml` configuration file. Doing so will leave its data around." +msgstr "" + +#: ../../../CHANGELOG.md:734 +msgid "It will delete the `/matrix/ssl` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_uninstallation_enabled: false` to your `vars.yml` configuration file. If you have some important certificates there for some reason, take them out or temporarily disable removal of these files until you do." +msgstr "" + +#: ../../../CHANGELOG.md:736 +msgid "It will tell you about all variables (`matrix_nginx_proxy_*` and many others — even from other roles) that have changed during this large nginx-elimination upgrade. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:738 +msgid "It will tell you about any leftover `matrix_nginx_proxy_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_leftover_variable_validation_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:740 +msgid "It will tell you about any leftover `matrix_ssl_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_leftover_variable_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:742 +msgid "We don't recommend changing these variables and suppressing warnings, unless you know what you're doing." +msgstr "" + +#: ../../../CHANGELOG.md:744 +msgid "**Most people should just upgrade as per-normal**, bearing in mind that a lot has changed and some issues may arise. The playbook would guide you through renamed variables automatically." +msgstr "" + +#: ../../../CHANGELOG.md:746 +msgid "Conclusion" +msgstr "" + +#: ../../../CHANGELOG.md:748 +msgid "Thousands of lines of code were changed across hundreds of files. All addons (bridges, bots) were rewired in terms of container networking and in terms of how they reach the homeserver." +msgstr "" + +#: ../../../CHANGELOG.md:750 +msgid "I don't actively use all the ~100 components offered by the playbook (no one does), nor do I operate servers exercising all edge-cases. As such, issues may arise. Please have patience and report (or try to fix) these issues!" +msgstr "" + +#: ../../../CHANGELOG.md:753 +msgid "2024-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:755 +msgid "(Backward Compatibility) Configuration changes required for people fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:757 +msgid "If you're on the default setup (using the Traefik reverse-proxy as installed by the playbook), you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:759 +msgid "People who are [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), as per our previous instructions are redefining `traefik_additional_entrypoints_auto` in their `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:761 +msgid "Such a full variable redefinion is intrustive, because it prevents the playbook from injecting additional entrypoints into the Traefik webserver. In the future, the playbook may have a need to do so." +msgstr "" + +#: ../../../CHANGELOG.md:763 +msgid "For this reason, we no longer recommend completely redefining `traefik_additional_entrypoints_auto`. The playbook now defines [various `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_*` variables in the `defaults/main.yml` file](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-base/defaults/main.yml) of the `matrix-base` role which can be used as a safer alternative to `traefik_additional_entrypoints_auto`." +msgstr "" + +#: ../../../CHANGELOG.md:765 +msgid "Adapt your configuration as seen below:" +msgstr "" + +#: ../../../CHANGELOG.md:798 +msgid "Also, feel free to read the [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section again for additional details." +msgstr "" + +#: ../../../CHANGELOG.md:801 +msgid "2024-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:803 +msgid "matrix-reminder-bot update with more secure (backward-incompatible) default settings" +msgstr "" + +#: ../../../CHANGELOG.md:805 +msgid "**TLDR**: your updated (to [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0)) [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) is now more secure. By default, like other bridges/bots managed by the playbook, it will only provide its services to users of your own server (not to anyone, even across the Matrix Federation). If that's fine, there's nothing you need to do." +msgstr "" + +#: ../../../CHANGELOG.md:807 +msgid "Maintenance of [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) has been picked up by [Kim Brose](https://github.com/HarHarLinks) and [@svierne](https://github.com/svierne)." +msgstr "" + +#: ../../../CHANGELOG.md:809 +msgid "Thanks to them, a new [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0) release is out. The new version is now available for the ARM64 architecture, so playbook users on this architecture will no longer need to wait for [self-building](./docs/self-building.md) to happen." +msgstr "" + +#: ../../../CHANGELOG.md:811 +msgid "The new version also comes with new `allowlist` and `blocklist` settings, which make it possible to restrict who can use the bot. Previously anyone, even across the Matrix Federation could talk to it and schedule reminders." +msgstr "" + +#: ../../../CHANGELOG.md:813 +msgid "The playbook defaults all bridges and bots (where possible) to only be exposed to users of the current homeserver, not users across federation. Thanks to the new version of this bot making such a restriction possible, we're now making use of it. The playbook (via its `group_vars/matrix_servers` file) automatically enables the `allowlist` (`matrix_bot_matrix_reminder_bot_allowlist_enabled: true`) and configures it in such a way (`matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) so as to restrict the bot to your homeserver's users." +msgstr "" + +#: ../../../CHANGELOG.md:815 +msgid "If you need **to undo or tweak these security improvements**, you can change your `vars.yml` file to:" +msgstr "" + +#: ../../../CHANGELOG.md:817 +msgid "disable the allowlist (`matrix_bot_matrix_reminder_bot_allowlist_enabled: false`), making the bot allow usage by anyone, anywhere" +msgstr "" + +#: ../../../CHANGELOG.md:819 +msgid "inject additional allowed servers or users by adding **additional** (on top of the default allowlist in `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) custom regexes in the `matrix_bot_matrix_reminder_bot_allowlist_regexes_custom` list variable (see the [syntax reference](https://github.com/anoadragon453/matrix-reminder-bot/blob/1e910c0aa3469d280d93ee7e6c6d577227a3460c/sample.config.yaml#L43-L49))" +msgstr "" + +#: ../../../CHANGELOG.md:821 +msgid "override the default allowlist (in the `group_vars/matrix_servers` file) by redefining `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`" +msgstr "" + +#: ../../../CHANGELOG.md:824 +msgid "2024-01-05" +msgstr "" + +#: ../../../CHANGELOG.md:826 +msgid "matrix-mailer has been replaced by the exim-relay external role" +msgstr "" + +#: ../../../CHANGELOG.md:828 ../../../CHANGELOG.md:1468 +msgid "We're continuing our effort to make [the playbook use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things), so as to avoid doing everything ourselves and to facilitate code re-use." +msgstr "" + +#: ../../../CHANGELOG.md:830 +msgid "The `matrix-mailer` role has been moved to its own repository ([ansible-role-exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay)) that this playbook now includes." +msgstr "" + +#: ../../../CHANGELOG.md:832 +msgid "To migrate:" +msgstr "" + +#: ../../../CHANGELOG.md:834 +msgid "pull the playbook changes, as usual" +msgstr "" + +#: ../../../CHANGELOG.md:835 +msgid "update your roles (run `just roles` or `make roles`)" +msgstr "" + +#: ../../../CHANGELOG.md:836 +msgid "update your `vars.yml`, renaming `matrix_mailer`-prefixed variables to `exim_relay`-prefixed ones (e.g. `matrix_mailer_sender_address` -> `exim_relay_sender_address`). If you find none, it means you're using the default configuration and your migraiton job is even simpler." +msgstr "" + +#: ../../../CHANGELOG.md:837 +msgid "re-run the playbook (`install-all` or `setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:839 +msgid "The playbook will take care of stopping the old `matrix-mailer` systemd service, relocating its directory and restarting it under the new name (`matrix-exim-relay.service`)." +msgstr "" + +#: ../../../CHANGELOG.md:842 +msgid "2024-01-02" +msgstr "" + +#: ../../../CHANGELOG.md:844 +msgid "mautrix-signal now powered by the new Go-based bridge" +msgstr "" + +#: ../../../CHANGELOG.md:846 +msgid "The old Python-based [mautrix-signal](https://github.com/mautrix/signal) bridge is no longer maintained upstream. It's also known to have issues linking new devices." +msgstr "" + +#: ../../../CHANGELOG.md:848 +msgid "It seems like the path forward is to switch to the new mautrix-signal bridge written in Golang, which we did thanks to [PR #3031](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3041) by [Pierre 'McFly' Marty](https://github.com/pm-McFly)." +msgstr "" + +#: ../../../CHANGELOG.md:850 +msgid "The playbook should **automatically migrate your mautrix-signal installation to the new bridge code**. You will **need to relink all your devices** to continue your bridged conversations." +msgstr "" + +#: ../../../CHANGELOG.md:853 +msgid "2023-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:855 +msgid "Enabling `allow_public_rooms_over_federation` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:857 +msgid "**TDLR**: if your Matrix server is federating (which it mostly likely is, unless you've [disabled federation](docs/configuring-playbook-federation.md#disabling-federation)), your public rooms will not only be joinable across federation (as they've always been), but from now on will be discoverable (made available as a list across federation). We're changing this by flipping the value for Synapse's `allow_public_rooms_over_federation` setting to `true`, going against the upstream default. Servers that disable federation are not affected. Servers that have public rooms which are not published to the room directory are also not affected." +msgstr "" + +#: ../../../CHANGELOG.md:859 +msgid "We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) — the default value was making Synapse more wasteful of resources by default." +msgstr "" + +#: ../../../CHANGELOG.md:861 +msgid "Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`. This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms)." +msgstr "" + +#: ../../../CHANGELOG.md:863 +msgid "The upstream Synapse default is `false` (disabled), so that public rooms are not exposed for other servers to discover (learn about their existence). Nevertheless, even if these rooms are not exposed (listed) for discovery, they are **still joinable** by anyone who knows their address or is invited to the room by an existing member." +msgstr "" + +#: ../../../CHANGELOG.md:865 +msgid "**We go against the upstream default** in an effort to make Matrix federation more useful — a public room should be globally public — not only joinable, but also discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:867 +msgid "The **historical reasoning** behind this change is as follows:" +msgstr "" + +#: ../../../CHANGELOG.md:869 +msgid "`allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network — rooms should be joinable and discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:871 +msgid "In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/element-hq/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense." +msgstr "" + +#: ../../../CHANGELOG.md:873 +#, python-format +msgid "[etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://github.com/etkecc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful." +msgstr "" + +#: ../../../CHANGELOG.md:875 +msgid "Here are **actions you may wish to take** as a result of this change:" +msgstr "" + +#: ../../../CHANGELOG.md:877 +msgid "(recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery." +msgstr "" + +#: ../../../CHANGELOG.md:879 +msgid "(switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for \"mostly private\" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces — you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting — controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them." +msgstr "" + +#: ../../../CHANGELOG.md:881 +msgid "(keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures." +msgstr "" + +#: ../../../CHANGELOG.md:884 +msgid "2023-10-18" +msgstr "" + +#: ../../../CHANGELOG.md:886 +msgid "Postgres parameters are automatically tuned now" +msgstr "" + +#: ../../../CHANGELOG.md:888 +msgid "The playbook has provided some hints about [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) for quite a while now." +msgstr "" + +#: ../../../CHANGELOG.md:890 +msgid "From now on, the [Postgres Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) automatically tunes your Postgres configuration with the same [calculation logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) that powers https://pgtune.leopard.in.ua/." +msgstr "" + +#: ../../../CHANGELOG.md:892 +msgid "Our [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) documentation page has details about how you can turn auto-tuning off or adjust the automatically-determined Postgres configuration parameters manually." +msgstr "" + +#: ../../../CHANGELOG.md:894 +msgid "People who [enable load-balancing with Synapse workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) no longer need to increase the maximum number of Postgres connections manually (previously done via `postgres_process_extra_arguments`). There's a new variable (`postgres_max_connections`) for controlling this number and the playbook automatically raises its value from `200` to `500` for setups which enable workers." +msgstr "" + +#: ../../../CHANGELOG.md:897 +msgid "2023-08-31" +msgstr "" + +#: ../../../CHANGELOG.md:899 +msgid "SchildiChat Web support" +msgstr "" + +#: ../../../CHANGELOG.md:901 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client." +msgstr "" + +#: ../../../CHANGELOG.md:903 +msgid "See our [Configuring SchildiChat Web](docs/configuring-playbook-client-schildichat-web.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:906 +msgid "2023-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:908 +msgid "mautrix-wsproxy support" +msgstr "" + +#: ../../../CHANGELOG.md:910 +msgid "Thanks to [Johan Swetzén](https://github.com/jswetzen)'s efforts (who finished what was started by [James Reilly](https://github.com/hanthor) and [Shreyas Ajjarapu](https://github.com/shreyasajj)), the playbook now supports bridging to Android SMS and Apple iMessage via the [mautrix-wsproxy](https://github.com/mautrix/wsproxy) service (in combination with a [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone)." +msgstr "" + +#: ../../../CHANGELOG.md:912 +msgid "See our [Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](docs/configuring-playbook-bridge-mautrix-wsproxy.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:915 +msgid "2023-07-24" +msgstr "" + +#: ../../../CHANGELOG.md:917 +msgid "matrix-registration-bot usage changed" +msgstr "" + +#: ../../../CHANGELOG.md:919 +msgid "[matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) got some updates and now supports password-only-based login. Therefore the bot now doesn't need any manual configuration except setting a password in your `vars.yml`. The bot will be registered as admin and access tokens will be obtained automatically by the bot." +msgstr "" + +#: ../../../CHANGELOG.md:921 +msgid "**For existing users** You need to set `matrix_bot_matrix_registration_bot_bot_password` if you previously only used `matrix_bot_matrix_registration_bot_bot_access_token`. Please also remove the following deprecated settings" +msgstr "" + +#: ../../../CHANGELOG.md:923 +msgid "`matrix_bot_matrix_registration_bot_bot_access_token`" +msgstr "" + +#: ../../../CHANGELOG.md:924 +msgid "`matrix_bot_matrix_registration_bot_api_token`" +msgstr "" + +#: ../../../CHANGELOG.md:927 +msgid "2023-07-21" +msgstr "" + +#: ../../../CHANGELOG.md:929 +msgid "mautrix-gmessages support" +msgstr "" + +#: ../../../CHANGELOG.md:931 +msgid "Thanks to [Shreyas Ajjarapu](https://github.com/shreyasajj)'s efforts, the playbook now supports bridging to [Google Messages](https://messages.google.com/) via the [mautrix-gmessages](https://github.com/mautrix/gmessages) bridge. See our [Setting up Mautrix Google Messages bridging](docs/configuring-playbook-bridge-mautrix-gmessages.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:934 +msgid "2023-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:936 +msgid "matrix-media-repo support" +msgstr "" + +#: ../../../CHANGELOG.md:938 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) — an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features." +msgstr "" + +#: ../../../CHANGELOG.md:940 +msgid "To learn more see our [Storing Matrix media files using matrix-media-repo](docs/configuring-playbook-matrix-media-repo.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:943 +msgid "2023-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:945 +msgid "Enabling `forget_rooms_on_leave` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:947 +msgid "With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`. This way, **when you leave a room, Synapse will now forget it automatically**." +msgstr "" + +#: ../../../CHANGELOG.md:949 +msgid "The upstream Synapse default is `false` (disabled), so that you must forget rooms manually after leaving." +msgstr "" + +#: ../../../CHANGELOG.md:951 +msgid "**We go against the upstream default** ([somewhat controversially](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2700)) in an effort to make Synapse leaner and potentially do what we believe most users would expect their homeserver to be doing." +msgstr "" + +#: ../../../CHANGELOG.md:953 +msgid "If you'd like to go back to the old behavior, add the following to your configuration: `matrix_synapse_forget_rooms_on_leave: false`" +msgstr "" + +#: ../../../CHANGELOG.md:956 +msgid "2023-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:958 +msgid "The matrix-jitsi role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:960 +msgid "**TLDR**: the `matrix-jitsi` role is now included from the [ansible-role-jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:962 +msgid "The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:964 +msgid "As part of the extraction process of this role out of the Matrix playbook, a few other things improved:" +msgstr "" + +#: ../../../CHANGELOG.md:966 +msgid "**native Traefik support** has been added" +msgstr "" + +#: ../../../CHANGELOG.md:967 +msgid "**support for hosting under a subpath** has been added, although it suffers from a few minor issues listed [here](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md#url)" +msgstr "" + +#: ../../../CHANGELOG.md:969 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Jitsi or not." +msgstr "" + +#: ../../../CHANGELOG.md:971 +msgid "If you're making use of Jitsi via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:973 +msgid "`matrix_jitsi_*_docker_image_` -> `matrix_jitsi_*_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:974 +msgid "`matrix_jitsi_` -> `jitsi_`" +msgstr "" + +#: ../../../CHANGELOG.md:975 ../../../CHANGELOG.md:1002 +msgid "some other internal variables have changed, but the playbook will tell you about them" +msgstr "" + +#: ../../../CHANGELOG.md:977 +msgid "2023-03-22" +msgstr "" + +#: ../../../CHANGELOG.md:979 +msgid "ntfy Web App is disabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:981 +msgid "ntfy provides a web app, which is now disabled by default, because it may be unknown to and unused by most users of this playbook. You can enable it by setting `ntfy_web_root: \"app\"` (see [ntfy documentation](docs/configuring-playbook-ntfy.md))." +msgstr "" + +#: ../../../CHANGELOG.md:983 +msgid "This change was already applied a while before this entry, but as some users were reporting the missing web app, this entry was added (see [#2529](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2529))." +msgstr "" + +#: ../../../CHANGELOG.md:986 +msgid "2023-03-21" +msgstr "" + +#: ../../../CHANGELOG.md:988 +msgid "The matrix-prometheus role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:990 +msgid "**TLDR**: the `matrix-prometheus` role is now included from the [ansible-role-prometheus](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:992 +msgid "The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:994 +msgid "Extracting the Prometheus role out of this Matrix playbook required huge internal refactoring to the way the Prometheus configuration (scraping jobs) is generated. If you notice any breakage after upgrading, let us know." +msgstr "" + +#: ../../../CHANGELOG.md:996 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Prometheus or not." +msgstr "" + +#: ../../../CHANGELOG.md:998 +msgid "If you're making use of Prometheus via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1000 +msgid "`matrix_prometheus_docker_image_` -> `matrix_prometheus_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1001 +msgid "`matrix_prometheus_` -> `prometheus_`" +msgstr "" + +#: ../../../CHANGELOG.md:1005 +msgid "2023-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:1007 +msgid "synapse-auto-compressor support" +msgstr "" + +#: ../../../CHANGELOG.md:1009 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state)'s `synapse_auto_compressor` tool to run periodically." +msgstr "" + +#: ../../../CHANGELOG.md:1011 +msgid "If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before — see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because:" +msgstr "" + +#: ../../../CHANGELOG.md:1013 +msgid "it runs on a more up-to-date version of `rust-synapse-compress-state`" +msgstr "" + +#: ../../../CHANGELOG.md:1014 +msgid "it's a set-it-and-forget-it tool that you can enable and never have to deal with manual compression anymore" +msgstr "" + +#: ../../../CHANGELOG.md:1016 +msgid "This tool needs to be enabled manually, for now. In the future, we're considering enabling it by default for all Synapse installations." +msgstr "" + +#: ../../../CHANGELOG.md:1018 +msgid "See our [Setting up synapse-auto-compressor](docs/configuring-playbook-synapse-auto-compressor.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1021 +msgid "2023-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:1023 +msgid "Sliding Sync proxy (Element X) support" +msgstr "" + +#: ../../../CHANGELOG.md:1025 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn) for [getting it started](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515), [FSG-Cat](https://github.com/FSG-Cat) for fixing it up and me ([Slavi](https://github.com/spantaleev)) for polishing it up, the playbook can now install and configure the [sliding-sync proxy](https://github.com/matrix-org/sliding-sync)." +msgstr "" + +#: ../../../CHANGELOG.md:1027 +msgid "The upcoming Element X clients ([Element X iOS](https://github.com/vector-im/element-x-ios) and [Element X Android](https://github.com/vector-im/element-x-android)) require the `sliding-sync` proxy to do their job. **These clients are still in beta** (especially Element X Android, which requires manual compilation to get it working with a non-`matrix.org` homeseserver). Playbook users can now easily give these clients a try and help test them thanks to us having `sliding-sync` support." +msgstr "" + +#: ../../../CHANGELOG.md:1029 +msgid "To get started, see our [Setting up the Sliding Sync proxy](docs/configuring-playbook-sliding-sync-proxy.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:1032 +msgid "2023-03-02" +msgstr "" + +#: ../../../CHANGELOG.md:1034 +msgid "The matrix-etherpad role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1036 +msgid "**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1038 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Etherpad or not." +msgstr "" + +#: ../../../CHANGELOG.md:1040 +msgid "If you're making use of Etherpad via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1042 +msgid "Rename `matrix_etherpad_public_endpoint` to `etherpad_path_prefix`" +msgstr "" + +#: ../../../CHANGELOG.md:1044 +msgid "Replace `matrix_etherpad_mode: dimension` with:" +msgstr "" + +#: ../../../CHANGELOG.md:1045 +msgid "for `matrix-nginx-proxy` users:" +msgstr "" + +#: ../../../CHANGELOG.md:1046 +msgid "`etherpad_nginx_proxy_dimension_integration_enabled: true`" +msgstr "" + +#: ../../../CHANGELOG.md:1047 +msgid "`etherpad_hostname: \"{{ matrix_server_fqn_dimension }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:1048 +msgid "for Traefik users:" +msgstr "" + +#: ../../../CHANGELOG.md:1049 +msgid "define your own `etherpad_hostname` and `etherpad_path_prefix` as you see fit" +msgstr "" + +#: ../../../CHANGELOG.md:1051 +msgid "Rename all other variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1052 +msgid "`matrix_etherpad_docker_image_` -> `matrix_etherpad_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1053 +msgid "`matrix_etherpad_` -> `etherpad_`" +msgstr "" + +#: ../../../CHANGELOG.md:1055 +msgid "Along with this relocation, the new role also:" +msgstr "" + +#: ../../../CHANGELOG.md:1057 +msgid "supports [self-building](docs/self-building.md), so it should work on `arm32` and `arm64` architectures" +msgstr "" + +#: ../../../CHANGELOG.md:1058 +msgid "has native Traefik reverse-proxy support (Etherpad requests no longer go through `matrix-nginx-proxy` when using Traefik)" +msgstr "" + +#: ../../../CHANGELOG.md:1061 +msgid "2023-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:1063 +msgid "Traefik is the default reverse-proxy now" +msgstr "" + +#: ../../../CHANGELOG.md:1065 +msgid "**TLDR**: new installations will now default to Traefik as their reverse-proxy. Existing users need to explicitly choose their reverse-proxy type. [Switching to Traefik](#how-do-i-switch-my-existing-setup-to-traefik) is strongly encouraged. `matrix-nginx-proxy` may break over time and will ultimately be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1067 +msgid "As mentioned 2 weeks ago in [(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support](#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support), the playbook is moving to Traefik as its default SSL-terminating reverse-proxy." +msgstr "" + +#: ../../../CHANGELOG.md:1069 +msgid "Until now, we've been doing the migration gradually and keeping full backward compatibility. New installations were defaulting to `matrix-nginx-proxy` (just like before), while existing installations were allowed to remain on `matrix-nginx-proxy` as well. This makes things very difficult for us, because we need to maintain and think about lots of different setups:" +msgstr "" + +#: ../../../CHANGELOG.md:1071 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1072 +msgid "Traefik managed by the user in another way" +msgstr "" + +#: ../../../CHANGELOG.md:1073 +msgid "another reverse-proxy on the same host (`127.0.0.1` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1074 +msgid "another reverse-proxy on another host (`0.0.0.0` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1075 +msgid "`matrix-nginx-proxy` — an `nginx` container managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1076 +msgid "`nginx` webserver operated by the user, running without a container on the same server" +msgstr "" + +#: ../../../CHANGELOG.md:1078 +msgid "Each change we do and each new feature that comes in needs to support all these different ways of reverse-proxying. Because `matrix-nginx-proxy` was the default and pretty much everyone was (and still is) using it, means that new PRs also come with `matrix-nginx-proxy` as their main focus and Traefik as an afterthought, which means we need to spend hours fixing up Traefik support." +msgstr "" + +#: ../../../CHANGELOG.md:1080 +msgid "We can't spend all this time maintaining so many different configurations anymore. Traefik support has been an option for 2 weeks and lots of people have already migrated their server and have tested things out. Traefik is what we use and preferentially test for." +msgstr "" + +#: ../../../CHANGELOG.md:1082 +msgid "It's time for the **next step in our migration process** to Traefik and elimination of `matrix-nginx-proxy`:" +msgstr "" + +#: ../../../CHANGELOG.md:1084 +msgid "Traefik is now the default reverse-proxy for new installations" +msgstr "" + +#: ../../../CHANGELOG.md:1085 +msgid "All existing users need to explicitly choose their reverse-proxy type by defining the `matrix_playbook_reverse_proxy_type` variable in their `vars.yml` configuration file. We strongly encourage existing users to [switch the Traefik](#how-to-switch-an-existing-setup-to-traefik), as the nginx setup is bound to become more and more broken over time until it's ultimately removed" +msgstr "" + +#: ../../../CHANGELOG.md:1087 +msgid "How do I switch my existing setup to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1089 +msgid "**For users who are on `matrix-nginx-proxy`** (the default reverse-proxy provided by the playbook), switching to Traefik can happen with a simple configuration change. Follow this section from 2 weeks ago: [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now)." +msgstr "" + +#: ../../../CHANGELOG.md:1091 +msgid "If you experience trouble:" +msgstr "" + +#: ../../../CHANGELOG.md:1093 +msgid "Follow [How do I remain on matrix-nginx-proxy?](#how-do-i-remain-on-matrix-nginx-proxy) to bring your server back online using the old reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:1094 +msgid "Ask for help in our [support channels](README.md#support)" +msgstr "" + +#: ../../../CHANGELOG.md:1095 +msgid "Try switching to Traefik again later" +msgstr "" + +#: ../../../CHANGELOG.md:1097 +msgid "**For users with a more special reverse-proxying setup** (another nginx server, Apache, Caddy, etc.), the migration may not be so smooth. Follow the [Using your own webserver](docs/configuring-playbook-own-webserver.md) guide. Ideally, your custom reverse-proxy will be configured in such a way that it **fronts the Traefik reverse-proxy** provided by the playbook. Other means of reverse-proxying are more fragile and may be deprecated in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1099 +msgid "I already use my own Traefik server. How do I plug that in?" +msgstr "" + +#: ../../../CHANGELOG.md:1101 +msgid "See the [Traefik managed by the playbook](docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) section." +msgstr "" + +#: ../../../CHANGELOG.md:1103 +msgid "Why is matrix-nginx-proxy used even after switching to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1105 +msgid "This playbook manages many different services. All these services were initially integrated with `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:1107 +msgid "While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component). As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed." +msgstr "" + +#: ../../../CHANGELOG.md:1109 +msgid "How do I remain on matrix-nginx-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1111 +msgid "Most new work and testing targets Traefik, so remaining on nginx is **not** \"the good old stable\" option, but rather the \"still available, but largely untested and likely to be broken very soon\" option." +msgstr "" + +#: ../../../CHANGELOG.md:1113 +msgid "To proceed regardless of this warning, add `matrix_playbook_reverse_proxy_type: playbook-managed-nginx` to your configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1115 +msgid "At some point in the **near** future (days, or even weeks at most), we hope to completely get rid of `matrix-nginx-proxy` (or break it enough to make it unusable), so you **will soon be forced to migrate** anyway. Plan your migration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:1117 +msgid "How do I keep using my own other reverse-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1119 +msgid "We recommend that you follow the guide for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:1122 +msgid "2023-02-25" +msgstr "" + +#: ../../../CHANGELOG.md:1124 +msgid "rageshake support" +msgstr "" + +#: ../../../CHANGELOG.md:1126 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn), the playbook can now install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server." +msgstr "" + +#: ../../../CHANGELOG.md:1128 +msgid "Additional details are available in [Setting up rageshake](docs/configuring-playbook-rageshake.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1131 +msgid "2023-02-17" +msgstr "" + +#: ../../../CHANGELOG.md:1133 +msgid "Synapse templates customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1135 +msgid "The playbook can now help you customize Synapse's templates." +msgstr "" + +#: ../../../CHANGELOG.md:1137 +msgid "Additional details are available in the [Customizing templates](docs/configuring-playbook-synapse.md#customizing-templates) section of our Synapse documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1139 +msgid "The matrix-redis role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1141 +msgid "**TLDR**: the `matrix-redis` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1143 +msgid "The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-redis). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1145 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_redis_` -> `redis_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1147 +msgid "The matrix-ntfy role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1149 +msgid "**TLDR**: the `matrix-ntfy` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1151 +msgid "The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1153 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_ntfy_` -> `ntfy_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1156 +msgid "2023-02-15" +msgstr "" + +#: ../../../CHANGELOG.md:1158 +msgid "The matrix-grafana role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1160 +msgid "**TLDR**: the `matrix-grafana` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1162 +msgid "The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-grafana). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1164 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Grafana or not. If you're making use of Grafana via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_grafana_` -> `grafana_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1167 +msgid "2023-02-13" +msgstr "" + +#: ../../../CHANGELOG.md:1169 +msgid "The matrix-backup-borg role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1171 +msgid "**TLDR**: the `matrix-backup-borg` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1173 +msgid "Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [BorgBackup](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon." +msgstr "" + +#: ../../../CHANGELOG.md:1175 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Borg's backup functionality or not. If you're making use of BorgBackup via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_backup_borg_` -> `backup_borg_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1178 +msgid "2023-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1180 +msgid "(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support" +msgstr "" + +#: ../../../CHANGELOG.md:1182 +msgid "**TLDR**:" +msgstr "" + +#: ../../../CHANGELOG.md:1184 +msgid "there's a new `matrix_playbook_reverse_proxy_type` variable (see [roles/custom/matrix-base/defaults/main.yml](roles/custom/matrix-base/defaults/main.yml)), which lets you tell the playbook what reverse-proxy setup you'd like to have. This makes it easier for people who want to do reverse-proxying in other ways." +msgstr "" + +#: ../../../CHANGELOG.md:1185 +msgid "the default reverse-proxy (`matrix_playbook_reverse_proxy_type`) is still `playbook-managed-nginx` (via `matrix-nginx-proxy`), for now. **Existing `matrix-nginx-proxy` users should not observe any changes** and can stay on this for now." +msgstr "" + +#: ../../../CHANGELOG.md:1186 +msgid "**Users who use their [own other webserver](docs/configuring-playbook-own-webserver.md) (e.g. Apache, etc.) need to change** `matrix_playbook_reverse_proxy_type` to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`" +msgstr "" + +#: ../../../CHANGELOG.md:1187 +msgid "we now have **optional [Traefik](https://traefik.io/) support**, so you could easily host Matrix and other Traefik-native services in containers on the same server. Traefik support is still experimental (albeit, good enough) and will improve over time. It does work, but certain esoteric features may not be there yet." +msgstr "" + +#: ../../../CHANGELOG.md:1188 +msgid "**Traefik will become the default reverse-proxy in the near future**. `matrix-nginx-proxy` will either remain as an option, or be completely removed to simplify the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1190 +msgid "Motivation for redoing our reverse-proxy setup" +msgstr "" + +#: ../../../CHANGELOG.md:1192 +msgid "The playbook has supported various reverse-proxy setups for a long time. We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though — hard to figure out and with lots of variables to toggle to make things work as you'd expect — huge **operational complexity**." +msgstr "" + +#: ../../../CHANGELOG.md:1194 +msgid "We love containers, proven by the fact that **everything** that this playbook manages runs in a container. Yet, we weren't allowing people to easily host other web-exposed containers alongside Matrix services on the same server. We were using `matrix-nginx-proxy` (our integrated [nginx](https://nginx.org/) server), which was handling web-exposure and SSL termination for our own services, but we **weren't helping you with all your other containers**." +msgstr "" + +#: ../../../CHANGELOG.md:1196 +msgid "People who were **using `matrix-nginx-proxy`** were on the happy path on which everything worked well by default (Matrix-wise), **but** could not easily run other web-exposed services on their Matrix server because `matrix-nginx-proxy` was occupying ports `80` and `443`. Other services which wanted to get web exposure either had to be plugged into `matrix-nginx-proxy` (somewhat difficult) or people had to forgo using `matrix-nginx-proxy` in favor of something else." +msgstr "" + +#: ../../../CHANGELOG.md:1198 +msgid "Of those that decided to forgo `matrix-nginx-proxy`, many were **using nginx** on the same server without a container. This was likely some ancient nginx version, depending on your choice of distro. The Matrix playbook was trying to be helpful and even with `matrix_nginx_proxy_enabled: false` was still generating nginx configuration in `/matrix/nginx-proxy/conf.d`. Those configuration files were adapted for inclusion into an nginx server running locally. Disabling the `matrix-nginx-proxy` role like this, yet still having it produce files is a bit disgusting, but it's what we've had since the early beginnings of this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1200 +msgid "Others still, wanted to run Matrix locally (no SSL certificates), regardless of which web server technology this relied on, and then **reverse-proxy from another machine on the network** which was doing SSL termination. These people were:" +msgstr "" + +#: ../../../CHANGELOG.md:1202 +msgid "*either* relying on `matrix_nginx_proxy_enabled: false` as well, combined with exposing services manually (setting `_bind_port` variables)" +msgstr "" + +#: ../../../CHANGELOG.md:1203 +msgid "*or* better yet, they were keeping `matrix-nginx-proxy` enabled, but in `http`-only mode (no SSL certificate retrieval)." +msgstr "" + +#: ../../../CHANGELOG.md:1205 +msgid "Despite this operational complexity, things worked and were reasonably flexible to adapt to all these situations." +msgstr "" + +#: ../../../CHANGELOG.md:1207 +msgid "When using `matrix-nginx-proxy` as is, we still had another problem — one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime — see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still… yikes)." +msgstr "" + +#: ../../../CHANGELOG.md:1209 +msgid "The next problem is one of **efficiency, interoperability and cost-saving**. We're working on other playbooks:" +msgstr "" + +#: ../../../CHANGELOG.md:1211 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server — an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager" +msgstr "" + +#: ../../../CHANGELOG.md:1212 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) — for hosting the [Gitea](https://gitea.io/) git source code hosting service" +msgstr "" + +#: ../../../CHANGELOG.md:1213 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) — for hosting the [Nextcloud](https://nextcloud.com/) groupware platform" +msgstr "" + +#: ../../../CHANGELOG.md:1215 +msgid "We'd love for users to be able to **seamlessly use all these playbooks (and others, even) against a single server**. We don't want `matrix-nginx-proxy` to have a monopoly on port `80`/`443` and make it hard for other services to join in on the party. Such a thing forces people into running multiple servers (one for each service), which does provide nice security benefits, but is costly and ineffiecient. We'd like to make self-hosting these services cheap and easy." +msgstr "" + +#: ../../../CHANGELOG.md:1217 +msgid "These other playbooks have been using [Traefik](https://traefik.io/) as their default reverse-proxy for a long time. They can all coexist nicely together (as an example, see the [Interoperability](https://github.com/spantaleev/nextcloud-docker-ansible-deploy/blob/master/docs/configuring-playbook-interoperability.md) documentation for the [Nextcloud playbook](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)). Now that this playbook is gaining Traefik support, it will be able to interoperate with them. If you're going this way, make sure to have the Matrix playbook install Traefik and have the others use `*_reverse_proxy_type: other-traefik-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1219 +msgid "Finally, at [etke.cc — a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with." +msgstr "" + +#: ../../../CHANGELOG.md:1221 +msgid "How do these changes fix all these problems?" +msgstr "" + +#: ../../../CHANGELOG.md:1223 +msgid "The new `matrix_playbook_reverse_proxy_type` lets you easily specify your preferred reverse-proxy type, including `other-on-same-host`, `other-on-another-host` and `none`, so people who'd like to reverse-proxy with their own web server have more options now." +msgstr "" + +#: ../../../CHANGELOG.md:1225 +msgid "Using Traefik greatly simplifies things, so going forward we'll have a simpler and easier to maintain playbook, which is also interoperable with other services." +msgstr "" + +#: ../../../CHANGELOG.md:1227 +msgid "Traefik is a web server, which has been specifically **designed for reverse-proxying to services running in containers**. It's ideal for usage in an Ansible playbook which runs everything in containers." +msgstr "" + +#: ../../../CHANGELOG.md:1229 +msgid "**Traefik obtains SSL certificates automatically**, so there's no need for plugging additional tools like [Certbot](https://certbot.eff.org/) into your web server (like we were doing in the `matrix-nginx-proxy` role). No more certificate renewal timers, web server reloading timers, etc. It's just simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1231 +msgid "Traefik is a **modern web server**. [HTTP/3](https://doc.traefik.io/traefik/routing/entrypoints/#http3) is supported already (experimentally) and will move to stable soon, in the upcoming Traefik v3 release." +msgstr "" + +#: ../../../CHANGELOG.md:1233 +msgid "Traefik does not lock important functionality we'd like to use into [plus packages like nginx does](https://www.nginx.com/products/nginx/), leading us to resolve to configuration workarounds. The default Traefik package is good enough as it is." +msgstr "" + +#: ../../../CHANGELOG.md:1235 +msgid "Where we're at right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1237 +msgid "`matrix_playbook_reverse_proxy_type` still defaults to a value of `playbook-managed-nginx`." +msgstr "" + +#: ../../../CHANGELOG.md:1239 +msgid "Unless we have some regression, **existing `matrix-nginx-proxy` users should be able to update their Matrix server and not observe any changes**. Their setup should still remain on nginx and everything should still work as expected." +msgstr "" + +#: ../../../CHANGELOG.md:1241 +msgid "**Users using [their own webservers](docs/configuring-playbook-own-webserver.md) will need to change `matrix_playbook_reverse_proxy_type`** to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`. Previously, they could toggle `matrix_nginx_proxy_enabled` to `false`, and that made the playbook automatically expose services locally. Currently, we only do this if you change the reverse-proxy type to `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1243 +msgid "How do I explicitly switch to Traefik right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1245 +msgid "**Users who wish to migrate to Traefik** today, can do so by **adding** this to their configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1253 +msgid "You may still need to keep certain old `matrix_nginx_proxy_*` variables (like `matrix_nginx_proxy_base_domain_serving_enabled`), even when using Traefik. For now, we recommend keeping all `matrix_nginx_proxy_*` variables just in case. In the future, reliance on `matrix-nginx-proxy` will be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1255 +msgid "Switching to Traefik will obtain new SSL certificates from Let's Encrypt (stored in `/matrix/traefik/ssl/acme.json`). **The switch is reversible**. You can always go back to `playbook-managed-nginx` if Traefik is causing you trouble." +msgstr "" + +#: ../../../CHANGELOG.md:1257 +msgid "**Note**: toggling `matrix_playbook_reverse_proxy_type` between Traefik and nginx will uninstall the Traefik role and all of its data (under `/matrix/traefik`), so you may run into a Let's Encrypt rate limit if you do it often." +msgstr "" + +#: ../../../CHANGELOG.md:1259 +msgid "Treafik directly reverse-proxies to **some** services right now, but for most other services it goes through `matrix-nginx-proxy` (e.g. Traefik -> `matrix-nginx-proxy` -> [Ntfy](docs/configuring-playbook-ntfy.md)). So, even if you opt into Traefik, you'll still see `matrix-nginx-proxy` being installed in local-only mode. This will improve with time." +msgstr "" + +#: ../../../CHANGELOG.md:1261 +msgid "Some services (like [coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bridge-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool." +msgstr "" + +#: ../../../CHANGELOG.md:1263 +msgid "Our Traefik setup mostly works, but certain esoteric features may not work. If you have a default setup, we expect you to have a good experience." +msgstr "" + +#: ../../../CHANGELOG.md:1265 +msgid "Where we're going in the near future?" +msgstr "" + +#: ../../../CHANGELOG.md:1267 +msgid "The `matrix-nginx-proxy` role is quite messy. It manages both nginx and Certbot and its certificate renewal scripts and timers. It generates configuration even when the role is disabled (weird). Although it doesn't directly reach into variables from other roles, it has explicit awareness of various other services that it reverse-proxies to (`roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-ntfy.conf.j2`, etc.). We'd like to clean this up. The only way is probably to just get rid of the whole thing at some point." +msgstr "" + +#: ../../../CHANGELOG.md:1269 +msgid "For now, `matrix-nginx-proxy` will stay around." +msgstr "" + +#: ../../../CHANGELOG.md:1271 +msgid "As mentioned above, Traefik still reverse-proxies to some (most) services by going through a local-only `matrix-nginx-proxy` server. This has allowed us to add Traefik support to the playbook early on (without having to rework all services), but is not the final goal. We'll **work on making each service support Traefik natively**, so that traffic will not need to go through `matrix-nginx-proxy` anymore. In the end, choosing Traefik should only give you a pure Traefik installation with no `matrix-nginx-proxy` in sight." +msgstr "" + +#: ../../../CHANGELOG.md:1273 +msgid "As Traefik support becomes complete and proves to be stable for a while, especially as a playbook default, we will **most likely remove `matrix-nginx-proxy` completely**. It will likely be some months before this happens though. Keeping support for both Traefik and nginx in the playbook will be a burden, especially with most of us running Traefik in the future. The Traefik role should do everything nginx does in a better and cleaner way. Users who use their own `nginx` server on the Matrix server will be inconvenienced, as nothing will generate ready-to-include nginx configuration for them. Still, we hope it won't be too hard to migrate their setup to another way of doing things, like:" +msgstr "" + +#: ../../../CHANGELOG.md:1275 +msgid "not using nginx anymore. A common reason for using nginx until now was that you were running other containers and you need your own nginx to reverse-proxy to all of them. Just switch them to Traefik as well." +msgstr "" + +#: ../../../CHANGELOG.md:1276 +msgid "running Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and using some nginx configuration which reverse-proxies to Traefik (we should introduce examples for this in `examples/nginx`)." +msgstr "" + +#: ../../../CHANGELOG.md:1278 +msgid "How do I help?" +msgstr "" + +#: ../../../CHANGELOG.md:1280 +msgid "You can help by:" +msgstr "" + +#: ../../../CHANGELOG.md:1282 +msgid "**explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles" +msgstr "" + +#: ../../../CHANGELOG.md:1284 +msgid "**adding native Traefik support to a role** (requires adding Traefik labels, etc.) — for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers)." +msgstr "" + +#: ../../../CHANGELOG.md:1286 +msgid "**adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server" +msgstr "" + +#: ../../../CHANGELOG.md:1289 +msgid "2023-02-10" +msgstr "" + +#: ../../../CHANGELOG.md:1291 +msgid "Matrix Authentication Support for Jitsi" +msgstr "" + +#: ../../../CHANGELOG.md:1293 +msgid "Thanks to [Jakob S.](https://github.com/jakicoll) ([zakk gGmbH](https://github.com/zakk-it)), Jitsi can now use Matrix for authentication (via [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service))." +msgstr "" + +#: ../../../CHANGELOG.md:1295 +msgid "Additional details are available in the [Authenticate using Matrix OpenID (Auth-Type 'matrix')](docs/configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix)." +msgstr "" + +#: ../../../CHANGELOG.md:1297 +msgid "Draupnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:1299 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (bot). Draupnir is a fork of [Mjolnir](docs/configuring-playbook-bot-mjolnir.md) (which the playbook has supported for a long time) maintained by Mjolnir's former lead developer." +msgstr "" + +#: ../../../CHANGELOG.md:1301 +msgid "Additional details are available in [Setting up Draupnir](docs/configuring-playbook-bot-draupnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1304 +msgid "2023-02-05" +msgstr "" + +#: ../../../CHANGELOG.md:1306 +msgid "The matrix-prometheus-postgres-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1308 +msgid "**TLDR**: the `matrix-prometheus-postgres-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1310 +msgid "The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1312 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1314 +msgid "The `matrix-prometheus-services-proxy-connect` role has bee adjusted to help integrate the new `prometheus_postgres_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1316 ../../../CHANGELOG.md:1358 +msgid "Other roles which aren't strictly related to Matrix are likely to follow this fate of moving to their own repositories. Extracting them out allows other Ansible playbooks to make use of these roles easily." +msgstr "" + +#: ../../../CHANGELOG.md:1319 +msgid "2023-01-26" +msgstr "" + +#: ../../../CHANGELOG.md:1321 +msgid "coturn can now use host-networking" +msgstr "" + +#: ../../../CHANGELOG.md:1323 +msgid "Large coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown." +msgstr "" + +#: ../../../CHANGELOG.md:1325 +msgid "Such deployments don't need to run coturn within a private container network anymore. coturn can now run with host-networking by using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1331 +msgid "With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time coturn starts and stops. This, however, means that **you will need to ensure these ports are open** in your firewall yourself." +msgstr "" + +#: ../../../CHANGELOG.md:1333 +msgid "Thanks to us [tightening coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network." +msgstr "" + +#: ../../../CHANGELOG.md:1335 +msgid "(Backward Compatibility) Tightening coturn security can lead to connectivity issues" +msgstr "" + +#: ../../../CHANGELOG.md:1337 +msgid "**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it." +msgstr "" + +#: ../../../CHANGELOG.md:1339 +msgid "Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better." +msgstr "" + +#: ../../../CHANGELOG.md:1341 +msgid "If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it." +msgstr "" + +#: ../../../CHANGELOG.md:1343 +msgid "We've also added `no-multicast-peers` to the default coturn configuration, but we don't expect this to cause trouble for most people." +msgstr "" + +#: ../../../CHANGELOG.md:1346 +msgid "2023-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:1348 +msgid "The matrix-prometheus-node-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1350 +msgid "**TLDR**: the `matrix-prometheus-node-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1352 +msgid "The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1354 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1356 +msgid "A new `matrix-prometheus-services-proxy-connect` role was added to the playbook to help integrate the new `prometheus_node_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1361 +msgid "2023-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:1363 +msgid "Support for running commands via just" +msgstr "" + +#: ../../../CHANGELOG.md:1365 +msgid "We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)). Our `Makefile` is still around and you can still run these commands." +msgstr "" + +#: ../../../CHANGELOG.md:1367 +msgid "In addition, we've added support for running commands via [just](https://github.com/casey/just) — a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same." +msgstr "" + +#: ../../../CHANGELOG.md:1369 +msgid "Our [justfile](justfile) already defines some additional helpful **shortcut** commands that weren't part of our `Makefile`. Here are some examples:" +msgstr "" + +#: ../../../CHANGELOG.md:1371 +msgid "`just install-all` to trigger the much longer `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` command" +msgstr "" + +#: ../../../CHANGELOG.md:1372 +msgid "`just install-all --ask-vault-pass` — commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../CHANGELOG.md:1373 +msgid "`just run-tags install-mautrix-slack,start` — to run specific playbook tags" +msgstr "" + +#: ../../../CHANGELOG.md:1374 +msgid "`just start-all` — (re-)starts all services" +msgstr "" + +#: ../../../CHANGELOG.md:1375 +msgid "`just stop-group postgres` — to stop only the Postgres service" +msgstr "" + +#: ../../../CHANGELOG.md:1376 +msgid "`just register-user alice secret-password yes` — registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../CHANGELOG.md:1378 +msgid "Additional helpful commands and shortcuts may be defined in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1380 +msgid "This is all completely optional. If you find it difficult to [install `just`](https://github.com/casey/just#installation) or don't find any of this convenient, feel free to run all commands manually." +msgstr "" + +#: ../../../CHANGELOG.md:1383 +msgid "2023-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:1385 +msgid "mautrix-slack support" +msgstr "" + +#: ../../../CHANGELOG.md:1387 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix)'s efforts, the playbook now supports bridging to [Slack](https://slack.com/) via the [mautrix-slack](https://mau.dev/mautrix/slack) bridge. See our [Setting up Mautrix Slack bridging](docs/configuring-playbook-bridge-mautrix-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1389 +msgid "**Note**: this is a new Slack bridge. The playbook still retains Slack bridging via [matrix-appservice-slack](docs/configuring-playbook-bridge-appservice-slack.md) and [mx-puppet-slack](docs/configuring-playbook-bridge-mx-puppet-slack.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1392 +msgid "2023-01-10" +msgstr "" + +#: ../../../CHANGELOG.md:1394 +msgid "ChatGPT support" +msgstr "" + +#: ../../../CHANGELOG.md:1396 +msgid "Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) — a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model." +msgstr "" + +#: ../../../CHANGELOG.md:1398 +msgid "See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1401 +msgid "2022-11-30" +msgstr "" + +#: ../../../CHANGELOG.md:1403 +msgid "matrix-postgres-backup has been replaced by the ansible-role-postgres-backup external role" +msgstr "" + +#: ../../../CHANGELOG.md:1405 +msgid "Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role — [com.devture.ansible.role.postgres_backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres_backup)." +msgstr "" + +#: ../../../CHANGELOG.md:1407 +msgid "You'll need to rename your `matrix_postgres_backup`-prefixed variables such that they use a `postgres_backup` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1410 +msgid "2022-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:1412 +msgid "matrix-postgres has been replaced by the ansible-role-postgres external role" +msgstr "" + +#: ../../../CHANGELOG.md:1414 +msgid "**TLDR**: the tasks that install the integrated Postgres server now live in an external role — [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`)." +msgstr "" + +#: ../../../CHANGELOG.md:1416 +msgid "The `matrix-postgres` role that has been part of the playbook for a long time has been replaced with the [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) role. This was done as part of our work to [use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) for better code re-use and maintainability." +msgstr "" + +#: ../../../CHANGELOG.md:1418 +msgid "The new role is an upgraded version of the old `matrix-postgres` role with these notable differences:" +msgstr "" + +#: ../../../CHANGELOG.md:1420 +msgid "it uses different names for its variables (`matrix_postgres` -> `devture_postgres`)" +msgstr "" + +#: ../../../CHANGELOG.md:1421 +msgid "when [Vacuuming PostgreSQL](docs/maintenance-postgres.md#vacuuming-postgresql), it will vacuum all your databases, not just the Synapse one" +msgstr "" + +#: ../../../CHANGELOG.md:1423 +msgid "You'll need to run `make roles` to install the new role. You would also need to rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1425 +msgid "Note: the systemd service still remains the same — `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc. Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin)." +msgstr "" + +#: ../../../CHANGELOG.md:1427 +msgid "The playbook no longer installs scripts to /usr/local/bin" +msgstr "" + +#: ../../../CHANGELOG.md:1429 +msgid "The locations of various scripts installed by the playbook have changed." +msgstr "" + +#: ../../../CHANGELOG.md:1431 +msgid "The playbook no longer contaminates your `/usr/local/bin` directory. All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below:" +msgstr "" + +#: ../../../CHANGELOG.md:1433 +msgid "`/usr/local/bin/matrix-remove-all` -> `/matrix/bin/remove-all`" +msgstr "" + +#: ../../../CHANGELOG.md:1434 +msgid "`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1435 +msgid "`/usr/local/bin/matrix-ssl-lets-encrypt-certificates-renew` -> `/matrix/ssl/bin/lets-encrypt-certificates-renew`" +msgstr "" + +#: ../../../CHANGELOG.md:1436 +msgid "`/usr/local/bin/matrix-synapse-register-user` -> `/matrix/synapse/bin/register-user`" +msgstr "" + +#: ../../../CHANGELOG.md:1439 +msgid "2022-11-25" +msgstr "" + +#: ../../../CHANGELOG.md:1441 +msgid "2x-5x performance improvements in playbook runtime" +msgstr "" + +#: ../../../CHANGELOG.md:1443 +msgid "**TLDR**: the playbook is 2x faster for running `--tags=setup-all` (and various other tags). It also has new `--tags=install-*` tags (like `--tags=install-all`), which skip uninstallation tasks and bring an additional 2.5x speedup. In total, the playbook can maintain your server 5 times faster." +msgstr "" + +#: ../../../CHANGELOG.md:1445 +msgid "Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot. The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience." +msgstr "" + +#: ../../../CHANGELOG.md:1447 +msgid "Even when running `ansible-playbook` manually (as most of us here do), it's beneficial not to waste time and CPU resources." +msgstr "" + +#: ../../../CHANGELOG.md:1449 +msgid "Recently, a few large optimizations have been done to this playbook and its external roles (see [The playbook now uses external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) and don't forget to run `make roles`):" +msgstr "" + +#: ../../../CHANGELOG.md:1451 +msgid "Replacing Ansible `import_tasks` calls with `include_tasks`, which decreased runtime in half. Using `import_tasks` is slower and causes Ansible to go through and skip way too many tasks (tasks which could have been skipped altogether by not having Ansible include them in the first place). On an experimental VM, **deployment time was decreased from ~530 seconds to ~250 seconds**." +msgstr "" + +#: ../../../CHANGELOG.md:1453 +msgid "Introducing new `install-*` tags (`install-all` and `install-COMPONENT`, e.g. `install-synapse`, `install-bot-mjolnir`), which only run Ansible tasks pertaining to installation, while skipping uninstallation tasks. In most cases, people are maintaining the same setup or they're *adding* new components. Removing components is rare. Running thousands of uninstallation tasks each time is wasteful. On an experimental VM, **deployment time was decreased from ~250 seconds (`--tags=setup-all`) to ~100 seconds (`--tags=install-all`)**." +msgstr "" + +#: ../../../CHANGELOG.md:1455 +msgid "You can still use `--tags=setup-all`. In fact, that's the best way to ensure your server is reconciled with the `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1457 +msgid "If you know you haven't uninstalled any services since the last time you ran the playbook, you could run `--tags=install-all` instead and benefit from quicker runtimes. It should be noted that a service may become \"eligible for uninstallation\" even if your `vars.yml` file remains the same. In rare cases, we toggle services from being auto-installed to being optional, like we did on the 17th of March 2022 when we made [ma1sd not get installed by default](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#compatibility-break-ma1sd-identity-server-no-longer-installed-by-default). In such rare cases, you'd also need to run `--tags=setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:1460 +msgid "2022-11-22" +msgstr "" + +#: ../../../CHANGELOG.md:1462 +msgid "Automatic `matrix_architecture` determination" +msgstr "" + +#: ../../../CHANGELOG.md:1464 +msgid "From now on, the playbook automatically determines your server's architecture and sets the `matrix_architecture` variable accordingly. You no longer need to set this variable manually in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1466 +msgid "Docker and the Docker SDK for Python are now installed via external roles" +msgstr "" + +#: ../../../CHANGELOG.md:1470 +msgid "Docker will now be installed on the server via the [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker) Ansible role. If you'd like to manage the Docker installation yourself, you can disable the playbook's installation of Docker by setting `matrix_playbook_docker_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1472 +msgid "The Docker SDK for Python (named `docker-python`, `python-docker`, etc. on the different platforms) is now also installed by another role ([com.devture.ansible.role.docker_sdk_for_python](https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python)). To disable this role and install the necessary tools yourself, use `devture_docker_sdk_for_python_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1474 +msgid "If you're hitting issues with Docker installation or Docker SDK for Python installation, consider reporting bugs or contributing to these other projects." +msgstr "" + +#: ../../../CHANGELOG.md:1476 +msgid "These additional roles are downloaded into the playbook directory (to `roles/galaxy`) via an `ansible-galaxy …` command. `make roles` is an easy shortcut for invoking the `ansible-galaxy` command to download these roles." +msgstr "" + +#: ../../../CHANGELOG.md:1479 +msgid "2022-11-20" +msgstr "" + +#: ../../../CHANGELOG.md:1481 +msgid "(Backward Compatibility Break) Changing how reverse-proxying to Synapse works — now via a `matrix-synapse-reverse-proxy-companion` service" +msgstr "" + +#: ../../../CHANGELOG.md:1483 +msgid "**TLDR**: There's now a `matrix-synapse-reverse-proxy-companion` nginx service, which helps with reverse-proxying to Synapse and its various worker processes (if workers are enabled), so that `matrix-nginx-proxy` can be relieved of this role. `matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. `matrix-synapse-reverse-proxy-companion` is just one more reverse-proxy thrown into the mix for convenience. People with a more custom reverse-proxying configuration may be affected — see [Webserver configuration](#webserver-configuration) below." +msgstr "" + +#: ../../../CHANGELOG.md:1485 +msgid "Background" +msgstr "" + +#: ../../../CHANGELOG.md:1487 +msgid "Previously, `matrix-nginx-proxy` forwarded requests to Synapse directly. When Synapse is running in worker mode, the reverse-proxying configuration is more complicated (different requests need to go to different Synapse worker processes). `matrix-nginx-proxy` had configuration for sending each URL endpoint to the correct Synapse worker responsible for handling it. However, sometimes people like to disable `matrix-nginx-proxy` (for whatever reason) as detailed in [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1489 +msgid "Because `matrix-nginx-proxy` was so central to request forwarding, when it was disabled and Synapse was running with workers enabled, there was nothing which could forward requests to the correct place anymore… which caused [problems such as this one affecting Dimension](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090)." +msgstr "" + +#: ../../../CHANGELOG.md:1491 +msgid "Solution" +msgstr "" + +#: ../../../CHANGELOG.md:1493 +msgid "From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxying to Synapse and its various worker processes. This role is now handled by the new `matrix-synapse-reverse-proxy-companion` nginx service and works even if `matrix-nginx-proxy` is disabled. The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to:" +msgstr "" + +#: ../../../CHANGELOG.md:1495 +msgid "serve as a companion to Synapse and know how to reverse-proxy to Synapse correctly (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1497 +msgid "provide a unified container address for reaching Synapse (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1498 +msgid "`matrix-synapse-reverse-proxy-companion:8008` for Synapse Client-Server API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1499 +msgid "`matrix-synapse-reverse-proxy-companion:8048` for Synapse Server-Server (Federation) API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1501 +msgid "simplify `matrix-nginx-proxy` configuration — it now only needs to send requests to `matrix-synapse-reverse-proxy-companion` or `matrix-dendrite`, etc., without having to worry about workers" +msgstr "" + +#: ../../../CHANGELOG.md:1503 +msgid "allow reverse-proxying to Synapse, even if `matrix-nginx-proxy` is disabled" +msgstr "" + +#: ../../../CHANGELOG.md:1505 +msgid "`matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. All traffic goes through it before reaching any of the services. It's just that now the Synapse traffic is routed through `matrix-synapse-reverse-proxy-companion` like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1507 +msgid "(`matrix-nginx-proxy` -> `matrix-synapse-reverse-proxy-companion` -> (`matrix-synapse` or some Synapse worker))." +msgstr "" + +#: ../../../CHANGELOG.md:1509 +msgid "Various services (like Dimension, etc.) still talk to Synapse via `matrix-nginx-proxy` (e.g. `http://matrix-nginx-proxy:12080`) preferentially. They only talk to Synapse via the reverse-proxy companion (e.g. `http://matrix-synapse-reverse-proxy-companion:8008`) if `matrix-nginx-proxy` is disabled. Services should not be talking to Synapse (e.g. `https://matrix-synapse:8008` directly anymore), because when workers are enabled, that's the Synapse `master` process and may not be serving all URL endpoints needed by the service." +msgstr "" + +#: ../../../CHANGELOG.md:1511 +msgid "Webserver configuration" +msgstr "" + +#: ../../../CHANGELOG.md:1513 +msgid "if you're using `matrix-nginx-proxy` (`matrix_nginx_proxy_enabled: true`, which is the default for the playbook), you don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:1515 +msgid "if you're using your own `nginx` webserver running on the server, you shouldn't be affected. The `/matrix/nginx/conf.d` configuration and exposed ports that you're relying on will automatically be updated in a way that should work" +msgstr "" + +#: ../../../CHANGELOG.md:1517 +msgid "if you're using another local webserver (e.g. Apache, etc.) and haven't changed any ports (`matrix_*_host_bind_port` definitions), you shouldn't be affected. You're likely sending Matrix traffic to `127.0.0.1:8008` and `127.0.0.1:8048`. These ports (`8008` and `8048`) will still be exposed on `127.0.0.1` by default — just not by the `matrix-synapse` container from now on, but by the `matrix-synapse-reverse-proxy-companion` container instead" +msgstr "" + +#: ../../../CHANGELOG.md:1519 +msgid "if you've been exposing `matrix-synapse` ports (`matrix_synapse_container_client_api_host_bind_port`, etc.) manually, you should consider exposing `matrix-synapse-reverse-proxy-companion` ports instead" +msgstr "" + +#: ../../../CHANGELOG.md:1521 +msgid "if you're running Traefik and reverse-proxying directly to the `matrix-synapse` container, you should start reverse-proxying to the `matrix-synapse-reverse-proxy-companion` container instead. See [our updated Traefik example configuration](docs/configuring-playbook-own-webserver.md#sample-configuration-for-running-behind-traefik-20). Note: we now recommend calling the federation entry point `federation` (instead of `synapse`) and reverse-proxying the federation traffic via `matrix-nginx-proxy`, instead of sending it directly to Synapse (or `matrix-synapse-reverse-proxy-companion`). This makes the configuration simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1524 +msgid "2022-11-05" +msgstr "" + +#: ../../../CHANGELOG.md:1526 +msgid "(Backward Compatibility Break) A new default standalone mode for Etherpad" +msgstr "" + +#: ../../../CHANGELOG.md:1528 +msgid "Until now, [Etherpad](https://etherpad.org/) (which [the playbook could install for you](docs/configuring-playbook-etherpad.md)) required the [Dimension integration manager](docs/configuring-playbook-dimension.md) to also be installed, because Etherpad was hosted on the Dimension domain (at `dimension.example.com/etherpad`)." +msgstr "" + +#: ../../../CHANGELOG.md:1530 +msgid "From now on, Etherpad can be installed in `standalone` mode on `etherpad.example.com` and used even without Dimension. This is much more versatile, so the playbook now defaults to this new mode (`etherpad_mode: standalone`)." +msgstr "" + +#: ../../../CHANGELOG.md:1532 +msgid "If you've already got both Etherpad and Dimension in use you could:" +msgstr "" + +#: ../../../CHANGELOG.md:1534 +msgid "**either** keep hosting Etherpad under the Dimension domain by adding `etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary." +msgstr "" + +#: ../../../CHANGELOG.md:1536 +msgid "**or**, you could change to hosting Etherpad separately on `etherpad.example.com`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.example.com/…`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.example.com/etherpad/…`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode" +msgstr "" + +#: ../../../CHANGELOG.md:1539 +msgid "2022-11-04" +msgstr "" + +#: ../../../CHANGELOG.md:1541 +msgid "The playbook now uses external roles for some things" +msgstr "" + +#: ../../../CHANGELOG.md:1543 +msgid "**TLDR**: when updating the playbook and before running it, you'll need to run `make roles` to make [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) download dependency roles (see the [`requirements.yml` file](requirements.yml)) to the `roles/galaxy` directory. Without this, the playbook won't work." +msgstr "" + +#: ../../../CHANGELOG.md:1545 +msgid "We're in the process of trimming the playbook and making it reuse Ansible roles." +msgstr "" + +#: ../../../CHANGELOG.md:1547 +msgid "Starting now, the playbook is composed of 2 types of Ansible roles:" +msgstr "" + +#: ../../../CHANGELOG.md:1549 +msgid "those that live within the playbook itself (`roles/custom/*`)" +msgstr "" + +#: ../../../CHANGELOG.md:1551 +msgid "those downloaded from other sources (using [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to `roles/galaxy`, based on the [`requirements.yml` file](requirements.yml)). These roles are maintained by us or by other people from the Ansible community." +msgstr "" + +#: ../../../CHANGELOG.md:1553 +msgid "We're doing this for greater code-reuse (across Ansible playbooks, including our own related playbooks [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) and [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)) and decreased maintenance burden. Until now, certain features were copy-pasted across playbooks or were maintained separately in each one, with improvements often falling behind. We've also tended to do too much by ourselves — installing Docker on the server from our `matrix-base` role, etc. — something that we'd rather not do anymore by switching to the [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker) role." +msgstr "" + +#: ../../../CHANGELOG.md:1555 +msgid "Some variable names will change during the transition to having more and more external (galaxy) roles. There's a new `custom/matrix_playbook_migration` role added to the playbook which will tell you about these changes each time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1557 +msgid "**From now on**, every time you update the playbook (well, every time the `requirements.yml` file changes), it's best to run `make roles` to update the roles downloaded from other sources. `make roles` is a shortcut (a `roles` target defined in [`Makefile`](Makefile) and executed by the [`make`](https://www.gnu.org/software/make/) utility) which ultimately runs [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to download Ansible roles. If you don't have `make`, you can also manually run the commands seen in the `Makefile`." +msgstr "" + +#: ../../../CHANGELOG.md:1560 +msgid "2022-10-14" +msgstr "" + +#: ../../../CHANGELOG.md:1562 +msgid "synapse-s3-storage-provider support" +msgstr "" + +#: ../../../CHANGELOG.md:1564 +msgid "**`synapse-s3-storage-provider` support is very new and still relatively untested. Using it may cause data loss.**" +msgstr "" + +#: ../../../CHANGELOG.md:1566 +msgid "You can now store your Synapse media repository files on Amazon S3 (or another S3-compatible object store) using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) — a media provider for Synapse (Python module), which should work faster and more reliably than our previous [Goofys](docs/configuring-playbook-s3-goofys.md) implementation (Goofys will continue to work)." +msgstr "" + +#: ../../../CHANGELOG.md:1568 +msgid "This is not just for initial installations. Users with existing files (stored in the local filesystem) can also migrate their files to `synapse-s3-storage-provider`." +msgstr "" + +#: ../../../CHANGELOG.md:1570 +msgid "To get started, see our [Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](docs/configuring-playbook-synapse-s3-storage-provider.md) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1572 +msgid "Synapse container image customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1574 +msgid "We now support customizing the Synapse container image by adding additional build steps to its [`Dockerfile`](https://docs.docker.com/engine/reference/builder/)." +msgstr "" + +#: ../../../CHANGELOG.md:1576 +msgid "Our [synapse-s3-storage-provider support](#synapse-s3-storage-provider-support) is actually built on this. When `s3-storage-provider` is enabled, we automatically add additional build steps to install its Python module into the Synapse image." +msgstr "" + +#: ../../../CHANGELOG.md:1578 +msgid "Besides this kind of auto-added build steps (for components supported by the playbook), we also let you inject your own custom build steps using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1589 +msgid "People who have needed to customize Synapse previously had to fork the git repository, make their changes to the `Dockerfile` there, point the playbook to the new repository (`matrix_synapse_container_image_self_build_repo`) and enable self-building from scratch (`matrix_synapse_container_image_self_build: true`). This is harder and slower." +msgstr "" + +#: ../../../CHANGELOG.md:1591 +msgid "With the new Synapse-customization feature in the playbook, we use the original upstream (pre-built, if available) Synapse image and only build on top of it, right on the Matrix server. This is much faster than building all of Synapse from scratch." +msgstr "" + +#: ../../../CHANGELOG.md:1594 +msgid "2022-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:1596 +msgid "matrix-ldap-registration-proxy support" +msgstr "" + +#: ../../../CHANGELOG.md:1598 +msgid "Thanks to [@TheOneWithTheBraid](https://github.com/TheOneWithTheBraid), we now support installing [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) — a proxy which handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../CHANGELOG.md:1600 +msgid "See our [Setting up matrix-ldap-registration-proxy](docs/configuring-playbook-matrix-ldap-registration-proxy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1603 +msgid "2022-09-15" +msgstr "" + +#: ../../../CHANGELOG.md:1605 +msgid "(Potential Backward Compatibility Break) Major improvements to Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:1607 +msgid "People who are interested in running a Synapse worker setup should know that **our Synapse worker implementation is much more powerful now**:" +msgstr "" + +#: ../../../CHANGELOG.md:1609 +msgid "we've added support for [Stream writers](#stream-writers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1610 +msgid "we've added support for [multiple federation sender workers](#multiple-federation-sender-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1611 +msgid "we've added support for [multiple pusher workers](#multiple-pusher-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1612 +msgid "we've added support for [running background tasks on a worker](#background-tasks-can-run-on-a-worker)" +msgstr "" + +#: ../../../CHANGELOG.md:1613 +msgid "we've restored support for [`appservice` workers](#appservice-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1614 +msgid "we've restored support for [`user_dir` workers](#user-directory-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1615 +msgid "we've made it possible to [reliably use more than 1 `media_repository` worker](#using-more-than-1-media-repository-worker-is-now-more-reliable)" +msgstr "" + +#: ../../../CHANGELOG.md:1616 +msgid "see the [Potential Backward Incompatibilities after these Synapse worker changes](#potential-backward-incompatibilities-after-these-synapse-worker-changes)" +msgstr "" + +#: ../../../CHANGELOG.md:1618 +msgid "Stream writers support" +msgstr "" + +#: ../../../CHANGELOG.md:1620 +msgid "From now on, the playbook lets you easily set up various [stream writer workers](https://matrix-org.github.io/synapse/latest/workers.html#stream-writers) which can handle different streams (`events` stream; `typing` URL endpoints, `to_device` URL endpoints, `account_data` URL endpoints, `receipts` URL endpoints, `presence` URL endpoints). All of this work was previously handled by the main Synapse process, but can now be offloaded to stream writer worker processes." +msgstr "" + +#: ../../../CHANGELOG.md:1622 +msgid "If you're using `matrix_synapse_workers_preset: one-of-each`, you'll automatically get 6 additional workers (one for each of the above stream types). Our `little-federation-helper` preset (meant to be quite minimal and focusing in improved federation performance) does not include stream writer workers." +msgstr "" + +#: ../../../CHANGELOG.md:1624 +msgid "If you'd like to customize the number of workers we also make that possible using these variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1637 +msgid "Multiple federation sender workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1639 +msgid "Until now, we only supported a single `federation_sender` worker (`matrix_synapse_workers_federation_sender_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with your federation traffic." +msgstr "" + +#: ../../../CHANGELOG.md:1641 +msgid "Multiple pusher workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1643 +msgid "Until now, we only supported a single `pusher` worker (`matrix_synapse_workers_pusher_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with pushing notifications out." +msgstr "" + +#: ../../../CHANGELOG.md:1645 +msgid "Background tasks can run on a worker" +msgstr "" + +#: ../../../CHANGELOG.md:1647 +msgid "From now on, you can put [background task processing on a worker](https://matrix-org.github.io/synapse/latest/workers.html#background-tasks)." +msgstr "" + +#: ../../../CHANGELOG.md:1649 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `background` worker automatically. You can also control the `background` workers count with `matrix_synapse_workers_background_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1651 +msgid "Appservice worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1653 +msgid "We previously had an `appservice` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1655 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of talking to Application Services. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1657 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `appservice` worker automatically. You can also control the `appservice` workers count with `matrix_synapse_workers_appservice_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1659 +msgid "User Directory worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1661 +msgid "We previously had a `user_dir` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1663 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of serving the user directory. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1665 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `user_dir` worker automatically. You can also control the `user_dir` workers count with `matrix_synapse_workers_user_dir_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1667 +msgid "Using more than 1 media repository worker is now more reliable" +msgstr "" + +#: ../../../CHANGELOG.md:1669 +msgid "With `matrix_synapse_workers_preset: one-of-each`, we only launch one `media_repository` worker." +msgstr "" + +#: ../../../CHANGELOG.md:1671 +msgid "If you've been configuring `matrix_synapse_workers_media_repository_workers_count` manually, you may have increased that to more workers. When multiple media repository workers are in use, background tasks related to the media repository must always be configured to run on a single `media_repository` worker via `media_instance_running_background_jobs`. Until now, we weren't doing this correctly, but we now are." +msgstr "" + +#: ../../../CHANGELOG.md:1673 +msgid "Potential Backward Incompatibilities after these Synapse worker changes" +msgstr "" + +#: ../../../CHANGELOG.md:1675 +msgid "Below we'll discuss **potential backward incompatibilities**." +msgstr "" + +#: ../../../CHANGELOG.md:1677 +msgid "**Worker names** (container names, systemd services, worker configuration files) **have changed**. Workers are now labeled sequentially (e.g. `matrix-synapse-worker_generic_worker-18111` -> `matrix-synapse-worker-generic-0`). The playbook will handle these changes automatically." +msgstr "" + +#: ../../../CHANGELOG.md:1679 +msgid "Due to increased worker types support above, people who use `matrix_synapse_workers_preset: one-of-each` should be aware that with these changes, **the playbook will deploy 9 additional workers** (6 stream writers, 1 `appservice` worker, 1 `user_dir` worker, 1 background task worker). This **may increase RAM/CPU usage**, etc. If you find your server struggling, consider disabling some workers with the appropriate `matrix_synapse_workers_*_workers_count` variables." +msgstr "" + +#: ../../../CHANGELOG.md:1681 +msgid "**Metric endpoints have also changed** (`/metrics/synapse/worker/generic_worker-18111` -> `/metrics/synapse/worker/generic-worker-0`). If you're [collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server), consider revisiting our [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server) docs and updating your Prometheus configuration. **If you're collecting metrics to the integrated Prometheus server** (not enabled by default), **your Prometheus configuration will be updated automatically**. Old data (from before this change) may stick around though." +msgstr "" + +#: ../../../CHANGELOG.md:1683 +msgid "**the format of `matrix_synapse_workers_enabled_list` has changed**. You were never advised to use this variable for directly creating workers (we advise people to control workers using `matrix_synapse_workers_preset` or by tweaking `matrix_synapse_workers_*_workers_count` variables only), but some people may have started using the `matrix_synapse_workers_enabled_list` variable to gain more control over workers. If you're one of them, you'll need to adjust its value. See `roles/custom/matrix-synapse/defaults/main.yml` for more information on the new format. The playbook will also do basic validation and complain if you got something wrong." +msgstr "" + +#: ../../../CHANGELOG.md:1686 +msgid "2022-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:1688 +msgid "Cactus Comments support" +msgstr "" + +#: ../../../CHANGELOG.md:1690 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now set up [Cactus Comments](https://cactus.chat) — federated comment system for the web based on Matrix." +msgstr "" + +#: ../../../CHANGELOG.md:1692 +msgid "See our [Setting up Cactus Comments](docs/configuring-playbook-cactus-comments.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1695 +msgid "2022-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:1697 +msgid "Postmoogle email bridge support" +msgstr "" + +#: ../../../CHANGELOG.md:1699 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge. Postmoogle is like the [Email2Matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving." +msgstr "" + +#: ../../../CHANGELOG.md:1701 +msgid "See our [Setting up Postmoogle email bridging](docs/configuring-playbook-bridge-postmoogle.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1704 +msgid "2022-08-10" +msgstr "" + +#: ../../../CHANGELOG.md:1706 +msgid "mautrix-whatsapp default configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:1708 +msgid "In [Pull Request #2012](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2012), we've made some changes to the default configuration used by the `mautrix-whatsapp` bridge." +msgstr "" + +#: ../../../CHANGELOG.md:1710 +msgid "If you're using this bridge, you should look into this PR and see if the new configuration suits you. If not, you can always change individual preferences in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1712 +msgid "Most notably, spaces support has been enabled by default. The bridge will now group rooms into a Matrix space. **If you've already bridged to Whatsapp** prior to this update, you will need to send `!wa sync space` to the bridge bot to make it create the space and put your existing rooms into it." +msgstr "" + +#: ../../../CHANGELOG.md:1715 +msgid "2022-08-09" +msgstr "" + +#: ../../../CHANGELOG.md:1717 +msgid "Conduit support" +msgstr "" + +#: ../../../CHANGELOG.md:1719 +msgid "Thanks to [Charles Wright](https://github.com/cvwright), we now have optional experimental [Conduit](https://conduit.rs) homeserver support for new installations. This comes as a follow-up to the playbook getting [Dendrite support](#dendrite-support) earlier this year." +msgstr "" + +#: ../../../CHANGELOG.md:1721 +msgid "Existing Synapse or Dendrite installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1723 +msgid "To try out Conduit, we recommend that you **use a new server** and the following `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1729 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse or Dendrite to Conduit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:1732 +msgid "2022-07-29" +msgstr "" + +#: ../../../CHANGELOG.md:1734 +msgid "mautrix-discord support" +msgstr "" + +#: ../../../CHANGELOG.md:1736 +msgid "Thanks to [MdotAmaan](https://github.com/MdotAmaan)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mautrix-discord](https://mau.dev/mautrix/discord) bridge. See our [Setting up Mautrix Discord bridging](docs/configuring-playbook-bridge-mautrix-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1738 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md) and [mx-puppet-discord](docs/configuring-playbook-bridge-mx-puppet-discord.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1741 +msgid "2022-07-27" +msgstr "" + +#: ../../../CHANGELOG.md:1743 +msgid "matrix-appservice-kakaotalk support" +msgstr "" + +#: ../../../CHANGELOG.md:1745 +msgid "The playbook now supports bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) via [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) — a bridge based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. Thanks to [hnarjis](https://github.com/hnarjis) for helping us add support for this!" +msgstr "" + +#: ../../../CHANGELOG.md:1747 +msgid "See our [Setting up Appservice Kakaotalk bridging](docs/configuring-playbook-bridge-appservice-kakaotalk.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1750 +msgid "2022-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:1752 +msgid "maubot support" +msgstr "" + +#: ../../../CHANGELOG.md:1754 +msgid "Thanks to [Stuart Mumford (@Cadair)](https://github.com/cadair) for starting ([PR #373](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/373) and [PR #622](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/622)) and to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s) for finishing up (in [PR #1894](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894)), the playbook can now help you set up [maubot](https://github.com/maubot/maubot) — a plugin-based Matrix bot system." +msgstr "" + +#: ../../../CHANGELOG.md:1756 +msgid "See our [Setting up maubot](docs/configuring-playbook-bot-maubot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1759 +msgid "2022-07-14" +msgstr "" + +#: ../../../CHANGELOG.md:1761 +msgid "mx-puppet-skype removal" +msgstr "" + +#: ../../../CHANGELOG.md:1763 +msgid "The playbook no longer includes the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge, because it has been broken and unmaintained for a long time. Users that have `matrix_mx_puppet_skype_enabled` in their configuration files will encounter an error when running the playbook until they remove references to this bridge from their configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1765 +msgid "To completely clean up your server from `mx-puppet-skype`'s presence on it:" +msgstr "" + +#: ../../../CHANGELOG.md:1767 +msgid "ensure your Ansible configuration (`vars.yml` file) no longer contains `matrix_mx_puppet_skype_*` references" +msgstr "" + +#: ../../../CHANGELOG.md:1768 +msgid "stop and disable the systemd service (run `systemctl disable --now matrix-mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1769 +msgid "delete the systemd service (run `rm /etc/systemd/system/matrix-mx-puppet-skype.service` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1770 +msgid "delete `/matrix/mx-puppet-skype` (run `rm -rf /matrix/mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1771 +msgid "drop the `matrix_mx_puppet_skype` database (run `/usr/local/bin/matrix-postgres-cli` on the server, and execute the `DROP DATABASE matrix_mx_puppet_skype;` query there)" +msgstr "" + +#: ../../../CHANGELOG.md:1773 +msgid "If you still need bridging to [Skype](https://www.skype.com/), consider switching to [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) instead. See [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1775 +msgid "If you think this is a mistake and `mx-puppet-skype` works for you (or you get it to work somehow), let us know and we may reconsider this removal." +msgstr "" + +#: ../../../CHANGELOG.md:1777 +msgid "signald (0.19.0+) upgrade requires data migration" +msgstr "" + +#: ../../../CHANGELOG.md:1779 +msgid "In [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921) we upgraded [signald](https://signald.org/) (used by the mautrix-signal bridge) from `v0.18.5` to `v0.20.0`." +msgstr "" + +#: ../../../CHANGELOG.md:1781 +msgid "Back in the [`v0.19.0` released of signald](https://gitlab.com/signald/signald/-/blob/main/releases/0.19.0.md) (which we skipped and migrated straight to `v0.20.0`), a new `--migrate-data` command had been added that migrates avatars, group images, attachments, etc., into the database (those were previously stored in the filesystem)." +msgstr "" + +#: ../../../CHANGELOG.md:1783 +msgid "If you've been using the mautrix-signal bridge for a while, you may have files stored in the local filesystem, which will need to be upgraded." +msgstr "" + +#: ../../../CHANGELOG.md:1785 +msgid "We attempt to do this data migration automatically every time Signald starts (`matrix-mautrix-signal-daemon.service`) using a `ExecStartPre` systemd unit definition." +msgstr "" + +#: ../../../CHANGELOG.md:1787 +msgid "Keep an eye on your Signal bridge and let us know (in our [support room](README.md#support) or in [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921)) if you experience any trouble!" +msgstr "" + +#: ../../../CHANGELOG.md:1790 +msgid "2022-07-05" +msgstr "" + +#: ../../../CHANGELOG.md:1792 +msgid "Ntfy push notifications support" +msgstr "" + +#: ../../../CHANGELOG.md:1794 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install a [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../CHANGELOG.md:1796 +msgid "See our [Setting up the ntfy push notifications server](docs/configuring-playbook-ntfy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1799 +msgid "2022-06-23" +msgstr "" + +#: ../../../CHANGELOG.md:1801 +msgid "(Potential Backward Compatibility Break) Changes around metrics collection" +msgstr "" + +#: ../../../CHANGELOG.md:1803 +msgid "**TLDR**: we've made extensive **changes to metrics exposure/collection, which concern people using an external Prometheus server**. If you don't know what that is, you don't need to read below." +msgstr "" + +#: ../../../CHANGELOG.md:1805 +msgid "**Why do major changes to metrics**? Because various services were exposing metrics in different, hacky, ways. Synapse was exposing metrics at `/_synapse/metrics` and `/_synapse-worker-…/metrics` on the `matrix.example.com`. The Hookshot role was **repurposing** the Granana web UI domain (`stats.example.com`) for exposing its metrics on `stats.example.com/hookshot/metrics`, while protecting these routes using Basic Authentication **normally used for Synapse** (`/_synapse/metrics`). Node-exporter and Postgres-exporter roles were advising for more `stats.example.com` usage in manual ways. Each role was doing things differently and mixing variables from other roles. Each metrics endpoint was ending up in a different place, protected by who knows what Basic Authentication credentials (if protected at all)." +msgstr "" + +#: ../../../CHANGELOG.md:1807 +msgid "**The solution**: a completely revamped way to expose metrics to an external Prometheus server. We are **introducing new `https://matrix.example.com/metrics/*` endpoints**, where various services *can* expose their metrics, for collection by external Prometheus servers. To enable the `/metrics/*` endpoints, use `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`. There's also a way to protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). See the `matrix-nginx-proxy` role or our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation for additional variables around `matrix_nginx_proxy_proxy_matrix_metrics_enabled`." +msgstr "" + +#: ../../../CHANGELOG.md:1809 +msgid "**If you are using the [Hookshot bridge](docs/configuring-playbook-bridge-hookshot.md)**, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1810 +msgid "**Metrics may not be enabled by default anymore**:" +msgstr "" + +#: ../../../CHANGELOG.md:1811 +msgid "If Prometheus is enabled (`prometheus_enabled: true`), then Hookshot metrics will be enabled automatically (`matrix_hookshot_metrics_enabled: true`). These metrics will be collected from the local (in-container) Prometheus over the container network." +msgstr "" + +#: ../../../CHANGELOG.md:1812 +msgid "**If Prometheus is not enabled** (you are either not using Prometheus or are using an external one), **Hookshot metrics will not be enabled by default anymore**. Feel free to enable them by setting `matrix_hookshot_metrics_enabled: true`. Also, see below." +msgstr "" + +#: ../../../CHANGELOG.md:1813 +msgid "When metrics are meant to be **consumed by an external Prometheus server**, `matrix_hookshot_metrics_proxying_enabled` needs to be set to `true`, so that metrics would be exposed (proxied) \"publicly\" on `https://matrix.example.com/metrics/hookshot`. To make use of this, you'll also need to enable the new `https://matrix.example.com/metrics/*` endpoints mentioned above, using `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. Learn more in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1814 +msgid "**We've changed the URL we're exposing Hookshot metrics at** for external Prometheus servers. Until now, you were advised to consume Hookshot metrics from `https://stats.example.com/hookshot/metrics` (working in conjunction with `matrix_nginx_proxy_proxy_synapse_metrics`). From now on, **this no longer works**. As described above, you need to start consuming metrics from `https://matrix.example.com/metrics/hookshot`." +msgstr "" + +#: ../../../CHANGELOG.md:1816 +msgid "**If you're using node-exporter** (`matrix_prometheus_node_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_node_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/node-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1818 +msgid "**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/postgres-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1820 +msgid "**If you're using Synapse** and would like to collect its metrics from an external Prometheus server, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1822 +msgid "Exposing metrics is now done using `matrix_synapse_metrics_proxying_enabled`, not `matrix_nginx_proxy_proxy_synapse_metrics: true`. You may still need to enable metrics using `matrix_synapse_metrics_enabled: true` before exposing them." +msgstr "" + +#: ../../../CHANGELOG.md:1823 +msgid "Protecting metrics endpoints using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is now done in another way. See our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation" +msgstr "" + +#: ../../../CHANGELOG.md:1824 +msgid "If Synapse metrics are exposed, they will be made available at `https://matrix.example.com/metrics/synapse/main-process` or `https://matrix.example.com/metrics/synapse/worker/TYPE-ID` (when workers are enabled), not at `https://matrix.example.com/_synapse/metrics` and `https://matrix.example.com/_synapse-worker-…/metrics`" +msgstr "" + +#: ../../../CHANGELOG.md:1825 +msgid "The playbook still generates an `external_prometheus.yml.example` sample file for scraping Synapse from Prometheus as described in [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server), but it's now saved under `/matrix/synapse` (not `/matrix`)." +msgstr "" + +#: ../../../CHANGELOG.md:1827 +msgid "**If you where already using a external Prometheus server** before this change, and you gave a hashed version of the password as a variable, the playbook will now take care of hashing the password for you. Thus, you need to provide the non-hashed version now." +msgstr "" + +#: ../../../CHANGELOG.md:1829 +msgid "2022-06-13" +msgstr "" + +#: ../../../CHANGELOG.md:1831 +msgid "go-skype-bridge bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1833 +msgid "Thanks to [CyberShadow](https://github.com/CyberShadow), the playbook can now install the [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) bridge for bridging Matrix to [Skype](https://www.skype.com/)." +msgstr "" + +#: ../../../CHANGELOG.md:1835 +msgid "See our [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1837 +msgid "The playbook has supported [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridging (see [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md)) since [2020-04-09](#2020-04-09), but `mx-puppet-skype` is reportedly broken." +msgstr "" + +#: ../../../CHANGELOG.md:1840 +msgid "2022-06-09" +msgstr "" + +#: ../../../CHANGELOG.md:1842 +msgid "Running Ansible in a container can now happen on the Matrix server itself" +msgstr "" + +#: ../../../CHANGELOG.md:1844 +msgid "If you're tired of being on an old and problematic Ansible version, you can now run [run Ansible in a container on the Matrix server itself](docs/ansible.md#running-ansible-in-a-container-on-the-matrix-server-itself)." +msgstr "" + +#: ../../../CHANGELOG.md:1847 +msgid "2022-05-31" +msgstr "" + +#: ../../../CHANGELOG.md:1849 +msgid "Synapse v1.60 upgrade may cause trouble and require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:1851 +msgid "Synapse v1.60 will try to add a new unique index to `state_group_edges` upon startup and could fail if your database is corrupted." +msgstr "" + +#: ../../../CHANGELOG.md:1853 +msgid "We haven't observed this problem yet, but [the Synapse v1.60.0 upgrade notes](https://github.com/element-hq/synapse/blob/v1.60.0/docs/upgrade.md#adding-a-new-unique-index-to-state_group_edges-could-fail-if-your-database-is-corrupted) mention it, so we're giving you a heads up here in case you're unlucky." +msgstr "" + +#: ../../../CHANGELOG.md:1855 +msgid "**If Synapse fails to start** after your next playbook run, you'll need to:" +msgstr "" + +#: ../../../CHANGELOG.md:1857 +msgid "SSH into the Matrix server" +msgstr "" + +#: ../../../CHANGELOG.md:1858 +msgid "launch `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1859 +msgid "switch to the `synapse` database: `\\c synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:1860 +msgid "run the following SQL query:" +msgstr "" + +#: ../../../CHANGELOG.md:1879 +msgid "You could then restart services: `ansible-playbook -i inventory/hosts setup.yml --tags=start`" +msgstr "" + +#: ../../../CHANGELOG.md:1882 +msgid "2022-04-25" +msgstr "" + +#: ../../../CHANGELOG.md:1884 +msgid "Buscarron bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1886 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [the Buscarron bot](https://github.com/etkecc/buscarron). It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../CHANGELOG.md:1888 +msgid "See our [Setting up Buscarron](docs/configuring-playbook-bot-buscarron.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1891 +msgid "2022-04-21" +msgstr "" + +#: ../../../CHANGELOG.md:1893 +msgid "matrix-registration-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1895 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) — a bot that is used to create and manage registration tokens for a Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1897 +msgid "See our [Setting up matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1900 +msgid "2022-04-19" +msgstr "" + +#: ../../../CHANGELOG.md:1902 +msgid "BorgBackup support" +msgstr "" + +#: ../../../CHANGELOG.md:1904 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [Borg](https://www.borgbackup.org/) backups with [borgmatic](https://torsion.org/borgmatic/) of your Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1906 +msgid "See our [Setting up BorgBackup](docs/configuring-playbook-backup-borg.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1908 +msgid "(Compatibility Break) Upgrading to Synapse v1.57 on setups using workers may require manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1910 +msgid "If you're running a worker setup for Synapse (`matrix_synapse_workers_enabled: true`), the [Synapse v1.57 upgrade notes](https://github.com/element-hq/synapse/blob/v1.57.0rc1/docs/upgrade.md#changes-to-database-schema-for-application-services) say that you may need to take special care when upgrading:" +msgstr "" + +#: ../../../CHANGELOG.md:1912 +msgid "Synapse v1.57.0 includes a change to the way transaction IDs are managed for application services. If your deployment uses a dedicated worker for application service traffic, **it must be stopped** when the database is upgraded (which normally happens when the main process is upgraded), to ensure the change is made safely without any risk of reusing transaction IDs." +msgstr "" + +#: ../../../CHANGELOG.md:1914 +msgid "If you're not running an `appservice` worker (`matrix_synapse_workers_preset: little-federation-helper` or `matrix_synapse_workers_appservice_workers_count: 0`), you are probably safe to upgrade as per normal, without taking any special care." +msgstr "" + +#: ../../../CHANGELOG.md:1916 +msgid "If you are running a setup with an `appservice` worker, or otherwise want to be on the safe side, we recommend the following upgrade path:" +msgstr "" + +#: ../../../CHANGELOG.md:1918 +msgid "Pull the latest playbook changes" +msgstr "" + +#: ../../../CHANGELOG.md:1919 +msgid "Stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:1920 +msgid "Re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:1921 +msgid "Start Postgres (`systemctl start matrix-postgres` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1922 +msgid "Start the main Synapse process (`systemctl start matrix-synapse` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1923 +msgid "Wait a while so that Synapse can start and complete the database migrations. You can use `journalctl -fu matrix-synapse` on the server to get a clue. Waiting a few minutes should also be enough." +msgstr "" + +#: ../../../CHANGELOG.md:1924 +msgid "It should now be safe to start all other services. `ansible-playbook -i inventory/hosts setup.yml --tags=start` will do it for you" +msgstr "" + +#: ../../../CHANGELOG.md:1927 +msgid "2022-04-14" +msgstr "" + +#: ../../../CHANGELOG.md:1929 +msgid "(Compatibility Break) Changes to `docker-src` permissions necessitating manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1931 +msgid "Users who build container images from source will need to manually correct file permissions of some directories on the server." +msgstr "" + +#: ../../../CHANGELOG.md:1933 +msgid "When self-building, the playbook used to `git clone` repositories (into `/matrix/SERVICE/docker-src`) using the `root` user, but now uses `matrix` instead to work around [the following issue with git 2.35.2](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1749)." +msgstr "" + +#: ../../../CHANGELOG.md:1935 +msgid "If you're on a non-`amd64` architecture (that is, you're overriding `matrix_architecture` in your `vars.yml` file) or you have enabled self-building for some service (e.g. `matrix_*_self_build: true`), you're certainly building some container images from source and have `docker-src` directories with mixed permissions lying around in various `/matrix/SERVICE` directories." +msgstr "" + +#: ../../../CHANGELOG.md:1937 +msgid "The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places — something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf`" +msgstr "" + +#: ../../../CHANGELOG.md:1940 +msgid "2022-03-17" +msgstr "" + +#: ../../../CHANGELOG.md:1942 +msgid "(Compatibility Break) ma1sd identity server no longer installed by default" +msgstr "" + +#: ../../../CHANGELOG.md:1944 +msgid "The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:1946 +msgid "The main reason we used to install ma1sd by default in the past was to prevent Element clients from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks." +msgstr "" + +#: ../../../CHANGELOG.md:1948 +msgid "Since Element clients no longer default to using a public identity server if another one is not provided, we can stop installing ma1sd." +msgstr "" + +#: ../../../CHANGELOG.md:1950 +msgid "If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1957 +msgid "2022-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1959 +msgid "matrix_encryption_disabler support" +msgstr "" + +#: ../../../CHANGELOG.md:1961 +msgid "We now support installing the [matrix_encryption_disabler](https://github.com/digitalentity/matrix_encryption_disabler) Synapse module, which lets you prevent End-to-End-Encryption from being enabled by users on your homeserver. The popular opinion is that this is dangerous and shouldn't be done, but there are valid use cases for disabling encryption discussed [here](https://github.com/matrix-org/synapse/issues/4401)." +msgstr "" + +#: ../../../CHANGELOG.md:1963 +msgid "To enable this module (and prevent encryption from being used on your homserver), add `matrix_synapse_ext_encryption_disabler_enabled: true` to your configuration. This module provides further customization. Check its other configuration settings (and defaults) in `roles/custom/matrix-synapse/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:1966 +msgid "2022-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:1968 +msgid "matrix-hookshot bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1970 +msgid "Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA. See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1973 +msgid "2022-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:1975 +msgid "ARM support for matrix-corporal" +msgstr "" + +#: ../../../CHANGELOG.md:1977 +msgid "[matrix-corporal](https://github.com/devture/matrix-corporal) (as of version `2.2.3`) is now published to Docker Hub (see [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal)) as a multi-arch container image with support for all these platforms: `linux/amd64`, `linux/arm64/v8` and `linux/arm/v7`. The playbook no longer resorts to self-building matrix-corporal on these ARM architectures." +msgstr "" + +#: ../../../CHANGELOG.md:1980 +msgid "2022-01-07" +msgstr "" + +#: ../../../CHANGELOG.md:1982 +msgid "Dendrite support" +msgstr "" + +#: ../../../CHANGELOG.md:1984 +msgid "**TLDR**: We now have optional experimental [Dendrite](https://github.com/matrix-org/dendrite) homeserver support for new installations. **Existing (Synapse) installations need to be updated**, because some internals changed. See [Adapting the configuration for existing Synapse installations](#adapting-the-configuration-for-existing-synapse-installations)." +msgstr "" + +#: ../../../CHANGELOG.md:1986 +msgid "[Jip J. Dekker](https://github.com/Dekker1) did the [initial work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818) of adding [Dendrite](https://github.com/matrix-org/dendrite) support to the playbook back in January 2021. Lots of work (and time) later, Dendrite support is finally ready for testing." +msgstr "" + +#: ../../../CHANGELOG.md:1988 +msgid "We believe that 2022 will be the year of the non-Synapse Matrix server!" +msgstr "" + +#: ../../../CHANGELOG.md:1990 +msgid "The playbook was previously quite [Synapse](https://github.com/element-hq/synapse)-centric, but can now accommodate multiple homeserver implementations. Only one homeserver implementation can be active (installed) at a given time." +msgstr "" + +#: ../../../CHANGELOG.md:1992 +msgid "**Synapse is still the default homeserver implementation** installed by the playbook. A new variable (`matrix_homeserver_implementation`) controls which server implementation is enabled (`synapse` or `dendrite` at the given moment)." +msgstr "" + +#: ../../../CHANGELOG.md:1994 +msgid "Adapting the configuration for existing Synapse installations" +msgstr "" + +#: ../../../CHANGELOG.md:1996 +msgid "Because the playbook is not so Synapse-centric anymore, a small configuration change is necessary for existing installations to bring them up to date." +msgstr "" + +#: ../../../CHANGELOG.md:1998 +msgid "The `vars.yml` file for **existing installations will need to be updated** by adding this **additional configuration**:" +msgstr "" + +#: ../../../CHANGELOG.md:2010 +msgid "Trying out Dendrite" +msgstr "" + +#: ../../../CHANGELOG.md:2012 +msgid "Finally, **to try out Dendrite**, we recommend that you **use a new server** and the following addition to your `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2018 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse to Dendrite) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:2020 +msgid "We're excited to gain support for other homeserver implementations, like [Conduit](https://conduit.rs/), etc!" +msgstr "" + +#: ../../../CHANGELOG.md:2022 +msgid "Honoroit bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2024 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) — a helpdesk bot." +msgstr "" + +#: ../../../CHANGELOG.md:2026 +msgid "See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2029 +msgid "2022-01-06" +msgstr "" + +#: ../../../CHANGELOG.md:2031 +msgid "Cinny support" +msgstr "" + +#: ../../../CHANGELOG.md:2033 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) — a new simple, elegant and secure Matrix client." +msgstr "" + +#: ../../../CHANGELOG.md:2035 +msgid "By default, we still install Element Web. Still, people who'd like to try Cinny out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2037 +msgid "Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2040 +msgid "2021-12-22" +msgstr "" + +#: ../../../CHANGELOG.md:2042 +msgid "Twitter bridging support via mautrix-twitter" +msgstr "" + +#: ../../../CHANGELOG.md:2044 +msgid "Thanks to [Matthew Cengia](https://github.com/mattcen) and [Shreyas Ajjarapu](https://github.com/shreyasajj), besides [mx-puppet-twitter](docs/configuring-playbook-bridge-mx-puppet-twitter.md), bridging to [Twitter](https://twitter.com/) can now also happen with [mautrix-twitter](docs/configuring-playbook-bridge-mautrix-twitter.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2047 +msgid "2021-12-14" +msgstr "" + +#: ../../../CHANGELOG.md:2049 +msgid "(Security) Users of the Signal bridge may wish to upgrade it to work around log4j vulnerability" +msgstr "" + +#: ../../../CHANGELOG.md:2051 +msgid "Recently, a security vulnerability affecting the Java logging package `log4j` [has been discovered](https://www.huntress.com/blog/rapid-response-critical-rce-vulnerability-is-affecting-java). Software that uses this Java package is potentially vulnerable." +msgstr "" + +#: ../../../CHANGELOG.md:2053 +msgid "One such piece of software that is part of the playbook is the [mautrix-signal bridge](./docs/configuring-playbook-bridge-mautrix-signal.md), which [has been patched already](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1452). If you're running this bridge, you may wish to [upgrade](./docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2056 +msgid "2021-11-11" +msgstr "" + +#: ../../../CHANGELOG.md:2058 +msgid "Dropped support for Postgres v9.6" +msgstr "" + +#: ../../../CHANGELOG.md:2060 +msgid "Postgres v9.6 reached its end of life today, so the playbook will refuse to run for you if you're still on that version." +msgstr "" + +#: ../../../CHANGELOG.md:2062 +msgid "Synapse still supports v9.6 (for now), but we're retiring support for it early, to avoid having to maintain support for so many Postgres versions. Users that are still on Postgres v9.6 can easily [upgrade Postgres](docs/maintenance-postgres.md#upgrading-postgresql) via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2065 +msgid "2021-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:2067 +msgid "Hangouts bridge no longer updated, superseded by a Googlechat bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2069 +msgid "The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future. We still retain support for this bridge in the playbook, but you're encouraged to switch away from it." +msgstr "" + +#: ../../../CHANGELOG.md:2071 +msgid "There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md). Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2074 +msgid "2021-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:2076 +msgid "LinkedIn bridging support via beeper-linkedin" +msgstr "" + +#: ../../../CHANGELOG.md:2078 +msgid "Thanks to [Alexandar Mechev](https://github.com/apmechev), the playbook can now install the [beeper-linkedin](https://gitlab.com/beeper/linkedin) bridge for bridging to [LinkedIn](https://www.linkedin.com/) Messaging." +msgstr "" + +#: ../../../CHANGELOG.md:2080 +msgid "This brings the total number of bridges supported by the playbook up to 20. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2082 +msgid "To get started with bridging to LinkedIn, see [Setting up Beeper LinkedIn bridging](docs/configuring-playbook-bridge-beeper-linkedin.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2085 +msgid "2021-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:2087 +msgid "Sygnal upgraded — ARM support and no longer requires a database" +msgstr "" + +#: ../../../CHANGELOG.md:2089 +msgid "The [Sygnal](docs/configuring-playbook-sygnal.md) push gateway has been upgraded from `v0.9.0` to `v0.10.1`." +msgstr "" + +#: ../../../CHANGELOG.md:2091 +msgid "This is an optional component for the playbook, so most of our users wouldn't care about this announcement." +msgstr "" + +#: ../../../CHANGELOG.md:2093 +msgid "Since this feels like a relatively big (and untested, as of yet) Sygnal change, we're putting up this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2095 +msgid "The new version is also available for the ARM architecture. It also no longer requires a database anymore. If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit." +msgstr "" + +#: ../../../CHANGELOG.md:2098 +msgid "2021-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:2100 +msgid "Hydrogen support" +msgstr "" + +#: ../../../CHANGELOG.md:2102 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) — a new lightweight Matrix client with legacy and mobile browser support." +msgstr "" + +#: ../../../CHANGELOG.md:2104 +msgid "By default, we still install Element Web, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2106 +msgid "Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2109 +msgid "2021-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2111 +msgid "Heisenbridge support" +msgstr "" + +#: ../../../CHANGELOG.md:2113 +msgid "Thanks to [Toni Spets (hifi)](https://github.com/hifi), the playbook now supports bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) using yet another bridge (besides matrix-appservice-irc), called [Heisenbridge](https://github.com/hifi/heisenbridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2115 +msgid "Additional details are available in [Setting up Heisenbridge bouncer-style IRC bridging](docs/configuring-playbook-bridge-heisenbridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2118 +msgid "2021-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:2120 +msgid "Disabling TLSv1 and TLSv1.1 for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:2122 +msgid "To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [coturn](https://github.com/coturn/coturn) configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2124 +msgid "If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2132 +msgid "2021-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2134 +msgid "Automated local Postgres backup support" +msgstr "" + +#: ../../../CHANGELOG.md:2136 +msgid "Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local)." +msgstr "" + +#: ../../../CHANGELOG.md:2138 +msgid "Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2141 +msgid "2021-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2143 +msgid "Mjolnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:2145 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook can now install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation tool (bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2147 +msgid "Additional details are available in [Setting up Mjolnir](docs/configuring-playbook-bot-mjolnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2150 +msgid "2021-03-20" +msgstr "" + +#: ../../../CHANGELOG.md:2152 +msgid "Sygnal push gateway support" +msgstr "" + +#: ../../../CHANGELOG.md:2154 +msgid "The playbook can now install the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../CHANGELOG.md:2156 +msgid "This is only useful to people who develop/build their own Matrix client applications." +msgstr "" + +#: ../../../CHANGELOG.md:2158 +msgid "Additional details are available in our [Setting up the Sygnal push gateway](docs/configuring-playbook-sygnal.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2161 +msgid "2021-03-16" +msgstr "" + +#: ../../../CHANGELOG.md:2163 +msgid "Go-NEB support" +msgstr "" + +#: ../../../CHANGELOG.md:2165 +msgid "Thanks to [Zir0h](https://github.com/Zir0h), the playbook can now install and configure the [Go-NEB](https://github.com/matrix-org/go-neb) bot." +msgstr "" + +#: ../../../CHANGELOG.md:2167 +msgid "Additional details are available in [Setting up Go-NEB](docs/configuring-playbook-bot-go-neb.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2170 +msgid "2021-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:2172 +msgid "GroupMe bridging support via mx-puppet-groupme" +msgstr "" + +#: ../../../CHANGELOG.md:2174 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix), the playbook can now install the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge for bridging to [GroupMe](https://groupme.com)." +msgstr "" + +#: ../../../CHANGELOG.md:2176 +msgid "This brings the total number of bridges supported by the playbook up to 18. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2178 +msgid "To get started, follow our [Setting up MX Puppet GroupMe](docs/configuring-playbook-bridge-mx-puppet-groupme.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2180 +msgid "Mautrix Instagram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2182 +msgid "The playbook now supports bridging with [Instagram](https://www.instagram.com/) by installing the [mautrix-instagram](https://github.com/tulir/mautrix-instagram) bridge. This playbook functionality is available thanks to [@MarcProe](https://github.com/MarcProe)." +msgstr "" + +#: ../../../CHANGELOG.md:2184 +msgid "Additional details are available in [Setting up Mautrix Instagram bridging](docs/configuring-playbook-bridge-mautrix-instagram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2186 +msgid "Synapse workers support" +msgstr "" + +#: ../../../CHANGELOG.md:2188 +msgid "After [lots and lots of work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456) (done over many months by [Marcel Partap](https://github.com/eMPee584), [Max Klenk](https://github.com/maxklenk), a few others from the [Technical University of Dresden, Germany](https://tu-dresden.de/) and various other contributors), support for Synapse workers has finally landed." +msgstr "" + +#: ../../../CHANGELOG.md:2190 +msgid "Having support for workers makes the playbook suitable for larger homeserver deployments." +msgstr "" + +#: ../../../CHANGELOG.md:2192 +msgid "Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 — TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk)." +msgstr "" + +#: ../../../CHANGELOG.md:2194 +msgid "By default, workers are disabled and Synapse runs as a single process (homeservers don't necessarily need the complexity and increased memory requirements of running a worker-based setup)." +msgstr "" + +#: ../../../CHANGELOG.md:2196 +msgid "To enable Synapse workers, follow our [Load balancing with workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2199 +msgid "2021-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:2201 +msgid "(Potential Breaking Change) Monitoring/metrics support using Prometheus and Grafana" +msgstr "" + +#: ../../../CHANGELOG.md:2203 +msgid "Thanks to [@Peetz0r](https://github.com/Peetz0r), the playbook can now install a bunch of tools for monitoring your Matrix server: the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI." +msgstr "" + +#: ../../../CHANGELOG.md:2205 +msgid "To get get these installed, follow our [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](docs/configuring-playbook-prometheus-grafana.md) docs page." +msgstr "" + +#: ../../../CHANGELOG.md:2207 +msgid "This update comes with a **potential breaking change** for people who were already exposing Synapse metrics (for consumption via another Prometheus installation). From now on, `matrix_synapse_metrics_enabled: true` no longer exposes metrics publicly via matrix-nginx-proxy (at `https://matrix.example.com/_synapse/metrics`). To do so, you'd need to explicitly set `matrix_nginx_proxy_proxy_synapse_metrics: true`." +msgstr "" + +#: ../../../CHANGELOG.md:2210 +msgid "2021-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:2212 +msgid "Etherpad support" +msgstr "" + +#: ../../../CHANGELOG.md:2214 +msgid "Thanks to [@pushytoxin](https://github.com/pushytoxin), the playbook can now install the [Etherpad](https://etherpad.org) realtime collaborative text editor. It can be used in a [Jitsi](https://jitsi.org/) audio/video call or integrated as a widget into Matrix chat rooms via the [Dimension](https://dimension.t2bot.io) integration manager." +msgstr "" + +#: ../../../CHANGELOG.md:2216 +msgid "To get it installed, follow [our Etherpad docs page](docs/configuring-playbook-etherpad.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2219 +msgid "2021-01-22" +msgstr "" + +#: ../../../CHANGELOG.md:2221 +msgid "(Breaking Change) Postgres changes that require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:2223 +msgid "We've made a lot of changes to our Postgres setup and some manual action is required (described below). Sorry about the hassle." +msgstr "" + +#: ../../../CHANGELOG.md:2225 +msgid "**TLDR**: people running an [external Postgres server](docs/configuring-playbook-external-postgres.md) don't need to change anything for now. Everyone else (the common/default case) is affected and manual intervention is required." +msgstr "" + +#: ../../../CHANGELOG.md:2227 +msgid "Why?" +msgstr "" + +#: ../../../CHANGELOG.md:2229 +msgid "we had a default Postgres password (`matrix_postgres_connection_password: synapse-password`), which we think is **not ideal for security anymore**. We now ask you to generate/provide a strong password yourself. Postgres is normally not exposed outside the container network, making it relatively secure, but still:" +msgstr "" + +#: ../../../CHANGELOG.md:2230 +msgid "by tweaking the configuration, you may end up intentionally or unintentionally exposing your Postgres server to the local network (or even publicly), while still using the default default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2231 +msgid "we can't be sure we trust all these services (bridges, etc). Some of them may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2232 +msgid "you may have other containers running on the same Docker network, which may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2233 +msgid "our Postgres usage **was overly-focused on Synapse** (default username of `synapse` and default/main database of `homeserver`). Additional homeserver options are likely coming in the future ([Dendrite](https://matrix.org/docs/projects/server/dendrite), [Conduit](https://matrix.org/docs/projects/server/conduit), [The Construct](https://matrix.org/docs/projects/server/construct)), so being too focused on `matrix-synapse` is not great. From now on, Synapse is just another component of this playbook, which happens to have an *additional database* (called `synapse`) on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2234 +msgid "we try to reorganize things a bit, to make the playbook even friendlier to people running an [external Postgres server](docs/configuring-playbook-external-postgres.md). Work on this will proceed in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2236 +msgid "So, this is some **effort to improve security** and to **prepare for a brighter future of having more homeserver options** than just Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:2238 +msgid "What has really changed?" +msgstr "" + +#: ../../../CHANGELOG.md:2240 +msgid "the default superuser Postgres username is now `matrix` (used to be `synapse`)" +msgstr "" + +#: ../../../CHANGELOG.md:2241 +msgid "the default Postgres database is now `matrix` (used to be `homeserver`)" +msgstr "" + +#: ../../../CHANGELOG.md:2242 +msgid "Synapse's database is now `synapse` (used to be `homeserver`). This is now just another \"additional database\" that the playbook manages for you" +msgstr "" + +#: ../../../CHANGELOG.md:2243 +msgid "Synapse's user called `synapse` is just a regular user that can only use the `synapse` database (not a superuser anymore)" +msgstr "" + +#: ../../../CHANGELOG.md:2245 +msgid "What do I do if I'm using the integrated Postgres server (default)?" +msgstr "" + +#: ../../../CHANGELOG.md:2247 +msgid "By default, the playbook runs an integrated Postgres server for you in a container (`matrix-postgres`). Unless you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), these steps are meant for you." +msgstr "" + +#: ../../../CHANGELOG.md:2249 +msgid "To migrate to the new setup, expect a few minutes of downtime, while you follow these steps:" +msgstr "" + +#: ../../../CHANGELOG.md:2251 +msgid "We believe the steps below are safe and you won't encounter any data loss, but consider [making a Postgres backup](docs/maintenance-postgres.md#backing-up-postgresql) anyway. If you've never backed up Postgres, now would be a good time to try it." +msgstr "" + +#: ../../../CHANGELOG.md:2253 +msgid "Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can create one with a command like `pwgen -s 64 1`. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy!" +msgstr "" + +#: ../../../CHANGELOG.md:2255 +msgid "Update your playbook's `inventory/host_vars/matrix.example.com/vars.yml` file, adding a line like this:" +msgstr "" + +#: ../../../CHANGELOG.md:2260 ../../../CHANGELOG.md:2272 +msgid "… where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2." +msgstr "" + +#: ../../../CHANGELOG.md:2262 +msgid "Stop all services: `ansible-playbook -i inventory/hosts setup.yml --tags=stop`" +msgstr "" + +#: ../../../CHANGELOG.md:2263 +msgid "Log in to the server via SSH. The next commands will be performed there." +msgstr "" + +#: ../../../CHANGELOG.md:2264 +msgid "Start the Postgres database server: `systemctl start matrix-postgres`" +msgstr "" + +#: ../../../CHANGELOG.md:2265 +msgid "Open a Postgres shell: `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:2266 +msgid "Execute the following query, while making sure to **change the password inside** (**don't forget the ending `;`**):" +msgstr "" + +#: ../../../CHANGELOG.md:2274 +msgid "Execute the following queries as you see them (no modifications necessary, so you can just **paste them all at once**):" +msgstr "" + +#: ../../../CHANGELOG.md:2292 +msgid "You may need to press *Enter* after pasting the lines above." +msgstr "" + +#: ../../../CHANGELOG.md:2294 +msgid "Re-run the playbook normally: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2296 +msgid "What do I do if I'm using an external Postgres server?" +msgstr "" + +#: ../../../CHANGELOG.md:2298 +msgid "If you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), there are **no changes** that you need to do at this time." +msgstr "" + +#: ../../../CHANGELOG.md:2300 +msgid "The fact that we've renamed Synapse's database from `homeserver` to `synapse` (in our defaults) should not affect you, as you're already explicitly defining `matrix_synapse_database_database` (if you've followed our guide, that is). If you're not explicitly defining this variable, you may wish to do so (`matrix_synapse_database_database: homeserver`), to avoid the new `synapse` default and keep things as they were." +msgstr "" + +#: ../../../CHANGELOG.md:2303 +msgid "2021-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:2305 +msgid "(Breaking Change) The mautrix-facebook bridge now requires a Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2307 +msgid "**Update from 2021-11-15**: SQLite support has been re-added to the mautrix-facebook bridge in [v0.3.2](https://github.com/mautrix/facebook/releases/tag/v0.3.2). You can ignore this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2309 +msgid "A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite." +msgstr "" + +#: ../../../CHANGELOG.md:2311 +msgid "**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2313 +msgid "Whether this change requires your intervention depends mostly on:" +msgstr "" + +#: ../../../CHANGELOG.md:2314 +msgid "whether you're using an [external Postgres server](docs/configuring-playbook-external-postgres.md). If yes, then [you need to do something](#upgrade-path-for-people-running-an-external-postgres-server)." +msgstr "" + +#: ../../../CHANGELOG.md:2315 +msgid "or whether you've force-changed the bridge's database engine to SQLite (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) some time in the past (likely during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous))." +msgstr "" + +#: ../../../CHANGELOG.md:2317 +msgid "As already mentioned above, you most likely don't need to do anything. If you rerun the playbook and don't get an error, you've been automatically upgraded. Just send a `login` message to the Facebook bridge bot again. Otherwise, read below for a solution." +msgstr "" + +#: ../../../CHANGELOG.md:2319 +msgid "Upgrade path for people NOT running an external Postgres server (default for the playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:2321 +msgid "If you're **not running an external Postgres server**, then this bridge either already works on Postgres for you, or you've intentionally kept it back on SQLite with custom configuration (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) ." +msgstr "" + +#: ../../../CHANGELOG.md:2323 +msgid "Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically. You'll need to send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2325 +msgid "Alternatively, [you can stay on SQLite for a little longer](#staying-on-sqlite-for-a-little-longer-temporary-solution)." +msgstr "" + +#: ../../../CHANGELOG.md:2327 +msgid "Upgrade path for people running an external Postgres server" +msgstr "" + +#: ../../../CHANGELOG.md:2329 +msgid "For people using the internal Postgres server (the default for the playbook):" +msgstr "" + +#: ../../../CHANGELOG.md:2330 +msgid "we automatically create an additional `matrix_mautrix_facebook` Postgres database and credentials to access it" +msgstr "" + +#: ../../../CHANGELOG.md:2331 +msgid "we automatically adjust the bridge's `matrix_mautrix_facebook_database_*` variables to point the bridge to that Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2332 +msgid "we use [pgloader](https://pgloader.io/) to automatically import the existing SQLite data for the bridge into the `matrix_mautrix_facebook` Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2334 +msgid "If you are using an [external Postgres server](docs/configuring-playbook-external-postgres.md), unfortunately we currently can't do any of that for you." +msgstr "" + +#: ../../../CHANGELOG.md:2336 +msgid "You have 3 ways to proceed:" +msgstr "" + +#: ../../../CHANGELOG.md:2338 +msgid "contribute to the playbook to make this possible (difficult)" +msgstr "" + +#: ../../../CHANGELOG.md:2339 +msgid "or, do the migration \"steps\" manually:" +msgstr "" + +#: ../../../CHANGELOG.md:2340 +msgid "stop the bridge (`systemctl stop matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2341 +msgid "create a new `matrix_mautrix_facebook` Postgres database for it" +msgstr "" + +#: ../../../CHANGELOG.md:2342 +msgid "run [pgloader](https://pgloader.io/) manually (we import this bridge's data using default settings and it works well)" +msgstr "" + +#: ../../../CHANGELOG.md:2343 +msgid "define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) — you can find their defaults in `roles/custom/matrix-mautrix-facebook/defaults/main.yml`" +msgstr "" + +#: ../../../CHANGELOG.md:2344 +msgid "switch the bridge to Postgres (`matrix_mautrix_facebook_database_engine: 'postgres'` in your `vars.yml` file)" +msgstr "" + +#: ../../../CHANGELOG.md:2345 +msgid "re-run the playbook (`--tags=setup-all,start`) and ensure the bridge works (`systemctl status matrix-mautrix-facebook` and `journalctl -fu matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2346 +msgid "send a `login` message to the Facebook bridge bot again" +msgstr "" + +#: ../../../CHANGELOG.md:2347 +msgid "or, [stay on SQLite for a little longer (temporary solution)](#staying-on-sqlite-for-a-little-longer-temporary-solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2349 +msgid "Staying on SQLite for a little longer (temporary solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2351 +msgid "To keep using this bridge with SQLite for a little longer (**not recommended**), use the following configuration in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:2361 +msgid "If you do this, keep in mind that **you can't run this forever**. This SQLite-supporting bridge version is not getting any updates and will break sooner or later. The playbook will also drop support for SQLite at some point in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2364 +msgid "2021-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:2366 +msgid "matrix-corporal goes 2.0" +msgstr "" + +#: ../../../CHANGELOG.md:2368 +msgid "[matrix-corporal v2 has been released](https://github.com/devture/matrix-corporal/releases/tag/2.0.0) and the playbook also supports it now." +msgstr "" + +#: ../../../CHANGELOG.md:2370 +msgid "No manual intervention is required in the common case." +msgstr "" + +#: ../../../CHANGELOG.md:2372 +msgid "The new [matrix-corporal](https://github.com/devture/matrix-corporal) version is also the first one to support Interactive Authentication. If you wish to enable that (hint: you should), you'll need to set up the [REST auth password provider](docs/configuring-playbook-rest-auth.md). There's more information in [our matrix-corporal docs](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2375 +msgid "2021-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2377 +msgid "Moving from cronjobs to systemd timers" +msgstr "" + +#: ../../../CHANGELOG.md:2379 +msgid "We no longer use cronjobs for Let's Encrypt SSL renewal and `matrix-nginx-proxy`/`matrix-coturn` reloading. Instead, we've switched to systemd timers." +msgstr "" + +#: ../../../CHANGELOG.md:2381 +msgid "The largest benefit of this is that we no longer require you to install a cron daemon, thus simplifying our install procedure." +msgstr "" + +#: ../../../CHANGELOG.md:2383 +msgid "The playbook will migrate you from cronjobs to systemd timers automatically. This is just a heads up." +msgstr "" + +#: ../../../CHANGELOG.md:2386 +msgid "2021-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:2388 +msgid "(Breaking Change) New SSL configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2390 +msgid "SSL configuration (protocols, ciphers) can now be more easily controlled thanks to us making use of configuration presets." +msgstr "" + +#: ../../../CHANGELOG.md:2392 +msgid "We define a few presets (old, intermediate, modern), following the [Mozilla SSL Configuration Generator](https://ssl-config.mozilla.org/#server=nginx)." +msgstr "" + +#: ../../../CHANGELOG.md:2394 +msgid "A new variable `matrix_nginx_proxy_ssl_preset` controls which preset is used (defaults to `\"intermediate\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2396 +msgid "Compared to before, this changes nginx's `ssl_prefer_server_ciphers` to `off` (used to default to `on`). It also add some more ciphers to the list, giving better performance on mobile devices, and removes some weak ciphers. More information in the [documentation](docs/configuring-playbook-nginx.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2398 +msgid "To revert to the old behaviour, set the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:2405 +msgid "Just like before, you can still use your own custom protocols by specifying them in `matrix_nginx_proxy_ssl_protocols`. Doing so overrides the values coming from the preset." +msgstr "" + +#: ../../../CHANGELOG.md:2408 +msgid "2021-01-03" +msgstr "" + +#: ../../../CHANGELOG.md:2410 +msgid "Signal bridging support via mautrix-signal" +msgstr "" + +#: ../../../CHANGELOG.md:2412 +msgid "Thanks to [laszabine](https://github.com/laszabine)'s efforts, the playbook now supports bridging to [Signal](https://www.signal.org/) via the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge. See our [Setting up Mautrix Signal bridging](docs/configuring-playbook-bridge-mautrix-signal.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2414 +msgid "If you had installed the mautrix-signal bridge while its Pull Request was still work-in-progress, you can migrate your data to the new and final setup by referring to [this comment](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686#issuecomment-753510789)." +msgstr "" + +#: ../../../CHANGELOG.md:2417 +msgid "2020-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:2419 +msgid "The big move to all-on-Postgres (potentially dangerous)" +msgstr "" + +#: ../../../CHANGELOG.md:2421 +msgid "**TLDR**: all your bridges (and other services) will likely be auto-migrated from SQLite/nedb to Postgres, hopefully without trouble. You can opt-out (see how below), if too worried about breakage." +msgstr "" + +#: ../../../CHANGELOG.md:2423 +msgid "Until now, we've only used Postgres as a database for Synapse. All other services (bridges, bots, etc.) were kept simple and used a file-based database (SQLite or nedb)." +msgstr "" + +#: ../../../CHANGELOG.md:2425 +msgid "Since [this huge pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740), **all of our services now use Postgres by default**. Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann) for starting the work on it and for providing great input!" +msgstr "" + +#: ../../../CHANGELOG.md:2427 +msgid "Moving all services to Postgres brings a few **benefits** to us:" +msgstr "" + +#: ../../../CHANGELOG.md:2429 +msgid "**improved performance**" +msgstr "" + +#: ../../../CHANGELOG.md:2430 +msgid "**improved compatibility**. Most bridges are deprecating SQLite/nedb support or offer less features when not on Postgres." +msgstr "" + +#: ../../../CHANGELOG.md:2431 +msgid "**easier backups**. It's still some effort to take a proper backup (Postgres dump + various files, keys), but a Postgres dump now takes you much further." +msgstr "" + +#: ../../../CHANGELOG.md:2432 +msgid "we're now **more prepared to introduce other services** that need a Postgres database — [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc." +msgstr "" + +#: ../../../CHANGELOG.md:2434 +msgid "Key takeway" +msgstr "" + +#: ../../../CHANGELOG.md:2436 +msgid "existing installations that use an [external Postgres](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-external-postgres.md) server should be unaffected (they remain on SQLite/nedb for all services, except Synapse)" +msgstr "" + +#: ../../../CHANGELOG.md:2438 +msgid "for existing installations which use our integrated Postgres database server (`matrix-postgres`, which is the default), **we automatically migrate data** from SQLite/nedb to Postgres and **archive the database files** (`something.db` -> `something.db.backup`), so you can restore them if you need to go back (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:2440 +msgid "Opting-out of the Postgres migration" +msgstr "" + +#: ../../../CHANGELOG.md:2442 +msgid "This is a **very large and somewhat untested change** (potentially dangerous), so **if you're not feeling confident/experimental, opt-out** of it for now. Still, it's the new default and what we (and various bridges) will focus on going forward, so don't stick to old ways for too long." +msgstr "" + +#: ../../../CHANGELOG.md:2444 +msgid "You can remain on SQLite/nedb (at least for now) by adding a variable like this to your `vars.yml` file for each service you use: `matrix_COMPONENT_database_engine: sqlite` (e.g. `matrix_mautrix_facebook_database_engine: sqlite`)." +msgstr "" + +#: ../../../CHANGELOG.md:2446 +msgid "Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2448 +msgid "Going back to SQLite/nedb if things went wrong" +msgstr "" + +#: ../../../CHANGELOG.md:2450 +msgid "If you went with the Postgres migration and it went badly for you (some bridge not working as expected or not working at all), do this:" +msgstr "" + +#: ../../../CHANGELOG.md:2452 +msgid "stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:2453 +msgid "SSH into the server and rename the old database files (`something.db.backup` -> `something.db`). Example: `mv /matrix/mautrix-facebook/data/mautrix-facebook.db.backup /matrix/mautrix-facebook/data/mautrix-facebook.db`" +msgstr "" + +#: ../../../CHANGELOG.md:2454 +msgid "switch the affected service back to SQLite (e.g. `matrix_mautrix_facebook_database_engine: sqlite`). Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2455 +msgid "re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`)" +msgstr "" + +#: ../../../CHANGELOG.md:2456 +msgid "[get in touch](README.md#support) with us" +msgstr "" + +#: ../../../CHANGELOG.md:2458 +msgid "2020-12-11" +msgstr "" + +#: ../../../CHANGELOG.md:2460 +msgid "synapse-janitor support removed" +msgstr "" + +#: ../../../CHANGELOG.md:2462 +msgid "We've removed support for the unmaintained [synapse-janitor](https://github.com/xwiki-labs/synapse_scripts) script. There's been past reports of it corrupting the Synapse database. Since there hasn't been any new development on it and it doesn't seem too useful nowadays, there's no point in including it in the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2464 +msgid "If you need to clean up or compact your database, consider using the Synapse Admin APIs directly. See our [Synapse maintenance](docs/maintenance-synapse.md) and [Postgres maintenance](docs/maintenance-postgres.md) documentation pages for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2466 +msgid "Docker 20.10 is here" +msgstr "" + +#: ../../../CHANGELOG.md:2468 +msgid "(No need to do anything special in relation to this. Just something to keep in mind)" +msgstr "" + +#: ../../../CHANGELOG.md:2470 +msgid "Docker 20.10 got released recently and your server will likely get it the next time you update." +msgstr "" + +#: ../../../CHANGELOG.md:2472 +msgid "This is the first major Docker update in a long time and it packs a lot of changes. Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now." +msgstr "" + +#: ../../../CHANGELOG.md:2475 +msgid "2020-12-08" +msgstr "" + +#: ../../../CHANGELOG.md:2477 +msgid "openid APIs exposed by default on the federation port when federation disabled" +msgstr "" + +#: ../../../CHANGELOG.md:2479 +msgid "We've changed some defaults. People running with our default configuration (federation enabled), are not affected at all." +msgstr "" + +#: ../../../CHANGELOG.md:2481 +msgid "If you are running an unfederated server (`matrix_synapse_federation_enabled: false`), this may be of interest to you." +msgstr "" + +#: ../../../CHANGELOG.md:2483 +msgid "When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port. These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`." +msgstr "" + +#: ../../../CHANGELOG.md:2486 +msgid "2020-11-27" +msgstr "" + +#: ../../../CHANGELOG.md:2488 +msgid "Recent Jitsi updates may require configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:2490 +msgid "We've recently [updated from Jitsi build 4857 to build 5142](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719), which brings a lot of configuration changes." +msgstr "" + +#: ../../../CHANGELOG.md:2492 +msgid "**If you use our default Jitsi settings, you won't have to do anything.**" +msgstr "" + +#: ../../../CHANGELOG.md:2494 +msgid "People who have [fine-tuned Jitsi](docs/configuring-playbook-jitsi.md#optional-fine-tune-jitsi) may find that some options got renamed now, others are gone and yet others still need to be defined in another way." +msgstr "" + +#: ../../../CHANGELOG.md:2496 +msgid "The next time you run the playbook [installation](docs/installing.md) command, our validation logic will tell you if you're using some variables like that and will recommend a migration path for each one." +msgstr "" + +#: ../../../CHANGELOG.md:2498 +msgid "Additionally, we've recently disabled transcriptions (`jitsi_enable_transcriptions: false`) and recording (`jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working." +msgstr "" + +#: ../../../CHANGELOG.md:2501 +msgid "2020-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:2503 ../../../CHANGELOG.md:2511 +msgid "Breaking change matrix-sms-bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2505 +msgid "Because of many problems using gammu as SMS provider, matrix-sms-bridge now uses (https://github.com/RebekkaMa/android-sms-gateway-server) by default. See (the docs)[./docs/configuring-playbook-bridge-matrix-bridge-sms.md] which new vars you need to add." +msgstr "" + +#: ../../../CHANGELOG.md:2507 +msgid "If you are using this playbook to deploy matrix-sms-bridge and still really want to use gammu as SMS provider, we could possibly add support for both android-sms-gateway-server and gammu." +msgstr "" + +#: ../../../CHANGELOG.md:2509 +msgid "2020-11-13" +msgstr "" + +#: ../../../CHANGELOG.md:2513 +msgid "The new version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) changed its database from neo4j to h2. You need to sync the bridge at the first start. Note that this only will sync rooms where the @smsbot:yourServer is member. For rooms without @smsbot:yourServer you need to kick and invite the telephone number **or** invite @smsbot:yourServer." +msgstr "" + +#: ../../../CHANGELOG.md:2515 +msgid "Add the following to your `vars.yml` file: `matrix_sms_bridge_container_extra_arguments=['--env SPRING_PROFILES_ACTIVE=initialsync']`" +msgstr "" + +#: ../../../CHANGELOG.md:2516 +msgid "Login to your host shell and remove old systemd file from your host: `rm /etc/systemd/system/matrix-sms-bridge-database.service`" +msgstr "" + +#: ../../../CHANGELOG.md:2517 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-sms-bridge,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2518 +msgid "Login to your host shell and check the logs with `journalctl -u matrix-sms-bridge` until the sync finished." +msgstr "" + +#: ../../../CHANGELOG.md:2519 +msgid "Remove the var from the first step." +msgstr "" + +#: ../../../CHANGELOG.md:2520 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`." +msgstr "" + +#: ../../../CHANGELOG.md:2522 +msgid "2020-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2524 +msgid "Dynamic DNS support" +msgstr "" + +#: ../../../CHANGELOG.md:2526 +msgid "Thanks to [Scott Crossen](https://github.com/scottcrossen), the playbook can now manage Dynamic DNS for you using [ddclient](https://ddclient.net/)." +msgstr "" + +#: ../../../CHANGELOG.md:2528 +msgid "To learn more, follow our [Dynamic DNS docs page](docs/configuring-playbook-dynamic-dns.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2531 +msgid "2020-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:2533 +msgid "(Compatibility Break) https://matrix.example.com/ now redirects to https://element.example.com/" +msgstr "" + +#: ../../../CHANGELOG.md:2535 +msgid "Until now, we used to serve a static page coming from Synapse at `https://matrix.example.com/`. This page was not very useful to anyone." +msgstr "" + +#: ../../../CHANGELOG.md:2537 +msgid "Since `matrix.example.com` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to [Element Web](docs/configuring-playbook-client-element-web.md))." +msgstr "" + +#: ../../../CHANGELOG.md:2539 +msgid "If Element Web is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page." +msgstr "" + +#: ../../../CHANGELOG.md:2541 +msgid "If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable. To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: \"\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2544 +msgid "2020-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:2546 +msgid "(Compatibility Break) /_synapse/admin is no longer publicly exposed by default" +msgstr "" + +#: ../../../CHANGELOG.md:2548 +msgid "We used to expose the Synapse Admin APIs publicly (at `https://matrix.example.com/_synapse/admin`). These APIs require authentication with a valid access token, so it's not that big a deal to expose them." +msgstr "" + +#: ../../../CHANGELOG.md:2550 +msgid "However, following [official Synapse's reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints), we're no longer exposing `/_synapse/admin` by default." +msgstr "" + +#: ../../../CHANGELOG.md:2552 +msgid "If you'd like to restore restore the old behavior and expose `/_synapse/admin` publicly, you can use the following configuration (in your `vars.yml`):" +msgstr "" + +#: ../../../CHANGELOG.md:2559 +msgid "2020-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:2561 +msgid "Minimum Ansible version raised to v2.7.0" +msgstr "" + +#: ../../../CHANGELOG.md:2563 +msgid "We were claiming to support [Ansible](https://www.ansible.com/) v2.5.2 and higher, but issues like [#662](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/662) demonstrate that we need at least v2.7.0." +msgstr "" + +#: ../../../CHANGELOG.md:2565 +msgid "If you've been using the playbook without getting any errors until now, you're probably on a version higher than that already (or you're not using the `matrix-ma1sd` and `matrix-client-element` roles)." +msgstr "" + +#: ../../../CHANGELOG.md:2567 +msgid "Our [Ansible docs page](docs/ansible.md) contains information on how to run a more up-to-date version of Ansible." +msgstr "" + +#: ../../../CHANGELOG.md:2570 +msgid "2020-10-01" +msgstr "" + +#: ../../../CHANGELOG.md:2572 +msgid "Postgres 13 support" +msgstr "" + +#: ../../../CHANGELOG.md:2574 +msgid "The playbook now installs [Postgres 13](https://www.postgresql.org/about/news/postgresql-13-released-2077/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2576 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x, 11.x or 12.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2578 +msgid "2020-09-01" +msgstr "" + +#: ../../../CHANGELOG.md:2580 +msgid "matrix-registration support" +msgstr "" + +#: ../../../CHANGELOG.md:2582 +msgid "The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) — an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2584 +msgid "See our [Setting up matrix-registration](docs/configuring-playbook-matrix-registration.md) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2587 +msgid "2020-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2589 +msgid "rust-synapse-compress-state support" +msgstr "" + +#: ../../../CHANGELOG.md:2591 +msgid "The playbook can now help you use [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) to compress the state groups in your Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2593 +msgid "See our [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2596 +msgid "2020-07-22" +msgstr "" + +#: ../../../CHANGELOG.md:2598 +msgid "Synapse Admin support" +msgstr "" + +#: ../../../CHANGELOG.md:2600 +msgid "The playbook can now help you set up [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin)." +msgstr "" + +#: ../../../CHANGELOG.md:2602 +msgid "See our [Setting up Synapse Admin](docs/configuring-playbook-synapse-admin.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2605 +msgid "2020-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:2607 +msgid "matrix-reminder-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2609 +msgid "The playbook can now help you set up [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2611 +msgid "See our [Setting up matrix-reminder-bot](docs/configuring-playbook-bot-matrix-reminder-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2614 +msgid "2020-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:2616 +msgid "(Compatibility Break) Riot is now Element" +msgstr "" + +#: ../../../CHANGELOG.md:2618 +msgid "As per the official announcement, [Riot has been rebraned to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../CHANGELOG.md:2620 +msgid "The playbook follows suit. Existing installations have a few options for how to handle this." +msgstr "" + +#: ../../../CHANGELOG.md:2622 +msgid "See our [Migrating to Element Web](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2625 +msgid "2020-07-03" +msgstr "" + +#: ../../../CHANGELOG.md:2627 +msgid "Steam bridging support via mx-puppet-steam" +msgstr "" + +#: ../../../CHANGELOG.md:2629 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Steam](https://steamapp.com/) via the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge. See our [Setting up MX Puppet Steam bridging](docs/configuring-playbook-bridge-mx-puppet-steam.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2632 +msgid "2020-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:2634 +msgid "Discord bridging support via mx-puppet-discord" +msgstr "" + +#: ../../../CHANGELOG.md:2636 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mx-puppet-discord](https://github.com/Sorunome/mx-puppet-discord) bridge. See our [Setting up MX Puppet Discord bridging](docs/configuring-playbook-bridge-mx-puppet-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2638 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md). You're free too use the bridge that serves you better, or even both (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:2641 +msgid "2020-06-30" +msgstr "" + +#: ../../../CHANGELOG.md:2643 +msgid "Instagram and Twitter bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2645 +msgid "Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann)'s efforts, the playbook now supports bridging to [Instagram](https://www.instagram.com/) via the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge. See our [Setting up MX Puppet Instagram bridging](docs/configuring-playbook-bridge-mx-puppet-instagram.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2647 +msgid "Thanks to [Tulir Asokan](https://github.com/tulir)'s efforts, the playbook now supports bridging to [Twitter](https://twitter.com/) via the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge. See our [Setting up MX Puppet Twitter bridging](docs/configuring-playbook-bridge-mx-puppet-twitter.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2650 +msgid "2020-06-28" +msgstr "" + +#: ../../../CHANGELOG.md:2652 +msgid "(Post Mortem / fixed Security Issue) Re-enabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2654 ../../../CHANGELOG.md:2683 +msgid "User Directory search requests used to go to the ma1sd identity server by default, which queried its own stores and the Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2656 +msgid "ma1sd's [security issue](https://github.com/ma1uta/ma1sd/issues/44) has been fixed in version `2.4.0`, with [this commit](ma1uta/ma1sd@2bb5a734d11662b06471113cf3d6b4cee5e33a85). `ma1sd 2.4.0` is now the default version for this playbook. For more information on what happened, please check the mentioned issue." +msgstr "" + +#: ../../../CHANGELOG.md:2658 +msgid "We are re-enabling user directory search with this update. Those who would like to keep it disabled can use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:2660 +msgid "As always, re-running the playbook is enough to get the updated bits." +msgstr "" + +#: ../../../CHANGELOG.md:2662 +msgid "2020-06-11" +msgstr "" + +#: ../../../CHANGELOG.md:2664 +msgid "SMS bridging requires db reset" +msgstr "" + +#: ../../../CHANGELOG.md:2666 +msgid "The current version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) needs you to delete the database to work as expected. Just remove `/matrix/matrix-sms-bridge/database/*`. It also adds a new requried var `matrix_sms_bridge_default_region`." +msgstr "" + +#: ../../../CHANGELOG.md:2668 +msgid "To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a message. You are also able to use automated room creation with telephonenumers by writing `sms send -t 01749292923 \"Hello World\"` in a room with `@smsbot:yourServer`. See [the docs](https://github.com/benkuly/matrix-sms-bridge) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:2670 +msgid "2020-06-05" +msgstr "" + +#: ../../../CHANGELOG.md:2672 +msgid "SMS bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2674 +msgid "Thanks to [benkuly](https://github.com/benkuly)'s efforts, the playbook now supports bridging to SMS (with one telephone number only) via [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2676 +msgid "See our [Setting up Matrix SMS bridging](docs/configuring-playbook-bridge-matrix-bridge-sms.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2679 +msgid "2020-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2681 +msgid "(Compatibility Break / Security Issue) Disabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2685 +msgid "ma1sd current has [a security issue](https://github.com/ma1uta/ma1sd/issues/44), which made it leak information about all users — including users created by bridges, etc." +msgstr "" + +#: ../../../CHANGELOG.md:2687 +msgid "Until the issue gets fixed, we're making User Directory search not go to ma1sd by default. You **need to re-run the playbook and restart services to apply this workaround**." +msgstr "" + +#: ../../../CHANGELOG.md:2689 +msgid "*If you insist on restoring the old behavior* (**which has a security issue!**), you *might* use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: \"{{ matrix_ma1sd_enabled }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2692 +msgid "2020-04-28" +msgstr "" + +#: ../../../CHANGELOG.md:2694 +msgid "Newer IRC bridge (with potential breaking change)" +msgstr "" + +#: ../../../CHANGELOG.md:2696 +msgid "This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream made a change to how you define manual mappings. If you added a `mapping` to your configuration, you will need to update it accoring to the [upstream instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). If you did not include `mappings` in your configuration for IRC, no change is necessary. `mappings` is not part of the default configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2705 +msgid "2020-04-23" +msgstr "" + +#: ../../../CHANGELOG.md:2707 ../../../CHANGELOG.md:2938 +msgid "Slack bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2709 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Slack](https://slack.com) via the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2711 +msgid "See our [Setting up MX Puppet Slack bridging](docs/configuring-playbook-bridge-mx-puppet-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2714 +msgid "2020-04-09" +msgstr "" + +#: ../../../CHANGELOG.md:2716 +msgid "Skype bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2718 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Skype](https://www.skype.com) via the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2720 +msgid "See our [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2723 +msgid "2020-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2725 +msgid "Private Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2727 +msgid "The [Jitsi support](#jitsi-support) we had landed a few weeks ago was working well, but it was always open to the whole world." +msgstr "" + +#: ../../../CHANGELOG.md:2729 +msgid "Running such an open instance is not desirable to most people, so [teutat3s](https://github.com/teutat3s) has contributed support for making Jitsi use authentication." +msgstr "" + +#: ../../../CHANGELOG.md:2731 +msgid "To make your Jitsi server more private, see the [configure internal Jitsi authentication and guests mode](docs/configuring-playbook-jitsi.md#optional-configure-internal-jitsi-authentication-and-guests-mode) section in our Jitsi documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2734 +msgid "2020-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2736 +msgid "(Potential Backward Compatibility Break) ma1sd replaces mxisd" +msgstr "" + +#: ../../../CHANGELOG.md:2738 +msgid "Thanks to [Marcel Partap](https://github.com/eMPee584)'s efforts, the [mxisd](https://github.com/kamax-io/mxisd) identity server, which has been deprecated for a long time, has finally been replaced by [ma1sd](https://github.com/ma1uta/ma1sd), a compatible fork." +msgstr "" + +#: ../../../CHANGELOG.md:2740 +msgid "**If you're using the default playbook configuration**, you don't need to do anything — your mxisd installation will be replaced with ma1sd and all existing data will be migrated automatically the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2742 +msgid "**If you're doing something more special** (defining custom `matrix_mxisd_*` variables), the playbook will ask you to rename them to `matrix_ma1sd_*`. You're also encouraged to test that ma1sd works well for such a more custom setup." +msgstr "" + +#: ../../../CHANGELOG.md:2745 +msgid "2020-03-29" +msgstr "" + +#: ../../../CHANGELOG.md:2747 +msgid "Archlinux support" +msgstr "" + +#: ../../../CHANGELOG.md:2749 +msgid "Thanks to [Christian Lupus](https://github.com/christianlupus)'s efforts, the playbook now supports installing to an [Archlinux](https://www.archlinux.org/) server." +msgstr "" + +#: ../../../CHANGELOG.md:2752 +msgid "2020-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:2754 +msgid "Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2756 +msgid "The playbook can now (optionally) install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Riot](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2758 +msgid "See our [Jitsi documentation page](docs/configuring-playbook-jitsi.md) to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2761 +msgid "2020-03-15" +msgstr "" + +#: ../../../CHANGELOG.md:2763 +msgid "Raspberry Pi support" +msgstr "" + +#: ../../../CHANGELOG.md:2765 +msgid "Thanks to [Gergely Horváth](https://github.com/hooger)'s effort, the playbook supports installing to a Raspberry Pi server, for at least some of the services." +msgstr "" + +#: ../../../CHANGELOG.md:2767 +msgid "Since most ready-made container images do not support that architecture, we achieve this by building images locally on the device itself. See our [Self-building documentation page](docs/self-building.md) for how to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2770 +msgid "2020-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:2772 +msgid "Riot-web themes are here" +msgstr "" + +#: ../../../CHANGELOG.md:2774 +msgid "The playbook now makes it easy to install custom riot-web themes." +msgstr "" + +#: ../../../CHANGELOG.md:2776 +msgid "To learn more, take a look at our [riot-web documentation on Themes](docs/configuring-playbook-riot-web.md#themes)." +msgstr "" + +#: ../../../CHANGELOG.md:2779 +msgid "2020-02-24" +msgstr "" + +#: ../../../CHANGELOG.md:2781 +msgid "Customize the server name in Riot's login page" +msgstr "" + +#: ../../../CHANGELOG.md:2783 +msgid "You can now customize the server name string that Riot-web displays in its login page." +msgstr "" + +#: ../../../CHANGELOG.md:2785 +msgid "These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:2791 +msgid "The login page previously said \"Sign in to your Matrix account on matrix.example.org\" (the homeserver's domain name). It will now say \"Sign in … on example.org\" (the server name) by default, or \"Sign in … on Our Server\" if you set the variable to \"Our Server\"." +msgstr "" + +#: ../../../CHANGELOG.md:2793 +msgid "To support this, the config.json template is changed to use the configuration key `default_server_config` for setting the default HS/IS, and the new configuration key `server_name` is added in there." +msgstr "" + +#: ../../../CHANGELOG.md:2796 +msgid "2020-01-30" +msgstr "" + +#: ../../../CHANGELOG.md:2798 +msgid "Disabling TLSv1.1" +msgstr "" + +#: ../../../CHANGELOG.md:2800 +msgid "To improve security, we've removed TLSv1.1 support from our default matrix-nginx-proxy configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2802 +msgid "If you need to support old clients, you can re-enable it with the following configuration: `matrix_nginx_proxy_ssl_protocols: \"TLSv1.1 TLSv1.2 TLSv1.3\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2805 +msgid "2020-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:2807 +msgid "Postgres collation changes (action required!)" +msgstr "" + +#: ../../../CHANGELOG.md:2809 +msgid "By default, we've been using a UTF-8 collation for Postgres. This is known to cause Synapse some troubles (see the [relevant issue](https://github.com/matrix-org/synapse/issues/6722)) on systems that use [glibc](https://www.gnu.org/software/libc/). We run Postgres in an [Alpine Linux](https://alpinelinux.org/) container (which uses [musl](https://www.musl-libc.org/), and not glibc), so our users are likely not affected by the index corruption problem observed by others." +msgstr "" + +#: ../../../CHANGELOG.md:2811 +msgid "Still, we might become affected in the future. In any case, it's imminent that Synapse will complain about databases which do not use a C collation." +msgstr "" + +#: ../../../CHANGELOG.md:2813 +msgid "To avoid future problems, we recommend that you run the following command:" +msgstr "" + +#: ../../../CHANGELOG.md:2819 +msgid "It forces a [Postgres database upgrade](docs/maintenance-postgres.md#upgrading-postgresql), which would recreate your Postgres database using the proper (`C`) collation. If you are low on disk space, or run into trouble, refer to the Postgres database upgrade documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:2822 +msgid "2020-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2824 +msgid "Added support for Appservice Webhooks" +msgstr "" + +#: ../../../CHANGELOG.md:2826 +msgid "Thanks to a contribution from [Björn Marten](https://github.com/tripleawwy) from [netresearch](https://www.netresearch.de/), the playbook can now install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../CHANGELOG.md:2828 +msgid "Learn more in [Setting up Appservice Webhooks bridging](docs/configuring-playbook-bridge-appservice-webhooks.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2831 +msgid "2020-01-12" +msgstr "" + +#: ../../../CHANGELOG.md:2833 +msgid "Added support for automatic Double Puppeting for all Mautrix bridges" +msgstr "" + +#: ../../../CHANGELOG.md:2835 +msgid "Double Puppeting can now be easily enabled for all Mautrix bridges supported by the playbook (Facebook, Hangouts, Whatsapp, Telegram)." +msgstr "" + +#: ../../../CHANGELOG.md:2837 +msgid "This is possible due to those bridges' integration with [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) — yet another component that this playbook can install for you." +msgstr "" + +#: ../../../CHANGELOG.md:2839 +msgid "To get started, following the playbook's documentation for the bridge you'd like to configure." +msgstr "" + +#: ../../../CHANGELOG.md:2842 +msgid "2019-12-06" +msgstr "" + +#: ../../../CHANGELOG.md:2844 +msgid "Added support for an alternative method for using another webserver" +msgstr "" + +#: ../../../CHANGELOG.md:2846 +msgid "We have added support for making `matrix-nginx-proxy` not being so invasive, so that it would be easier to [use your own webserver](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2848 +msgid "The documentation has been updated with a **Method 2**, which might make \"own webserver\" setup easier in some cases (such as [reverse-proxying using Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/296))." +msgstr "" + +#: ../../../CHANGELOG.md:2850 +msgid "**Existing users** are not affected by this and **don't need to change anything**. The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates and doing everything for you automatically)." +msgstr "" + +#: ../../../CHANGELOG.md:2853 +msgid "2019-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2855 +msgid "Tightened security around room directory publishing" +msgstr "" + +#: ../../../CHANGELOG.md:2857 +msgid "As per this [advisory blog post](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers), we've decided to change the default publishing rules for the Matrix room directory." +msgstr "" + +#: ../../../CHANGELOG.md:2859 +msgid "Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**." +msgstr "" + +#: ../../../CHANGELOG.md:2861 +msgid "As with anything else, these new defaults can be overriden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively." +msgstr "" + +#: ../../../CHANGELOG.md:2864 +msgid "2019-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:2866 +msgid "Improved Postgres upgrading/importing" +msgstr "" + +#: ../../../CHANGELOG.md:2868 +msgid "Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) and [importing](docs/importing-postgres.md) have been improved to add support for multiple databases and roles." +msgstr "" + +#: ../../../CHANGELOG.md:2870 +msgid "Previously, the playbook would only take care of the `homeserver` database and `synapse` user. We now back up and restore all databases and users on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2872 +msgid "For now, the playbook only uses that one database (`homeserver`) and that one single user (`synapse`), so it's all the same. However, in the future, additional components besides Synapse may also make use the Postgres database server. One such example is the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge, which strongly encourages use of Postgres in its v1.0 release. We are yet to upgrade to it." +msgstr "" + +#: ../../../CHANGELOG.md:2874 +msgid "Additionally, Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) now uses gzipped dump files by default, to minimize disk space usage." +msgstr "" + +#: ../../../CHANGELOG.md:2877 +msgid "2019-10-04" +msgstr "" + +#: ../../../CHANGELOG.md:2879 +msgid "Postgres 12 support" +msgstr "" + +#: ../../../CHANGELOG.md:2881 +msgid "The playbook now installs [Postgres 12](https://www.postgresql.org/about/news/1976/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2883 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x or 11.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2886 +msgid "2019-10-03" +msgstr "" + +#: ../../../CHANGELOG.md:2888 +msgid "Synapse 1.4.0" +msgstr "" + +#: ../../../CHANGELOG.md:2890 +msgid "Synapse 1.4.0 [is out](https://matrix.org/blog/2019/10/03/synapse-1-4-0-released) with lots of changes related to privacy." +msgstr "" + +#: ../../../CHANGELOG.md:2892 +msgid "Its new defaults (which we adopt as well) mean that certain old data will automatically get purged after a certain number of days. 1.4.0 automatically garbage collects redacted messages (defaults to 7 days) and removes unused IP and user agent information stored in the user_ips table (defaults to 30 days). If you'd like to preserve this data, we encourage you to look at the `redaction_retention_period` and `user_ips_max_age` options (controllable by the `matrix_synapse_redaction_retention_period` and `matrix_synapse_user_ips_max_age` playbook variables, respectively) before doing the upgrade. If you'd like to keep data indefinitely, set these variables to `null` (e.g. `matrix_synapse_redaction_retention_period: ~`)." +msgstr "" + +#: ../../../CHANGELOG.md:2894 +msgid "From now on the `trusted_key_servers` setting for Synapse is configurable. It still defaults to `matrix.org` just like it always has, but in a more explicit way now. If you'd like to use another trusted key server, adjust the `matrix_synapse_trusted_key_servers` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:2896 +msgid "Synapse 1.4.0 also changes lots of things related to identity server integration. Because Synapse will now by default be responsible for validating email addresses for user accounts, running without an identity server looks more feasible. We still [have concerns](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/275/files#r331104117) over disabling the identity server by default, so for now it remains enabled." +msgstr "" + +#: ../../../CHANGELOG.md:2899 +msgid "2019-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:2901 +msgid "Synapse Simple Antispam support" +msgstr "" + +#: ../../../CHANGELOG.md:2903 +msgid "There have been lots of invite-spam attacks lately and [Travis](https://github.com/t2bot) has created a Synapse module ([synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam)) to let people protect themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2905 +msgid "From now on, you can easily install and configure this spam checker module through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2907 +msgid "Learn more in [Setting up Synapse Simple Antispam](docs/configuring-playbook-synapse-simple-antispam.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2910 +msgid "2019-08-25" +msgstr "" + +#: ../../../CHANGELOG.md:2912 +msgid "Extensible Riot-web configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2914 +msgid "Similarly to [Extensible Synapse configuration](#extensible-synapse-configuration) (below), Riot-web configuration is also extensible now." +msgstr "" + +#: ../../../CHANGELOG.md:2916 +msgid "From now on, you can extend/override Riot-web's configuration by making use of the `matrix_riot_web_configuration_extension_json` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2918 +msgid "If you need even more power, you can now also take full control and override `matrix_riot_web_configuration_default` (or `matrix_riot_web_configuration`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2920 +msgid "Learn more in [Configuring Riot-web](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2923 +msgid "2019-08-22" +msgstr "" + +#: ../../../CHANGELOG.md:2925 +msgid "Extensible Synapse configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2927 +msgid "Previously, we had to create custom Ansible variables for each and every Synapse setting. This lead to too much effort (and configuration ugliness) to all of Synapse's settings, so naturally, not all features of Synapse could be controlled through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2929 +msgid "From now on, you can extend/override the Synapse server's configuration by making use of the `matrix_synapse_configuration_extension_yaml` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2931 +msgid "If you need even more power, you can now also take full control and override `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2933 +msgid "Learn more here in [Configuring Synapse](docs/configuring-playbook-synapse.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2936 +msgid "2019-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2940 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/205) of [kingoftheconnors](https://github.com/kingoftheconnors) and [Stuart Mumford (Cadair)](https://github.com/Cadair), the playbook now supports bridging to [Slack](https://slack.com) via the [appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2942 +msgid "Additional details are available in [Setting up Appservice Slack bridging](docs/configuring-playbook-bridge-appservice-slack.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2944 +msgid "Google Hangouts bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2946 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/251) of [Eduardo Beltrame (Munfred)](https://github.com/Munfred) and [Robbie D (microchipster)](https://github.com/microchipster), the playbook now supports bridging to [Google Hangouts](https://hangouts.google.com/) via the [mautrix-hangouts](https://mau.dev/tulir/mautrix-hangouts) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2948 +msgid "Additional details are available in [Setting up Mautrix Hangouts bridging](docs/configuring-playbook-bridge-mautrix-hangouts.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2951 +msgid "2019-08-05" +msgstr "" + +#: ../../../CHANGELOG.md:2953 +msgid "Email2Matrix support" +msgstr "" + +#: ../../../CHANGELOG.md:2955 +msgid "Support for [Email2Matrix](https://github.com/devture/email2matrix) has been added." +msgstr "" + +#: ../../../CHANGELOG.md:2957 +msgid "It's an optional feature that you can enable via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2959 +msgid "To learn more, see the [playbook's documentation on Email2Matrix](./docs/configuring-playbook-email2matrix.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2962 +msgid "2019-08-03" +msgstr "" + +#: ../../../CHANGELOG.md:2964 +msgid "Synapse logging level has been reduced to WARNING" +msgstr "" + +#: ../../../CHANGELOG.md:2966 +msgid "After [some discussion in our support room](https://matrix.to/#/!PukFFdIcHgtaaHZflT:devture.com/$156476852524179TBeKy:matrix.org?via=devture.com&via=matrix.org&via=librem.one), we've decided to change the default logging level for Synapse from `INFO` to `WARNING`." +msgstr "" + +#: ../../../CHANGELOG.md:2968 +msgid "This greatly reduces the number of log messages that are being logged, leading to:" +msgstr "" + +#: ../../../CHANGELOG.md:2970 +msgid "much less disk space dedicated to Synapse and thus, logs kept for longer" +msgstr "" + +#: ../../../CHANGELOG.md:2971 +msgid "easier to find some important `WARNING`, `ERROR` and `CRITICAL` messages, as they're not longer buried in thousands of non-important `INFO` messages" +msgstr "" + +#: ../../../CHANGELOG.md:2973 +msgid "If you'd like to track down an issue, you [can always increase the logging level as described here](./docs/maintenance-and-troubleshooting.md#increasing-synapse-logging)." +msgstr "" + +#: ../../../CHANGELOG.md:2976 +msgid "2019-07-08" +msgstr "" + +#: ../../../CHANGELOG.md:2978 +msgid "Synapse Maintenance docs and synapse-janitor support are available" +msgstr "" + +#: ../../../CHANGELOG.md:2980 +msgid "The playbook can now help you with Synapse's maintenance." +msgstr "" + +#: ../../../CHANGELOG.md:2982 +msgid "There's a new documentation page about [Synapse maintenance](./docs/maintenance-synapse.md) and another section on [Postgres vacuuming](./docs/maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2984 +msgid "Among other things, if your Postgres database has grown significantly over time, you may wish to [ask the playbook to purge unused data with synapse-janitor](./docs/maintenance-synapse.md#purging-unused-data-with-synapse-janitor) for you." +msgstr "" + +#: ../../../CHANGELOG.md:2986 +msgid "(BC Break) Rename run control variables" +msgstr "" + +#: ../../../CHANGELOG.md:2988 +msgid "Some internal playbook control variables have been renamed." +msgstr "" + +#: ../../../CHANGELOG.md:2990 +msgid "This change **only affects people who run this playbook's roles from another playbook**. If you're using this playbook as-is, you're not affected and don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:2992 +msgid "The following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:2994 +msgid "from `run_import_postgres` to `run_postgres_import`" +msgstr "" + +#: ../../../CHANGELOG.md:2995 +msgid "from `run_import_sqlite_db` to `run_postgres_import_sqlite_db`" +msgstr "" + +#: ../../../CHANGELOG.md:2996 +msgid "from `run_upgrade_postgres` to `run_postgres_upgrade`" +msgstr "" + +#: ../../../CHANGELOG.md:2997 +msgid "from `run_import_media_store` to `run_synapse_import_media_store`" +msgstr "" + +#: ../../../CHANGELOG.md:2998 +msgid "from `run_register_user` to `run_synapse_register_user`" +msgstr "" + +#: ../../../CHANGELOG.md:2999 +msgid "from `run_update_user_password` to `run_synapse_update_user_password`" +msgstr "" + +#: ../../../CHANGELOG.md:3002 +msgid "2019-07-04" +msgstr "" + +#: ../../../CHANGELOG.md:3004 +msgid "Synapse no longer logs to text files" +msgstr "" + +#: ../../../CHANGELOG.md:3006 +msgid "Following what the official Synapse Docker image is doing ([#5565](https://github.com/matrix-org/synapse/pull/5565)) and what we've been doing for mostly everything installed by this playbook, **Synapse no longer logs to text files** (`/matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3008 +msgid "From now on, Synapse would only log to console, which goes to systemd's journald. To see Synapse's logs, execute: `journalctl -fu matrix-synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3010 +msgid "Because of this, the following variables have become obsolete and were removed:" +msgstr "" + +#: ../../../CHANGELOG.md:3012 +msgid "`matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3013 +msgid "`matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3015 +msgid "To prevent confusion, it'd be better if you delete all old files manually after you've upgraded (`rm -f /matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3017 +msgid "Because Synapse is incredibly chatty when it comes to logging (here's [one such issue](https://github.com/matrix-org/synapse/issues/4751) describing the problem), if you're running an ancient distribution (like CentOS 7.0), be advised that systemd's journald default logging restrictions may not be high enough to capture all log messages generated by Synapse. This is especially true if you've got a busy (Synapse) server. We advise that you manually add `RateLimitInterval=0` and `RateLimitBurst=0` under `[Storage]` in the `/etc/systemd/journald.conf` file, followed by restarting the logging service (`systemctl restart systemd-journald`)." +msgstr "" + +#: ../../../CHANGELOG.md:3020 +msgid "2019-06-27" +msgstr "" + +#: ../../../CHANGELOG.md:3022 +msgid "(BC Break) Discord bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3024 +msgid "Until now, the `config.yaml` file for the [Discord bridge](docs/configuring-playbook-bridge-appservice-discord.md) was managed by the playbook, but the `registration.yaml` file was not." +msgstr "" + +#: ../../../CHANGELOG.md:3026 +msgid "From now on, the playbook will keep both configuration files sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3028 +msgid "This means that if you were making manual changes to the `/matrix/appservice-discord/discord-registration.yaml` configuration file, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3030 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-discord/config`)." +msgstr "" + +#: ../../../CHANGELOG.md:3032 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/appservice-discord/data`). When you run the playbook with an existing database file (`/matrix/appservice-discord/discord.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3034 +msgid "The main directory (`/matrix/appservice-discord`) may contain some leftover files (`user-store.db`, `room-store.db`, `config.yaml`, `discord-registration.yaml`, `invite_link`). These are no longer necessary and can be deleted manually." +msgstr "" + +#: ../../../CHANGELOG.md:3036 +msgid "We're now following the default sample configuration for the Discord bridge. If you need to override some values, define them in `matrix_appservice_discord_configuration_extension_yaml`." +msgstr "" + +#: ../../../CHANGELOG.md:3039 +msgid "2019-06-24" +msgstr "" + +#: ../../../CHANGELOG.md:3041 +msgid "(BC Break) WhatsApp bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3043 +msgid "Until now, configuration files for the [WhatsApp bridge](docs/configuring-playbook-bridge-mautrix-whatsapp.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3045 ../../../CHANGELOG.md:3062 +#: ../../../CHANGELOG.md:3081 ../../../CHANGELOG.md:3120 +msgid "From now on, the playbook will keep the configuration in sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3047 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-whatsapp/config.yaml` or `/matrix/mautrix-whatsapp/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3049 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-whatsapp/config`), so your old configuration remains in the base directory (`/matrix/mautrix-whatsapp`). You need to migrate any manual changes over to the new `matrix_mautrix_whatsapp_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3051 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-whatsapp/data`). When you run the playbook with an existing database file (`/matrix/mautrix-whatsapp/mautrix-whatsapp.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3053 +msgid "We're now following the default configuration for the WhatsApp bridge." +msgstr "" + +#: ../../../CHANGELOG.md:3056 +msgid "2019-06-20" +msgstr "" + +#: ../../../CHANGELOG.md:3058 +msgid "(BC Break) IRC bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3060 +msgid "Until now, configuration files for the [IRC bridge](docs/configuring-playbook-bridge-appservice-irc.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3064 +msgid "This means that if you were making manual changes to the `/matrix/appservice-irc/config.yaml` or `/matrix/appservice-irc/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3066 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-irc/config`), so your old configuration remains in the base directory (`/matrix/appservice-irc`)." +msgstr "" + +#: ../../../CHANGELOG.md:3068 +msgid "Previously, we asked people to configure bridged IRC servers by extending the bridge configuration (`matrix_appservice_irc_configuration_extension_yaml`). While this is still possible and will continue working forever, **we now recommend defining IRC servers in the easier to use `matrix_appservice_irc_ircService_servers` variable**. See [our IRC bridge documentation page](docs/configuring-playbook-bridge-appservice-irc.md) for an example." +msgstr "" + +#: ../../../CHANGELOG.md:3070 +msgid "If you decide to continue using `matrix_appservice_irc_configuration_extension_yaml`, you might be interested to know that `ircService.databaseUri` and a few other keys now have default values in the base configuration (`matrix_appservice_irc_configuration_yaml`). You may wish to stop redefining those keys, unless you really intend to override them. You most likely only need to override `ircService.servers`." +msgstr "" + +#: ../../../CHANGELOG.md:3072 +msgid "Bridge data (`passkey.pem` and database files) is now also stored in a subdirectory (`/matrix/appservice-irc/data`). When you run the playbook with an existing `/matrix/appservice-irc/passkey.pem` file, the playbook will stop the bridge and relocate the passkey and database files (`rooms.db` and `users.db`) to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3075 +msgid "2019-06-15" +msgstr "" + +#: ../../../CHANGELOG.md:3077 +msgid "(BC Break) Telegram bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3079 +msgid "Until now, configuration files for the [Telegram bridge](docs/configuring-playbook-bridge-mautrix-telegram.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3083 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-telegram/config.yaml` or `/matrix/mautrix-telegram/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3085 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-telegram/config`), so your old configuration remains in the base directory (`/matrix/mautrix-telegram`). You need to migrate any manual changes over to the new `matrix_mautrix_telegram_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3087 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-telegram/data`). When you run the playbook with an existing database file (`/matrix/mautrix-telegram/mautrix-telegram.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3089 +msgid "Also, we're now following the default configuration for the Telegram bridge, so some default configuration values are different:" +msgstr "" + +#: ../../../CHANGELOG.md:3091 +msgid "`edits_as_replies` (used to be `false`, now `true`) — previously replies were not sent over to Matrix at all; ow they are sent over as a reply to the original message" +msgstr "" + +#: ../../../CHANGELOG.md:3092 +msgid "`inline_images` (used to be `true`, now `false`) — this has to do with captioned images. Inline-image (included caption) are said to exhibit troubles on Riot iOS. When `false`, the caption arrives on the Matrix side as a separate message." +msgstr "" + +#: ../../../CHANGELOG.md:3093 +msgid "`authless_portals` (used to be `false`, now `true`) — creating portals from the Telegram side is now possible" +msgstr "" + +#: ../../../CHANGELOG.md:3094 +msgid "`whitelist_group_admins` (used to be `false`, now `true`) — allows Telegram group admins to use the bot commands" +msgstr "" + +#: ../../../CHANGELOG.md:3096 +msgid "If the new values are not to your liking, use `matrix_mautrix_telegram_configuration_extension_yaml` to specify an override (refer to `matrix_mautrix_telegram_configuration_yaml` to figure out which variable goes where)." +msgstr "" + +#: ../../../CHANGELOG.md:3099 +msgid "2019-06-12" +msgstr "" + +#: ../../../CHANGELOG.md:3101 +msgid "Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3103 +msgid "With [Synapse v1.0 now available](https://matrix.org/blog/2019/06/11/introducing-matrix-1-0-and-the-matrix-org-foundation) and most people being on at least Synapse v0.99, it's time to remove the `_matrix._tcp` DNS SRV record that we've been keeping for compatibility with old Synapse versions (<= 0.34)." +msgstr "" + +#: ../../../CHANGELOG.md:3105 +msgid "According to the [Server Discovery specification](https://matrix.org/docs/spec/server_server/r0.1.2.html#server-discovery), it's no harm to keep the DNS SRV record. But since it's not necessary for federating with the larger Matrix network anymore, you should be safe to get rid of it." +msgstr "" + +#: ../../../CHANGELOG.md:3107 +msgid "**Note**: don't confuse the `_matrix._tcp` and `_matrix-identity._tcp` DNS SRV records. The latter, **must not** be removed." +msgstr "" + +#: ../../../CHANGELOG.md:3109 +msgid "For completeness, we must say that using a `_matrix._tcp` [SRV record for Server Delegation](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced) is still valid and useful for certain deployments. It's just that our guide recommends the [`/.well-known/matrix/server` Server Delegation method](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), due to its easier implementation when using this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3111 +msgid "Besides this optional/non-urgent DNS change, assuming you're already on Synapse v0.99, upgrading to Synapse v1.0 should be as simple as [re-running the playbook](docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3114 +msgid "2019-06-07" +msgstr "" + +#: ../../../CHANGELOG.md:3116 +msgid "(BC Break) Facebook bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3118 +msgid "Until now, configuration files for the [Facebook bridge](docs/configuring-playbook-bridge-mautrix-facebook.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3122 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-facebook/config.yaml` or `/matrix/mautrix-facebook/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3124 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-facebook/config`), so your old configuration remains in the base directory (`/matrix/mautrix-facebook`). You need to migrate any manual changes over to the new `matrix_mautrix_facebook_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3126 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-facebook/data`). When you run the playbook with an existing database file (`/matrix/mautrix-facebook/mautrix-facebook.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3129 +msgid "2019-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:3131 +msgid "Support for exposing container ports publicly (not just to the host)" +msgstr "" + +#: ../../../CHANGELOG.md:3133 +msgid "Until now, various roles supported a `matrix_*_expose_port` variable, which would expose their container's port to the host. This was mostly useful for reverse-proxying manually (in case `matrix-nginx-proxy` was disabled). It could also be used for installing some playbook services (e.g. bridges, etc.) and wiring them to a separate (manual) Matrix setup." +msgstr "" + +#: ../../../CHANGELOG.md:3135 +msgid "`matrix_*_expose_port` variables were not granular enough — sometimes they would expose one port, other times multiple. They also didn't provide control over **where** to expose (to which port number and to which network interface), because they would usually hardcode something like `127.0.0.1:8080`." +msgstr "" + +#: ../../../CHANGELOG.md:3137 +msgid "All such variables have been superseded by a better (more flexible) way to do it." +msgstr "" + +#: ../../../CHANGELOG.md:3139 +msgid "**Most** people (including those not using `matrix-nginx-proxy`), **don't need** to bother with this." +msgstr "" + +#: ../../../CHANGELOG.md:3141 +msgid "Porting examples follow for people having more customized setups:" +msgstr "" + +#: ../../../CHANGELOG.md:3143 +msgid "**from** `matrix_synapse_container_expose_client_api_port: true` **to** `matrix_synapse_container_client_api_host_bind_port: '127.0.0.1:8008'`" +msgstr "" + +#: ../../../CHANGELOG.md:3145 +msgid "**from** `matrix_synapse_container_expose_federation_api_port: true` **to** `matrix_synapse_container_federation_api_plain_host_bind_port: '127.0.0.1:8048'` and possibly `matrix_synapse_container_federation_api_tls_host_bind_port: '8448'`" +msgstr "" + +#: ../../../CHANGELOG.md:3147 +msgid "**from** `matrix_synapse_container_expose_metrics_port: true` **to** `matrix_synapse_container_metrics_api_host_bind_port: '127.0.0.1:9100'`" +msgstr "" + +#: ../../../CHANGELOG.md:3149 +msgid "**from** `matrix_riot_web_container_expose_port: true` **to** `matrix_riot_web_container_http_host_bind_port: '127.0.0.1:8765'`" +msgstr "" + +#: ../../../CHANGELOG.md:3151 +msgid "**from** `matrix_mxisd_container_expose_port: true` **to** `matrix_mxisd_container_http_host_bind_port: '127.0.0.1:8090'`" +msgstr "" + +#: ../../../CHANGELOG.md:3153 +msgid "**from** `matrix_dimension_container_expose_port: true` **to** `matrix_dimension_container_http_host_bind_port: '127.0.0.1:8184'`" +msgstr "" + +#: ../../../CHANGELOG.md:3155 +msgid "**from** `matrix_corporal_container_expose_ports: true` **to** `matrix_corporal_container_http_gateway_host_bind_port: '127.0.0.1:41080'` and possibly `matrix_corporal_container_http_api_host_bind_port: '127.0.0.1:41081'`" +msgstr "" + +#: ../../../CHANGELOG.md:3157 +msgid "**from** `matrix_appservice_irc_container_expose_client_server_api_port: true` **to** `matrix_appservice_irc_container_http_host_bind_port: '127.0.0.1:9999'`" +msgstr "" + +#: ../../../CHANGELOG.md:3159 +msgid "**from** `matrix_appservice_discord_container_expose_client_server_api_port: true` **to** `matrix_appservice_discord_container_http_host_bind_port: '127.0.0.1:9005'`" +msgstr "" + +#: ../../../CHANGELOG.md:3161 +msgid "As always, if you forget to remove usage of some outdated variable, the playbook will warn you." +msgstr "" + +#: ../../../CHANGELOG.md:3164 +msgid "2019-05-23" +msgstr "" + +#: ../../../CHANGELOG.md:3166 +msgid "(BC Break) Ansible 2.8 compatibility" +msgstr "" + +#: ../../../CHANGELOG.md:3168 +msgid "Thanks to [@danbob](https://github.com/danbob), the playbook now [supports the new Ansible 2.8](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/187)." +msgstr "" + +#: ../../../CHANGELOG.md:3170 +msgid "A manual change is required to the `inventory/hosts` file, changing the group name from `matrix-servers` to `matrix_servers` (dash to underscore)." +msgstr "" + +#: ../../../CHANGELOG.md:3172 +msgid "To avoid doing it manually, run this:" +msgstr "" + +#: ../../../CHANGELOG.md:3173 +msgid "Linux: `sed -i 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3174 +msgid "Mac: `sed -i '' 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3177 +msgid "2019-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:3179 +msgid "Synapse no longer required" +msgstr "" + +#: ../../../CHANGELOG.md:3181 +msgid "The playbook no longer insists on installing [Synapse](https://github.com/element-hq/synapse) via the `matrix-synapse` role." +msgstr "" + +#: ../../../CHANGELOG.md:3183 +msgid "If you would prefer to install Synapse another way and just use the playbook to install other services, it should be possible (`matrix_synapse_enabled: false`)." +msgstr "" + +#: ../../../CHANGELOG.md:3185 +msgid "Note that it won't necessarily be the best experience, since the playbook wires things to Synapse by default. If you're using your own Synapse instance (especially one not running in a container), you may have to override many variables to point them to the correct place." +msgstr "" + +#: ../../../CHANGELOG.md:3187 +msgid "Having Synapse not be a required component potentially opens the door for installing alternative Matrix homeservers." +msgstr "" + +#: ../../../CHANGELOG.md:3189 +msgid "Bridges are now separate from the Synapse role" +msgstr "" + +#: ../../../CHANGELOG.md:3191 +msgid "Bridges are no longer part of the `matrix-synapse` role. Each bridge now lives in its own separate role (`roles/custom/matrix-bridge-*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3193 +msgid "These bridge roles are independent of the `matrix-synapse` role, so it should be possible to use them with a Synapse instance installed another way (not through the playbook)." +msgstr "" + +#: ../../../CHANGELOG.md:3195 +msgid "Renaming inconsistently-named Synapse variables" +msgstr "" + +#: ../../../CHANGELOG.md:3197 +msgid "For better consistency, the following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3199 +msgid "`matrix_enable_room_list_search` was renamed to `matrix_synapse_enable_room_list_search`" +msgstr "" + +#: ../../../CHANGELOG.md:3200 +msgid "`matrix_alias_creation_rules` was renamed to `matrix_synapse_alias_creation_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3201 +msgid "`matrix_nginx_proxy_matrix_room_list_publication_rulesdata_path` was renamed to `matrix_synapse_room_list_publication_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3204 +msgid "2019-05-09" +msgstr "" + +#: ../../../CHANGELOG.md:3206 +msgid "Besides a myriad of bug fixes and minor improvements, here are the more notable (bigger) features we can announce today." +msgstr "" + +#: ../../../CHANGELOG.md:3208 +msgid "Mautrix Facebook/Messenger bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3210 +msgid "The playbook now supports bridging with [Facebook](https://www.facebook.com/) by installing the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3212 +msgid "Additional details are available in [Setting up Mautrix Facebook bridging](docs/configuring-playbook-bridge-mautrix-facebook.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3214 +msgid "mxisd Registration feature integration" +msgstr "" + +#: ../../../CHANGELOG.md:3216 +msgid "The playbook can now help you integrate with mxisd's [Registration](https://github.com/kamax-matrix/mxisd/blob/master/docs/features/registration.md) feature." +msgstr "" + +#: ../../../CHANGELOG.md:3218 +msgid "Learn more in [mxisd-controlled Registration](docs/configuring-playbook-mxisd.md#mxisd-controlled-registration)." +msgstr "" + +#: ../../../CHANGELOG.md:3221 +msgid "2019-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:3223 +msgid "Caddy webserver examples" +msgstr "" + +#: ../../../CHANGELOG.md:3225 +msgid "If you prefer using the [Caddy](https://caddyserver.com/) webserver instead of our own integrated nginx, we now have examples for it in the [`examples/caddy`](examples/caddy) directory" +msgstr "" + +#: ../../../CHANGELOG.md:3227 +msgid "2019-04-10" +msgstr "" + +#: ../../../CHANGELOG.md:3229 +msgid "Goofys support for other S3-compatible object stores" +msgstr "" + +#: ../../../CHANGELOG.md:3231 +msgid "Until now, you could optionally host Synapse's media repository on Amazon S3, but we now also support [using other S3-compatible object stores](docs/configuring-playbook-s3.md)," +msgstr "" + +#: ../../../CHANGELOG.md:3234 +msgid "2019-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:3236 +msgid "Ansible >= 2.5 is required" +msgstr "" + +#: ../../../CHANGELOG.md:3238 +msgid "Due to recent playbook improvements and the fact that the world keeps turning, we're bumping the [version requirement for Ansible](docs/ansible.md#supported-ansible-versions) (2.4 -> 2.5)." +msgstr "" + +#: ../../../CHANGELOG.md:3240 +msgid "We've also started building our own Docker image of Ansible ([devture/ansible](https://hub.docker.com/r/devture/ansible/)), which is useful for people who can't upgrade their local Ansible installation (see [Using Ansible via Docker](docs/ansible.md#using-ansible-via-docker))." +msgstr "" + +#: ../../../CHANGELOG.md:3243 +msgid "2019-03-19" +msgstr "" + +#: ../../../CHANGELOG.md:3245 +msgid "TLS support for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:3247 +msgid "We've added TLS support to the coturn TURN server installed by the playbook by default. The certificates from the Matrix domain will be used for the coturn server." +msgstr "" + +#: ../../../CHANGELOG.md:3249 +msgid "This feature is enabled by default for new installations. To make use of TLS support for your existing Matrix server's coturn, make sure to rebuild both coturn and Synapse:" +msgstr "" + +#: ../../../CHANGELOG.md:3255 +msgid "People who have an extra firewall (besides the iptables firewall, which Docker manages automatically), will need to open these additional firewall ports: `5349/tcp` (TURN over TCP) and `5349/udp` (TURN over UDP)." +msgstr "" + +#: ../../../CHANGELOG.md:3257 +msgid "People who build their own custom playbook from our roles should be aware that:" +msgstr "" + +#: ../../../CHANGELOG.md:3259 +msgid "the `matrix-coturn` role and actually starting coturn (e.g. `--tags=start`), requires that certificates are already put in place. For this reason, it's usually a good idea to have the `matrix-coturn` role execute after `matrix-nginx-proxy` (which retrieves the certificates)." +msgstr "" + +#: ../../../CHANGELOG.md:3261 +msgid "there are a few variables that can help you enable TLS support for coturn. See the `matrix-coturn` section in [group_vars/matrix-servers](./group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3264 +msgid "2019-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:3266 +msgid "matrix-nginx-proxy support for serving the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:3268 +msgid "If you don't have a dedicated server for your base domain and want to set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), the playbook has got you covered now." +msgstr "" + +#: ../../../CHANGELOG.md:3270 +msgid "It's now possible for the playbook to obtain an SSL certificate and serve the necessary files for Matrix Server Delegation on your base domain. Take a look at the new [Serving the base domain](docs/configuring-playbook-base-domain-serving.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3272 +msgid "(BC break) matrix-nginx-proxy data variable renamed" +msgstr "" + +#: ../../../CHANGELOG.md:3274 +msgid "`matrix_nginx_proxy_data_path` was renamed to `matrix_nginx_proxy_base_path`." +msgstr "" + +#: ../../../CHANGELOG.md:3276 +msgid "There's a new `matrix_nginx_proxy_data_path` variable, which has a different use-purpose now (it's a subdirectory of `matrix_nginx_proxy_base_path` and is meant for storing various data files)." +msgstr "" + +#: ../../../CHANGELOG.md:3279 +msgid "2019-03-10" +msgstr "" + +#: ../../../CHANGELOG.md:3281 +msgid "Dimension integration manager support" +msgstr "" + +#: ../../../CHANGELOG.md:3283 +msgid "Thanks to [NullIsNot0](https://github.com/NullIsNot0), the playbook can now (optionally) install the [Dimension](https://dimension.t2bot.io/) integration manager. To learn more, see the [Setting up Dimension](docs/configuring-playbook-dimension.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3286 +msgid "2019-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:3288 +msgid "Ability to customize mxisd's email templates" +msgstr "" + +#: ../../../CHANGELOG.md:3290 +msgid "Thanks to [Sylvia van Os](https://github.com/TheLastProject), mxisd's email templates can now be customized easily. To learn more, see the [Customizing email templates](docs/configuring-playbook-mxisd.md#customizing-email-templates) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3293 +msgid "2019-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:3295 +msgid "Discord bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3297 +msgid "[@Lionstiger](https://github.com/Lionstiger) has done some great work adding Discord bridging support via [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord). To learn more, see the [Setting up Appservice Discord bridging](docs/configuring-playbook-bridge-appservice-discord.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3300 +msgid "2019-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:3302 +msgid "Renaming variables" +msgstr "" + +#: ../../../CHANGELOG.md:3304 ../../../CHANGELOG.md:3621 +#: ../../../CHANGELOG.md:3706 ../../../CHANGELOG.md:3826 +msgid "The following playbook variables were renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3306 +msgid "from `host_specific_hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3307 +msgid "from `hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3308 +msgid "from `hostname_matrix` to `matrix_server_fqn_matrix`" +msgstr "" + +#: ../../../CHANGELOG.md:3309 +msgid "from `hostname_riot` to `matrix_server_fqn_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3310 +msgid "from `host_specific_matrix_ssl_lets_encrypt_support_email` to `matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3312 +msgid "Doing that, we've simplified things, made names less confusing (hopefully) and moved all variable names under the `matrix_` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:3315 +msgid "2019-02-16" +msgstr "" + +#: ../../../CHANGELOG.md:3317 +msgid "Riot v1.0.1 support" +msgstr "" + +#: ../../../CHANGELOG.md:3319 +msgid "You can now use the brand new and redesigned Riot." +msgstr "" + +#: ../../../CHANGELOG.md:3321 +msgid "The new version no longer has a homepage by default, so we've also removed the custom homepage that we've been installing." +msgstr "" + +#: ../../../CHANGELOG.md:3323 +msgid "However, we still provide you with hooks to install your own `home.html` file by specifying the `matrix_riot_web_embedded_pages_home_path` variable (used to be called `matrix_riot_web_homepage_template` before)." +msgstr "" + +#: ../../../CHANGELOG.md:3326 +msgid "2019-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:3328 +msgid "Synapse v0.99.1" +msgstr "" + +#: ../../../CHANGELOG.md:3330 +msgid "As we're moving toward Synapse v1.0, things are beginning to stabilize. Upgrading from v0.99.0 to v0.99.1 should be painless." +msgstr "" + +#: ../../../CHANGELOG.md:3332 +msgid "If you've been overriding the default configuration so that you can terminate TLS at the Synapse side (`matrix_synapse_no_tls: false`), you'll now have to replace this custom configuration with `matrix_synapse_tls_federation_listener_enabled: true`. The `matrix_synapse_no_tls` variable is no more." +msgstr "" + +#: ../../../CHANGELOG.md:3335 +msgid "2019-02-06" +msgstr "" + +#: ../../../CHANGELOG.md:3337 +msgid "Synapse v0.99 support and preparation for Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3339 +msgid "Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. The first step is the Synapse v0.99 transitional release, which this playbook now supports." +msgstr "" + +#: ../../../CHANGELOG.md:3341 +msgid "If you've been using this playbook successfully until now, you'd be aware that we've been doing [Server Delegation](docs/howto-server-delegation.md) using a `_matrix._tcp` DNS SRV record (as per [Configuring DNS](docs/configuring-dns.md))." +msgstr "" + +#: ../../../CHANGELOG.md:3343 +msgid "Due to changes related to certificate file requirements that will affect us at Synapse v1.0, we'll have to stop using a **`_matrix._tcp` DNS SRV record in the future** (when Synapse goes to v1.0 — around 5th of March 2019). We **still need to keep the SRV record for now**, for backward compatibility with older Synapse versions (lower than v0.99)." +msgstr "" + +#: ../../../CHANGELOG.md:3345 +msgid "**What you need to do now** is make use of this transitional Synapse v0.99 release to **prepare your federation settings for the future**. You have 2 choices to prepare yourself for compatibility with the future Synapse v1.0:" +msgstr "" + +#: ../../../CHANGELOG.md:3347 +msgid "(recommended) set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), unless you are affected by the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation). If you had previously set up the well-known `client` file, depending on how you've done it, it may be that there is nothing new required of you (besides [upgrading](docs/maintenance-upgrading-services.md)). After upgrading, you can [run a self-check](docs/maintenance-checking-services.md), which will tell you if you need to do anything extra with regard to setting up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file). After some time, when most people have upgraded to Synapse v0.99 and older releases have disappeared, be prepared to drop your `_matrix._tcp` SRV record." +msgstr "" + +#: ../../../CHANGELOG.md:3349 +msgid "(more advanced) if the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation) are not to your liking, **as an alternative**, you can set up [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced). In such a case, you get to keep using your existing `_matrix._tcp` DNS SRV record forever and need to NOT set up a `/.well-known/matrix/server` file. Don't forget that you need to do certificate changes though. Follow the guide at [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)." +msgstr "" + +#: ../../../CHANGELOG.md:3352 +msgid "2019-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:3354 +msgid "TLS v1.3 support" +msgstr "" + +#: ../../../CHANGELOG.md:3356 +msgid "Now that the [nginx Docker image](https://hub.docker.com/_/nginx) has [added support for TLS v1.3](https://github.com/nginxinc/docker-nginx/issues/190), we have enabled that protocol by default." +msgstr "" + +#: ../../../CHANGELOG.md:3358 +msgid "When using:" +msgstr "" + +#: ../../../CHANGELOG.md:3360 +msgid "the **integrated nginx server**: TLS v1.3 support might not kick in immediately, because the nginx version hasn't been bumped and you may have an older build of the nginx Docker image (currently `nginx:1.15.8-alpine`). Typically, we do not re-pull images that you already have. When the nginx version gets bumped in the future, everyone will get the update. Until then, you could manually force-pull the rebuilt Docker image by running this on the server: `docker pull nginx:1.15.8-alpine`." +msgstr "" + +#: ../../../CHANGELOG.md:3362 +msgid "**your own external nginx server**: if your external nginx server is too old, the new configuration we generate for you in `/matrix/nginx-proxy/conf.d/` might not work anymore, because it mentions `TLSv1.3` and your nginx version might not support that. You can adjust the SSL protocol list by overriding the `matrix_nginx_proxy_ssl_protocols` variable. Learn more in the documentation page for [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3364 +msgid "**another web server**: you don't need to do anything to accommodate this change" +msgstr "" + +#: ../../../CHANGELOG.md:3367 +msgid "2019-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:3369 +msgid "IRC bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3371 +msgid "[Devon Maloney (@Plailect)](https://github.com/Plailect) has done some great work bringing IRC bridging support via [matrix-appservice-irc](https://github.com/TeDomum/matrix-appservice-irc). To learn more, see the [Setting up Appservice IRC bridging](docs/configuring-playbook-bridge-appservice-irc.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3374 +msgid "2019-01-29" +msgstr "" + +#: ../../../CHANGELOG.md:3376 +msgid "Running container processes as non-root, without capabilities and read-only" +msgstr "" + +#: ../../../CHANGELOG.md:3378 +msgid "To improve security, this playbook no longer starts container processes as the `root` user. Most containers were dropping privileges anyway, but we were trusting them with `root` privileges until they would do that. Not anymore — container processes now start as a non-root user (usually `matrix`) from the get-go." +msgstr "" + +#: ../../../CHANGELOG.md:3380 +msgid "For additional security, various capabilities are also dropped (see [why it's important](https://github.com/projectatomic/atomic-site/issues/203)) for all containers." +msgstr "" + +#: ../../../CHANGELOG.md:3382 +msgid "Additionally, most containers now use a read-only filesystem (see [why it's important](https://www.projectatomic.io/blog/2015/12/making-docker-images-write-only-in-production/)). Containers are given write access only to the directories they need to write to." +msgstr "" + +#: ../../../CHANGELOG.md:3384 +msgid "A minor breaking change is the `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size` variable having being renamed to `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb` (note the `_mb` suffix). The new variable expects a number value (e.g. `25M` -> `25`). If you weren't customizing this variable, this wouldn't affect you." +msgstr "" + +#: ../../../CHANGELOG.md:3386 +msgid "matrix-mailer is now based on Exim, not Postfix" +msgstr "" + +#: ../../../CHANGELOG.md:3388 +msgid "While we would have preferred to stay with [Postfix](http://www.postfix.org/), we found out that it cannot run as a non-root user. We've had to replace it with [Exim](https://www.exim.org/) (via the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image)." +msgstr "" + +#: ../../../CHANGELOG.md:3390 +msgid "The internal `matrix-mailer` service (running in a container) now listens on port `8025` (used to be `587` before). The playbook will update your Synapse and mxisd email settings to match (`matrix-mailer:587` -> `matrix-mailer:8025`)." +msgstr "" + +#: ../../../CHANGELOG.md:3392 +msgid "Using the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image instead of [panubo/postfix](https://hub.docker.com/r/panubo/postfix/) also gives us a nice disk usage reduction (~200MB -> 8MB)." +msgstr "" + +#: ../../../CHANGELOG.md:3395 +msgid "2019-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:3397 +msgid "(BC Break) Making the playbook's roles more independent of one another" +msgstr "" + +#: ../../../CHANGELOG.md:3399 +msgid "The following change **affects people running a more non-standard setup** — external Postgres or using our roles in their own other playbook. **Most users don't need to do anything**, besides becoming aware of the new glue variables file [`group_vars/matrix-servers`](group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3402 +msgid "Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them. Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components." +msgstr "" + +#: ../../../CHANGELOG.md:3404 +msgid "With the new changes, **all roles are now only dependent on the minimal `matrix-base` role**. They are no longer dependent among themselves." +msgstr "" + +#: ../../../CHANGELOG.md:3406 +msgid "In addition, the following components can now be completely disabled (for those who want/need to):" +msgstr "" + +#: ../../../CHANGELOG.md:3407 +msgid "`matrix-coturn` by using `matrix_coturn_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3408 +msgid "`matrix-mailer` by using `matrix_mailer_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3409 +msgid "`matrix-postgres` by using `matrix_postgres_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3411 +msgid "The following changes had to be done:" +msgstr "" + +#: ../../../CHANGELOG.md:3413 +msgid "glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file." +msgstr "" + +#: ../../../CHANGELOG.md:3415 +msgid "`matrix_postgres_use_external` has been superceeded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement." +msgstr "" + +#: ../../../CHANGELOG.md:3417 +msgid "Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're not enabling the `matrix-postgres` role (`matrix_postgres_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3419 +msgid "roles, being more independent now, are more minimal and do not do so much magic for you. People that are building their own playbook using our roles will definitely need to take a look at the [`group_vars/matrix-servers`](group_vars/matrix-servers) file and adapt their playbooks with the same (or similar) wiring logic." +msgstr "" + +#: ../../../CHANGELOG.md:3422 +msgid "2019-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:3424 +msgid "Splitting the playbook into multiple roles" +msgstr "" + +#: ../../../CHANGELOG.md:3426 +msgid "For better maintainability, the playbook logic (which all used to reside in a single `matrix-server` role) has been split out into a number of different roles: `matrix-synapse`, `matrix-postgres`, `matrix-riot-web`, `matrix-mxisd`, etc. (see the `roles/` directory)." +msgstr "" + +#: ../../../CHANGELOG.md:3429 +msgid "To keep the filesystem more consistent with this separation, the **Postgres data had to be relocated**." +msgstr "" + +#: ../../../CHANGELOG.md:3431 +msgid "The default value of `matrix_postgres_data_path` was changed from `/matrix/postgres` to `/matrix/postgres/data`. The `/matrix/postgres` directory is what we consider a base path now (new variable `matrix_postgres_base_path`). **Your Postgres data files will automatically be relocated by the playbook** (`/matrix/postgres/*` -> `/matrix/postgres/data/`) when you run with `--tags=setup-all` (or `--tags=setup-postgres`). While this shouldn't cause data-loss, **it's better if you do a Postgres backup just in case**. You'd need to restart all services after this migration (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3434 +msgid "2019-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:3436 +msgid "(BC Break) mxisd configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:3438 +msgid "To be more flexible and to support the upcoming [mxisd](https://github.com/kamax-io/mxisd) 1.3.0 (when it gets released), we've had to redo how mxisd gets configured." +msgstr "" + +#: ../../../CHANGELOG.md:3441 +msgid "The following variables are no longer supported by this playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:3443 +msgid "`matrix_mxisd_ldap_enabled`" +msgstr "" + +#: ../../../CHANGELOG.md:3444 +msgid "`matrix_mxisd_ldap_connection_host`" +msgstr "" + +#: ../../../CHANGELOG.md:3445 +msgid "`matrix_mxisd_ldap_connection_tls`" +msgstr "" + +#: ../../../CHANGELOG.md:3446 +msgid "`matrix_mxisd_ldap_connection_port`" +msgstr "" + +#: ../../../CHANGELOG.md:3447 +msgid "`matrix_mxisd_ldap_connection_baseDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3448 +msgid "`matrix_mxisd_ldap_connection_baseDns`" +msgstr "" + +#: ../../../CHANGELOG.md:3449 ../../../CHANGELOG.md:3450 +msgid "`matrix_mxisd_ldap_connection_bindDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3451 ../../../CHANGELOG.md:3455 +msgid "`matrix_mxisd_ldap_connection_bindPassword`" +msgstr "" + +#: ../../../CHANGELOG.md:3452 +msgid "`matrix_mxisd_ldap_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3453 +msgid "`matrix_mxisd_ldap_attribute_uid_type`" +msgstr "" + +#: ../../../CHANGELOG.md:3454 +msgid "`matrix_mxisd_ldap_attribute_uid_value`" +msgstr "" + +#: ../../../CHANGELOG.md:3456 +msgid "`matrix_mxisd_ldap_attribute_name`" +msgstr "" + +#: ../../../CHANGELOG.md:3457 +msgid "`matrix_mxisd_ldap_attribute_threepid_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3458 +msgid "`matrix_mxisd_ldap_attribute_threepid_msisdn`" +msgstr "" + +#: ../../../CHANGELOG.md:3459 +msgid "`matrix_mxisd_ldap_identity_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3460 +msgid "`matrix_mxisd_ldap_identity_medium`" +msgstr "" + +#: ../../../CHANGELOG.md:3461 +msgid "`matrix_mxisd_ldap_auth_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3462 +msgid "`matrix_mxisd_ldap_directory_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3463 +msgid "`matrix_mxisd_template_config`" +msgstr "" + +#: ../../../CHANGELOG.md:3465 +msgid "You are encouraged to use the `matrix_mxisd_configuration_extension_yaml` variable to define your own mxisd configuration additions and overrides. Refer to the [default variables file](roles/custom/matrix-mxisd/defaults/main.yml) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:3467 +msgid "This new way of configuring mxisd is beneficial because:" +msgstr "" + +#: ../../../CHANGELOG.md:3469 +msgid "it lets us support all mxisd configuration options, as the playbook simply forwards them to mxisd without needing to care or understand them" +msgstr "" + +#: ../../../CHANGELOG.md:3470 +msgid "it lets you upgrade to newer mxisd versions and make use of their features, without us having to add support for them explicitly" +msgstr "" + +#: ../../../CHANGELOG.md:3473 +msgid "2019-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:3475 +msgid "(BC Break) Cronjob schedule no longer configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3477 +msgid "Due to the way we manage cronjobs now, you can no longer configure the schedule they're invoked at." +msgstr "" + +#: ../../../CHANGELOG.md:3479 +msgid "If you were previously using `matrix_ssl_lets_encrypt_renew_cron_time_definition` or `matrix_nginx_proxy_reload_cron_time_definition` to set a custom schedule, you should note that these variables don't affect anything anymore." +msgstr "" + +#: ../../../CHANGELOG.md:3482 +msgid "If you miss this functionality, please [open an Issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new) and let us know about your use case!" +msgstr "" + +#: ../../../CHANGELOG.md:3485 +msgid "2018-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:3487 +msgid "(BC Break) More SSL certificate retrieval methods" +msgstr "" + +#: ../../../CHANGELOG.md:3489 +msgid "The playbook now lets you decide between 3 different SSL certificate retrieval methods:" +msgstr "" + +#: ../../../CHANGELOG.md:3490 +msgid "(default) obtaining free SSL certificates from Let's Encrypt" +msgstr "" + +#: ../../../CHANGELOG.md:3491 +msgid "generating self-signed SSL certificates" +msgstr "" + +#: ../../../CHANGELOG.md:3492 +msgid "managing SSL certificates manually" +msgstr "" + +#: ../../../CHANGELOG.md:3494 +msgid "Learn more in [Adjusting SSL certificate retrieval](docs/configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3496 +msgid "For people who use Let's Encrypt (mostly everyone, since it's the default), you'll also have to rename a variable in your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:3498 +msgid "before: `host_specific_matrix_ssl_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3499 +msgid "after: `host_specific_matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3501 +msgid "(BC Break) mxisd upgrade with multiple base DN support" +msgstr "" + +#: ../../../CHANGELOG.md:3503 +msgid "mxisd has bee upgraded to [version 1.2.2](https://github.com/kamax-matrix/mxisd/releases/tag/v1.2.2), which supports [multiple base DNs](https://github.com/kamax-matrix/mxisd/blob/v1.2.2/docs/stores/ldap.md#base)." +msgstr "" + +#: ../../../CHANGELOG.md:3505 +msgid "If you were configuring this playbook's `matrix_mxisd_ldap_connection_baseDn` variable until now (a string containing a single base DN), you'll need to change to configuring the `matrix_mxisd_ldap_connection_baseDns` variable (an array containing multiple base DNs)." +msgstr "" + +#: ../../../CHANGELOG.md:3507 +msgid "Example change:" +msgstr "" + +#: ../../../CHANGELOG.md:3509 +msgid "before: `matrix_mxisd_ldap_connection_baseDn: OU=Users,DC=example,DC=org`" +msgstr "" + +#: ../../../CHANGELOG.md:3510 +msgid "after: `matrix_mxisd_ldap_connection_baseDns: ['OU=Users,DC=example,DC=org']`" +msgstr "" + +#: ../../../CHANGELOG.md:3513 +msgid "2018-12-21" +msgstr "" + +#: ../../../CHANGELOG.md:3515 +msgid "Synapse 0.34.0 and Python 3" +msgstr "" + +#: ../../../CHANGELOG.md:3517 +msgid "Synapse has been upgraded to 0.34.0 and now uses Python 3. Based on feedback from others, running Synapse on Python 3 is supposed to decrease memory usage significantly (~2x)." +msgstr "" + +#: ../../../CHANGELOG.md:3520 +msgid "2018-12-12" +msgstr "" + +#: ../../../CHANGELOG.md:3522 +msgid "Riot homepage customization" +msgstr "" + +#: ../../../CHANGELOG.md:3524 +msgid "You can now customize some parts of the Riot homepage (or even completely replace it with your own custom page). See the `matrix_riot_web_homepage_` variables in `roles/custom/matrix-riot-web/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:3527 +msgid "2018-12-04" +msgstr "" + +#: ../../../CHANGELOG.md:3529 +msgid "mxisd extensibility" +msgstr "" + +#: ../../../CHANGELOG.md:3531 +msgid "The [LDAP identity store for mxisd](https://github.com/kamax-matrix/mxisd/blob/master/docs/stores/ldap.md) can now be configured easily using playbook variables (see the `matrix_mxisd_ldap_` variables in `roles/custom/matrix-server/defaults/main.yml`)." +msgstr "" + +#: ../../../CHANGELOG.md:3534 +msgid "2018-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:3536 +msgid "More scripts" +msgstr "" + +#: ../../../CHANGELOG.md:3538 +msgid "matrix-remove-all allows to uninstall everything with a single command" +msgstr "" + +#: ../../../CHANGELOG.md:3539 +msgid "matrix-make-user-admin allows to upgrade a user's privileges" +msgstr "" + +#: ../../../CHANGELOG.md:3541 +msgid "LDAP auth support via matrix-synapse-ldap3" +msgstr "" + +#: ../../../CHANGELOG.md:3543 +msgid "The playbook can now install and configure [LDAP auth support](https://github.com/matrix-org/matrix-synapse-ldap3) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3545 +msgid "Additional details are available in [Setting up the LDAP authentication password provider module](docs/configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3548 +msgid "2018-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:3550 +msgid "Support for controlling public registration and room auto-join" +msgstr "" + +#: ../../../CHANGELOG.md:3552 +msgid "The playbook now lets you enable public registration for users (controlled via `matrix_synapse_enable_registration`). By default, public registration is forbidden." +msgstr "" + +#: ../../../CHANGELOG.md:3554 +msgid "You can also make people automatically get auto-joined to rooms (controlled via `matrix_synapse_auto_join_rooms`)." +msgstr "" + +#: ../../../CHANGELOG.md:3556 +msgid "Support for changing the welcome user ID (welcome bot)" +msgstr "" + +#: ../../../CHANGELOG.md:3558 +msgid "By default, `@riot-bot:matrix.org` is used to welcome newly registered users. This can be changed to something else (or disabled) via the new `matrix_riot_web_welcome_user_id` variable." +msgstr "" + +#: ../../../CHANGELOG.md:3561 +msgid "2018-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:3563 +msgid "Ability to set Synapse log levels" +msgstr "" + +#: ../../../CHANGELOG.md:3565 +msgid "The playbook now allows you to set the log levels used by Synapse. The default logging levels remain the same." +msgstr "" + +#: ../../../CHANGELOG.md:3567 +msgid "You can now override following variables with any of the supported log levels listed here: https://docs.python.org/3/library/logging.html#logging-levels" +msgstr "" + +#: ../../../CHANGELOG.md:3576 +msgid "2018-11-03" +msgstr "" + +#: ../../../CHANGELOG.md:3578 +msgid "Customize parts of Riot's config" +msgstr "" + +#: ../../../CHANGELOG.md:3580 +msgid "You can now customize some parts of Riot's `config.json`. These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:3591 +msgid "This now allows you use a custom integration manager like [Dimension](https://dimension.t2bot.io). For example, if you wish to use the Dimension instance hosted at dimension.t2bot.io, you can set the following in your vars.yml file:" +msgstr "" + +#: ../../../CHANGELOG.md:3600 +msgid "SSL protocols used to serve Riot and Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3602 +msgid "There's now a new `matrix_nginx_proxy_ssl_protocols` playbook variable, which controls the SSL protocols used to serve Riot and Synapse. Its default value is `TLSv1.1 TLSv1.2`. This playbook previously used `TLSv1 TLSv1.1 TLSv1.2` to serve Riot and Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:3604 +msgid "You may wish to reenable TLSv1 if you need to access Riot in older browsers." +msgstr "" + +#: ../../../CHANGELOG.md:3606 +msgid "Note: Currently the dockerized nginx doesn't support TLSv1.3. See https://github.com/nginxinc/docker-nginx/issues/190 for more details." +msgstr "" + +#: ../../../CHANGELOG.md:3609 +msgid "2018-11-01" +msgstr "" + +#: ../../../CHANGELOG.md:3611 +msgid "Postgres 11 support" +msgstr "" + +#: ../../../CHANGELOG.md:3613 +msgid "The playbook now installs [Postgres 11](https://www.postgresql.org/about/news/1894/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:3615 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x or 10.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:3617 ../../../CHANGELOG.md:3704 +#: ../../../CHANGELOG.md:3824 +msgid "(BC Break) Renaming playbook variables" +msgstr "" + +#: ../../../CHANGELOG.md:3619 +msgid "Due to the large amount of features added to this playbook lately, to keep things manageable we've had to reorganize its configuration variables a bit." +msgstr "" + +#: ../../../CHANGELOG.md:3623 +msgid "from `matrix_docker_image_mxisd` to `matrix_mxisd_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3624 +msgid "from `matrix_docker_image_mautrix_telegram` to `matrix_mautrix_telegram_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3625 +msgid "from `matrix_docker_image_mautrix_whatsapp` to `matrix_mautrix_whatsapp_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3626 +msgid "from `matrix_docker_image_mailer` to `matrix_mailer_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3627 +msgid "from `matrix_docker_image_coturn` to `matrix_coturn_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3628 +msgid "from `matrix_docker_image_goofys` to `matrix_s3_goofys_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3629 +msgid "from `matrix_docker_image_riot` to `matrix_riot_web_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3630 +msgid "from `matrix_docker_image_nginx` to `matrix_nginx_proxy_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3631 +msgid "from `matrix_docker_image_synapse` to `matrix_synapse_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3632 +msgid "from `matrix_docker_image_postgres_v9` to `matrix_postgres_docker_image_v9`" +msgstr "" + +#: ../../../CHANGELOG.md:3633 +msgid "from `matrix_docker_image_postgres_v10` to `matrix_postgres_docker_image_v10`" +msgstr "" + +#: ../../../CHANGELOG.md:3634 +msgid "from `matrix_docker_image_postgres_latest` to `matrix_postgres_docker_image_latest`" +msgstr "" + +#: ../../../CHANGELOG.md:3637 +msgid "2018-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:3639 +msgid "Mautrix Whatsapp bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3641 +msgid "The playbook now supports bridging with [Whatsapp](https://www.whatsapp.com/) by installing the [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3643 +msgid "Additional details are available in [Setting up Mautrix Whatsapp bridging](docs/configuring-playbook-bridge-mautrix-whatsapp.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3646 +msgid "2018-10-25" +msgstr "" + +#: ../../../CHANGELOG.md:3648 +msgid "Support for controlling Matrix federation" +msgstr "" + +#: ../../../CHANGELOG.md:3650 +msgid "The playbook can now help you with [Controlling Matrix federation](docs/configuring-playbook-federation), should you wish to run a more private (isolated) server." +msgstr "" + +#: ../../../CHANGELOG.md:3653 +msgid "2018-10-24" +msgstr "" + +#: ../../../CHANGELOG.md:3655 +msgid "Disabling riot-web guests" +msgstr "" + +#: ../../../CHANGELOG.md:3657 +msgid "From now on, Riot's configuration setting `disable_guests` would be set to `true`. The homeserver was rejecting guests anyway, so this is just a cosmetic change affecting Riot's UI." +msgstr "" + +#: ../../../CHANGELOG.md:3660 +msgid "2018-10-21" +msgstr "" + +#: ../../../CHANGELOG.md:3662 +msgid "Self-check maintenance command" +msgstr "" + +#: ../../../CHANGELOG.md:3664 +msgid "The playbook can now [check if services are configured correctly](docs/maintenance-checking-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3667 +msgid "2018-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:3669 +msgid "Presence tracking made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3671 +msgid "The playbook can now enable/disable user presence-status tracking in Synapse, through the playbook's `matrix_synapse_use_presence` variable (having a default value of `true` — enabled)." +msgstr "" + +#: ../../../CHANGELOG.md:3673 +msgid "If users participate in large rooms with many other servers, disabling presence will decrease server load significantly." +msgstr "" + +#: ../../../CHANGELOG.md:3676 +msgid "2018-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:3678 +msgid "Synapse Cache Factor made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3680 +msgid "The playbook now makes the Synapse cache factor configurable, through the playbook's `matrix_synapse_cache_factor` variable (having a default value of `0.5`)." +msgstr "" + +#: ../../../CHANGELOG.md:3682 +msgid "Changing that value allows you to potentially decrease RAM usage or to increase performance by caching more stuff. Some information on it is available here: https://github.com/element-hq/synapse#help-synapse-eats-all-my-ram" +msgstr "" + +#: ../../../CHANGELOG.md:3685 +msgid "2018-09-26" +msgstr "" + +#: ../../../CHANGELOG.md:3687 +msgid "Disabling Docker container logging" +msgstr "" + +#: ../../../CHANGELOG.md:3689 +msgid "`--log-driver=none` is used for all Docker containers now." +msgstr "" + +#: ../../../CHANGELOG.md:3691 +msgid "All these containers are started through systemd anyway and get logged in journald, so there's no need for Docker to be logging the same thing using the default `json-file` driver. Doing that was growing `/var/lib/docker/containers/…` infinitely until service/container restart." +msgstr "" + +#: ../../../CHANGELOG.md:3693 +msgid "As a result of this, things like `docker logs matrix-synapse` won't work anymore. `journalctl -u matrix-synapse` is how one can see the logs." +msgstr "" + +#: ../../../CHANGELOG.md:3696 +msgid "2018-09-17" +msgstr "" + +#: ../../../CHANGELOG.md:3698 +msgid "Service discovery support" +msgstr "" + +#: ../../../CHANGELOG.md:3700 +msgid "The playbook now helps you set up [service discovery](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) using a `/.well-known/matrix/client` file." +msgstr "" + +#: ../../../CHANGELOG.md:3702 +msgid "Additional details are available in [Configuring service discovery via .well-known](docs/configuring-well-known.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3708 +msgid "from `matrix_nginx_riot_web_data_path` to `matrix_riot_web_data_path`" +msgstr "" + +#: ../../../CHANGELOG.md:3709 +msgid "from `matrix_riot_web_default_identity_server_url` to `matrix_identity_server_url`" +msgstr "" + +#: ../../../CHANGELOG.md:3712 +msgid "2018-09-07" +msgstr "" + +#: ../../../CHANGELOG.md:3714 +msgid "Mautrix Telegram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3716 +msgid "The playbook now supports bridging with [Telegram](https://telegram.org/) by installing the [mautrix-telegram](https://github.com/tulir/mautrix-telegram) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3718 +msgid "Additional details are available in [Setting up Mautrix Telegram bridging](docs/configuring-playbook-bridge-mautrix-telegram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3720 +msgid "Events cache size increase and configurability for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3722 +msgid "The playbook now lets you configure Matrix Synapse's `event_cache_size` configuration via the `matrix_synapse_event_cache_size` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:3724 +msgid "Previously, this value was hardcoded to `\"10K\"`. From now on, a more reasonable default of `\"100K\"` is used." +msgstr "" + +#: ../../../CHANGELOG.md:3726 +msgid "Password-peppering support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3728 +msgid "The playbook now supports enabling password-peppering for increased security in Matrix Synapse via the `matrix_synapse_password_config_pepper` playbook variable. Using a password pepper is disabled by default (just like it used to be before this playbook variable got introduced) and is not to be enabled/disabled after initial setup, as that would invalidate all existing passwords." +msgstr "" + +#: ../../../CHANGELOG.md:3730 +msgid "Statistics-reporting support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3732 +msgid "There's now a new `matrix_synapse_report_stats` playbook variable, which controls the `report_stats` configuration option for Matrix Synapse. It defaults to `false`, so no change is required to retain your privacy." +msgstr "" + +#: ../../../CHANGELOG.md:3734 +msgid "If you'd like to start reporting statistics about your homeserver (things like number of users, number of messages sent, uptime, load, etc.) to matrix.org, you can turn on stats reporting." +msgstr "" + +#: ../../../CHANGELOG.md:3737 +msgid "2018-08-29" +msgstr "" + +#: ../../../CHANGELOG.md:3739 +msgid "Changing the way SSL certificates are retrieved" +msgstr "" + +#: ../../../CHANGELOG.md:3741 +msgid "We've been using [acmetool](https://github.com/hlandau/acme) (with the [willwill/acme-docker](https://hub.docker.com/r/willwill/acme-docker/) Docker image) until now." +msgstr "" + +#: ../../../CHANGELOG.md:3743 +msgid "Due to the Docker image being deprecated, and things looking bleak for acmetool's support of the newer ACME v2 API endpoint, we've switched to using [certbot](https://certbot.eff.org/) (with the [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) Docker image)." +msgstr "" + +#: ../../../CHANGELOG.md:3745 +msgid "Simply re-running the playbook will retrieve new certificates (via certbot) for you. To ensure you don't leave any old files behind, though, you'd better do this:" +msgstr "" + +#: ../../../CHANGELOG.md:3747 +msgid "`systemctl stop 'matrix*'`" +msgstr "" + +#: ../../../CHANGELOG.md:3748 +msgid "stop your custom webserver, if you're running one (only affects you if you've installed with `matrix_nginx_proxy_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3749 +msgid "`mv /matrix/ssl /matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3750 +msgid "re-run the playbook's [installation](docs/installing.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3751 +msgid "possibly delete `/matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3754 +msgid "2018-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:3756 +msgid "Matrix Corporal support" +msgstr "" + +#: ../../../CHANGELOG.md:3758 +msgid "The playbook can now install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3760 +msgid "Additional details are available in [Setting up Matrix Corporal](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3763 +msgid "2018-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:3765 +msgid "Matrix Synapse rate limit control variables" +msgstr "" + +#: ../../../CHANGELOG.md:3767 +msgid "The following new variables can now be configured to control Matrix Synapse's rate-limiting (default values are shown below)." +msgstr "" + +#: ../../../CHANGELOG.md:3774 +msgid "Shared Secret Auth support via matrix-synapse-shared-secret-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3776 +msgid "The playbook can now install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3778 +msgid "Additional details are available in [Setting up the Shared Secret Auth password provider module](docs/configuring-playbook-shared-secret-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3781 +msgid "2018-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:3783 +msgid "REST auth support via matrix-synapse-rest-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3785 +msgid "The playbook can now install and configure [matrix-synapse-rest-auth](https://github.com/kamax-io/matrix-synapse-rest-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3787 +msgid "Additional details are available in [Setting up the REST authentication password provider module](docs/configuring-playbook-rest-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3789 +msgid "Compression improvements" +msgstr "" + +#: ../../../CHANGELOG.md:3791 +msgid "Shifted Matrix Synapse compression from happening in the Matrix Synapse, to happening in the nginx proxy that's in front of it." +msgstr "" + +#: ../../../CHANGELOG.md:3794 +msgid "Additionally, `riot-web` also gets compressed now (in the nginx proxy), which drops the initial page load's size from 5.31MB to 1.86MB." +msgstr "" + +#: ../../../CHANGELOG.md:3797 +msgid "Disabling some unnecessary Synapse services" +msgstr "" + +#: ../../../CHANGELOG.md:3799 +msgid "The following services are not necessary, so they have been disabled:" +msgstr "" + +#: ../../../CHANGELOG.md:3800 +msgid "on the federation port (8448): the `client` service" +msgstr "" + +#: ../../../CHANGELOG.md:3801 +msgid "on the http port (8008, exposed over 443): the old Angular `webclient` and the `federation` service" +msgstr "" + +#: ../../../CHANGELOG.md:3803 +msgid "Federation runs only on the federation port (8448) now. The Client APIs run only on the http port (8008) now." +msgstr "" + +#: ../../../CHANGELOG.md:3806 +msgid "2018-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:3808 +msgid "mxisd Identity Server support" +msgstr "" + +#: ../../../CHANGELOG.md:3810 +msgid "The playbook now sets up an [mxisd](https://github.com/kamax-io/mxisd) Identity Server for you by default. Additional details are available in [Setting up ma1sd Identity Server](docs/configuring-playbook-mxisd.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3813 +msgid "2018-08-14" +msgstr "" + +#: ../../../CHANGELOG.md:3815 +msgid "Email-sending support" +msgstr "" + +#: ../../../CHANGELOG.md:3817 +msgid "The playbook now configures an email-sending service (postfix) by default. Additional details are available in [Adjusting email-sending settings](docs/configuring-playbook-email.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3819 +msgid "With this, Matrix Synapse is able to send email notifications for missed messages, etc." +msgstr "" + +#: ../../../CHANGELOG.md:3822 +msgid "2018-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:3828 +msgid "from `matrix_max_upload_size_mb` to `matrix_synapse_max_upload_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3829 +msgid "from `matrix_max_log_file_size_mb` to `matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3830 +msgid "from `matrix_max_log_files_count` to `matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3831 +msgid "from `docker_matrix_image` to `matrix_docker_image_synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3832 +msgid "from `docker_nginx_image` to `matrix_docker_image_nginx`" +msgstr "" + +#: ../../../CHANGELOG.md:3833 +msgid "from `docker_riot_image` to `matrix_docker_image_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3834 +msgid "from `docker_goofys_image` to `matrix_docker_image_goofys`" +msgstr "" + +#: ../../../CHANGELOG.md:3835 +msgid "from `docker_coturn_image` to `matrix_docker_image_coturn`" +msgstr "" + +#: ../../../CHANGELOG.md:3837 +msgid "If you're overriding any of them in your `vars.yml` file, you'd need to change to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:3839 +msgid "Renaming Ansible playbook tag" +msgstr "" + +#: ../../../CHANGELOG.md:3841 +msgid "The command for executing the whole playbook has changed. The `setup-main` tag got renamed to `setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:3843 +msgid "Docker container linking" +msgstr "" + +#: ../../../CHANGELOG.md:3845 +msgid "Changed the way the Docker containers are linked together. The ones that need to communicate with others operate in a `matrix` network now and not in the default bridge network." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/README.po b/i18n/locales/bg/LC_MESSAGES/README.po new file mode 100644 index 000000000..9518b2d69 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/README.po @@ -0,0 +1,1184 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: 2024-12-20 14:56+0200\n" +"Last-Translator: \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../README.md:1 +msgid "[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate)" +msgstr "[![Matrix стая за поддържка](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate)" + +#: ../../../README.md:1 +msgid "Support room on Matrix" +msgstr "Matrix стая за поддръжка" + +#: ../../../README.md:1 +msgid "donate" +msgstr "дарения" + +#: ../../../README.md:3 +msgid "Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker" +msgstr "Настройка на Matrix (отворена мрежа за сигурна децентрализирана комуникация) чрез Ansible и Docker" + +#: ../../../README.md:5 +msgid "🎯 Purpose" +msgstr "🎯 Цел" + +#: ../../../README.md:7 +msgid "This [Ansible](https://www.ansible.com/) playbook is meant to help you run your own [Matrix](http://matrix.org/) homeserver, along with the [various services](#supported-services) related to that." +msgstr "Този [Ansible](https://www.ansible.com/) плейбук има за цел да ви помогне да стартирате свой собствен [Matrix](http://matrix.org/) домашен сървър, заедно с [различните услуги](#-поддържани-услуги) около него." + +#: ../../../README.md:9 +msgid "That is, it lets you join the Matrix network using your own user ID like `@alice:example.com`, all hosted on your own server (see [prerequisites](docs/prerequisites.md))." +msgstr "С други думи, позволява ви да се присъедините към Matrix мрежата със собствен сървър (вижте [предварителни условия](docs/prerequisites.md)) използвайки потребителско име като `@alice:example.com`." + +#: ../../../README.md:11 +msgid "We run all [supported services](#-supported-services) in [Docker](https://www.docker.com/) containers (see [the container images we use](docs/container-images.md)), which lets us have a predictable and up-to-date setup, across multiple supported distros (see [prerequisites](docs/prerequisites.md)) and [architectures](docs/alternative-architectures.md) (x86/amd64 being recommended)." +msgstr "Подкарваме всички [поддържани услуги](#-поддържани-услуги) в [Docker](https://www.docker.com/) контейнери (вижте [използваните контейнер image-и](docs/container-images.md)), което ни позволява да имаме предсказуема и в крак с времето инсталация, без значение от операционната система (вижте [предварителните условия](docs/prerequisites.md)) и [архитектура](docs/alternative-architectures.md) (препоръчва се x86/amd64)." + +#: ../../../README.md:13 +msgid "Installation (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md))." +msgstr "Инсталацията (обновленията) и някои задачи по поддръжката са автоматизирани чрез [Ansible](https://www.ansible.com/) (вижте [нашия Ansible наръчник](docs/ansible.md))." + +#: ../../../README.md:15 +msgid "☁ Self-hosting or Managed / SaaS" +msgstr "☁ Самостоятелно хостване или Управлявано / SaaS" + +#: ../../../README.md:17 +msgid "This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy (see [Getting started](#-getting-started)). Still, running any service smoothly requires knowledge, time and effort." +msgstr "Този Ansible плейбук се стреми да направи самостоятелното хостване и поддръжка на Matrix сървър лесно (вижте [Стартиране](#-стартиране)). Въпреки това, поддържането на коя да е услуга изисква знания, време и усилия." + +#: ../../../README.md:19 +msgid "If you like the [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also [get a managed Matrix server from etke.cc](https://etke.cc?utm_source=github&utm_medium=readme&utm_campaign=mdad) (both hosting and on-premises) - a service built on top of this Ansible playbook but with [additional components](https://etke.cc/help/extras/?utm_source=github&utm_medium=readme&utm_campaign=mdad) and [services](https://etke.cc/services/?utm_source=github&utm_medium=readme&utm_campaign=mdad) which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no \"just set up my server once and be done with it\" option." +msgstr "" + +#: ../../../README.md:21 +msgid "🚀 Getting started" +msgstr "🚀 Стартиране" + +#: ../../../README.md:23 +msgid "We have detailed documentation in the [docs/](./docs) directory - see the Table of Contents in the [documentation README](./docs/README.md)." +msgstr "" + +#: ../../../README.md:25 +msgid "While the [list of supported services](#-supported-services) and documentation is very extensive, you don't need to read through everything. We recommend:" +msgstr "" + +#: ../../../README.md:27 +msgid "Starting with the basics. You can always add/remove or tweak services later on." +msgstr "" + +#: ../../../README.md:29 +msgid "Following our installation guide. There are two guides available for beginners and advanced users:" +msgstr "" + +#: ../../../README.md:31 +msgid "⚡ **[Quick start](./docs/quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../README.md:33 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](./docs/prerequisites.md)** documentation page." +msgstr "" + +#: ../../../README.md:35 +msgid "If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our [FAQ](./docs/faq.md). If you cannot find an answer to your question, feel free to ask for [help and support](#-support)." +msgstr "" + +#: ../../../README.md:37 +msgid "✔ Supported services" +msgstr "✔ Поддържани услуги" + +#: ../../../README.md:39 +msgid "Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else." +msgstr "" + +#: ../../../README.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../README.md:43 +msgid "The list below is exhaustive. It includes optional or even some advanced components that you will most likely not need. Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation. You can always re-run the playbook later to add or remove components." +msgstr "" + +#: ../../../README.md:45 +msgid "Deprecated or unmaintained services are not listed. You can find documentations for them [here](docs/configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../README.md:47 +msgid "Homeserver" +msgstr "" + +#: ../../../README.md:49 +msgid "The homeserver is the backbone of your Matrix system. Choose one from the following list." +msgstr "" + +#: ../../../README.md +msgid "Name" +msgstr "" + +#: ../../../README.md +msgid "Default?" +msgstr "" + +#: ../../../README.md +msgid "Description" +msgstr "" + +#: ../../../README.md +msgid "Documentation" +msgstr "Документация" + +#: ../../../README.md +msgid "[Synapse](https://github.com/element-hq/synapse)" +msgstr "" + +#: ../../../README.md +msgid "✅" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse.md)" +msgstr "[Връзка](docs/configuring-playbook-synapse.md)" + +#: ../../../README.md +msgid "[Conduit](https://conduit.rs)" +msgstr "[Conduit](https://conduit.rs)" + +#: ../../../README.md +msgid "❌" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-conduit.md)" +msgstr "[Връзка](docs/configuring-playbook-conduit.md)" + +#: ../../../README.md +#, fuzzy +msgid "[conduwuit](https://conduwuit.puppyirl.gay/)" +msgstr "[Conduit](https://conduit.rs)" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../README.md +#, fuzzy +msgid "[Link](docs/configuring-playbook-conduwuit.md)" +msgstr "[Връзка](docs/configuring-playbook-conduit.md)" + +#: ../../../README.md +msgid "[Dendrite](https://github.com/element-hq/dendrite)" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../README.md:58 +msgid "Clients" +msgstr "Клиенти" + +#: ../../../README.md:60 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../README.md +msgid "[Element Web](https://github.com/element-hq/element-web)" +msgstr "" + +#: ../../../README.md +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../README.md +msgid "[Hydrogen](https://github.com/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../README.md +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../README.md +msgid "[Cinny](https://github.com/ajbura/cinny)" +msgstr "" + +#: ../../../README.md +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../README.md +msgid "[SchildiChat Web](https://schildi.chat/)" +msgstr "" + +#: ../../../README.md +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../README.md:69 +msgid "Server Components" +msgstr "" + +#: ../../../README.md:71 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../README.md +msgid "[PostgreSQL](https://www.postgresql.org/)" +msgstr "[PostgreSQL](https://www.postgresql.org/)" + +#: ../../../README.md +msgid "Database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../README.md +msgid "[coturn](https://github.com/coturn/coturn)" +msgstr "" + +#: ../../../README.md +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../README.md +msgid "[Traefik](https://doc.traefik.io/traefik/)" +msgstr "" + +#: ../../../README.md +msgid "Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../README.md +msgid "[Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../README.md +msgid "Free SSL certificate, which secures the connection to all components" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../README.md +msgid "[Exim](https://www.exim.org/)" +msgstr "" + +#: ../../../README.md +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-email.md)" +msgstr "" + +#: ../../../README.md +msgid "[ma1sd](https://github.com/ma1uta/ma1sd)" +msgstr "" + +#: ../../../README.md +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../README.md +msgid "[ddclient](https://github.com/linuxserver/docker-ddclient)" +msgstr "" + +#: ../../../README.md +msgid "Dynamic DNS" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-dynamic-dns.md)" +msgstr "[Връзка](docs/configuring-playbook-dynamic-dns.md)" + +#: ../../../README.md:83 +msgid "Authentication" +msgstr "" + +#: ../../../README.md:85 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "Password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ldap-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-registration](https://github.com/ZerataX/matrix-registration)" +msgstr "" + +#: ../../../README.md +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (UVS)" +msgstr "" + +#: ../../../README.md +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-user-verification-service.md)" +msgstr "[Връзка](docs/configuring-playbook-user-verification-service.md)" + +#: ../../../README.md +msgid "[synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "A spam checker module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)" +msgstr "" + +#: ../../../README.md:97 +msgid "File Storage" +msgstr "" + +#: ../../../README.md:99 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../README.md +msgid "[Goofys](https://github.com/kahing/goofys)" +msgstr "" + +#: ../../../README.md +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-s3.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-media-repo](https://github.com/turt2live/matrix-media-repo)" +msgstr "" + +#: ../../../README.md +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../README.md:107 +msgid "Bridges" +msgstr "" + +#: ../../../README.md:109 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../README.md +msgid "[mautrix-discord](https://github.com/mautrix/discord)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-slack](https://github.com/mautrix/slack)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-telegram](https://github.com/mautrix/telegram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-gmessages](https://github.com/mautrix/gmessages)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-whatsapp](https://github.com/mautrix/whatsapp)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-wsproxy](https://github.com/mautrix/wsproxy)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-twitter](https://github.com/mautrix/twitter)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-googlechat](https://github.com/mautrix/googlechat)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-meta](https://github.com/mautrix/instagram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../README.md +msgid "Link for [Messenger](docs/configuring-playbook-bridge-mautrix-meta-messenger.md) / [Instagram](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-signal](https://github.com/mautrix/signal)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../README.md +msgid "[beeper-linkedin](https://github.com/beeper/linkedin)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-hookshot](https://github.com/matrix-org/matrix-hookshot)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to SMS" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-wechat](https://github.com/duo/matrix-wechat)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../README.md +msgid "[Heisenbridge](https://github.com/hifi/heisenbridge)" +msgstr "" + +#: ../../../README.md +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../README.md +msgid "[go-skype-bridge](https://github.com/kelaresg/go-skype-bridge)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../README.md +msgid "[Postmoogle](https://github.com/etkecc/postmoogle)" +msgstr "" + +#: ../../../README.md +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../README.md:141 +msgid "Bots" +msgstr "" + +#: ../../../README.md:143 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../README.md +msgid "[baibot](https://github.com/etkecc/baibot)" +msgstr "" + +#: ../../../README.md +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)" +msgstr "" + +#: ../../../README.md +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot)" +msgstr "" + +#: ../../../README.md +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../README.md +msgid "[maubot](https://github.com/maubot/maubot)" +msgstr "" + +#: ../../../README.md +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../README.md +msgid "[Honoroit](https://github.com/etkecc/honoroit)" +msgstr "" + +#: ../../../README.md +msgid "A helpdesk bot" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../README.md +msgid "[Mjolnir](https://github.com/matrix-org/mjolnir)" +msgstr "" + +#: ../../../README.md +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../README.md +msgid "[Draupnir](https://github.com/the-draupnir-project/Draupnir)" +msgstr "" + +#: ../../../README.md +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-draupnir.md) (for [appservice mode](docs/configuring-playbook-appservice-draupnir-for-all.md))" +msgstr "" + +#: ../../../README.md +msgid "[Buscarron](https://github.com/etkecc/buscarron)" +msgstr "" + +#: ../../../README.md +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../README.md:156 +msgid "Administration" +msgstr "" + +#: ../../../README.md:158 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../README.md +msgid "[matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../README.md +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/)" +msgstr "" + +#: ../../../README.md +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-admin](https://github.com/etkecc/synapse-admin)" +msgstr "" + +#: ../../../README.md +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../README.md +msgid "Metrics and Graphs" +msgstr "" + +#: ../../../README.md +msgid "Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI, with [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) being available too" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-prometheus-grafana.md) (for [prometheus-nginxlog-exporter](docs/configuring-playbook-prometheus-nginxlog.md))" +msgstr "" + +#: ../../../README.md +msgid "[Borg](https://borgbackup.org)" +msgstr "" + +#: ../../../README.md +msgid "Backups" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../README.md +msgid "[rageshake](https://github.com/matrix-org/rageshake)" +msgstr "" + +#: ../../../README.md +msgid "Bug report server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter)" +msgstr "" + +#: ../../../README.md +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../README.md:170 +msgid "Misc" +msgstr "" + +#: ../../../README.md:172 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../README.md +msgid "[sliding-sync](https://github.com/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../README.md +msgid "(Superseded by Simplified Sliding Sync integrated into Synapse > `1.114` and Conduit > `0.6.0`) Sliding Sync support for clients which require it (e.g. old Element X versions before Simplified Sliding Sync was developed)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite)" +msgstr "" + +#: ../../../README.md +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor)" +msgstr "" + +#: ../../../README.md +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-corporal.md)" +msgstr "" + +#: ../../../README.md +msgid "[Etherpad](https://etherpad.org)" +msgstr "" + +#: ../../../README.md +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../README.md +msgid "[Jitsi](https://jitsi.org/)" +msgstr "" + +#: ../../../README.md +msgid "An open source video-conferencing platform" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../README.md +msgid "[Cactus Comments](https://cactus.chat)" +msgstr "" + +#: ../../../README.md +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../README.md +msgid "[Pantalaimon](https://github.com/matrix-org/pantalaimon)" +msgstr "" + +#: ../../../README.md +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../README.md +msgid "[Sygnal](https://github.com/matrix-org/sygnal)" +msgstr "" + +#: ../../../README.md +msgid "Push gateway" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../README.md +msgid "[ntfy](https://ntfy.sh)" +msgstr "" + +#: ../../../README.md +msgid "Push notifications server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../README.md:187 +msgid "🆕 Changes" +msgstr "" + +#: ../../../README.md:189 +msgid "This playbook evolves over time, sometimes with backward-incompatible changes." +msgstr "Този плейбук се развива във времето и понякога съдържа обратно-несъвместими промени." + +#: ../../../README.md:191 +msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new." +msgstr "" + +#: ../../../README.md:193 +msgid "🆘 Support" +msgstr "" + +#: ../../../README.md:195 +msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)" +msgstr "" + +#: ../../../README.md:197 +msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)" +msgstr "" + +#: ../../../README.md:199 +msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)" +msgstr "" + +#: ../../../README.md:201 +msgid "🌐 Translation" +msgstr "" + +#: ../../../README.md:203 +msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation." +msgstr "Вижте файла [i18n/README.md](i18n/README.md) за повече информация относно превода." + +#: ../../../README.md:205 +msgid "Translations are still work in progress." +msgstr "Все още се работи по преводите." + +#: ../../../README.md:207 +msgid "🤝 Related" +msgstr "" + +#: ../../../README.md:209 +msgid "You may also be interested in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) - another Ansible playbook for self-hosting non-Matrix services (see its [List of supported services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md))." +msgstr "" + +#: ../../../README.md:211 +msgid "mash-playbook also makes use of [Traefik](./docs/configuring-playbook-traefik.md) as its reverse-proxy, so with minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md), you can make matrix-docker-ansible-deploy and mash-playbook co-exist and host Matrix and non-Matrix services on the same server." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/YEAR-IN-REVIEW.po b/i18n/locales/bg/LC_MESSAGES/YEAR-IN-REVIEW.po new file mode 100644 index 000000000..0c45bab0f --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/YEAR-IN-REVIEW.po @@ -0,0 +1,290 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../YEAR-IN-REVIEW.md:1 +msgid "2023" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:3 +msgid "2023 was a year filled with many changes for matrix-docker-ansible-deploy. In this post, we're looking backward at some of the major changes that happened this year, as well as taking a glimpse of what's ahead in 2024." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:5 +msgid "2023 is probably [the year of AI](https://journal.everypixel.com/2023-the-year-of-ai), with millions of people jumping aboard [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/chatgpt) train. matrix-docker-ansible-deploy is no stranger to this and 2023 began with a PR from [bertybuttface](https://github.com/bertybuttface) who added support for [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#chatgpt-support)). While OpenAI's chat GPT website was frequently overloaded in the past, their API was up which made using this bot both convenient and more reliable." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:7 +msgid "AI aside, with the playbook's focus being containers, we're **doubling down on being \"container native\"** and becoming more interoperable for people hosting other containers on the Matrix server. In [2022](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/YEAR-IN-REVIEW.md#2022), we've announced a few sibling Ansible playbooks, their use of [Traefik](https://doc.traefik.io/traefik/) and the possiblity of matrix-docker-ansible-deploy also switching to this reverse-proxy. This prediction materialized quickly. The **largest change** in the playbook in 2023 happened way back in February - matrix-docker-ansible-deploy [starting the switch from nginx to Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support) and then quickly [making Treafik the default reverse-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now). As noted in the changelog entries, we envisioned a quick and complete elimination of `matrix-nginx-proxy`, but at the end of 2023, it hasn't happened yet. The playbook is already using Traefik as the front-most reverse-proxy, but nginx (via `matrix-nginx-proxy`) is still around - it has taken a step back and is only used internally for new setups. Work got to a stall due to:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:9 +msgid "complexity: untangling the overly large and messy `matrix-nginx-proxy` component is difficult" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:10 +msgid "the current setup became \"good enough\" because nginx has become an internal implementation detail for those who have migrated to Traefik. Traefik is already the default public reverse-proxy and gives better possibilities to people wishing to run other web-exposed containers on their Matrix server via [Docker Compose](https://docs.docker.com/compose/), other Ansible playbooks like [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) (more about this one, below) or any other way." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:12 +msgid "`matrix-nginx-proxy` is no longer in the way of us being interoperable, but its ugly internal details are still there. It is one more proxy in the long chain of reverse-proxies we have and we'd like to cut it out. This would both make things simpler and also boost performance." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:14 +msgid "The delay in eliminating `matrix-nginx-proxy` has probably been welcome by many existing users who decided to postpone the Traefik migration a bit longer. In 2024, work on eliminating `matrix-nginx-proxy` will continue with rapid pace. People who are still using `matrix-nginx-proxy` as their front-most reverse-proxy will need to rework their setup. About a year of putting it off has been long enough." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:16 +msgid "This large Traefik reverse-proxy change was also accompanied by another internal change which began in 2022, but continued in 2023 - **moving non-Matrix-related roles from being internal to the playbook to living their own life outside of it**. Various roles were made more decoupled and moved outside of the playbook, so that other projects (like the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook or other Ansible playbooks) could benefit from them. This led to the **death of a few sibling playbooks** ([gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), [peertube-docker-ansible-deploy](https://github.com/spantaleev/peertube-docker-ansible-deploy), [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy)), but brought life to something better, which supports all these services and more." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:18 +msgid "[mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a new Ansible playbook that a few of us (matrix-docker-ansible-deploy contributors) have launched in 2023. It has quickly grown to supports [60+ services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) and aims to do the same for [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) service hosting, as matrix-docker-ansible-deploy has done for Matrix - providing a clean and secure way to run a bunch of services in containers on a regular server (that is to say, without Kubernetes, etc.). Thanks to Traefik and Ansible role reuse, it's easy to host both mash-playbook services and matrix-docker-ansible-deploy services on the same server - see mash-playbook's [interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) documentation page. If you've been looking for a holiday project or your New Year's Resolutions list contains \"self-hosting more services\", then you're welcome to give this new playbook a try and join its Matrix room ([#mash-playbook:devture.com](https://matrix.to/#/#mash-playbook:devture.com))." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:20 +msgid "Because many of the roles are now external to this playbook (defined in the [requirements.yml](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/da27655ef34999fa924bc0a5e641dbd9ba06f133/requirements.yml) file), running `make roles` (or better yet `just roles` via the [just tool](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#support-for-running-commands-via-just)) becomes a necessity each time one pulls playbook updates (`git pull`). Pulling external roles happens via the [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) command-line tool, but if available, the playbook would also use the much faster [agru](https://github.com/etkecc/agru) tool (developed by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) this year)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:22 +msgid "With the internal (but important) details out of the way, we can now talk more about **new features that landed in matrix-docker-ansible-deploy in 2023**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:24 +msgid "The following **new** **bridges** were added to the playbook in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:26 +msgid "(2023-01-11) [mautrix-slack](https://mau.dev/mautrix/slack), thanks to a PR by [Cody Neiman](https://github.com/xangelix) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-slack-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:27 +msgid "(2023-07-21) [mautrix-gmessages](https://github.com/mautrix/gmessages), thanks to a PR by [Shreyas Ajjarapu](https://github.com/shreyasajj) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-gmessages-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:28 +msgid "(2023-08-23) [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for Apple iMessage bridging (when combined with the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone), thanks to a PR by [Johan Swetzén](https://github.com/jswetzen)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:30 +msgid "This brings the total number of **[bridges that the playbook supports](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/docs/configuring-playbook.md#bridging-other-networks) up to 30**. There are alternative bridge implementations for various networks and protocols, so the number of \"unique bridged networks\" is surely much smaller." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:32 +msgid "A few other **major components and changes** landed in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:34 +msgid "(2023-02-10) The [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (successor to [Mjolnir](https://github.com/matrix-org/mjolnir)), thanks to a PR by [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#draupnir-moderation-tool-bot-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:35 +msgid "(2023-02-10) [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) to add Matrix Authentication Support to our Jitsi setup, thanks to a PR by [Jakob S.](https://github.com/jakicoll) from [zakk gGmbH](https://github.com/zakk-it) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-authentication-support-for-jitsi))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:36 +msgid "(2023-02-25) The [rageshake](https://github.com/matrix-org/rageshake) bug report server, thanks to a PR by [Benjamin Kampmann](https://github.com/gnunicorn) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#rageshake-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:37 +msgid "(2023-03-07) [Sliding Sync proxy](https://github.com/matrix-org/sliding-sync) (currently a necessary component for [Element X](https://element.io/labs/element-x) to work), thanks to: [Benjamin Kampmann](https://github.com/gnunicorn) and [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#sliding-sync-proxy-element-x-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:38 +msgid "(2023-03-12) synapse-auto-compressor to periodically and automatically run [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#synapse-auto-compressor-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:39 +msgid "(2023-07-17) [matrix-media-repo](https://github.com/turt2live/matrix-media-repo),  thanks to a PR by [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-media-repo-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:40 +msgid "(2023-08-31) [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client app (fork of [Element Web)](https://github.com/element-hq/element-web), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#schildichat-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:41 +msgid "(2023-10-18) Postgres parameters auto-tuning, thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#postgres-parameters-are-automatically-tuned-now))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:42 +msgid "(2023-10-23) Enabling federation of the room directory for Synapse (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:44 +msgid "The most recent change in the list above (Enabling federation of the room directory for Synapse) has been somewhat **controversial** as it goes against upstream defaults for Synapse. Nevertheless, we believe it **promotes the well-being of the Matrix Federation by improving room discovery**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:46 +msgid "**Matrix Federation Stats** (containing the percentage of servers publishing their room directory publicly) are posted to [TWIM](https://matrix.org/category/this-week-in-matrix/) each week by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/). The number of servers which [currently published their room directory publicly](https://matrix.org/blog/2023/12/2/this-week-in-matrix-2023-12-22/#matrix-federation-stats) stands at `26.6%`, which is:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:48 +msgid "**2.4% more** than when it was when [first published to TWIM](https://matrix.org/blog/2023/11/03/this-week-in-matrix-2023-11-03/#matrix-federation-stats) (1 month earlier, in November)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:49 +msgid "likely about **15+% more** than from before we flipped the switch (in October)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:51 +msgid "Hopefully, Synapse defaults would also change the same way and we'd see the number of servers publicly listing their room directory grow faster." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:53 +msgid "With this configuration change in place, projects like [MatrixRooms.info](https://matrixrooms.info/) (made by [etke.cc](https://etke.cc/)) and potentially others in the future, can discover, index the metadata (room address, title, topic, number of users, etc.) and make public rooms browsable & searchable across the whole Matrix Federation. It'd be great if users joining Matrix could more easily find interesting communities that match their interests!" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:55 +msgid "On the **media side of things**, besides Jitsi getting better Matrix integration (via the aforementioned Matrix User Verification Service), we've also had some [coturn security tightening](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues) as well as [performance optimizations](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#coturn-can-now-use-host-networking) for configurations exposing lots of network ports." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:57 +msgid "[Element Call](https://github.com/element-hq/element-call) seems to have become a nice and polished product lately (as proclaimed in [The Matrix Holiday Update 2023](https://matrix.org/blog/2023/12/25/the-matrix-holiday-update-2023/)), so 2024 is likely the year we'll see support for it in the playbook. Element Call depends on the [LiveKit](https://livekit.io/) streaming server (which is also useful to developers even by itself), so the first step is likely to see LiveKit support in mash-playbook via a reusable Ansible role. Such a LiveKit Ansible role could later easily land in matrix-docker-ansible-deploy and an Element Call static website could be hooked to it." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:59 +msgid "Besides these highlights, there were many other relatively large changes announced in our [CHANGELOG](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md) and hundreds of other more minor (but still important) playbook changes that didn't get a mention." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:61 +msgid "We have **hundreds of contributors to thank for their hard work** on making Matrix self-hosting better for all of us! It should be noted that **support comes in many shapes**, not only in raw code commits and financial help (via [donations](https://liberapay.com/s.pantaleev) or using the [etke.cc managed Matrix hosting service](https://etke.cc/) which is based on matrix-docker-ansible-deploy). It also comes in the shape of code reviews, helping others with [issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues), reporting new issues, participating in our support room on Matrix ([#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)), etc. To everyone who has been there to make matrix-docker-ansible-deploy better in 2023, thank you! 🙇‍♂️" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:64 +msgid "2022" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:66 +msgid "For [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy/), 2022 started with **breaking the** [**Synapse**](https://github.com/element-hq/synapse) **monopoly** by [adding support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#dendrite-support) for the [Dendrite](https://github.com/matrix-org/dendrite) Matrix homeserver in early January. This required various internal changes so that the [Ansible](https://www.ansible.com/) playbook would not be Synapse-centric anymore. This groundwork paved the way for continuing in this direction and we [added support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#conduit-support) for [Conduit](https://conduit.rs/) in August." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:68 +msgid "When it comes to the `matrix-docker-ansible-deploy` Ansible playbook, 2022 was the year of the non-Synapse homeserver implementation. In practice, none of these homeserver implementations seem ready for prime-time yet and there is no migration path when coming from Synapse. Having done our job of adding support for these alternative homeserver implementations, we can say that we're not getting in the way of future progress. It's time for the Dendrite developers to push harder (development-wise) and for the Synapse developers to take a well-deserved long (infinite) break, and we may get to see more people migrating away from Synapse in the next year(s)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:70 +msgid "Support for the following new **bridges** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:72 +msgid "[Postmoogle](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#postmoogle-email-bridge-support) for bi-directional email bridging, which supersedes my old and simplistic [Email2Matrix](https://github.com/devture/email2matrix) one-way bridge-bot" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:73 +msgid "[mautrix-discord](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#mautrix-discord-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:74 +msgid "[go-skype-bridge](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#go-skype-bridge-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:75 +msgid "[matrix-appservice-kakaotalk](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-appservice-kakaotalk-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:77 +msgid "Support for the following new **bots** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:79 +msgid "[buscarron bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#buscarron-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:80 +msgid "[Honoroit bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#honoroit-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:81 +msgid "[matrix-registration-bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-registration-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:82 +msgid "[matrix-hookshot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-hookshot-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:83 +msgid "[maubot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#maubot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:85 +msgid "Support for the following new **components and services** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:87 +msgid "[BorgBackup](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#borg-backup-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:88 +msgid "[Cactus Comments](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cactus-comments-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:89 +msgid "[Cinny](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cinny-support) client support" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:90 +msgid "[ntfy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#ntfy-push-notifications-support) notifications" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:91 +msgid "[matrix-ldap-registration-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-ldap-registration-proxy-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:92 +msgid "[matrix\\_encryption\\_disabler support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix_encryption_disabler-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:93 +msgid "[synapse-s3-storage-provider](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-s3-storage-provider-support) to stop the Synapse media store from being a scalability problem. This brought along [another feature](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-container-image-customization-support) - an easier way to customize the Synapse container image without having to fork and self-build all of it from scratch" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:95 +msgid "Besides these major user-visible changes, a lot of work also happened **under the hood**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:97 +msgid "we made [major improvements to Synapse workers](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#potential-backward-compatibility-break-major-improvements-to-synapse-workers) - adding support for stream writers and for running multiple workers of various kinds (federation senders, pushers, background task processing workers, etc.)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:98 +msgid "we [improved the compatibility of (Synapse + workers) with the rest of the playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#backward-compatibility-break-changing-how-reverse-proxying-to-synapse-works---now-via-a-matrix-synapse-reverse-proxy-companion-service) by introducing a new `matrix-synapse-reverse-proxy-companion-service` service" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:99 +msgid "we started [splitting various Ansible roles out of the Matrix playbook and into independent roles](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#the-playbook-now-uses-external-roles-for-some-things) (e.g. `matrix-postgres` -> [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres)), which could be included in other Ansible playbooks. In fact, these roles already power a few **interesting other sibling playbooks**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:100 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), for deploying a [Gitea](https://gitea.io/) (self-hosted [Git](https://git-scm.com/) service) server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:101 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), for deploying a [Nextcloud](https://nextcloud.com/) groupware server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:102 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy), for deploying a [Vaultwarden](https://github.com/dani-garcia/vaultwarden) password manager server (unofficial [Bitwarden](https://bitwarden.com/) compatible server)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:104 +msgid "These sibling playbooks co-exist nicely with one another due to using [Traefik](https://traefik.io/) for reverse-proxying, instead of trying to overtake the whole server by running their own [nginx](https://nginx.org/) reverse-proxy. Hopefully soon, the Matrix playbook will follow suit and be powered by Traefik by default." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:106 +msgid "Last, but not least, to optimize our [etke.cc managed Matrix hosting service](https://etke.cc/)'s performance (but also individual Ansible playbook runs for people self-hosting by themselves using the playbook), we've [improved playbook runtime 2-5x](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) by employing various Ansible tricks." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/README.po b/i18n/locales/bg/LC_MESSAGES/docs/README.po new file mode 100644 index 000000000..e23b3a717 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/README.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/README.md:1 +msgid "Table of Contents" +msgstr "" + +#: ../../../docs/README.md:3 +msgid "⬇️ Installaton guides " +msgstr "" + +#: ../../../docs/README.md:5 +msgid "There are two installation guides available for beginners and advanced users." +msgstr "" + +#: ../../../docs/README.md:7 +msgid "⚡ **[Quick start](quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/README.md:9 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide." +msgstr "" + +#: ../../../docs/README.md:11 +msgid "[Prerequisites](prerequisites.md)" +msgstr "" + +#: ../../../docs/README.md:13 +msgid "[Configuring your DNS settings](configuring-dns.md)" +msgstr "" + +#: ../../../docs/README.md:15 +msgid "[Getting the playbook](getting-the-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:17 +msgid "[Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:19 +msgid "[Installing](installing.md)" +msgstr "" + +#: ../../../docs/README.md:21 +msgid "🛠️ Configuration options" +msgstr "" + +#: ../../../docs/README.md:28 +msgid "You can check useful documentation for configuring components here: [Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:30 +msgid "[Administration](configuring-playbook.md#administration) — services that help you in administrating and monitoring your Matrix installation" +msgstr "" + +#: ../../../docs/README.md:32 +msgid "[Authentication and user-related](configuring-playbook.md#authentication-and-user-related) — extend and modify how users are authenticated on your homeserver" +msgstr "" + +#: ../../../docs/README.md:34 +msgid "[Bots](configuring-playbook.md#bots) — bots provide various additional functionality to your installation" +msgstr "" + +#: ../../../docs/README.md:36 +msgid "[Bridges](configuring-playbook.md#bridging-other-networks) — bridges can be used to connect your Matrix installation with third-party communication networks" +msgstr "" + +#: ../../../docs/README.md:38 +msgid "[Clients](configuring-playbook.md#clients) — web clients for Matrix that you can host on your own domains" +msgstr "" + +#: ../../../docs/README.md:40 +msgid "[Core service adjustments](configuring-playbook.md#core-service-adjustments) — backbone of your Matrix system" +msgstr "" + +#: ../../../docs/README.md:42 +msgid "[File Storage](configuring-playbook.md#file-storage) — use alternative file storage to the default `media_store` folder" +msgstr "" + +#: ../../../docs/README.md:46 +msgid "[Other specialized services](configuring-playbook.md#other-specialized-services) — various services that don't fit any other categories" +msgstr "" + +#: ../../../docs/README.md:48 +msgid "👨‍🔧 Maintenance" +msgstr "" + +#: ../../../docs/README.md:50 +msgid "If your server and services experience issues, feel free to come to [our support room](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) and ask for help." +msgstr "" + +#: ../../../docs/README.md:54 +msgid "[Checking if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/README.md:56 +msgid "[Maintenance and Troubleshooting](maintenance-and-troubleshooting.md)" +msgstr "" + +#: ../../../docs/README.md:58 +msgid "[PostgreSQL maintenance](maintenance-postgres.md)" +msgstr "" + +#: ../../../docs/README.md:60 +msgid "[Synapse maintenance](maintenance-synapse.md)" +msgstr "" + +#: ../../../docs/README.md:62 +msgid "[Upgrading services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/README.md:64 +msgid "Other documentation pages " +msgstr "" + +#: ../../../docs/README.md:66 +msgid "ℹ️ **[FAQ](faq.md)** — various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook" +msgstr "" + +#: ../../../docs/README.md:70 +msgid "[Alternative architectures](alternative-architectures.md)" +msgstr "" + +#: ../../../docs/README.md:72 +msgid "[Container images used by the playbook](container-images.md)" +msgstr "" + +#: ../../../docs/README.md:74 +msgid "[Obtaining an Access Token](obtaining-access-tokens.md)" +msgstr "" + +#: ../../../docs/README.md:76 +msgid "[Playbook tags](playbook-tags.md)" +msgstr "" + +#: ../../../docs/README.md:78 +msgid "[Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/README.md:80 +msgid "[Running `just` commands](just.md)" +msgstr "" + +#: ../../../docs/README.md:82 +msgid "[Self-building](self-building.md)" +msgstr "" + +#: ../../../docs/README.md:84 +msgid "[Uninstalling](uninstalling.md)" +msgstr "" + +#: ../../../docs/README.md:86 +msgid "[Updating users passwords](updating-users-passwords.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/alternative-architectures.po b/i18n/locales/bg/LC_MESSAGES/docs/alternative-architectures.po new file mode 100644 index 000000000..24b46ed48 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/alternative-architectures.po @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/alternative-architectures.md:1 +msgid "Alternative architectures" +msgstr "Алтернативни архитектури" + +#: ../../../docs/alternative-architectures.md:3 +msgid "As stated in the [Prerequisites](prerequisites.md), currently only `amd64` (`x86_64`) is fully supported." +msgstr "Както е посочено в [Предусловия](prerequisites.md), в момента само `amd64` (`x86_64`) е напълно поддържана архитектура." + +#: ../../../docs/alternative-architectures.md:5 +msgid "The playbook automatically determines the target server's architecture (the `matrix_architecture` variable) to be one of the following:" +msgstr "" + +#: ../../../docs/alternative-architectures.md:7 +msgid "`amd64` (`x86_64`)" +msgstr "`amd64` (`x86_64`)" + +#: ../../../docs/alternative-architectures.md:8 +msgid "`arm32`" +msgstr "`arm32`" + +#: ../../../docs/alternative-architectures.md:9 +msgid "`arm64`" +msgstr "`arm64`" + +#: ../../../docs/alternative-architectures.md:11 +msgid "Some tools and container images can be built on the host or other measures can be used to install on that architecture." +msgstr "" + +#: ../../../docs/alternative-architectures.md:13 +msgid "Implementation details" +msgstr "" + +#: ../../../docs/alternative-architectures.md:15 +msgid "For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building)." +msgstr "" + +#: ../../../docs/alternative-architectures.md:17 +msgid "For other architecture (`arm64`, `arm32`), components which have a prebuilt image make use of it. If the component is not available for the specific architecture, [self-building](self-building.md) will be used. Not all components support self-building though, so your mileage may vary." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/ansible.po b/i18n/locales/bg/LC_MESSAGES/docs/ansible.po new file mode 100644 index 000000000..c4b38de2d --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/ansible.po @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/ansible.md:2 +msgid "Running this playbook" +msgstr "" + +#: ../../../docs/ansible.md:4 +msgid "This playbook is meant to be run using [Ansible](https://www.ansible.com/)." +msgstr "" + +#: ../../../docs/ansible.md:6 +msgid "Ansible typically runs on your local computer and carries out tasks on a remote server. If your local computer cannot run Ansible, you can also run Ansible on some server somewhere (including the server you wish to install to)." +msgstr "" + +#: ../../../docs/ansible.md:8 +msgid "Supported Ansible versions" +msgstr "" + +#: ../../../docs/ansible.md:10 +msgid "To manually check which version of Ansible you're on, run: `ansible --version`." +msgstr "" + +#: ../../../docs/ansible.md:12 +msgid "For the **best experience**, we recommend getting the **latest version of Ansible available**." +msgstr "" + +#: ../../../docs/ansible.md:14 +msgid "We're not sure what's the minimum version of Ansible that can run this playbook successfully. The lowest version that we've confirmed (on 2022-11-26) to be working fine is: `ansible-core` (`2.11.7`) combined with `ansible` (`4.10.0`)." +msgstr "" + +#: ../../../docs/ansible.md:16 +msgid "If your distro ships with an Ansible version older than this, you may run into issues. Consider [Upgrading Ansible](#upgrading-ansible) or [using Ansible via Docker](#using-ansible-via-docker)." +msgstr "" + +#: ../../../docs/ansible.md:18 +msgid "Upgrading Ansible" +msgstr "" + +#: ../../../docs/ansible.md:20 +msgid "Depending on your distribution, you may be able to upgrade Ansible in a few different ways:" +msgstr "" + +#: ../../../docs/ansible.md:22 +msgid "by using an additional repository (PPA, etc.), which provides newer Ansible versions. See instructions for [CentOS](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-rhel-centos-or-fedora), [Debian](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-debian), or [Ubuntu](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu) on the Ansible website." +msgstr "" + +#: ../../../docs/ansible.md:24 +msgid "by removing the Ansible package (`yum remove ansible` or `apt-get remove ansible`) and installing via [pip](https://pip.pypa.io/en/stable/installation/) (`pip install ansible`)." +msgstr "" + +#: ../../../docs/ansible.md:26 +msgid "If using the `pip` method, do note that the `ansible-playbook` binary may not be on the `$PATH` (https://linuxconfig.org/linux-path-environment-variable), but in some more special location like `/usr/local/bin/ansible-playbook`. You may need to invoke it using the full path." +msgstr "" + +#: ../../../docs/ansible.md:28 +msgid "**Note**: Both of the above methods are a bad way to run system software such as Ansible. If you find yourself needing to resort to such hacks, please consider reporting a bug to your distribution and/or switching to a sane distribution, which provides up-to-date software." +msgstr "" + +#: ../../../docs/ansible.md:30 +msgid "Using Ansible via Docker" +msgstr "" + +#: ../../../docs/ansible.md:32 +msgid "Alternatively, you can run Ansible inside a Docker container (powered by the [devture/ansible](https://hub.docker.com/r/devture/ansible/) Docker image)." +msgstr "" + +#: ../../../docs/ansible.md:34 +msgid "This ensures that you're using a very recent Ansible version, which is less likely to be incompatible with the playbook." +msgstr "" + +#: ../../../docs/ansible.md:36 +msgid "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)." +msgstr "" + +#: ../../../docs/ansible.md:38 +msgid "Running Ansible in a container on the Matrix server itself" +msgstr "" + +#: ../../../docs/ansible.md:40 +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 "" + +#: ../../../docs/ansible.md:42 +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 "" + +#: ../../../docs/ansible.md:43 +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 "" + +#: ../../../docs/ansible.md:45 +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 "" + +#: ../../../docs/ansible.md:47 +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 "" + +#: ../../../docs/ansible.md:49 +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: `ansible-playbook --connection=community.docker.nsenter …`" +msgstr "" + +#: ../../../docs/ansible.md:51 ../../../docs/ansible.md:71 +msgid "Run this from the playbook's directory:" +msgstr "" + +#: ../../../docs/ansible.md:63 ../../../docs/ansible.md:84 +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:65 ../../../docs/ansible.md:86 +msgid "First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues)." +msgstr "" + +#: ../../../docs/ansible.md:67 +msgid "Finally, you can execute `ansible-playbook …` (or `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:69 +msgid "Running Ansible in a container on another computer (not the Matrix server)" +msgstr "" + +#: ../../../docs/ansible.md:82 +msgid "The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`). If your SSH key is at a different path (not in `$HOME/.ssh/id_rsa`), adjust that part." +msgstr "" + +#: ../../../docs/ansible.md:88 +msgid "Finally, you execute `ansible-playbook …` commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:90 +msgid "If you don't use SSH keys for authentication" +msgstr "" + +#: ../../../docs/ansible.md:92 +msgid "If you don't use SSH keys for authentication, simply remove that whole line (`-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro`)." +msgstr "" + +#: ../../../docs/ansible.md:94 +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 "" + +#: ../../../docs/ansible.md:100 +msgid "Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command." +msgstr "" + +#: ../../../docs/ansible.md:102 +msgid "Resolve directory ownership issues" +msgstr "" + +#: ../../../docs/ansible.md:104 +msgid "Because you're `root` in the container running Ansible and this likely differs fom 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 "" + +#: ../../../docs/ansible.md:106 +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 "" + +#: ../../../docs/ansible.md:110 +msgid "These errors can be resolved by making `git` trust the playbook directory by running `git config --global --add safe.directory /work`" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-captcha.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-captcha.po new file mode 100644 index 000000000..ebdb77ac7 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-captcha.po @@ -0,0 +1,80 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-captcha.md:1 +msgid "(Adapted from the [upstream project](https://github.com/element-hq/synapse/blob/develop/docs/CAPTCHA_SETUP.md))" +msgstr "" + +#: ../../../docs/configuring-captcha.md:3 +msgid "Overview" +msgstr "" + +#: ../../../docs/configuring-captcha.md:5 +msgid "Captcha can be enabled for this home server. This file explains how to do that." +msgstr "" + +#: ../../../docs/configuring-captcha.md:7 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-captcha.md:9 +msgid "ReCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:11 +#: ../../../docs/configuring-captcha.md:37 +msgid "Getting keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:13 +#: ../../../docs/configuring-captcha.md:39 +msgid "Requires a site/secret key pair from:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:15 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:17 +msgid "Must be a reCAPTCHA **v2** key using the \"I'm not a robot\" Checkbox option" +msgstr "" + +#: ../../../docs/configuring-captcha.md:19 +msgid "Setting ReCaptcha keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:21 +msgid "Once registered as above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:35 +msgid "hCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:41 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:43 +msgid "Setting hCaptcha keys" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-dns.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-dns.po new file mode 100644 index 000000000..11c89fd6e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-dns.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-dns.md:1 +msgid "Configuring your DNS settings" +msgstr "" + +#: ../../../docs/configuring-dns.md:3 +msgid "[Prerequisites](prerequisites.md) > Configuring your DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-dns.md:5 +msgid "To set up Matrix on your domain, you'd need to do some DNS configuration." +msgstr "" + +#: ../../../docs/configuring-dns.md:7 +msgid "DNS settings for services enabled by default" +msgstr "" + +#: ../../../docs/configuring-dns.md:9 +msgid "To serve the base domain (`example.com`) and [Element Web](configuring-playbook-client-element-web.md) with the default subdomain, adjust DNS records as below." +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "A" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix-server-IP`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "CNAME" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`element`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-dns.md:16 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "" + +#: ../../../docs/configuring-dns.md:18 +msgid "The `element.example.com` subdomain is necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you by default. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record." +msgstr "" + +#: ../../../docs/configuring-dns.md:20 +msgid "Be mindful as to how long it will take for the DNS records to propagate." +msgstr "" + +#: ../../../docs/configuring-dns.md:22 +msgid "**Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\". Otherwise, fetching certificates will fail." +msgstr "" + +#: ../../../docs/configuring-dns.md:24 +msgid "DNS setting for server delegation (optional)" +msgstr "" + +#: ../../../docs/configuring-dns.md:26 +msgid "In the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-dns.md:28 +msgid "To use such an ID, you don't need to install anything on the actual `example.com` server. Instead, you need to instruct the Matrix network that Matrix services for `example.com` are redirected over to `matrix.example.com`. This redirection is also known as \"delegation\"." +msgstr "" + +#: ../../../docs/configuring-dns.md:30 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-dns.md:32 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-dns.md:33 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-dns.md:35 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file, instead of using a DNS SRV record." +msgstr "" + +#: ../../../docs/configuring-dns.md:37 +msgid "If you choose the recommended method (file-based delegation), you do not need to configure the DNS record to enable server delegation. You will need to add a necessary configuration later, when you [finalize the installation](installing.md#finalize-the-installation) after installing and starting Matrix services." +msgstr "" + +#: ../../../docs/configuring-dns.md:39 +msgid "On the other hand, if you choose this method (setting up a DNS SRV record), you need to configure the additional DNS record as well as adjust SSL certificate handling. Take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-dns.md:43 +msgid "[▶️](getting-the-playbook.md) When you're done with the DNS configuration and ready to proceed, continue with [Getting the playbook](getting-the-playbook.md)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po new file mode 100644 index 000000000..03bd88dfa --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:1 +msgid "Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:3 +msgid "The playbook can install and configure the [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) service for you. It's a [client](https://prometheus.io/docs/alerting/latest/clients/) for Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), allowing you to deliver alerts to Matrix rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:5 +msgid "See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:7 +msgid "This service is meant to be used with an external [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) instance. It's **not** meant to be integrated with the [Prometheus & Grafana stack](./configuring-playbook-prometheus-grafana.md) installed by this playbook, because the Alertmanager component is not installed by it." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:11 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:13 +msgid "This service uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart`) for delivering messages." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:32 +msgid "Join to rooms as the bot manually" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:34 +msgid "ℹ️ **This bot does not accept room invitations automatically**. To deliver messages to rooms, the bot must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:36 +msgid "For each new room you would like the bot to deliver alerts to, invite the bot to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:38 +msgid "Then, log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account, and log out." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:40 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:42 +msgid "By default, this playbook installs matrix-alertmanager-receiver on the `matrix.` subdomain, at the `/matrix-alertmanager-receiver` path (https://matrix.example.com/matrix-alertmanager-receiver). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:44 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-alertmanager-receiver-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:48 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:69 +msgid "Adjusting the matrix-alertmanager-receiver URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:71 +msgid "By tweaking the `matrix_alertmanager_receiver_hostname` and `matrix_alertmanager_receiver_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-alertmanager-receiver.md:73 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:81 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-alertmanager-receiver domain (`alertmanager.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:83 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:85 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:87 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:89 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:91 +msgid "`roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:92 +msgid "`roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_alertmanager_receiver_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:96 +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-alertmanager-receiver.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:111 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:113 +msgid "Configure your Prometheus Alertmanager with configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:132 +msgid "where `URL_HERE` looks like `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:134 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:136 +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-alertmanager-receiver`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:138 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:140 +msgid "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:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po new file mode 100644 index 000000000..a7ab6557f --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:1 +msgid "Setting up Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:3 +msgid "The playbook can install and configure the Appservice Double Puppet service for you. It is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:5 +msgid "This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the appservice method. The service is an implementation of this approach." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:7 +msgid "Previously, bridges supported performing double-puppeting with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:11 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:19 +msgid "There are some additional things you may wish to configure about the service." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:23 +msgid "`roles/custom/matrix-appservice-double-puppet/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_double_puppet_registration_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:38 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:44 +msgid "Installing the service will automatically enable double puppeting for all bridges that support double puppeting via the appservice method." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po new file mode 100644 index 000000000..cf34a967b --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po @@ -0,0 +1,187 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:1 +msgid "Setting up Draupnir for All/D4A (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool for you in appservice mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:5 +msgid "Appservice mode can be used together with the regular [Draupnir bot](configuring-playbook-bot-draupnir.md) or independently. Details about the differences between the 2 modes are described below." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:7 +msgid "Draupnir Appservice mode compared to Draupnir bot mode" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:9 +msgid "The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:11 +msgid "Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All (Even though the commands do show up in help)." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:13 +msgid "Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:15 +msgid "Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:17 +msgid "Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:19 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:21 +msgid "Create a main management room" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:23 +msgid "The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:25 +msgid "Note that the room must be unencrypted." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:27 +msgid "The management room has to be given an alias, and your bot has to be invited to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:29 +msgid "This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:31 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:34 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:36 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:46 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:48 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:50 +msgid "`roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_draupnir_for_all_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:52 +msgid "For example, to change Draupnir's `protectAllJoinedRooms` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:66 +msgid "You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:68 +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:70 +msgid "The playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:72 +msgid "Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyway. It instead touches the config passed to the Draupnirs that your Appservice creates. So the example above (`protectAllJoinedRooms: true`) makes all provisioned Draupnirs protect all joined rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:76 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:91 +msgid "If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have succesfully installed Draupnir for All and can now start using it." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:93 +msgid "The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:95 +msgid "Granting Users the ability to use D4A" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:97 +msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:99 +msgid "The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:101 +msgid "To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:103 +msgid "How to provision a D4A once you are allowed to" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:105 +msgid "To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:107 +msgid "Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-backup-borg.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-backup-borg.po new file mode 100644 index 000000000..5cb3570f2 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-backup-borg.po @@ -0,0 +1,194 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-backup-borg.md:1 +msgid "Setting up BorgBackup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:3 +msgid "The playbook can install and configure [BorgBackup](https://www.borgbackup.org/) (short: Borg) with [borgmatic](https://torsion.org/borgmatic/) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:5 +msgid "BorgBackup is a deduplicating backup program with optional compression and encryption. That means your daily incremental backups can be stored in a fraction of the space and is safe whether you store it at home or on a cloud service." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:9 +msgid "Set up a remote server for storing backups" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:11 +msgid "You will need a remote server where BorgBackup will store the backups. There are hosted, BorgBackup compatible solutions available, such as [BorgBase](https://www.borgbase.com)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:13 +msgid "Check the Postgres version" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:15 +msgid "By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), backups with BorgBackup will also include dumps of your Postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:17 +msgid "Unless you disable the Postgres-backup support, make sure that the Postgres version of your homeserver's database is compatible with borgmatic. You can check the compatible versions [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:19 +msgid "An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for BorgBackup using the `backup_borg_postgresql_enabled` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:21 +msgid "Create a new SSH key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:23 +msgid "Run the command below on any machine to create a new SSH key:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:29 +msgid "You don't need to place the key in the `.ssh` folder." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:31 +msgid "Add the public key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:33 +msgid "Next, add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your BorgBackup provider/server." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:35 +msgid "If you are using a hosted solution, follow their instructions. If you have your own server, copy the key to it with the command like below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:45 +msgid "The **private** key needs to be added to `backup_borg_ssh_key_private` on your `inventory/host_vars/matrix.example.com/vars.yml` file as below." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:47 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:49 +msgid "To enable BorgBackup, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:76 +msgid "**Note**: `REPO` will be initialized on backup start, for example: `matrix`. See [Remote repositories](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls) for the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:78 +msgid "Set backup archive name (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:80 +msgid "You can specify the backup archive name format. To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:86 +msgid "Configure retention policy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:88 +msgid "It is also possible to configure a retention strategy. To configure it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:98 +msgid "Edit the backup schedule (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:100 +msgid "By default the backup will run 4 a.m. every day based on the `backup_borg_schedule` variable. It is defined in the format of systemd timer calendar." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:102 +msgid "To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:108 +msgid "**Note**: the actual job may run with a delay. See `backup_borg_schedule_randomized_delay_sec` [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/f5d5b473d48c6504be10b3d946255ef5c186c2a6/defaults/main.yml#L50) for its default value." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:110 +msgid "Set include and/or exclude directories (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:112 +msgid "`backup_borg_location_source_directories` defines the list of directories to back up. It's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:114 +msgid "You might also want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:116 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:118 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:120 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:122 +msgid "[backup_borg role](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/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 `backup_borg_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:124 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:126 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:133 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:135 +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-backup-borg.md:137 +msgid "Manually start a backup" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:139 +msgid "Sometimes it can be helpful to run the backup as you'd like, avoiding to wait until 4 a.m., like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:141 +msgid "If you want to run it immediately, log in to the server with SSH and run `systemctl start matrix-backup-borg`." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:143 +msgid "This will not return until the backup is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po new file mode 100644 index 000000000..df0ffc237 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:1 +msgid "Serving the base domain (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`), but has it configured so that it presents itself as the base domain (`example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:5 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation / redirection can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:7 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:8 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:10 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:12 +msgid "However, those who don't have a separate server to dedicate to the base domain have trouble arranging this." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:14 +msgid "Usually, there are 2 options:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:16 +msgid "either get a separate server for the base domain, just for serving the files necessary for [Server Delegation via a well-known file](howto-server-delegation.md#server-delegation-via-a-well-known-file)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:18 +msgid "or, arrange for the Matrix server to serve the base domain. This either involves you [using your own webserver](configuring-playbook-own-webserver.md) or making the integrated webserver serve the base domain for you." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:20 +msgid "This documentation page tells you how to do the latter. With some easy changes, we make it possible to serve the base domain from the Matrix server via the integrated webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:22 +msgid "Just [**adjust your DNS records**](configuring-dns.md), so that your base domain is pointed to the Matrix server's IP address (using a DNS `A` record) **and then add the following configuration** to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:28 +msgid "Doing this, the playbook will:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:30 +msgid "obtain an SSL certificate for the base domain, just like it does for all other domains (see [how we handle SSL certificates](configuring-playbook-ssl-certificates.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:32 +msgid "serve the `/.well-known/matrix/*` files which are necessary for [Federation Server Discovery](configuring-well-known.md#federation-server-discovery) (also see [Server Delegation](howto-server-delegation.md)) and [Client-Server discovery](configuring-well-known.md#client-server-discovery)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:34 +msgid "serve a simple homepage at `https://example.com` with content `Hello from example.com` (configurable via the `matrix_static_files_file_index_html_template` variable). You can also [serve a more complicated static website](#serving-a-static-website-at-the-base-domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:36 +msgid "Serving a static website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:38 +msgid "By default, when \"serving the base domain\" is enabled, the playbook hosts a simple `index.html` webpage at `/matrix/static-files/public/index.html`. The content of this page is taken from the `matrix_static_files_file_index_html_template` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:40 +msgid "If you'd like to host your own static website (more than a single `index.html` page) at the base domain, you can disable the creation of this default `index.html` page like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:54 +msgid "With this configuration, Ansible will no longer mess around with the `/matrix/static-files/public/index.html` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:56 +msgid "You are then free to upload any static website files to `/matrix/static-files/public` and they will get served at the base domain. You can do so manually or by using the [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role, which is part of this playbook already." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:58 +msgid "Serving a more complicated website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:60 +msgid "If you'd like to serve an even more complicated (dynamic) website from the Matrix server, relying on the playbook to serve the base domain is not the best choice." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:62 +msgid "You have 2 options." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:64 +msgid "**One way is to host your base domain elsewhere**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:65 +msgid "you stopping to serve it from the Matrix server: remove `matrix_static_files_container_labels_base_domain_enabled` from your configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:66 +msgid "[configuring Matrix Delegation via well-known](./configuring-well-known.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:68 +msgid "**Another way is to serve the base domain from another (your own) container on the Matrix server**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:69 +msgid "telling the playbook to only serve `example.com/.well-known/matrix` files by adjusting your `vars.yml` configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:70 +msgid "keep `matrix_static_files_container_labels_base_domain_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:71 +msgid "add an extra: `matrix_static_files_container_labels_base_domain_traefik_path_prefix: /.well-known/matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:72 +msgid "building and running a new container on the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:73 +msgid "it should be connected to the `traefik` network, so that Traefik can reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:74 +msgid "it should have appropriate [container labels](https://docs.docker.com/config/labels-custom-metadata/), which instruct Traefik to reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:76 +msgid "How you'll be managing building and running this container is up-to-you. You may use of the primitives from [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role to organize it yourself, or you can set it up in another way." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po new file mode 100644 index 000000000..e73266c27 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po @@ -0,0 +1,449 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-baibot.md:1 +msgid "Setting up baibot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:8 +msgid "🤖 [baibot](https://github.com/etkecc/baibot) (pronounced bye-bot) is a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:10 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as many well as other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:12 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to [matrix-chatgpt-bot](./configuring-playbook-bot-chatgpt.md). See the [baibot](https://github.com/etkecc/baibot) project and its documentation for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:14 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:16 +msgid "API access to one or more LLM [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:20 +msgid "There are **a lot of configuration options** (some required, some possibly required, some optional), so they're **split into multiple sections below**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:23 +msgid "[Base configuration](#base-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:24 +msgid "[👮‍♂️ Administrator configuration](#️-administrator-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:25 +msgid "[👥 Initial users configuration](#-initial-users-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:26 +msgid "[🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:27 +msgid "[🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:29 +msgid "Depending on your current `vars.yml` file and desired configuration, **you may require more than just the [base configuration](#base-configuration)**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:31 +msgid "Base configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:33 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:71 +msgid "As mentioned above, **this may not be enough**. Continue with the configuration sections below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:73 +msgid "👮‍♂️ Administrator configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:75 +#: ../../../docs/configuring-playbook-bot-baibot.md:99 +msgid "This is an addition to the [base configuration](#base-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:77 +msgid "To specify who is considered a bot [👮‍♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:79 +msgid "If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:81 +#: ../../../docs/configuring-playbook-bot-baibot.md:110 +msgid "**If necessary**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:95 +msgid "👥 Initial users configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:97 +msgid "By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:101 +msgid "To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:103 +msgid "define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:104 +msgid "configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:106 +msgid "Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:108 +msgid "**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:122 +msgid "🤖 Configuring agents via Ansible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:124 +msgid "You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:126 +msgid "Privileged users (like the [👮‍♂️ Administrator](#️-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:128 +msgid "The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:130 +msgid "Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:132 +msgid "Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:134 +msgid "Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:136 +msgid "Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:138 +msgid "Anthropic" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:140 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:142 +#: ../../../docs/configuring-playbook-bot-baibot.md:166 +#: ../../../docs/configuring-playbook-bot-baibot.md:197 +#: ../../../docs/configuring-playbook-bot-baibot.md:225 +msgid "Here's an example **addition** to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:158 +#: ../../../docs/configuring-playbook-bot-baibot.md:189 +#: ../../../docs/configuring-playbook-bot-baibot.md:215 +#: ../../../docs/configuring-playbook-bot-baibot.md:243 +msgid "If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:160 +#: ../../../docs/configuring-playbook-bot-baibot.md:191 +#: ../../../docs/configuring-playbook-bot-baibot.md:217 +#: ../../../docs/configuring-playbook-bot-baibot.md:245 +msgid "💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:162 +msgid "Groq" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:164 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:187 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:193 +msgid "Mistral" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:195 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:213 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:219 +msgid "OpenAI" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:221 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:223 +msgid "The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:241 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:247 +msgid "OpenAI Compatible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:249 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:251 +msgid "This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:253 +msgid "Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:255 +msgid "As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:257 +msgid "Configuring additional agents (without a preset)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:259 +msgid "The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:261 +msgid "It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:263 +msgid "You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:265 +msgid "Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:304 +msgid "Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:306 +msgid "💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:308 +msgid "As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:310 +msgid "💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:312 +msgid "🤝 Configuring initial default handlers" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:314 +msgid "This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:316 +msgid "If you're not configuring agents via Ansible, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:318 +msgid "This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:320 +msgid "baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:322 +msgid "[💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:324 +msgid "[🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:326 +msgid "[🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:328 +msgid "[🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:330 +msgid "❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:332 +msgid "[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:334 +msgid "This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:336 +msgid "You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:338 +msgid "Example **additional** `vars.yml` configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:355 +msgid "**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:357 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:359 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:361 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:363 +msgid "`roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:364 +msgid "`roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:366 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:368 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:375 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:377 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:379 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:381 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:383 +msgid "If you change the bot password (`matrix_bot_baibot_config_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:385 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:387 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:389 +msgid "If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:391 +msgid "After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:393 +msgid "If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:395 +msgid "Send `!bai help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:397 +msgid "You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:399 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:401 +msgid "As with all other services, you can find service logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-baibot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:403 +msgid "The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:417 +msgid "**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po new file mode 100644 index 000000000..0801dc12e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:1 +msgid "Setting up Buscarron (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:3 +msgid "The playbook can install and configure [Buscarron](https://github.com/etkecc/buscarron) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:5 +msgid "Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/buscarron/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:11 +msgid "By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to create a CNAME record for `buscarron`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:40 +msgid "Adjusting the Buscarron URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:42 +msgid "By tweaking the `matrix_bot_buscarron_hostname` and `matrix_bot_buscarron_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-bot-buscarron.md:44 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:55 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:57 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:59 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:61 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:63 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:65 +msgid "`roles/custom/matrix-bot-buscarron/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:67 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:69 +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-bot-buscarron.md:76 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:78 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:80 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:82 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:84 +msgid "If you change the bot password (`matrix_bot_buscarron_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_buscarron_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:86 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:88 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.buscarron:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:90 +msgid "After the bot joins the room, anyone can call the web form via HTTP POST method." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:92 +msgid "Here is an example for the `contact` form:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:100 +msgid "**Note**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:102 +msgid "you hit the homepage (HTTP `GET` request to `/`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:103 +msgid "you submit a form to the wrong URL (`POST` request to `/non-existing-form`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:104 +msgid "`hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:106 +msgid "If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:110 +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-bot-buscarron`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:112 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:114 +msgid "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:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po new file mode 100644 index 000000000..f6026ed18 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po @@ -0,0 +1,130 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:1 +msgid "Setting up matrix-bot-chatgpt (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:3 +msgid "**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](https://github.com/etkecc/baibot), which can be installed using [this playbook](configuring-playbook-bot-baibot.md). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:5 +msgid "The playbook can install and configure [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:7 +msgid "Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client!" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:11 +msgid "Obtain an OpenAI API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:13 +msgid "To use the bot, you'd need to obtain an API key from [https://platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:15 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:17 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:19 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:21 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:27 +msgid "Obtain an access token and create encryption keys" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:29 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:31 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:34 +msgid "To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [Element documentation](https://element.io/help#encryption6)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:36 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:38 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `API_KEY_HERE` with the API key retrieved [here](#obtain-an-openai-api-key) and `ACCESS_TOKEN_HERE` with the access token created [here](#obtain-an-access-token-and-create-encryption-keys), respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:55 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:57 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:64 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:66 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:68 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:70 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:72 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:74 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.chatgpt:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:76 +msgid "After the bot joins the room, you can send a message to it. When you do so, use the prefix if you configured it or mention the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:78 +msgid "You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po new file mode 100644 index 000000000..0b48da629 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po @@ -0,0 +1,410 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:1 +msgid "Setting up Draupnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:5 +msgid "See the project's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:7 +msgid "This documentation page is about installing Draupnir in bot mode. As an alternative, you can run a multi-instance Draupnir deployment by installing [Draupnir in appservice mode](./configuring-playbook-appservice-draupnir-for-all.md) (called Draupnir-for-all) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:9 +msgid "If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:13 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:15 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:17 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:20 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:22 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:24 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:26 +msgid "Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:28 +msgid "Refer to Draupnir's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#protecting-encrypted-rooms) for more details about why you might want to care about encryption support for protected rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:30 +msgid "Disable Pantalaimon for Draupnir (since v2.0.0; optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:32 +msgid "It is known that running Draupnir along with Pantalaimon breaks all workflows that involve answering prompts with reactions." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:34 +msgid "If you are updating Draupnir from v1.x.x and have enabled Pantalaimon for it, you can disable Pantalaimon in favor of the native E2EE support. To disable Pantalaimon, remove the configuration `matrix_bot_draupnir_pantalaimon_use: true` from your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:36 +msgid "**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:38 +msgid "Native E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:40 +msgid "To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:42 +msgid "Note that native E2EE requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. **The access token obtained via Element Web does not work with it**. Refer to the documentation on [how to obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:44 +msgid "To enable the native E2EE support, add the following configuration to your `vars.yml` file. Make sure to replace `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:55 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:57 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:76 +msgid "Create and invite the bot to the management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:78 +msgid "Before proceeding to the next step, run the playbook with the following command to create the bot user." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:84 +msgid "**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:86 +msgid "Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:88 +msgid "Make sure the account is free from rate limiting (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:90 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:92 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:94 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:96 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:98 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:100 +msgid "To expose the APIs publicly, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:106 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:108 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:110 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:113 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:115 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:117 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:118 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:119 +msgid "`@bot.draupnir:example.com` with the MXID of your Draupnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:125 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:126 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:127 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:129 +msgid "Abuse Reports" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:131 +msgid "Draupnir can receive reports in the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:133 +msgid "The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:145 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:147 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:149 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:151 +msgid "`roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:153 +msgid "For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:167 +msgid "Migrating from Mjolnir (Only required if migrating)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:169 +msgid "Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:171 +msgid "Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:173 +msgid "That is all you need to do due to that Draupnir can complete migration on its own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:184 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:186 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:188 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:190 +msgid "You can refer to the upstream [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) for additional ways to use and configure Draupnir and for a more detailed usage guide." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:192 +msgid "Below is a **non-exhaustive quick-start guide** for the impatient." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:194 +msgid "Making Draupnir join and protect a room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:196 +msgid "Draupnir can be told to self-join public rooms, but it's better to follow this flow which works well for all kinds of rooms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:198 +msgid "Invite the bot to the room manually ([inviting Draupnir to rooms](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#inviting-draupnir-to-rooms)). Before joining, the bot *may* ask for confirmation in the Management Room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:200 +msgid "[Give the bot permissions to do its job](#giving-draupnir-permissions-to-do-its-job)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:202 +msgid "Tell it to protect the room (using the [rooms command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#using-the-draupnir-rooms-command)) by sending the following command to the Management Room: `!draupnir rooms add !qporfwt:example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:204 +msgid "To have Draupnir provide useful room protection, you need do to a bit more work (at least the first time around). You may wish to [Subscribe to a public policy list](#subscribing-to-a-public-policy-list), [Create your own own policy and rules](#creating-your-own-policy-lists-and-rules) and [Enabling built-in protections](#enabling-built-in-protections)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:206 +msgid "Giving Draupnir permissions to do its job" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:208 +msgid "For Draupnir to do its job, you need to [give it permissions](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#giving-draupnir-permissions) in rooms it's protecting. This involves **giving it an Administrator power level**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:210 +msgid "**We recommend setting this power level as soon as the bot joins your room** (and before you create new rules), so that it can apply rules as soon as they are available. If the bot is under-privileged, it may fail to apply protections and may not retry for a while (or until your restart it)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:212 +msgid "Subscribing to a public policy list" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:214 +msgid "We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:216 +msgid "Polcy lists are maintained in Matrix rooms. A popular policy list is maintained in the public `#community-moderation-effort-bl:neko.dev` room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:218 +msgid "You can tell Draupnir to subscribe to it by sending the following command to the Management Room: `!draupnir watch #community-moderation-effort-bl:neko.dev`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:220 +msgid "Creating your own policy lists and rules" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:222 +msgid "We also recommend **creating your own policy lists** with the [list create](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-list-create-command-to-create-a-policy-room) command." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:224 +msgid "You can do so by sending the following command to the Management Room: `!draupnir list create my-bans my-bans-bl`. This will create a policy list having a name (shortcode) of `my-bans` and stored in a public `#my-bans-bl:example.com` room on your server. As soon as you run this command, the bot will invite you to the policy list room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:226 +msgid "A policy list does nothing by itself, so the next step is **adding some rules to your policy list**. Policies target a so-called `entity` (one of: `user`, `room` or `server`). These entities are mentioned on the [policy lists](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) documentation page and in the Matrix Spec [here](https://spec.matrix.org/v1.11/client-server-api/#mban-recommendation)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:228 +msgid "The simplest and most useful entity to target is `user`. Below are a few examples using the [ban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-ban-command) and targeting users." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:230 +msgid "To create rules, you run commands in the Management Room (**not** in the policy list room)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:232 +msgid "(ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:233 +msgid "(ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server - all users are fake`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:235 +msgid "As a result of running these commands, you may observe:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:237 +msgid "Draupnir creating `m.policy.rule.user` state events in the `#my-bans-bl:example.com` room on your server" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:238 +msgid "applying these rules against all rooms that Draupnir is an Administrator in" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:240 +msgid "You can undo bans with the [unban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-unban-command)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:242 +msgid "Enabling built-in protections" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:244 +msgid "You can also **turn on various built-in [protections](https://the-draupnir-project.github.io/draupnir-documentation/protections)** like `JoinWaveShortCircuit` (\"If X amount of users join in Y time, set the room to invite-only\")." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:246 +msgid "To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:248 +msgid "To **see the configuration options for a given protection**, send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:250 +msgid "To **set a specific option for a given protection**, send a command like this: `!draupnir config set PROTECTION_NAME.OPTION VALUE` (e.g. `!draupnir config set JoinWaveShortCircuit.timescaleMinutes 30`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:252 +msgid "To **enable a given protection**, send a command like this: `!draupnir enable PROTECTION_NAME` (e.g. `!draupnir enable JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:254 +msgid "To **disable a given protection**, send a command like this: `!draupnir disable PROTECTION_NAME` (e.g. `!draupnir disable JoinWaveShortCircuit`)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po new file mode 100644 index 000000000..edfaf144d --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po @@ -0,0 +1,154 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:1 +msgid "Setting up Go-NEB (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:3 +msgid "**Note**: [Go-NEB](https://github.com/matrix-org/go-neb) is now an archived (**unmaintained**) project. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:5 +msgid "The playbook can install and configure [Go-NEB](https://github.com/matrix-org/go-neb) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:7 +msgid "Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/go-neb/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:13 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:32 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:34 +msgid "By default, this playbook installs Go-NEB on the `goneb.` subdomain (`goneb.example.com`) and requires you to create a CNAME record for `goneb`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:36 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:38 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:40 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_GONEB_HERE` and `ACCESS_TOKEN_FOR_ANOTHER_GONEB_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:204 +msgid "Adjusting the Go-NEB URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:206 +msgid "By tweaking the `matrix_bot_go_neb_hostname` and `matrix_bot_go_neb_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-bot-go-neb.md:208 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:219 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:221 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:223 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:225 +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-bot-go-neb.md:232 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:234 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:236 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:238 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:240 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:242 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @bot.go-neb:example.com` where `example.com` is your base domain, not the `matrix.` domain). Make sure you are granted with the sufficient permission if you are not the room owner." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:244 +msgid "Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:246 +msgid "If you enabled the github_cmd service, send `!github help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:248 +msgid "You can also refer to the upstream [Documentation](https://github.com/matrix-org/go-neb)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po new file mode 100644 index 000000000..355bfcd89 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po @@ -0,0 +1,126 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:1 +msgid "Setting up Honoroit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:3 +msgid "The playbook can install and configure [Honoroit](https://github.com/etkecc/honoroit) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:5 +msgid "It's a bot you can use to setup **your own helpdesk on matrix**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/honoroit/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:11 +msgid "By default, this playbook installs Honoroit on the `matrix.` subdomain, at the `/honoroit` path (https://matrix.example.com/honoroit). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-honoroit-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:32 +msgid "Adjusting the Honoroit URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:34 +msgid "By tweaking the `matrix_bot_honoroit_hostname` and `matrix_bot_honoroit_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-bot-honoroit.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:44 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Honoroit domain (`honoroit.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:46 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:50 +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-bot-honoroit.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:61 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:65 +msgid "If you change the bot password (`matrix_bot_honoroit_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_honoroit_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:69 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @honoroit:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:71 +msgid "After the bot joins the room, any Matrix user can send a message to it to start a new thread in that room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:73 +msgid "Send `!ho help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:75 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/honoroit#features)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po new file mode 100644 index 000000000..3471823b4 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po @@ -0,0 +1,102 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-23 13:09+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:1 +msgid "Setting up matrix-registration-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:3 +msgid "The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:5 +msgid "The bot allows you to easily **create and manage registration tokens** aka. invitation codes. It can be used for an invitation-based server, where you invite someone by sending them a registration token (tokens look like this: `rbalQ0zkaDSRQCOp`). They can register as per normal but have to provide a valid registration token in the final step of the registration process." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:7 +msgid "See the project's [documentation](https://github.com/moan0s/matrix-registration-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:30 +msgid "The bot account will be created automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:45 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:49 +msgid "If you change the bot password (`matrix_bot_matrix_registration_bot_bot_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_registration_bot_bot_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:53 +msgid "To use the bot, start a chat with `@bot.matrix-registration-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:55 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:57 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:59 +msgid "If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:61 +msgid "To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po new file mode 100644 index 000000000..84f39a049 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-23 13:09+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:1 +msgid "Setting up matrix-reminder-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:3 +msgid "The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:5 +msgid "It's a bot you can use to **schedule one-off & recurring reminders and alarms**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:7 +msgid "See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:39 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:43 +msgid "If you change the bot password (`matrix_bot_matrix_reminder_bot_matrix_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_reminder_bot_matrix_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:45 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:47 +msgid "To use the bot, start a chat with `@bot.matrix-reminder-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:49 +msgid "You can also add the bot to any existing Matrix room (`/invite @bot.matrix-reminder-bot:example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:51 +msgid "Basic usage is like this: `!remindme in 2 minutes; This is a test`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:53 +msgid "Send `!help reminders` to the room to see the bot's help menu for additional commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:55 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po new file mode 100644 index 000000000..3cd9e33f9 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po @@ -0,0 +1,167 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-maubot.md:1 +msgid "Setting up maubot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:3 +msgid "The playbook can install and configure [maubot](https://github.com/maubot/maubot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:5 +msgid "After setting up maubot, you can use the web management interface to make it do things. The default location of the management interface is `matrix.example.com/_matrix/maubot/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/maubot/usage/basic.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:11 +msgid "By default, this playbook installs maubot on the `matrix.` subdomain, at the `/_matrix/maubot/` path (https://matrix.example.com/_matrix/maubot/). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-maubot-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:32 +msgid "You can add multiple admins. The admin accounts are only used to access the maubot administration interface." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:34 +msgid "Adjusting the maubot URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:36 +msgid "By tweaking the `matrix_bot_maubot_hostname` and `matrix_bot_maubot_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-bot-maubot.md:38 +#: ../../../docs/configuring-playbook-bot-maubot.md:56 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the maubot domain (`maubot.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:50 +msgid "Customizing the maubot container image" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:52 +msgid "Certain [maubot plugins](https://plugins.mau.bot/) require additional dependencies to be installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:54 +msgid "You can customize the default maubot container image and install your own dependencies." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:67 +msgid "Consult the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/) for more information about the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:69 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:71 +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-bot-maubot.md:78 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:80 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:82 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:84 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:86 +msgid "If you change the bot password (`matrix_bot_maubot_initial_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_maubot_initial_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:88 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:90 +msgid "By default, you can visit `matrix.example.com/_matrix/maubot/` to manage your available plugins, clients and instances." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:92 +msgid "You should start in the following order" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:93 +msgid "**Create one or more clients**: A client is a Matrix account which the bot will use to message. By default, the playbook creates a `bot.maubot` account (as per the configuration above). You only need to [obtain an access token](#obtaining-an-access-token) for it" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:94 +msgid "**Upload some Plugins**: Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:95 +msgid "**Create an instance**: An instance is the actual bot. You have to specify a client which the bot instance will use and the plugin (how the bot will behave)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:97 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:99 +msgid "This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:101 +msgid "Alternatively, you can refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will causes issues to your bot in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:103 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po new file mode 100644 index 000000000..4240cbd70 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po @@ -0,0 +1,272 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:1 +msgid "Setting up Mjolnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:3 +msgid "The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/mjolnir/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:9 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:11 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:13 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:15 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:21 +msgid "If you would like Mjolnir to be able to deactivate users, move aliases, shutdown rooms, etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:23 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:25 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:27 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:52 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:30 +msgid "Make sure the account is free from rate limiting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:32 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a required step. If you do not configure it, Mjolnir will crash.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:34 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:36 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:38 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:40 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:42 +msgid "To expose the APIs publicly, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:48 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:50 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). If you have made Mjolnir an admin, you can just use the Mjolnir token." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:55 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:57 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:59 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:60 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:61 +msgid "`@bot.mjolnir:example.com` with the MXID of your Mjolnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:67 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:184 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:68 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:69 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:71 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:73 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:75 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:78 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you MUST enable and use Pantalaimon (see [below](#configuration-with-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:80 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:82 +msgid "Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:84 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:86 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:95 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:97 +msgid "Decide whether you want Mjolnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:99 +msgid "To support E2EE, Mjolnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:101 +msgid "Configuration with E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:103 +msgid "When using Pantalaimon, Mjolnir will log in to its bot account itself through Pantalaimon, so configure its username and password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:105 +msgid "Add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:119 +msgid "The playbook's `group_vars` will configure other required settings. If using this role separately without the playbook, you also need to configure the two URLs that Mjolnir uses to reach the homeserver, one through Pantalaimon and one \"raw\". This example is taken from the playbook's `group_vars`:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:131 +msgid "Configuration without E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:133 +msgid "When NOT using Pantalaimon, Mjolnir does not log in by itself and you must give it an access token for its bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:135 +msgid "Add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:141 +msgid "Adding Mjolnir synapse antispam module (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:143 +msgid "To enable Mjolnir synapse antispam module, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:153 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:155 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:157 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:159 +msgid "`roles/custom/matrix-bot-mjolnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_mjolnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:161 +msgid "For example, to change Mjolnir's `recordIgnoredInvites` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:186 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:188 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:190 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:192 +msgid "If you change the Pantalaimon's password (`matrix_bot_mjolnir_pantalaimon_password` in your `vars.yml` file) subsequently, its credentials on the homeserver won't be updated automatically. If you'd like to change the password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_mjolnir_pantalaimon_password` to let Pantalaimon know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:194 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:196 +msgid "You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure Mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po new file mode 100644 index 000000000..d01bea0f4 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po @@ -0,0 +1,171 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:1 +msgid "Setting up Appservice Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:4 +msgid "For using as a Bot we are recommend the Appservice Discord bridge (the one being discussed here), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:5 +msgid "For personal use we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:7 +msgid "The playbook can install and configure [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:13 +msgid "Create a Discord Application [here](https://discordapp.com/developers/applications). Then retrieve Client ID, and create a bot from the Bot tab and retrieve the Bot token." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:17 +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-discord.md:31 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:33 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:40 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:42 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:44 +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-discord.md:46 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:48 +msgid "Self-Service Bridging (Manual)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:50 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:56 +msgid "**Note**: If self-service bridging is not enabled, `!discord help` commands will return no results." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:58 +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:82 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:60 +msgid "Once self-service is enabled, start a chat with `@_discord_bot:example.com` and say `!discord help bridge`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:62 +msgid "Then, follow the instructions in the help output message." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:64 +msgid "If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:66 +msgid "On the Discord side, send `!matrix help` to the bot to see the available commands for managing the bridge and Matrix users." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:68 +msgid "**Note**: Encrypted Matrix rooms are not supported as of writing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:70 +msgid "Portal Bridging (Automatic)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:72 +msgid "Through portal bridging, Matrix rooms will automatically be created by the bot and bridged to the relevant Discord room. This is done by simply joining a room with a specific name pattern (`#_discord__`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:74 +msgid "All Matrix rooms created this way are **listed publicly** by default, and you will not have admin permissions to change this. To get more control, [make yourself a room Administrator](#getting-administrator-access-in-a-portal-bridged-room). You can then unlist the room from the directory and change the join rules." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:76 +msgid "To disable portal bridging, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:84 +msgid "To get started with Portal Bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:87 +msgid "Room addresses follow this syntax: `#_discord__`. 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//`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:88 +msgid "Once you have figured out the appropriate room address, you can join by doing `/join #_discord__` in your Matrix client." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:90 +msgid "Getting Administrator access in a portal bridged room" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:92 +msgid "By default, you won't have Administrator access in rooms created by the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:94 +msgid "To adjust room access privileges or do various other things (change the room name subsequently, etc.), you'd wish to become an Administrator." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:96 +msgid "There's the Discord bridge's guide for [setting privileges on bridge managed rooms](https://github.com/matrix-org/matrix-appservice-discord/blob/master/docs/howto.md#set-privileges-on-bridge-managed-rooms). To do the same with our container setup, run the following command on the server:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po new file mode 100644 index 000000000..f4723b399 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:1 +msgid "Setting up Appservice IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:5 +msgid "The playbook can install and configure the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:11 +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-irc.md:63 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:65 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:72 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:74 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:76 +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-irc.md:78 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:80 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:82 +msgid "To use the bridge, you need to start a chat with `@irc_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po new file mode 100644 index 000000000..71073c449 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po @@ -0,0 +1,122 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:1 +msgid "Setting up Appservice Kakaotalk bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:3 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:5 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:7 +msgid "[!WARNING] There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:10 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:12 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:14 +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:16 +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:18 +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:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:22 +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:28 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:30 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:32 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:34 +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:35 +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:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:50 +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:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:56 +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:58 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po new file mode 100644 index 000000000..0a6f24be3 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po @@ -0,0 +1,268 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:1 +msgid "Setting up Appservice Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:3 +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:89 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:4 +msgid "Bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:5 +msgid "Currently (as of November, 2024) **this component is not available for new installation unless you have already created a classic Slack application** (which the bridge makes use of in order to enable bridging between Slack and Matrix), because the creation of classic Slack applications has been discontinued since June 4 2024. The author of the bridge claims [here](https://github.com/matrix-org/matrix-appservice-slack/issues/789#issuecomment-2172947787) that he plans to support the modern Slack application and until then \"the best (and only) option for new installations is to use the webhook bridging\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:7 +msgid "The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:13 +msgid "Create a Classic Slack App" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:15 +msgid "First, you need to create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:17 +msgid "Name the app \"matrixbot\" (or anything else you'll remember). Select the team/workspace this app will belong to. Click on bot users and add a new bot user. We will use this account to bridge the the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:19 +msgid "Then, click on Event Subscriptions and enable them and use the request url: `https://matrix.example.com/appservice-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:21 +msgid "Add the following events as `Bot User Events` and save:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:23 +msgid "team_domain_change" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:24 +msgid "message.channels" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:25 +msgid "message.groups (if you want to bridge private channels)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:26 +msgid "reaction_added" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:27 +msgid "reaction_removed" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:29 +msgid "Next, click on \"OAuth & Permissions\" and add the following scopes:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:31 +msgid "chat:write:bot" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:32 +msgid "users:read" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:33 +msgid "reactions:write" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:34 +msgid "files:write:user (if you want to bridge files)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:36 +msgid "**Note**: In order to make Slack files visible to Matrix users, this bridge will make Slack files visible to anyone with the url (including files in private channels). This is different than the current behavior in Slack, which only allows authenticated access to media posted in private channels. See MSC701 for details." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:38 +msgid "Click on \"Install App\" and \"Install App to Workspace\". Note the access tokens shown. You will need the Bot User OAuth Access Token and if you want to bridge files, the OAuth Access Token whenever you link a room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:40 +msgid "Create an administration control room on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:42 +msgid "Create a new Matrix room to act as the administration control room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:44 +msgid "Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing \"view source\". The room ID will be displayed near the top." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:48 +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-slack.md:64 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:66 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:68 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:70 +msgid "`roles/custom/matrix-bridge-appservice-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:71 +msgid "`roles/custom/matrix-bridge-appservice-slack/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_slack_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:73 +msgid "For example, to change the bot's username from `slackbot`, add the following configuration to your `vars.yml` file. Replace `examplebot` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:80 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:82 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:91 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:93 +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-slack.md:95 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:97 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:99 +msgid "To use the bridge, you need to send `/invite @slackbot:example.com` to invite the bridge bot user into the admin room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:101 +msgid "If Team Sync is not enabled, for each channel you would like to bridge, perform the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:103 +msgid "Create a Matrix room in the usual manner for your client. Take a note of its Matrix room ID — it will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:104 +msgid "Invite the bot user to both the Slack and Matrix channels you would like to bridge using `/invite @matrixbot` for Slack and `/invite @slackbot:example.com` for Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:105 +msgid "Determine the \"channel ID\" that Slack uses to identify the channel. You can see it when you open a given Slack channel in a browser. The URL reads like this: `https://app.slack.com/client/XXX//details/`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:106 +msgid "Issue a link command in the administration control room with these collected values as arguments:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:108 +msgid "with file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:114 +msgid "without file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:120 +msgid "These arguments can be shortened to single-letter forms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:126 +msgid "Unlinking" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:128 +msgid "Channels can be unlinked again by sending this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:134 +msgid "Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave the bridged Matrix room. So in case you want to re-link later, don't forget to re-invite the slackbot into this room again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:138 +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-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:140 +msgid "Linking: \"Room is now pending-name\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:142 +msgid "This typically means that you haven't used the correct Slack channel ID. Unlink the room and recheck 'Determine the \"channel ID\"' from above." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:144 +msgid "Messages work from Matrix to Slack, but not the other way around" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:146 +msgid "Check the logs, and if you find the message like below, unlink your room, reinvite the bot and re-link it again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:148 +#, python-format +msgid "`WARN SlackEventHandler Ignoring message from unrecognised Slack channel ID : %s (%s) `" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:150 +msgid "This may particularly hit you, if you tried to unsuccessfully link your room multiple times without unlinking it after each failed attempt." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po new file mode 100644 index 000000000..f9a42b739 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:1 +msgid "Setting up Appservice Webhooks bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:3 +msgid "**Note**: This bridge has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:5 +msgid "The playbook can install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:7 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-appservice-webhooks/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:11 +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-webhooks.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:36 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:38 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:40 +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-webhooks.md:42 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:44 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:46 +msgid "To use the bridge, you need to invite the bridge bot user to your room in either way." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:48 +msgid "Send `/invite @_webhook:example.com` (**Note**: Make sure you have administration permissions in your room)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:49 +msgid "Add the bridge bot to a private channel (personal channels imply you being an administrator)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:51 +msgid "You then need to send a message to the bridge bot to receive a private message including the webhook link:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:57 +msgid "The JSON body for posting messages will have to look like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:68 +msgid "You can test this via curl like so:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:81 +msgid "Setting Webhooks with Dimension integration manager" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:83 +msgid "If you're using the [Dimension integration manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge with it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:85 +msgid "To configure it, open the Dimension integration manager, and go to \"Settings\" and \"Bridges\", then select edit action for \"Webhook Bridge\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:87 +msgid "On the UI, press \"Add self-hosted Bridge\" button and populate \"Provisioning URL\" and \"Shared Secret\" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po new file mode 100644 index 000000000..f33b5ad94 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po @@ -0,0 +1,126 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:1 +msgid "Setting up Beeper Linkedin bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:3 +msgid "The playbook can install and configure [beeper-linkedin](https://github.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:5 +msgid "See the project's [documentation](https://github.com/beeper/linkedin/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:9 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:11 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:13 +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-beeper-linkedin.md:15 +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-beeper-linkedin.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:19 +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-beeper-linkedin.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_beeper_linkedin_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:46 +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-beeper-linkedin.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:52 +msgid "To use the bridge, you need to start a chat with `@linkedinbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:54 +msgid "You then need to send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:56 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:58 +msgid "Bridge asking for 2FA even if you don't have 2FA enabled" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:60 +msgid "If you don't have 2FA enabled and are logging in from a strange IP for the first time, LinkedIn will send an email with a one-time code. You can use this code to authorize the bridge session. In my experience, once the IP is authorized, you will not be asked again." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po new file mode 100644 index 000000000..2efd86e84 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:1 +msgid "Setting up Go Skype Bridge bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:3 +msgid "The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you, for bridging to [Skype](https://www.skype.com/). This bridge was created based on [mautrix-whatsapp](https://github.com/mautrix/whatsapp) and can be configured in a similar way to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:5 +msgid "See the project's [documentation](https://github.com/kelaresg/go-skype-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:7 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:9 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:11 +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-go-skype-bridge.md:13 +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-go-skype-bridge.md:15 +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-go-skype-bridge.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:19 +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-go-skype-bridge.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_go_skype_bridge_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:46 +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-go-skype-bridge.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:52 +msgid "To use the bridge, you need to start a chat with `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po new file mode 100644 index 000000000..5b68c9267 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po @@ -0,0 +1,122 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:1 +msgid "Setting up Heisenbridge bouncer-style IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:5 +msgid "The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) — the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:7 +msgid "See the project's [documentation](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:11 +msgid "By default, this playbook installs Heisenbridge on the `matrix.` subdomain, at the `/heisenbridge` path (https://matrix.example.com/heisenbridge). It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-heisenbridge-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:17 +msgid "To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:30 +msgid "Adjusting the Heisenbridge URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:32 +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 "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:34 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:42 +msgid "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`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:46 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:48 +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-bridge-heisenbridge.md:55 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:57 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:59 +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-heisenbridge.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:65 +msgid "To use the bridge, you need to start a chat with `@heisenbridge:example.com` (where `example.com` is your base domain, not the `matrix.` domain). If the bridge ignores you and a DM is not accepted then the owner setting may be wrong." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:67 +msgid "Help is available for all commands with the `-h` switch." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:69 +msgid "You can also learn the basics by watching [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:71 +msgid "If you encounter issues or feel lost you can join the project room at [#heisenbridge:vi.fi](https://matrix.to/#/#heisenbridge:vi.fi) for help." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po new file mode 100644 index 000000000..902850478 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po @@ -0,0 +1,414 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:1 +msgid "Setting up matrix-hookshot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:3 +msgid "The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:5 +msgid "Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, Jira, and Figma, as well as generic webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:7 +msgid "See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/latest/hookshot.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:9 +msgid "**Note**: the playbook also supports [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), which however was deprecated by its author." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:13 +msgid "Download GitHub app private key (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:15 +msgid "If you're setting up the GitHub bridge, you need to create your GitHub app, and generate a private key file of it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:17 +msgid "You need to download the private key file, if you will install the file manually or with the `aux` role. For details, see [the section below](#manage-github-private-key-with-aux-role)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:21 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:35 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:37 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:39 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:41 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:43 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:45 +msgid "`roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:46 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:48 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:52 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service hookshot` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:61 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:65 +msgid "To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:67 +msgid "Make sure the bot is able to send state events (usually the Moderator power level in clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:69 +msgid "Send `!hookshot help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:71 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:73 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:75 +msgid "Reset crypto store" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:77 +msgid "Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:83 +msgid "More setup documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:85 +msgid "URLs for bridges setup" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:87 +msgid "Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Listener" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Default path" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Used as" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_webhook_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Webhook-prefix, which affects all webhook-related URLs below" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "generic" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_generic_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Generic webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "github oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_github_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "GitHub \"Callback URL\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "jira oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/jira/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_jira_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Jira OAuth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "figma endpoint" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/figma/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_figma_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Figma" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "provisioning" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/v1/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_provisioning_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Dimension [provisioning](#provisioning-api)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "appservice" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/_matrix/app/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_appservice_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/widgetapi/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_widgets_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/metrics/hookshot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_metrics_enabled` and exposure enabled via `matrix_hookshot_metrics_proxying_enabled` or `matrix_metrics_exposure_enabled`. Read more in the [Metrics section](#metrics) below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Prometheus" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:101 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:103 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:105 +msgid "Manage GitHub Private Key with aux role" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:107 +msgid "The GitHub bridge requires you to install a private key file. This can be done in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:109 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:110 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:111 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:113 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:124 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:126 +msgid "Provisioning API" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:128 +msgid "The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with dimension, you will need to enter as \"Provisioning URL\": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:130 +msgid "Metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:132 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:134 +msgid "To explicitly enable metrics, use `matrix_hookshot_metrics_enabled: true`. This only exposes metrics over the container network, however." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:136 +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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:138 +msgid "either enabling metrics exposure for Hookshot via `matrix_hookshot_metrics_proxying_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:139 +msgid "or enabling metrics exposure for all services via `matrix_metrics_exposure_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:141 +msgid "Whichever one you go with, by default metrics are exposed publicly **without** password-protection. See [the Prometheus and Grafana docs](configuring-playbook-prometheus-grafana.md) for details about password-protection for metrics." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:143 +msgid "Collision with matrix-appservice-webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:145 +msgid "If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:147 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:149 +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-bridge-hookshot`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:151 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:153 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po new file mode 100644 index 000000000..60066e3b7 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po @@ -0,0 +1,82 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:1 +msgid "Setting up Matrix SMS bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:3 +msgid "The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:5 +msgid "See the project's [documentation](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:9 +msgid "The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:13 +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-matrix-bridge-sms.md:36 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:38 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:45 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:47 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:49 +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-matrix-bridge-sms.md:51 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:53 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:55 +msgid "Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po new file mode 100644 index 000000000..88288e08b --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po @@ -0,0 +1,304 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, discord, signal, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:5 +msgid "The author of the bridges maintains [the official docs](https://docs.mau.fi/bridges/index.html), whose source code is available at [mautrix/docs](https://github.com/mautrix/docs) repository on GitHub. You may as well to refer it while configuring them." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:7 +msgid "You can see each bridge's features on the `ROADMAP.md` file in its corresponding mautrix repository." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:11 +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-bridges.md:18 +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. **`matrix_mautrix_facebook_*` and `matrix_mautrix_instagram_*` variables belong to the deprecated components and do not control the new bridge** ([mautrix-meta](https://github.com/mautrix/meta)), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:20 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:22 +msgid "Configure bridge permissions (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:24 +msgid "By default any user on your homeserver will be able to use the mautrix bridges. To limit who can use them you would need to configure their permissions settings." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:26 +msgid "Different levels of permission can be granted to users. For example, to **configure a user as an administrator for all bridges**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:32 +msgid "If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @alice:example.com`), then there's no admin by default." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:34 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:43 +msgid "This will add the admin permission to the specific user, while keeping the default permissions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:45 +msgid "You could also redefine the default permissions settings completely, rather than adding extra permissions. You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` to find information on the permission settings and other options you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:47 +msgid "Enable encryption (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:49 +msgid "[Encryption (End-to-Bridge Encryption, E2BE) support](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) is off by default. If you would like to enable encryption, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:51 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:58 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:77 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:65 +msgid "Enable relay mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:67 +msgid "[Relay mode](https://docs.mau.fi/bridges/general/relay-mode.html) is off by default. Check [the table on the official documentation](https://docs.mau.fi/bridges/general/relay-mode.html#support-table) for bridges which support relay mode." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:69 +msgid "If you would like to enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:71 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:100 +msgid "If you want to activate the relaybot in a room, send `!prefix set-relay` in the rooms where you want to use the bot (replace `!prefix` with the appropriate command prefix for the bridge, like `!signal` or `!wa`). To deactivate, send `!prefix unset-relay`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:102 +msgid "Use `!prefix set-pl 100` to be able for the bot to modify room settings and invite others." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:104 +msgid "Allow anyone on the homeserver to become a relay user (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:106 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:112 +msgid "Set the bot's username (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:114 +msgid "To set the bot's username, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:120 +msgid "Configure the logging level (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:122 +msgid "To specify the logging level, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:128 +msgid "Replace `warn` with one of the following to control the verbosity of the logs generated: `trace`, `debug`, `info`, `warn`, `error` or `fatal`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:130 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging (those that appear earlier in the list, like `trace`) will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:132 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:134 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:136 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:138 +msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:139 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:141 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:143 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:150 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:190 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:152 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:154 +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-bridges.md:156 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:158 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:160 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:162 +msgid "For details about the next steps, refer to each bridge's individual documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:164 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:166 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:168 +msgid "Set up Double Puppeting (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:170 +msgid "After successfully enabling bridging, you may wish to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:172 +msgid "To set it up, you have 2 ways of going about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:174 +msgid "Method 1: automatically, by enabling Appservice Double Puppet (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:176 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html), you could enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:178 +msgid "Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:180 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:186 +msgid "When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:188 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:192 +msgid "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)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:195 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:197 +msgid "Method 2: manually, by asking each user to provide a working access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:199 +msgid "When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:201 +msgid "retrieve a Matrix access token for yourself. Refer to the documentation on [how to obtain one](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:203 +msgid "send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:205 +msgid "make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:207 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:209 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:211 +msgid "If the bridge's bot doesn't accept the invite to a chat, refer [the official troubleshooting page](https://docs.mau.fi/bridges/general/troubleshooting.html) as well." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:213 +msgid "If you found bugs in mautrix bridges, they should be reported to the upstream project, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po new file mode 100644 index 000000000..c1dcab03c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po @@ -0,0 +1,154 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:1 +msgid "Setting up Mautrix Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:5 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:6 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:7 +msgid "For personal use with a discord account we recommend the `mautrix-discord` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:9 +msgid "The playbook can install and configure [mautrix-discord](https://github.com/mautrix/discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/discord/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:15 +msgid "There are 2 ways to login to discord using this bridge, either by [scanning a QR code](#method-1-login-using-qr-code-recommended) using the Discord mobile app **or** by using a [Discord token](#method-2-login-using-discord-token-not-recommended)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:17 +msgid "If this is a dealbreaker for you, consider using one of the other Discord bridges supported by the playbook: [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) or [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md). These come with their own complexity and limitations, however, so we recommend that you proceed with this one if possible." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:19 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:21 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:23 +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-discord.md:25 +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-mautrix-discord.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:29 +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-discord.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:40 +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-discord.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.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-mautrix-discord.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:61 +msgid "To use the bridge, you need to start a chat with `@discordbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/discord/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:65 +msgid "After logging in, the bridge will create portal rooms for some recent direct messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:67 +msgid "Bridge guilds" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:69 +msgid "If you'd like to bridge guilds, send `guilds status` to see the list of guilds, then send `guilds bridge GUILD_ID_HERE` for each guild that you'd like bridged. Make sure to replace `GUILD_ID_HERE` with the guild's ID." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:71 +msgid "After bridging, spaces will be created automatically, and rooms will be created if necessary when messages are received. You can also pass `--entire` to the bridge command to immediately create all rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:73 +msgid "If you want to manually bridge channels, invite the bot to the room you want to bridge, and run `!discord bridge CHANNEL_ID_HERE` to bridge the room. Make sure to replace `CHANNEL_ID_HERE` with the channel's ID." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po new file mode 100644 index 000000000..a754a7611 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:1 +msgid "Setting up Mautrix Facebook bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:7 +msgid "The playbook can install and configure [mautrix-facebook](https://github.com/mautrix/facebook) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/facebook/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:13 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:15 +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-mautrix-facebook.md:17 +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-facebook.md:19 +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-mautrix-facebook.md:21 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:23 +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-facebook.md:29 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:31 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:33 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:44 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:46 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.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-facebook.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:52 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:54 +msgid "To use the bridge, you need to start a chat with `@facebookbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:56 +msgid "You then need to send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:58 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:60 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:62 +msgid "Facebook rejecting login attempts and forcing you to change password" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:64 +msgid "If your Matrix server is in a wildly different location than where you usually use your Facebook account from, the bridge's login attempts may be outright rejected by Facebook. Along with that, Facebook may even force you to change the account's password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:66 +msgid "If you happen to run into this problem while [setting up bridging](#usage), try to first get a successful session up by logging in to Facebook through the Matrix server's IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:68 +msgid "The easiest way to do this may be to use [sshuttle](https://sshuttle.readthedocs.io/) to proxy your traffic through the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:70 +msgid "Example command for proxying your traffic through the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:76 +msgid "Once connected, you should be able to verify that you're browsing the web through the Matrix server's IP by checking [icanhazip](https://icanhazip.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:78 +msgid "Then proceed to log in to [Facebook/Messenger](https://www.facebook.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:80 +msgid "Once logged in, proceed to [set up bridging](#usage)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:82 +msgid "If that doesn't work, enable 2FA (see: [Facebook help page on enabling 2FA](https://www.facebook.com/help/148233965247823)) and try to login again with a new password, and entering the 2FA code when prompted, it may take more then one try, in between attempts, check facebook.com to see if they are requiring another password change" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po new file mode 100644 index 000000000..020d2ce6f --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:1 +msgid "Setting up Mautrix Google Messages bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:5 +msgid "The playbook can install and configure [mautrix-gmessages](https://github.com/mautrix/gmessages) for you, for bridging to [Google Messages](https://messages.google.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/gmessages/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:11 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:13 +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-gmessages.md:15 +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-gmessages.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:19 +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-gmessages.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:30 +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-gmessages.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:45 +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-gmessages.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:49 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:51 +msgid "To use the bridge, you need to start a chat with `@gmessagesbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:53 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/gmessages/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:55 +msgid "After logging in, the bridge will create portal rooms for recent chats." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po new file mode 100644 index 000000000..100f63349 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po @@ -0,0 +1,118 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:1 +msgid "Setting up Mautrix Google Chat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:5 +msgid "The playbook can install and configure [mautrix-googlechat](https://github.com/mautrix/googlechat) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/googlechat/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:15 +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-googlechat.md:17 +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-mautrix-googlechat.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:21 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:32 +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-googlechat.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:47 +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-googlechat.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:53 +msgid "To use the bridge, you need to start a chat with `@googlechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po new file mode 100644 index 000000000..94a7ef2fe --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po @@ -0,0 +1,122 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:1 +msgid "Setting up Mautrix Hangouts bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:5 +msgid "💡 **Note**: This bridge has been deprecated in favor of [Google Chat bridge](https://github.com/mautrix/googlechat), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-googlechat.md). Installing the mautrix-hangouts bridge is **no longer possible**. For now, this documentation page remains here for historical purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:7 +msgid "The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:11 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:13 +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-mautrix-hangouts.md:15 +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-hangouts.md:17 +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-mautrix-hangouts.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:21 +msgid "To enable the [Google Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:46 +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-hangouts.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:52 +msgid "To use the bridge, you need to start a chat with `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:54 +msgid "You then need to send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:56 +msgid "Automatic login may not work. If it does not, reload the page and select the \"Manual login\" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:58 +msgid "Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po new file mode 100644 index 000000000..5aaa43c3f --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:1 +msgid "Setting up Mautrix Instagram bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-instagram.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:7 +msgid "The playbook can install and configure [mautrix-instagram](https://github.com/mautrix/instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/instagram/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:13 +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-instagram.md:19 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:21 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:23 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:38 +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-instagram.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:44 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:46 +msgid "You then need to send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po new file mode 100644 index 000000000..1a8b08caf --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:1 +msgid "Setting up Instagram bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Instagram. For bridging to Facebook/Messenger, see [Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:15 +msgid "Migrating from the old mautrix-instagram bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:17 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:19 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:20 +msgid "both trying to bridge the same DMs" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:22 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:24 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:26 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:28 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:30 +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-meta-instagram.md:32 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:34 +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-meta-instagram.md:40 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:42 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:44 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:46 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:50 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:61 +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-meta-instagram.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:65 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:67 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:69 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:71 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po new file mode 100644 index 000000000..649c08c4c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:1 +msgid "Setting up Messenger bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Facebook Messenger. For bridging to Instagram, see [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:15 +msgid "Migrating from the old mautrix-facebook bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:17 +msgid "If you've been using the [mautrix-facebook](./configuring-playbook-bridge-mautrix-facebook.md) bridge, it's possible to migrate the database using [instructions from the bridge documentation](https://docs.mau.fi/bridges/go/meta/facebook-migration.html) (advanced)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:19 +msgid "Then you may wish to get rid of the Facebook bridge. To do so, send a `clean-rooms` command to the management room with the old bridge bot (`@facebookbot:example.com`). It gives you a list of portals and groups of portals you may purge. Proceed with sending commands like `clean recommended`, etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:21 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:23 +msgid "**Note**: the user ID of the new bridge bot is `@messengerbot:example.com`, not `@facebookbot:example.com`. After disabling the old bridge, its bot user will stop responding to a command." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:25 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:27 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:29 +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-meta-messenger.md:31 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:33 +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-meta-messenger.md:39 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:41 +msgid "Bridge mode" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:43 +msgid "As mentioned above, the [mautrix-meta](https://github.com/mautrix/meta) bridge supports multiple modes of operation." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:45 +msgid "The bridge can pull your Messenger messages via 3 different methods:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:47 +msgid "(`facebook`) Facebook via `facebook.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:48 +msgid "(`facebook-tor`) Facebook via `facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion` ([Tor](https://www.torproject.org/)) — does not currently proxy media downloads" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:49 +msgid "(default) (`messenger`) Messenger via `messenger.com` — usable even without a Facebook account" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:51 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:53 +msgid "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.)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:55 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:57 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:59 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:61 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:63 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:70 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:72 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:74 +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-meta-messenger.md:76 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:78 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:80 +msgid "To use the bridge, you need to start a chat with `@messengerbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Note that the user ID of the bridge's bot is not `@facebookbot:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:82 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:84 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:86 +msgid "**Note**: given that the bot is configured in `messenger` [bridge mode](#bridge-mode) by default, you will need to log in to [messenger.com](https://messenger.com/) (not `facebook.com`!) and obtain the cookies from there." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po new file mode 100644 index 000000000..b847e16f6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po @@ -0,0 +1,130 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:1 +msgid "Setting up Mautrix Signal bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:5 +msgid "The playbook can install and configure [mautrix-signal](https://github.com/mautrix/signal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/signal/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:9 +msgid "Prerequisites (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:11 +msgid "Prepare Postgres database on external Postgres server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:13 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:15 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:17 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:19 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:21 +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-signal.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:25 +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-signal.md:31 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:33 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:35 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:50 +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-signal.md:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:56 +msgid "To use the bridge, you need to start a chat with `@signalbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:58 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/signal/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:60 +msgid "After logging in, the bridge will bridge chats as you receive messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:62 +msgid "**Note**: Signal does not support any kind of message history (even on official apps), so the bridge won't backfill any messages." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po new file mode 100644 index 000000000..0d278fc45 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po @@ -0,0 +1,138 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:1 +msgid "Setting up Mautrix Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:5 +msgid "**Note**: bridging to [Slack](https://slack.com/) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:6 +msgid "For using as a Bot we recommend the [Appservice Slack](configuring-playbook-bridge-appservice-slack.md), because it supports plumbing. Note that it is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:7 +msgid "For personal use with a slack account we recommend the `mautrix-slack` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Slack bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:9 +msgid "The playbook can install and configure [mautrix-slack](https://github.com/mautrix/slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/slack/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:13 +msgid "See the [features and roadmap](https://github.com/mautrix/slack/blob/main/ROADMAP.md) for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:15 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:17 +msgid "For using this bridge, you would need to authenticate by **providing your username and password** (legacy) or by using a **token login**. See more information in the [docs](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:19 +msgid "Note that neither of these methods are officially supported by Slack. [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) uses a Slack bot account which is the only officially supported method for bridging a Slack channel." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:21 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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 [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:29 +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-slack.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:40 +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-slack.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:61 +msgid "To use the bridge, you need to start a chat with `@slackbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:65 +msgid "If you authenticated using a token, the recent chats will be bridged automatically (depending on the `conversation_count` setting). Otherwise (i.e. logging with the Discord application), the chats the bot is in will be bridged automatically." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po new file mode 100644 index 000000000..96b9a5961 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po @@ -0,0 +1,163 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:1 +msgid "Setting up Mautrix Telegram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:5 +msgid "The playbook can install and configure [mautrix-telegram](https://github.com/mautrix/telegram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:11 +msgid "Obtain a Telegram API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:13 +msgid "To use the bridge, you'd need to obtain an API key from [https://my.telegram.org/apps](https://my.telegram.org/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:15 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:17 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:19 +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-telegram.md:21 +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:81 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:23 +msgid "Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:25 +msgid "If you decided to enable Double Puppeting manually, send `login-matrix` to the bot in order to receive an instruction about how to send an access token to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:29 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:37 +msgid "Relaying" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:39 +msgid "Enable relay-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:41 +msgid "If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:51 +msgid "Configure a user as an administrator of the bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:53 +msgid "You might also want to give permissions to a user to administrate the bot. See [this section](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional) on the common guide for details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:55 +msgid "More details about permissions in this example: https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:57 +msgid "Use the bridge for direct chats only (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:59 +msgid "If you want to exclude all groups from syncing and use the Telegram-Bridge only for direct chats, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:65 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:67 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:70 +msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:72 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:74 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:83 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:91 +msgid "To use the bridge, you need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:93 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/telegram/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:95 +msgid "After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them. Note that the bridge won't automatically create rooms for private chats." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po new file mode 100644 index 000000000..9853453b6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po @@ -0,0 +1,118 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:1 +msgid "Setting up Mautrix Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:5 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:7 +msgid "The playbook can install and configure [mautrix-twitter](https://github.com/mautrix/twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:13 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:15 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:17 +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-twitter.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:21 +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-twitter.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:32 +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-twitter.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:47 +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-twitter.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:53 +msgid "To use the bridge, you need to start a chat with `@twitterbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po new file mode 100644 index 000000000..de3864cf0 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po @@ -0,0 +1,122 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:1 +msgid "Setting up Mautrix Whatsapp bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:5 +msgid "The playbook can install and configure [mautrix-whatsapp](https://github.com/mautrix/whatsapp) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/whatsapp/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:15 +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-whatsapp.md:17 +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-mautrix-whatsapp.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:21 +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-whatsapp.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:46 +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-whatsapp.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:52 +msgid "To use the bridge, you need to start a chat with `@whatsappbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:54 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/whatsapp/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:56 +msgid "Approximately in a minute after logging in, the bridge will create portal rooms for recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:58 +msgid "**Note**: your linked devices will be logged out if you don’t use your phone for over 14 days (see the official FAQ entry [here](https://faq.whatsapp.com/general/download-and-installation/about-linked-devices)). The bridge will warn you if it doesn't receive any data from the phone over 12 days." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po new file mode 100644 index 000000000..83fa145ed --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po @@ -0,0 +1,122 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:1 +msgid "Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:5 +msgid "The playbook can install and configure [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:7 +msgid "See the project's [documentation](https://github.com/mautrix/wsproxy/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:11 +msgid "By default, this playbook installs wsproxy on the `wsproxy.` subdomain (`wsproxy.example.com`) and requires you to create a CNAME record for `wsproxy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:17 +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-wsproxy.md:29 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:31 +msgid "Adjusting the wsproxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:33 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:35 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:46 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:48 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:52 +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-bridge-mautrix-wsproxy.md:59 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:61 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:63 +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-wsproxy.md:65 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:69 +msgid "Follow the [mautrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po new file mode 100644 index 000000000..38262cd43 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po @@ -0,0 +1,102 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:1 +msgid "Setting up MX Puppet Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:4 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:5 +msgid "For personal use with a discord account we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:7 +msgid "The playbook can install and configure [mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:9 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:13 +msgid "To enable the [Discord](https://discordapp.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:19 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:21 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:28 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:30 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:32 +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-mx-puppet-discord.md:34 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:36 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:38 +msgid "To use the bridge, you need to start a chat with `Discord Puppet Bridge` with the handle `@_discordpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:40 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-discord [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:42 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:44 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:46 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po new file mode 100644 index 000000000..ad848ffcb --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:1 +msgid "Setting up MX Puppet GroupMe bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:3 +msgid "The playbook can install and configure [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:5 +msgid "See the project's [documentation](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:9 +msgid "To enable the [GroupMe](https://groupme.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:28 +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-mx-puppet-groupme.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:34 +msgid "To use the bridge, you need to start a chat with `GroupMe Puppet Bridge` with the handle `@_groupmepuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:36 +msgid "One authentication method is available." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:38 +msgid "To link your GroupMe account, go to [dev.groupme.com](https://dev.groupme.com/), sign in, and select \"Access Token\" from the top menu. Copy the token and message the bridge with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:44 +msgid "Once logged in, send `listrooms` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:46 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:48 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po new file mode 100644 index 000000000..918c8fe79 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:1 +msgid "Setting up MX Puppet Instagram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:3 +msgid "The playbook can install and configure [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:5 +msgid "This allows you to bridge Instagram DirectMessages into Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:9 +msgid "To enable the [Instagram](https://www.instagram.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:28 +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-mx-puppet-instagram.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:34 +msgid "To use the bridge, you need to start a chat with `Instagram Puppet Bridge` with the handle `@_instagrampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:36 +msgid "Send `link ` to the bridge bot to link your instagram account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:38 +msgid "The `list` commands shows which accounts are linked and which `puppetId` is associated." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:40 +msgid "For double-puppeting, you probably want to issue these commands:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:42 +msgid "`settype $puppetId puppet` to enable puppeting for the link (instead of relaying)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:43 +msgid "`setautoinvite $puppetId 1` to automatically invite you to chats" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:44 +msgid "`setmatrixtoken $accessToken` to set the access token to enable puppeting from the other side (the \"double\" in double puppeting)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:46 +msgid "If you are linking only one Instagram account, your `$puppetId` is probably 1, but use the `list` command find out." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:48 +msgid "Send `help` to the bot to see the available commands. At the time of writing, not every command is fully implemented." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po new file mode 100644 index 000000000..97456fc18 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:1 +msgid "Setting up MX Puppet Skype bridging (optional, removed)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:3 +msgid "The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:5 +msgid "Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po new file mode 100644 index 000000000..67ae99b1e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po @@ -0,0 +1,98 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:1 +msgid "Setting up MX Puppet Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:3 +msgid "**Note**: bridging to [Slack](https://slack.com) can also happen via the [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook. Note that `matrix-appservice-slack` is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:5 +msgid "The playbook can install and configure [mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:7 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:11 +msgid "Follow the [OAuth credentials](https://gitlab.com/mx-puppet/slack/mx-puppet-slack#option-2-oauth) instructions to create a new Slack app, setting the redirect URL to `https://matrix.example.com/slack/oauth`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:15 +msgid "To enable the [Slack](https://slack.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:24 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:26 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:33 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:35 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:37 +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-mx-puppet-slack.md:39 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:41 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:43 +msgid "To use the bridge, you need to start a chat with `Slack Puppet Bridge` with the handle `@_slackpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:45 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-slack [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:47 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:49 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:51 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po new file mode 100644 index 000000000..4ece71ba6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po @@ -0,0 +1,90 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:1 +msgid "Setting up MX Puppet Steam bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:3 +msgid "The playbook can install and configure [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:5 +msgid "See the project's [documentation](https://github.com/icewind1991/mx-puppet-steam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:9 +msgid "To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:28 +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-mx-puppet-steam.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:34 +msgid "To use the bridge, you need to start a chat with `Steam Puppet Bridge` with the handle `@_steampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:36 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-steam [documentation](https://github.com/icewind1991/mx-puppet-steam) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:38 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:40 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:42 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po new file mode 100644 index 000000000..904abfeac --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po @@ -0,0 +1,102 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:1 +msgid "Setting up MX Puppet Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:3 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:5 +msgid "The playbook can install and configure [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:7 +msgid "See the project's [documentation](https://github.com/Sorunome/mx-puppet-twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:11 +msgid "Make an app on [developer.twitter.com](https://developer.twitter.com/en/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:15 +msgid "To enable the [Twitter](https://twitter.com) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:39 +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-mx-puppet-twitter.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:43 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:45 +msgid "To use the bridge, you need to start a chat with `Twitter Puppet Bridge` with the handle `@_twitterpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:47 +msgid "To log in, use `link` and click the link." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:49 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:51 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:53 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po new file mode 100644 index 000000000..3c5a68453 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po @@ -0,0 +1,226 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:1 +msgid "Setting up Postmoogle email bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:3 +msgid "The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:5 +msgid "Postmoogle is a bridge you can use to have its bot user forward emails to Matrix rooms. It runs an SMTP email server and allows you to assign mailbox addresses to the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/postmoogle/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:11 +msgid "Open the following ports on your server to be able to receive incoming emails:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:13 +msgid "`25/tcp`: SMTP" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:14 +msgid "`587/tcp`: Submission (TLS-encrypted SMTP)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:16 +msgid "If you don't open these ports, you will still be able to send emails, but not receive any." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:18 +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 "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:20 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:22 +msgid "To make Postmoogle enable its email sending features, you need to configure MX and TXT (SPF, DMARC, and DKIM) records. See the table below for values which need to be specified." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "TXT" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`v=spf1 ip4:matrix-server-IP -all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`_dmarc.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`v=DMARC1; p=quarantine;`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`postmoogle._domainkey.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "get it from `!pm dkim`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:31 +msgid "**Note**: the DKIM record can be retrieved after configuring and installing the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:33 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:35 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:56 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:58 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:60 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:62 +msgid "`roles/custom/matrix-bridge-postmoogle/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:64 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:66 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:73 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:75 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create a user account of the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:77 +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-postmoogle.md:79 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:81 +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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:83 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:85 +msgid "To use the bridge, invite the `@postmoogle:example.com` bot user into a room you want to use as a mailbox." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:87 +msgid "Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the email address `NAME@matrix.example.com`. Emails sent to that email address will be forwarded to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:89 +msgid "Send `!pm help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:91 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/postmoogle)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:93 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:95 +msgid "As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-postmoogle`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:97 +msgid "The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po new file mode 100644 index 000000000..cc56d8907 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:1 +msgid "Setting up WeChat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:3 +msgid "The playbook can install and configure [matrix-wechat](https://github.com/duo/matrix-wechat) for you, for bridging to [WeChat](https://www.wechat.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:5 +msgid "See the project's [documentation](https://github.com/duo/matrix-wechat/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:9 +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-wechat.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:28 +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-wechat.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:34 +msgid "To use the bridge, you need to start a chat with `@wechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:36 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po new file mode 100644 index 000000000..0463b83d5 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po @@ -0,0 +1,206 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-cactus-comments.md:1 +msgid "Setting up Cactus Comments (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:3 +msgid "The playbook can install and configure the [Cactus Comments](https://cactus.chat) system for you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:5 +msgid "Cactus Comments is a **federated comment system** built on Matrix. It respects your privacy, and puts you in control." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:7 +msgid "See the project's [documentation](https://cactus.chat/docs/getting-started/introduction/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:9 +msgid "The playbook contains 2 roles for configuring different pieces of the Cactus Comments system:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:11 +msgid "`matrix-cactus-comments` — the backend appservice integrating with the Matrix homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:13 +msgid "`matrix-cactus-comments-client` — a static website server serving the [cactus-client](https://cactus.chat/docs/client/introduction/) static assets (`cactus.js` and `styles.css`)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:15 +msgid "You can enable whichever component you need (typically both)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:19 +msgid "By default, this playbook installs Cactus Comments' client on the `matrix.` subdomain, at the `/cactus-comments` path (https://matrix.example.com/cactus-comments). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-cactus-comments-client-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:25 +msgid "To enable Cactus Comments, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:45 +msgid "Adjusting the Cactus Comments' client URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:47 +msgid "By tweaking the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_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-cactus-comments.md:49 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:58 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Cactus Comments' client domain (`cactus.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:60 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:64 +msgid "There are some additional things you may wish to configure about the components." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:66 +msgid "For `matrix-cactus-comments`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:68 +msgid "`roles/custom/matrix-cactus-comments/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:70 +msgid "For `matrix-cactus-comments-client`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:72 +msgid "`roles/custom/matrix-cactus-comments-client/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:76 +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-cactus-comments.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:85 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.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-cactus-comments.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." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:91 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:93 +msgid "To use the component, you need to start a chat with `@bot.cactusbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:95 +msgid "Then, register a site by sending `register YOUR_SITE_NAME_HERE` (where `YOUR_SITE_NAME_HERE` is a unique identifier you choose. It does not have to match your domain). You will then be invited into a moderation room." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:97 +msgid "Now you are good to go and can embed the comment section on your website!" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:99 +msgid "Embed Cactus Comments" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:101 +msgid "The official [documentation](https://cactus.chat/docs/getting-started/quick-start/) provides a useful guide to embed Cactus Comments on your website." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:103 +msgid "After including the JavaScript and CSS asset files, insert a `
` where you'd like to display the comment section:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:109 +msgid "Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `YOUR_SITE_NAME_HERE` with the one that has been registered above:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:123 +msgid "Adjust the domain name for self-hosting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:125 +msgid "To have the assets served from your homeserver (not from `cactus.chat`), you need to adjust the domain name on the official documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:127 +msgid "Make sure to replace `example.com` with your base domain before you include the following lines, instead of the one provided by the official documentation:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:134 +msgid "**Note**: if the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_path_prefix` variables are tweaked, you would need to adjust the URLs of the assets accordingly." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:138 +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-cactus-comments` for the backend appservice or `journalctl -fu matrix-cactus-comments-client` for the server serving the client assets, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:140 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:142 +msgid "It is possible to increase logging verbosity for `matrix-cactus-comments-client`. The default logging level for this component is `error`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-cinny.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-cinny.po new file mode 100644 index 000000000..c0dde38c1 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-cinny.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-cinny.md:1 +msgid "Setting up Cinny (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:3 +msgid "The playbook can install and configure the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:5 +msgid "Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of [Element Web](./configuring-playbook-client-element-web.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:7 +msgid "💡 **Note**: the latest version of Cinny is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:9 +msgid "[app.cinny.in](https://app.cinny.in), hosted by the [Cinny](https://cinny.in/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:13 +msgid "By default, this playbook installs Cinny on the `cinny.` subdomain (`cinny.example.com`) and requires you to create a CNAME record for `cinny`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:19 +msgid "To enable Cinny, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:25 +msgid "Adjusting the Cinny URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:27 +msgid "By tweaking the `matrix_client_cinny_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:29 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:39 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Cinny domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:41 +msgid "**Note**: while there is a `matrix_client_cinny_path_prefix` variable for changing the path where Cinny is served, overriding it is [not possible](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3701), because Cinny requires an application rebuild (with a tweaked build config) to be functional under a custom path. You'd need to serve Cinny at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:43 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:45 +msgid "After configuring the playbook and [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:52 +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-cinny.md:54 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-element-web.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-element-web.po new file mode 100644 index 000000000..eefacd9f8 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-element-web.po @@ -0,0 +1,170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-element-web.md:1 +msgid "Configuring Element Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:3 +msgid "By default, this playbook installs the [Element Web](https://github.com/element-hq/element-web) Matrix client for you. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:5 +msgid "If you'd like to stop the playbook installing the client, see the section [below](#disabling-element-web) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:7 +msgid "💡 **Note**: the latest version of Element Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting (by [disabling Element Web](#disabling-element-web)):" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:9 +msgid "[app.element.io](https://app.element.io/), hosted by [Element](https://element.io/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:10 +msgid "[app.etke.cc](https://app.etke.cc/), hosted by [etke.cc](https://etke.cc/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:12 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:14 +msgid "By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to create a CNAME record for `element`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:16 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:20 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:22 +msgid "You can change the look of Element Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:24 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:26 +msgid "To pull the themes from the `element-themes` project and use them for your Element Web instance, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:32 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_element_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:34 +msgid "Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:36 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:38 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:45 +msgid "If you define your own themes with it and set `matrix_client_element_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:47 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:49 +msgid "Adjusting the Element Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:51 +msgid "By tweaking the `matrix_client_element_hostname` and `matrix_client_element_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-element-web.md:53 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:64 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Element domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:66 +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-element-web.md:68 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:70 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:72 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:74 +msgid "`roles/custom/matrix-client-element/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:75 +msgid "`roles/custom/matrix-client-element/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_element_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:77 +msgid "For example, to override some Element Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:95 +msgid "Disabling Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:97 +msgid "If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:103 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:105 +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-element-web.md:112 +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-element-web.md:114 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po new file mode 100644 index 000000000..063a8dd81 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po @@ -0,0 +1,90 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:1 +msgid "Setting up Hydrogen (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:3 +msgid "The playbook can install and configure the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:5 +msgid "Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:7 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:9 +msgid "By default, this playbook installs Hydrogen on the `hydrogen.` subdomain (`hydrogen.example.com`) and requires you to create a CNAME record for `hydrogen`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:11 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:15 +msgid "To enable Hydrogen, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:21 +msgid "Adjusting the Hydrogen URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:23 +msgid "By tweaking the `matrix_client_hydrogen_hostname` and `matrix_client_hydrogen_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-hydrogen.md:25 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:36 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Hydrogen domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:38 +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-hydrogen.md:40 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:42 +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-hydrogen.md:49 +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-hydrogen.md:51 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po new file mode 100644 index 000000000..76b960173 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:1 +msgid "Setting up SchildiChat Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:3 +msgid "The playbook can install and configure the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:5 +msgid "SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with some extras and tweaks. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:7 +msgid "💡 **Note**: the latest version of SchildiChat Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Application, you can consider using it from there:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:9 +msgid "[app.schildi.chat](https://app.schildi.chat/), hosted by the [SchildiChat](https://schildi.chat/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:13 +msgid "By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to create a CNAME record for `schildichat`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:19 +msgid "To enable SchildiChat Web, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:25 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:27 +msgid "You can change the look of SchildiChat Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:29 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:31 +msgid "To pull the themes from the `element-themes` project and use them for your SchildiChat Web instance, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:37 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_schildichat_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:39 +msgid "Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:41 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:43 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:50 +msgid "If you define your own themes with it and set `matrix_client_schildichat_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:52 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:54 +msgid "Adjusting the SchildiChat Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:56 +msgid "By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_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-schildichat-web.md:58 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:69 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:71 +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-schildichat-web.md:73 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:75 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:77 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:79 +msgid "`roles/custom/matrix-client-schildichat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:80 +msgid "`roles/custom/matrix-client-schildichat/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_schildichat_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:82 +msgid "For example, to override some SchildiChat Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:102 +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-schildichat-web.md:109 +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-schildichat-web.md:111 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduit.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduit.po new file mode 100644 index 000000000..816e7dcf6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduit.po @@ -0,0 +1,134 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-conduit.md:1 +msgid "Configuring Conduit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:3 +msgid "The playbook can install and configure the [Conduit](https://conduit.rs) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:5 +msgid "See the project's [documentation](https://docs.conduit.rs/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:9 +msgid "💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:19 +msgid "To use Conduit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:27 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:29 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:31 +msgid "`roles/custom/matrix-conduit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:32 +msgid "`roles/custom/matrix-conduit/templates/conduit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:34 +msgid "If you'd like to have your own different configuration, feel free to copy and paste the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) and then change the specific host's `vars.yml` file like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:40 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:42 +msgid "Since it is difficult to create the first user account on Conduit (see [famedly/conduit#276](https://gitlab.com/famedly/conduit/-/issues/276) and [famedly/conduit#354](https://gitlab.com/famedly/conduit/-/merge_requests/354)) and it does not support [registering users](registering-users.md) (via the command line or via the playbook) like Synapse and Dendrite do, we recommend the following procedure:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:44 +msgid "Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:45 +msgid "Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` — see [Installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:46 +msgid "Create your first user via Element Web or any other client which supports creating users" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:47 +msgid "Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml`" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:48 +msgid "Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:49 +msgid "You can now use your server safely. Additional users can be created by messaging the internal Conduit bot" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:51 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:53 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:55 +msgid "For Conduit, you will have to manually register appservices using the the [register-appservice](https://gitlab.com/famedly/conduit/-/blob/next/APPSERVICES.md) command." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:57 +msgid "Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`, then pass the content to Conduit:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduwuit.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduwuit.po new file mode 100644 index 000000000..3e74a14ad --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-conduwuit.po @@ -0,0 +1,134 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-conduwuit.md:1 +msgid "Configuring conduwuit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:3 +msgid "The playbook can install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:5 +msgid "See the project's [documentation](https://conduwuit.puppyirl.gay/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:9 +msgid "💡 **Note**: conduwuit is a fork of [Conduit](./configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:19 +msgid "To use conduwuit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:33 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:35 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:37 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:39 +msgid "`roles/custom/matrix-conduwuit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:40 +msgid "`roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:42 +msgid "There are various Ansible variables that control settings in the `conduwuit.toml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:44 +msgid "If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://conduwuit.puppyirl.gay/configuration.html#environment-variables) using `matrix_conduwuit_environment_variables_extension`. For example:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:52 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:54 +msgid "Unlike other homeserver implementations (like Synapse and Dendrite), conduwuit does not support creating users via the command line or via the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:56 +msgid "If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:58 +msgid "This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:60 +msgid "The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:63 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:65 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:67 +msgid "For conduwuit, you will have to manually register appservices using the [`!admin appservices register` command](https://conduwuit.puppyirl.gay/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:69 +msgid "The server's bot account has a Matrix ID of `@conduit:example.com` (not `@conduwuit:example.com`!) due to conduwuit's historical legacy. Your first user account would already have been invited to an admin room with this bot." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:72 +msgid "Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:74 +msgid "Then, send its content to the existing admin room:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dendrite.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dendrite.po new file mode 100644 index 000000000..007da27af --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dendrite.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dendrite.md:1 +msgid "Configuring Dendrite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:3 +msgid "The playbook can install and configure the [Dendrite](https://github.com/element-hq/dendrite) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:5 +msgid "See the project's [documentation](https://element-hq.github.io/dendrite/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:9 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:11 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Dendrite). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:13 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:17 +msgid "To use Dendrite, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:23 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:25 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:27 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:29 +msgid "`roles/custom/matrix-dendrite/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:30 +msgid "`roles/custom/matrix-dendrite/templates/dendrite.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dendrite_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:32 +msgid "For example, to override some Dendrite settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:53 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:55 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:62 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:64 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dimension.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dimension.po new file mode 100644 index 000000000..e9d06252e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dimension.po @@ -0,0 +1,215 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dimension.md:1 +msgid "Setting up Dimension integration manager (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:3 +#: ../../../docs/configuring-playbook-dimension.md:109 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:4 +msgid "Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:5 +msgid "This playbook now supports running Dimension in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_homeserver_federation_enabled`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:7 +msgid "The playbook can install and configure the [Dimension](https://dimension.t2bot.io) integration manager for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:9 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-dimension/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:15 +msgid "Enabling the Dimension service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:17 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:19 +msgid "Dimension can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:23 +msgid "We recommend that you create a dedicated Matrix user for Dimension (`dimension` is a good username)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:33 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:35 +msgid "Dimension requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:37 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:40 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:42 +msgid "By default, this playbook installs Dimension on the `dimension.` subdomain (`dimension.example.com`) and requires you to create a CNAME record for `dimension`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:48 +msgid "To enable Dimension, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:56 +msgid "Define admin users" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:58 +msgid "To define admin users who can modify the integrations this Dimension supports, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:66 +msgid "The admin interface is accessible within Element Web by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element Web by the \"Add widgets, bridges, & bots\" link in the room information." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:68 +msgid "Adjusting the Dimension URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:70 +msgid "By tweaking the `matrix_dimension_hostname` and `matrix_dimension_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-dimension.md:72 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:83 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:85 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:87 +msgid "**Note**: while there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You'd need to serve Dimension at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:89 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:91 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:93 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:95 +msgid "`roles/custom/matrix-dimension/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:96 +msgid "`roles/custom/matrix-dimension/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dimension_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:98 +msgid "You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:102 +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-dimension.md:111 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:113 +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-dimension.md:115 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:117 +msgid "After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the room info button (`i`) on the top right corner, and then clicking the \"Add widgets, bridges, & bots\" link." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:119 +msgid "Set up a Jitsi widget" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:121 +msgid "By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:123 +msgid "To set up the widget, an admin user needs to configure the domain via the admin UI once Dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:125 +msgid "There is unfortunately no way to configure the widget via the playbook. See [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po new file mode 100644 index 000000000..e37cf2462 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:1 +msgid "Setting up Dynamic DNS (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:3 +msgid "The playbook can configure Dynamic DNS with [ddclient⁠](https://github.com/ddclient/ddclient) for you. It is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:5 +msgid "Most cloud providers / ISPs will charge you extra for a static IP address. If you're not hosting a highly reliable homeserver you can workaround this via dynamic DNS." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:9 +msgid "You'll need to get a username and password from your DNS provider. Please consult with the provider about how to retrieve them." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:13 +msgid "To enable dynamic DNS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:37 +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-dynamic-dns.md:39 +msgid "Additional Reading" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:41 +msgid "Additional resources:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:43 +msgid "https://matrix.org/docs/guides/free-small-matrix-server" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email.po new file mode 100644 index 000000000..a7212a3c9 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-email.md:1 +msgid "Adjusting email-sending settings (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:3 +msgid "By default, this playbook sets up an [Exim](https://www.exim.org/) email server through which all Matrix services send emails." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:5 +msgid "The email server would attempt to deliver emails directly to their final destination. This may or may not work, depending on your domain configuration (SPF settings, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:7 +msgid "By default, emails are sent from `matrix@matrix.example.com`, as specified by the `exim_relay_sender_address` playbook variable." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:9 +msgid "[!WARNING] On some cloud providers (Google Cloud, etc.), [port 25 is always blocked](https://cloud.google.com/compute/docs/tutorials/sending-mail/), so sending email directly from your server is not possible. You will need to [relay email through another SMTP server](#relaying-email-through-another-smtp-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:12 +msgid "💡 To improve deliverability, we recommend [relaying email through another SMTP server](#relaying-email-through-another-smtp-server) anyway." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:14 +msgid "Firewall settings" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:16 +msgid "No matter whether you send email directly (the default) or you relay email through another host (see how below), you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:20 +msgid "Relaying email through another SMTP server" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:22 +msgid "If you'd like to relay email through another SMTP server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:34 +msgid "**Note**: only the secure submission protocol (using `STARTTLS`, usually on port `587`) is supported. **SMTPS** (encrypted SMTP, usually on port `465`) **is not supported**." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:36 +msgid "Sending emails using Sendgrid" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:38 +msgid "An easy and free SMTP service to set up is [Sendgrid](https://sendgrid.com/). Its free tier allows for up to 100 emails per day to be sent." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:40 +msgid "To set it up, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:57 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:59 +msgid "If you're having trouble with email not being delivered, it may be useful to inspect the mailer logs." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:61 +msgid "To do so, log in to the server with SSH and run `journalctl -f -u matrix-exim-relay`." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email2matrix.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email2matrix.po new file mode 100644 index 000000000..baf25b3ba --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-email2matrix.po @@ -0,0 +1,278 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-email2matrix.md:1 +msgid "Setting up Email2Matrix (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:3 +msgid "**Note**: this component has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that component instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:5 +msgid "The playbook can install and configure [Email2Matrix](https://github.com/devture/email2matrix) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:7 +msgid "See the project's [documentation](https://github.com/devture/email2matrix/blob/master/docs/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:9 +msgid "Preparation" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:11 +msgid "Port availability" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:13 +msgid "Ensure that port 25 is available on your Matrix server and open in your firewall." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:15 +msgid "If you have `postfix` or some other email server software installed, you may need to manually remove it first (unless you need it, of course)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:17 +msgid "If you really need to run an email server on the Matrix machine for other purposes, it may be possible to run Email2Matrix on another port (with a configuration like `matrix_email2matrix_smtp_host_bind_port: \"127.0.0.01:2525\"`) and have your other email server relay messages there." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:19 +msgid "For details about using Email2Matrix alongside [Postfix](http://www.postfix.org/), see [here](https://github.com/devture/email2matrix/blob/master/docs/setup_with_postfix.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:23 +msgid "We recommend that you create a dedicated Matrix user for Email2Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:33 +msgid "Take note of the user's ID as it needs to be specified as `MatrixUserId` on your `inventory/host_vars/matrix.example.com/vars.yml` file later." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:35 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:37 +msgid "Email2Matrix requires an access token for the sender user to be able to send messages to the room. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:39 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:42 +msgid "Join to rooms as the sender user manually" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:44 +msgid "ℹ️ **Email2Matrix does not accept room invitations automatically**. To deliver messages to rooms, the sender user must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:46 +msgid "For each new room you would like the user to deliver messages to, invite the user to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:48 +msgid "Then, log in as the sender user using any Matrix client of your choosing, accept the room invitation from the user's account." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:50 +msgid "Make sure that you and the sender user are part of the same room and that the sender user has enough privileges in the room to be able to send messages there, then log out." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:52 +msgid "Take note of each room's room ID (different clients show the room ID in a different place). You'll need the room ID when [configuring the playbook](#adjusting-the-playbook-configuration) below." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:54 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:56 +msgid "To increase the chances that incoming emails reach your server, you can set up a `MX` record for `matrix.example.com` that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:62 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:64 +msgid "To enable Email2Matrix, add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_EMAIL2MATRIX1_HERE` and `ACCESS_TOKEN_FOR_EMAIL2MATRIX2_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:90 +msgid "where:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:92 +msgid "MailboxName — local-part of the email address, through which emails are bridged to the room whose ID is defined with MatrixRoomId" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:93 +msgid "MatrixRoomId — internal ID of the room, to which received emails are sent as Matrix message" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:94 +msgid "MatrixHomeserverUrl — URL of your Matrix homeserver, through which to send Matrix messages. You can also set `MatrixHomeserverUrl` to the container URL where your homeserver's Client-Server API lives by using the `{{ matrix_addons_homeserver_client_api_url }}` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:95 +msgid "MatrixUserId — the full ID of the sender user which sends bridged messages to the room. On this configuration it is `@email2matrix1:example.com` and `@email2matrix2:example.com` (where `example.com` is your base domain, not the `matrix.` domain)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:96 +msgid "MatrixAccessToken — sender user's access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:97 +msgid "IgnoreSubject — if set to \"true\", the subject is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:98 +msgid "IgnoreBody — if set to \"true\", the message body is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:99 +msgid "SkipMarkdown — if set to \"true\", emails are bridged as plain text Matrix message instead of Markdown (actually HTML)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:101 +msgid "Refer to the official documentation [here](https://github.com/devture/email2matrix/blob/master/docs/configuration.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:103 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:105 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:107 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:109 +msgid "`roles/custom/matrix-email2matrix/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:111 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:113 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:120 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:122 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service email2matrix` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:124 +msgid "`just install-service email2matrix` 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 "" + +#: ../../../docs/configuring-playbook-email2matrix.md:126 +msgid "After installation, you may wish to send a test email to the email address assigned to `mailbox1` (default: `mailbox1@matrix.example.com`) to make sure that Email2Matrix works as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:128 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:130 +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-email2matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:132 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:134 +msgid "If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-etherpad.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-etherpad.po new file mode 100644 index 000000000..11e08ff3e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-etherpad.po @@ -0,0 +1,174 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-etherpad.md:1 +msgid "Setting up Etherpad (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:3 +msgid "The playbook can install and configure [Etherpad](https://etherpad.org) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:5 +msgid "Etherpad is an open source collaborative text editor. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:7 +msgid "When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:11 +msgid "By default, this playbook installs Etherpad on the `etherpad.` subdomain (`etherpad.example.com`) and requires you to create a CNAME record for `etherpad`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:17 +msgid "To enable Etherpad, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:27 +msgid "Adjusting the Etherpad URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:29 +msgid "By tweaking the `etherpad_hostname` and `etherpad_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-etherpad.md:31 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:44 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:46 +msgid "Configure the default text (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:48 +msgid "You can also edit the default text on a new pad with the variable `etherpad_default_pad_text`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:50 +msgid "To do so, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:64 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:66 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:68 +msgid "[etherpad role](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/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 `etherpad_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:70 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:72 +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-etherpad.md:79 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:81 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the Etherpad admin user (`etherpad_admin_username`)." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:83 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:85 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:87 +msgid "If you change the Etherpad admin user's password (`etherpad_admin_password` in your `vars.yml` file) subsequently, the admin user's credentials on the homeserver won't be updated automatically. If you'd like to change the admin user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `etherpad_admin_password` to let the admin user know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:91 +msgid "The Etherpad UI should be available at `https://etherpad.example.com`, while the admin UI (if enabled) should then be available at `https://etherpad.example.com/admin`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:93 +msgid "If you've [decided on another hostname or path-prefix](#adjusting-the-etherpad-url-optional) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before using it." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:95 +msgid "Managing / Deleting old pads" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:97 +msgid "If you want to manage and remove old unused pads from Etherpad, you will first need to create the Etherpad admin user as described above." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:99 +msgid "After logging in to the admin web UI, go to the plugin manager page, and install the `adminpads2` plugin." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:101 +msgid "Once the plugin is installed, you should have a \"Manage pads\" section in the UI." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:103 +msgid "Integrating a Etherpad widget in a room" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:105 +msgid "**Note**: this is how it works in Element Web. It might work quite similar with other clients:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:107 +msgid "To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-external-postgres.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-external-postgres.po new file mode 100644 index 000000000..1f05c52b3 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-external-postgres.po @@ -0,0 +1,46 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-external-postgres.md:1 +msgid "Using an external PostgreSQL server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:3 +msgid "By default, this playbook would set up a PostgreSQL database server on your machine, running in a Docker container. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:5 +msgid "**Note**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** — you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:7 +msgid "If you'd like to use an external Postgres server that you manage, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:23 +msgid "The database (as specified in `matrix_synapse_database_database`) must exist and be accessible with the given credentials. It must be empty or contain a valid Synapse database. If empty, Synapse would populate it the first time it runs." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:25 +msgid "**Note**: the external server that you specify in `matrix_synapse_database_host` must be accessible from within the `matrix-synapse` Docker container (and possibly other containers too). This means that it either needs to be a publicly accessible hostname or that it's a hostname on the same Docker network where all containers installed by this playbook run (a network called `matrix` by default). Using a local PostgreSQL instance on the host (running on the same machine, but not in a container) is not possible." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:27 +msgid "The connection to your external Postgres server **will not be SSL encrypted**, as [we don't support that yet](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/89)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-federation.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-federation.po new file mode 100644 index 000000000..8c43749f2 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-federation.po @@ -0,0 +1,90 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-federation.md:1 +msgid "Controlling Matrix federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:3 +msgid "By default, your server federates with the whole Matrix network. That is, people on your server can communicate with people on any other Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:5 +msgid "**Note**: in the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com` and set up [server delegation](howto-server-delegation.md) / redirection. Without a proper configuration, your server will effectively not be part of the Matrix network. If you find your server is not federated, make sure to [check whether services work](maintenance-checking-services.md) and your server is properly delegated." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:7 +msgid "Federating only with select servers" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:9 +msgid "To make your server only federate with servers of your choosing, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:17 +msgid "If you wish to disable federation, you can do that with an empty list (`[]`), or better yet by completely disabling federation (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:19 +msgid "Exposing the room directory over federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:21 +msgid "By default, your server's public rooms directory is not exposed to other servers via federation." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:23 +msgid "To expose it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:29 +msgid "Disabling federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:31 +msgid "To completely disable federation, isolating your server from the rest of the Matrix network, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:37 +msgid "With that, your server's users will only be able to talk among themselves, but not to anyone who is on another server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:39 +msgid "**Disabling federation does not necessarily disable the federation port** (`8448`). Services like [Dimension](configuring-playbook-dimension.md) and [ma1sd](configuring-playbook-ma1sd.md) normally rely on `openid` APIs exposed on that port. Even if you disable federation and only if necessary, we may still be exposing the federation port and serving the `openid` APIs there. To override this and completely disable Synapse's federation port use:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:51 +msgid "Changing the federation port from 8448 to a different port to use a CDN that only accepts 443/80 ports" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:53 +msgid "Why? This change could be useful for people running small Synapse instances on small severs/VPSes to avoid being impacted by a simple DOS/DDOS when bandwidth, RAM, an CPU resources are limited and if your hosting provider does not provide a DOS/DDOS protection." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:55 +msgid "To make it possible to proxy the federation through a CDN such as CloudFlare or any other, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:66 +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 without issues.**" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-jitsi.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-jitsi.po new file mode 100644 index 000000000..b4ee0c25c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-jitsi.po @@ -0,0 +1,506 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-jitsi.md:1 +msgid "Setting up the Jitsi video-conferencing platform (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:3 +msgid "The playbook can install and configure the [Jitsi](https://jitsi.org/) video-conferencing platform for you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:5 +msgid "Jitsi can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:7 +msgid "See the project's [documentation](https://jitsi.github.io/handbook/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:9 +msgid "**Note**: the configuration by the playbook is similar to the one by [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet). You can refer to the official documentation for Docker deployment [here](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:13 +msgid "You may need to open the following ports to your server:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:15 +msgid "`4443/tcp` — RTP media fallback over TCP" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:16 +msgid "`10000/udp` — RTP media over UDP. Depending on your firewall/NAT configuration, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`jitsi_jvb_stun_servers`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/defaults/main.yml))." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:18 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:20 +msgid "By default, this playbook installs Jitsi on the `jitsi.` subdomain (`jitsi.example.com`) and requires you to create a CNAME record for `jitsi`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:22 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:26 +msgid "To enable Jitsi, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:32 +msgid "Adjusting the Jitsi URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:34 +msgid "By tweaking the `jitsi_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:43 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Jitsi domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:45 +msgid "Configure Jitsi authentication and guests mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:47 +msgid "By default the Jitsi instance does not require for anyone to log in, and is open to use without an account. To control who is allowed to start meetings on your Jitsi instance, you'd need to enable Jitsi's authentication and optionally guests mode." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:49 +msgid "Authentication type must be one of them: `internal` (default), `jwt`, `matrix` or `ldap`. Currently, only `internal`, `matrix` and `ldap` mechanisms are supported by the [Jitsi role](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:51 +msgid "With authentication enabled, all meetings have to be started by a registered user. After the meeting is started by that user, then guests are free to join. If the registered user is not yet present, the guests are put on hold in individual waiting rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:53 +msgid "**Note**: authentication is not tested by the playbook's self-checks. We therefore recommend that you would make sure by yourself that authentication is configured properly. To test it, start a meeting at `jitsi.example.com` on your browser." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:55 +msgid "Authenticate using Jitsi accounts: Auth-Type `internal` (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:57 +msgid "The default authentication mechanism is `internal` auth, which requires a Jitsi account to have been configured. This is a recommended method, as it also works in federated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:59 +msgid "To enable authentication with a Jitsi account, add the following configuration to your `vars.yml` file. Make sure to replace `USERNAME_…` and `PASSWORD_…` with your own values." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:71 +msgid "**Note**: as Jitsi account removal function is not integrated into the playbook, these accounts will not be able to be removed from the Prosody server automatically, even if they are removed from your `vars.yml` file subsequently." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:73 +msgid "Authenticate using Matrix OpenID: Auth-Type `matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:75 +msgid "[!WARNING] This breaks the Jitsi instance on federated rooms probably and does not allow sharing conference links with guests." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:78 +msgid "This authentication method requires [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service), which can be installed using this [playbook](configuring-playbook-user-verification-service.md). It verifies against Matrix openID, and requires a user-verification-service to run." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:80 +msgid "To enable authentication with Matrix OpenID, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:88 +msgid "For more information see also [https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification](https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:90 +msgid "Authenticate using LDAP: Auth-Type `ldap`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:92 +msgid "To enable authentication with LDAP, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:112 +msgid "For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:114 +msgid "Configure `JVB_ADVERTISE_IPS` for running behind NAT or on a LAN environment (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:116 +msgid "When running Jitsi in a LAN environment, or on the public Internet via NAT, the `JVB_ADVERTISE_IPS` enviornment variable should be set." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:118 +msgid "This variable allows to control which IP addresses the JVB will advertise for WebRTC media traffic. It is necessary to set it regardless of the use of a reverse proxy, since it's the IP address that will receive the media (audio / video) and not HTTP traffic, hence it's oblivious to the reverse proxy." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:120 +msgid "If your users are coming in over the Internet (and not over LAN), this will likely be your public IP address. If this is not set up correctly, calls will crash when more than two users join a meeting." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:122 +msgid "To set the variable, add the following configuration to your `vars.yml` file. Make sure to replace `LOCAL_IP_ADDRESS_OF_THE_HOST_HERE` with a proper value." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:129 +msgid "Check [the official documentation](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/#running-behind-nat-or-on-a-lan-environment) for more details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:131 +msgid "Set a maximum number of participants on a Jitsi conference (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:133 +msgid "You can set a maximum number of participants allowed to join a Jitsi conference. By default the number is not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:135 +msgid "To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:141 +msgid "Enable Gravatar (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:143 +msgid "In the default Jisti Meet configuration, `gravatar.com` is enabled as an avatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:145 +msgid "Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our default configuration has disabled the Gravatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:147 +msgid "To enable the Gravatar service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:153 +msgid "[!WARNING] This will result in third party request leaking data to the Gravatar Service (`gravatar.com`, unless configured otherwise). Besides metadata, the Matrix user_id and possibly the room ID (via `referrer` header) will be also sent to the third party." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:156 +msgid "Fine tune Jitsi (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:158 +msgid "If you'd like to have Jitsi save up resources, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:171 +msgid "These configurations:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:173 +msgid "**limit the maximum video resolution**, to save up resources on both server and clients" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:174 +msgid "**suspend unused video layers** until they are requested again, to save up resources on both server and clients. Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:175 +msgid "**disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:176 +msgid "**limit the number of video feeds forwarded to each client**, to save up resources on both server and clients. As clients’ bandwidth and CPU may not bear the load, use this setting to avoid lag and crashes. This feature is available by default on other webconference applications such as Office 365 Teams (the number is limited to 4). Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/5ff195985edf46c9399dcf263cb07167f0a2c724/doc/allocation.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:178 +msgid "Example configurations" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:180 +msgid "Here is an example set of configurations for running a Jitsi instance with:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:182 +msgid "authentication using a Jitsi account (username: `US3RNAME`, password: `passw0rd`)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:183 +msgid "guests: allowed" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:184 +msgid "maximum participants: 6 people" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:185 +msgid "fine tuning with the configurations presented above" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:186 +msgid "other miscellaneous options (see the official Jitsi documentation [here](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-configuration) and [here](https://jitsi.github.io/handbook/docs/user-guide/user-guide-advanced))" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:206 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:208 +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-jitsi.md:215 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:217 +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-jitsi.md:219 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:221 +msgid "You can use the self-hosted Jitsi server in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:223 +msgid "**by adding a widget to a room via Element Web** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:225 +msgid "**directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:227 +msgid "Set up additional JVBs for more video-conferences (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:229 +msgid "By default, a single JVB ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)) is deployed on the same host as the Matrix server. To allow more video-conferences to happen at the same time, you'd need to provision additional JVB services on other hosts." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:231 +msgid "These settings below will allow you to provision those extra JVB instances. The instances will register themselves with the Prosody service, and be available for Jicofo to route conferences too." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:233 +msgid "Add the `jitsi_jvb_servers` section on `hosts` file" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:235 +msgid "For additional JVBs, you'd need to add the section titled `jitsi_jvb_servers` on the ansible `hosts` file with the details of the JVB hosts as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:242 +msgid "Make sure to replace `jvb-2.example.com` with your hostname for the JVB and `192.168.0.2` with your JVB's external IP address, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:244 +msgid "You could add JVB hosts as many as you would like. When doing so, add lines with the details of them." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:246 +msgid "Prepare `vars.yml` files for additional JVBs" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:248 +msgid "If the main server is `matrix.example.com` and the additional JVB instance is going to be deployed at `jvb-2.example.com`, the variables for the latter need to be specified on `vars.yml` in its directory (`inventory/host_vars/jvb-2.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:250 +msgid "Note that most (if not all) variables are common for both servers." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:252 +msgid "If you are setting up multiple JVB instances, you'd need to create `vars.yml` files for each of them too (`inventory/host_vars/jvb-3.example.com/vars.yml`, for example)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:254 +msgid "Set the server ID to each JVB" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:256 +msgid "Each JVB requires a server ID to be set, so that it will be uniquely identified. The server ID allows Jitsi to keep track of which conferences are on which JVB." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:258 +msgid "The server ID can be set with the variable `jitsi_jvb_server_id`. It will end up as the `JVB_WS_SERVER_ID` environment variables in the JVB docker container." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:260 +msgid "To set the server ID to `jvb-2`, add the following configuration to either `hosts` or `vars.yml` files (adapt to your needs)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:262 +msgid "On `hosts`:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:264 +msgid "Add `jitsi_jvb_server_id=jvb-2` after your JVB's external IP addresses as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:272 +msgid "On `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:278 +msgid "Alternatively, you can specify the variable as a parameter to [the ansible command](#run-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:280 +msgid "**Note**: the server ID `jvb-1` is reserved for the JVB instance running on the Matrix host, therefore should not be used as the ID of an additional JVB host." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:282 +msgid "Set colibri WebSocket port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:284 +msgid "The additional JVBs will need to expose the colibri WebSocket port." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:286 +msgid "To expose the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:292 +msgid "Set Prosody XMPP server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:294 +msgid "The JVB will also need to know the location of the Prosody XMPP server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:296 +msgid "Similar to the server ID (`jitsi_jvb_server_id`), this can be set with the variable for the JVB by using the variable `jitsi_xmpp_server`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:298 +msgid "Set the Matrix domain" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:300 +msgid "The Jitsi Prosody container is deployed on the Matrix server by default, so the value can be set to the Matrix domain. To set the value, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:306 +msgid "Set an IP address of the Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:308 +msgid "Alternatively, the IP address of the Matrix server can be set. This can be useful if you would like to use a private IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:310 +msgid "To set the IP address of the Matrix server, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:316 +msgid "Expose XMPP port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:318 +msgid "By default, the Matrix server does not expose the XMPP port (`5222`); only the XMPP container exposes it internally inside the host. This means that the first JVB (which runs on the Matrix server) can reach it but the additional JVBs cannot. Therefore, the XMPP server needs to expose the port, so that the additional JVBs can connect to it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:320 +msgid "To expose the port and have Docker forward the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:326 +msgid "Reverse-proxy with Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:328 +msgid "To make Traefik reverse-proxy to these additional JVBs, add the following configuration to your main `vars.yml` file (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:364 +msgid "Run the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:366 +msgid "After configuring `hosts` and `vars.yml` files, run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:372 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:374 +msgid "`Error: Account creation/modification not supported`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:376 +msgid "If you get an error like `Error: Account creation/modification not supported` with authentication enabled, it's likely that you had previously installed Jitsi without auth/guest support." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:378 +msgid "In this case, you should consider to rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:380 +msgid "Rebuilding your Jitsi installation" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:382 +msgid "If you ever run into any trouble or if you have changed configuration (`jitsi_*` variables) too much, you can rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:384 +msgid "We normally don't recommend manual intervention, but Jitsi services tend to generate a lot of configuration files, and it is often wise to start afresh setting the services up, rather than messing with the existing configuration files. Since not all of those files are managed by Ansible (at least not yet), you may sometimes need to delete them by yourself manually." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:386 +msgid "To rebuild your Jitsi configuration, follow the procedure below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:388 +msgid "run this command locally to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:389 +msgid "log in the server with SSH" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:390 +msgid "run this command remotely to remove all Jitsi configuration & data: `rm -rf /matrix/jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:391 +msgid "run this command locally to set up Jitsi anew and restart services: `just install-service jitsi`" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po new file mode 100644 index 000000000..650db6880 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ldap-auth.md:1 +msgid "Setting up the LDAP authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:3 +msgid "The playbook can install and configure the [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) LDAP Auth password provider for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-synapse-ldap3/blob/main/README.rst) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:7 +msgid "If you decide that you'd like to let this playbook install it for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:24 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:26 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:32 +msgid "Using ma1sd Identity Server for authentication (not recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:34 +msgid "The playbook can instead configure [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for LDAP authentication. However, **we recommend not bothering with installing it** as ma1sd has been unmaintained for years." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:36 +msgid "If you wish to install it anyway, consult the [ma1sd Identity Server configuration](configuring-playbook-ma1sd.md#authentication)." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:38 +msgid "Handling user registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:40 +msgid "If you wish for users to also be able to make new registrations against LDAP, you may **also** wish to [set up the ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ma1sd.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ma1sd.po new file mode 100644 index 000000000..aa6374686 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ma1sd.po @@ -0,0 +1,226 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ma1sd.md:1 +msgid "Setting up ma1sd Identity Server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:3 +msgid "**⚠️Note**: ma1sd itself has also been unmaintained for years (the latest commit and release being from 2021). The role of identity servers in the Matrix specification also has an uncertain future. **We recommend not bothering with installing it unless it's the only way you can do what you need to do**. For example, certain things like LDAP integration can also be implemented via [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:5 +msgid "The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you. It is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:7 +msgid "ma1sd is used for 3PIDs (3rd party identifiers like E-mail and phone numbers) and some [enhanced features](https://github.com/ma1uta/ma1sd/#features). It is private by default, potentially at the expense of user discoverability." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:9 +msgid "See the project's [documentation](https://github.com/ma1uta/ma1sd/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:15 +msgid "Enabling the ma1sd service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:17 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:19 +msgid "To make the ma1sd Identity Server enable its federation features, set up a SRV record that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:21 +msgid "Name: `_matrix-identity._tcp` (use this text as-is)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:22 +msgid "Content: `10 0 443 matrix.example.com` (replace `example.com` with your own)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:24 +msgid "See [ma1sd's documentation](https://github.com/ma1uta/ma1sd/wiki/mxisd-and-your-privacy#choices-are-never-easy) for information on the privacy implications of setting up this SRV record." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:26 +msgid "When setting up a SRV record, if you are asked for a service and protocol instead of a hostname split the host value from the table where the period is. For example use service as `_matrix-identity` and protocol as `_tcp`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:28 +msgid "**Note**: This `_matrix-identity._tcp` SRV record for the identity server is different from the `_matrix._tcp` that can be used for Synapse delegation. See [howto-server-delegation.md](howto-server-delegation.md) for more information about delegation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:30 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:32 +msgid "To enable ma1sd, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:38 +msgid "Matrix.org lookup forwarding" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:40 +msgid "To ensure maximum discovery, you can make your identity server also forward lookups to the central matrix.org Identity server (at the cost of potentially leaking all your contacts information)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:42 +msgid "Enabling this is discouraged and you'd better [learn more](https://github.com/ma1uta/ma1sd/blob/master/docs/features/identity.md#lookups) before proceeding." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:44 +msgid "To enable matrix.org forwarding, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:50 +msgid "Additional features" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:52 +msgid "What this playbook configures for your is some bare minimum Identity Server functionality, so that you won't need to rely on external 3rd party services." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:54 +msgid "A few variables can be toggled in this playbook to alter the ma1sd configuration that gets generated." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:56 +msgid "Still, ma1sd can do much more. You can refer to the [ma1sd website](https://github.com/ma1uta/ma1sd) for more details and configuration options." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:58 +msgid "To use a more custom configuration, you can define a `matrix_ma1sd_configuration_extension_yaml` string variable and put your configuration in it. To learn more about how to do this, refer to the information about `matrix_ma1sd_configuration_extension_yaml` in the [default variables file](../roles/custom/matrix-ma1sd/defaults/main.yml) of the ma1sd component." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:60 +msgid "Customizing email templates" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:62 +msgid "If you'd like to change the default email templates used by ma1sd, take a look at the `matrix_ma1sd_threepid_medium_email_custom_` variables (in the `roles/custom/matrix-ma1sd/defaults/main.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:64 +msgid "ma1sd-controlled Registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:66 +msgid "To use the [Registration](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) feature of ma1sd, you can make use of the following variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:68 +msgid "`matrix_synapse_enable_registration` — to enable user-initiated registration in Synapse" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:70 +msgid "`matrix_synapse_enable_registration_captcha` — to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring-captcha.md) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:72 +msgid "`matrix_synapse_registrations_require_3pid` — a list of 3pid types (among `'email'`, `'msisdn'`) required by the Synapse server for registering" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:74 +msgid "variables prefixed with `matrix_ma1sd_container_labels_` (e.g. `matrix_ma1sd_container_labels_matrix_client_3pid_registration_enabled`) — to configure the Traefik reverse-proxy to capture and send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:76 +msgid "`matrix_ma1sd_configuration_extension_yaml` — to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:78 +msgid "**Note**: For this to work, either the homeserver needs to [federate](configuring-playbook-federation.md) or the `openid` APIs need to exposed on the federation port. When federation is disabled and ma1sd is enabled, we automatically expose the `openid` APIs (only!) on the federation port. Make sure the federation port (usually `https://matrix.example.com:8448`) is whitelisted in your firewall (even if you don't actually use/need federation)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:80 +msgid "Authentication" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:82 +msgid "[Authentication](https://github.com/ma1uta/ma1sd/blob/master/docs/features/authentication.md) provides the possibility to use your own [Identity Stores](https://github.com/ma1uta/ma1sd/blob/master/docs/stores/README.md) (for example LDAP) to authenticate users on your Homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:84 +msgid "To enable authentication against an LDAP server, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:104 +msgid "Example: SMS verification" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:106 +msgid "If your use case requires mobile verification, it is quite simple to integrate ma1sd with [Twilio](https://www.twilio.com/), an online telephony services gateway. Their prices are reasonable for low-volume projects and integration can be done with the following configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:120 +msgid "Example: Open Registration for every Domain" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:122 +msgid "If you want to open registration for any domain, you have to setup the allowed domains with ma1sd's `blacklist` and `whitelist`. The default behavior when neither the `blacklist`, nor the `whitelist` match, is to allow registration. Beware: you can't block toplevel domains (aka `.xy`) because the internal architecture of ma1sd doesn't allow that." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:136 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:138 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:145 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:147 +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-ma1sd.md:149 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:151 +msgid "If email address validation emails sent by ma1sd are not reaching you, you should look into [Adjusting email-sending settings](configuring-playbook-email.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:153 +msgid "If you'd like additional logging information, temporarily enable verbose logging for ma1sd." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:155 +msgid "To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po new file mode 100644 index 000000000..0b1dda626 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po @@ -0,0 +1,623 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:1 +msgid "Setting up Matrix Authentication Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:3 +msgid "The playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) — a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:5 +msgid "Matrix Authentication Service is an implementation of [MSC3861: Next-generation auth for Matrix, based on OAuth 2.0/OIDC](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) and still work in progress, tracked at the [areweoidcyet.com](https://areweoidcyet.com/) website." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:7 +msgid "**Before going through with starting to use Matrix Authentication Service**, make sure to read:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:9 +msgid "the [Reasons to use Matrix Authentication Service](#reasons-to-use-matrix-authentication-service) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:10 +msgid "the [Expectations](#expectations) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:11 +msgid "the [FAQ section on areweoidcyet.com](https://areweoidcyet.com/#faqs)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:13 +msgid "**If you've already been using Synapse** and have user accounts in its database, you can [migrate to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:15 +msgid "Reasons to use Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:17 +msgid "You may be wondering whether you should make the switch to Matrix Authentication Service (MAS) or keep using your existing authentication flow via Synapse (password-based or [OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)-enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:19 +msgid "Matrix Authentication Service is **still an experimental service** and **not a default** for this Ansible playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:21 +msgid "The [Expectations](#expectations) section contains a list of what works and what doesn't (**some services don't work with MAS yet**), as well as the **relative irreversability** of the migration process." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:23 +msgid "Below, we'll try to **highlight some potential reasons for switching** to Matrix Authentication Service:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:25 +msgid "To use SSO in [Element X](https://element.io/blog/element-x-ignition/). The old [Synapse OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) login flow is only supported in old Element clients and will not be supported in Element X. Element X will only support the new SSO-based login flow provided by MAS, so if you want to use SSO with Element X, you will need to switch to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:27 +msgid "To help drive adoption of the \"Next-generation auth for Matrix\" by switching to what's ultimately coming anyway" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:29 +msgid "To help discover (and potentially fix) MAS integration issues with this Ansible playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:31 +msgid "To help discover (and potentially fix) MAS integration issues with various other Matrix components (bridges, bots, clients, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:33 +msgid "To reap some of the security benefits that Matrix Authentication Service offers, as outlined in the [Better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/) article." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:35 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:37 +msgid "⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:39 +msgid "⚠️ **email sending** configured (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:41 +msgid "❌ **disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:43 +msgid "Expectations" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:45 +msgid "This section details what you can expect when switching to the Matrix Authentication Service (MAS)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:47 +msgid "❌ **Synapse password providers will need to be disabled**. You can no longer use [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc. When the authentication flow is handled by MAS (not by Synapse anymore), it doesn't make sense to extend the Synapse authentication flow with additional modules. Many bridges used to rely on shared-secret-auth for doing double-puppeting (impersonating other users), but most (at least the mautrix bridges) nowadays use [Appservice Double Puppet](./configuring-playbook-appservice-double-puppet.md) as a better alternative. Older/maintained bridges may still rely on shared-secret-auth, as do other services like [matrix-corporal](./configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:49 +msgid "❌ Certain **tools like [synapse-admin](./configuring-playbook-synapse-admin.md) do not have full compatibility with MAS yet**. synapse-admin already supports [login with access token](https://github.com/etkecc/synapse-admin/pull/58), browsing users (which Synapse will internally fetch from MAS) and updating user avatars. However, editing users (passwords, etc.) now needs to happen directly against MAS using the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html), which synapse-admin cannot interact with yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:51 +msgid "❌ **Some services experience issues when authenticating via MAS**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:53 +msgid "[Postmoogle](./configuring-playbook-bridge-postmoogle.md) works the first time around, but it consistently fails after restarting:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:55 +msgid "cannot initialize matrix bot error=\"olm account is marked as shared, keys seem to have disappeared from the server\"" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:57 +msgid "[matrix-reminder-bot](./configuring-playbook-bot-matrix-reminder-bot.md) fails to start (see [element-hq/matrix-authentication-service#3439](https://github.com/element-hq/matrix-authentication-service/issues/3439))" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:58 +msgid "Other services may be similarly affected. This list is not exhaustive." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:60 +msgid "❌ **Encrypted appservices** do not work yet (related to [MSC4190](https://github.com/matrix-org/matrix-spec-proposals/pull/4190) and [PR 17705 for Synapse](https://github.com/element-hq/synapse/pull/17705)), so all bridges/bots that rely on encryption will fail to start (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3658) for Hookshot). You can use these bridges/bots only if you **keep end-to-bridge encryption disabled** (which is the default setting)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:62 +msgid "⚠️ **You will need to have email sending configured** (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:64 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) is **possible**, but requires **some playbook-assisted manual work**. Migration is **reversible with no or minor issues if done quickly enough**, but as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:66 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) does not currently seem to preserve the \"admin\" flag for users (as found in the Synapse database). All users are imported as non-admin — see [element-hq/matrix-authentication-service#3440](https://github.com/element-hq/matrix-authentication-service/issues/3440). You may need update the Matrix Authentication Service's database manually and adjust the `can_request_admin` column in the `users` table to `true` for users that need to be administrators (e.g. `UPDATE users SET can_request_admin = true WHERE username = 'someone';`)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:68 +msgid "⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependant on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:70 +msgid "⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:72 +msgid "⚠️ A [compatibility layer](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) is installed — all `/_matrix/client/*/login` (etc.) requests will be routed to MAS instead of going to the homeserver. This is done both publicly (e.g. `https://matrix.example.com/_matrix/client/*/login`) and on the internal Traefik entrypoint (e.g. `https://matrix-traefik:8008/_matrix/client/*/login`) which helps addon services reach the homeserver's Client-Server API. You typically don't need to do anything to make this work, but it's good to be aware of it, especially if you have a [custom webserver setup](./configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:74 +msgid "✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:76 +msgid "✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element Web](./configuring-playbook-client-element-web.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:78 +msgid "✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:80 +msgid "✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:82 +msgid "✅ Users that are prepared by the playbook (for bots, bridges, etc.) will continue to be registered automatically as expected. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:84 +msgid "Installation flows" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:86 +msgid "New homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:88 +msgid "For new homeservers (which don't have any users in their Synapse database yet), follow the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions and then proceed with [Installing](#installing)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:90 +msgid "Existing homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:92 +msgid "Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:94 +msgid "For existing Synapse homeservers:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:96 +msgid "when following the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions, make sure to **disable the integration between Synapse and MAS** by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line as described in the [Marking an existing homeserver for migration](#marking-an-existing-homeserver-for-migration) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:98 +msgid "then follow the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) instructions to perform the installation and migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:100 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:102 +msgid "By default, this playbook installs the Matrix Authentication Service on the `matrix.` subdomain, at the `/auth` path (https://matrix.example.com/auth). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:104 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-authentication-service-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:106 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:108 +msgid "To enable Matrix Authentication Service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:122 +msgid "In the sub-sections that follow, we'll cover some additional configuration options that you may wish to adjust." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:124 +msgid "There are many other configuration options available. Consult the [`defaults/main.yml` file](../roles/custom/matrix-authentication-service/defaults/main.yml) in the [matrix-authentication-service role](../roles/custom/matrix-authentication-service/) to discover them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:126 +msgid "Adjusting the Matrix Authentication Service URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:128 +msgid "By tweaking the `matrix_authentication_service_hostname` and `matrix_authentication_service_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-matrix-authentication-service.md:130 +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:157 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:138 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Matrix Authentication Service domain (`auth.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:140 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:142 +msgid "Marking an existing homeserver for migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:144 +msgid "The [configuration above](#adjusting-the-playbook-configuration) instructs existing users wishing to migrate to add `matrix_authentication_service_migration_in_progress: true` to their configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:146 +msgid "This is done temporarily. The migration steps are described in more detail in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:148 +msgid "Upstream OAuth2 configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:150 +msgid "To make Matrix Authentication Service delegate to an existing upstream OAuth 2.0/OIDC provider, you can use its [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:152 +msgid "The playbook exposes a `matrix_authentication_service_config_upstream_oauth2_providers` variable for controlling this setting." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:269 +msgid "💡 Refer to the [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers) for the most up-to-date schema and example for providers. The value shown above here may be out of date." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:271 +msgid "⚠️ The syntax for existing [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) is slightly different, so you will need to adjust your configuration when switching from Synapse OIDC to MAS upstream OAuth2." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:273 +msgid "⚠️ When [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) which contains OIDC-sourced users, you will need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:275 +msgid "[Configure upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:276 +msgid "go through the [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) process" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:277 +msgid "remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:279 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:281 +msgid "Now that you've [adjusted the playbook configuration](#adjusting-the-playbook-configuration) and [your DNS records](#adjusting-dns-records), you can run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:288 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:290 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:292 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:294 +msgid "If you're in the process of migrating an existing Synapse homeserver to MAS, you should now follow the rest of the steps in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:296 +msgid "💡 After installation, you should [verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:298 +msgid "Migrating an existing Synapse homeserver to Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:300 +msgid "Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:302 +msgid "Migration is done via a tool called `syn2mas`, which the playbook could run for you (in a container)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:304 +msgid "The installation + migration steps are like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:306 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) to **disable the integration between the homeserver and MAS**. This is done by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:308 +msgid "Perform the initial [installation](#installing). At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:310 +msgid "Matrix Authentication Service will be installed. Its database will be empty, so it cannot validate existing access tokens or authentication users yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:312 +msgid "The homeserver will still continue to use its local database for validating existing access tokens." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:314 +msgid "Various [compatibility layer URLs](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) are not yet installed. New login sessions will still be forwarded to the homeserver, which is capable of completing them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:316 +msgid "The `matrix-user-creator` role would be suppressed, so that it doesn't automatically attempt to create users (for bots, etc.) in the MAS database. These user accounts likely already exist in Synapse's user database and could be migrated over (via syn2mas, as per the steps below), so creating them in the MAS database would have been unnecessary and potentially problematic (conflicts during the syn2mas migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:318 +msgid "Consider taking a full [backup of your Postgres database](./maintenance-postgres.md#backing-up-postgresql). This is done just in case. The **syn2mas migration tool does not delete any data**, so it should be possible to revert to your previous setup by merely disabling MAS and re-running the playbook (no need to restore a Postgres backup). However, do note that as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:320 +msgid "[Migrate your data from Synapse to Matrix Authentication Service using syn2mas](#migrate-your-data-from-synapse-to-matrix-authentication-service-using-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:322 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) again, to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:324 +msgid "remove the `matrix_authentication_service_migration_in_progress: false` line" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:326 +msgid "if you had been using [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:328 +msgid "Perform the [installation](#installing) again. At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:330 +msgid "The homeserver will start delegating authentication to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:332 +msgid "The compatibility layer URLs will be installed. New login sessions will be completed by MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:334 +msgid "[Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:336 +msgid "Migrate your data from Synapse to Matrix Authentication Service using syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:338 +msgid "We **don't** ask you to [run the `syn2mas` migration advisor command](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#run-the-migration-advisor), because it only gives you the green light if your Synapse configuration (`homeserver.yaml`) is configured in a way that's compatible with MAS (delegating authentication to MAS; disabling Synapse's password config; etc.). Until we migrate your data with the `syn2mas` tool, we intentionally avoid doing these changes to allow existing user sessions to work." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:340 +msgid "You can invoke the `syn2mas` tool via the playbook by running the playbook's `matrix-authentication-service-syn2mas` tag. We recommend first doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:342 +msgid "Configuring syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:344 +msgid "If you're using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to [Configuring upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:346 +msgid "If you only have local (non-OIDC) users in your Synapse database, you can likely run `syn2mas` as-is (without doing additional configuration changes)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:348 +msgid "When you're done with potentially configuring `syn2mas`, proceed to doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:350 +msgid "Configuring upstream OIDC provider mapping for syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:352 +msgid "If you have existing OIDC users in your Synapse user database (which will be the case if when using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)), you may need to pass an additional `--upstreamProviderMapping` argument to the `syn2mas` tool to tell it which provider (on the Synapse side) maps to which other provider on the MAS side." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:354 +msgid "If you don't do this, `syn2mas` would report errors like this one:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:356 +msgid "[FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @alice:example.com: Error: Unknown upstream provider oidc-keycloak]" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:358 +msgid "Below is an example situation and a guide for how to solve it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:360 +msgid "If in `matrix_synapse_oidc_providers` your provider `idp_id` is (was) named `keycloak`, in the Synapse database users would be associated with the `oidc-keycloak` provider (note the `oidc-` prefix that was added automatically by Synapse to your `idp_id` value)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:362 +msgid "The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the MAS side, as defined in `matrix_authentication_service_config_upstream_oauth2_providers` (see the [Upstream OAuth2 configuration](#upstream-oauth2-configuration) section above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:364 +msgid "To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:373 +msgid "Performing a syn2mas dry-run" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:375 +msgid "Having [configured syn2mas](#configuring-syn2mas), we recommend doing a [dry-run](https://en.wikipedia.org/wiki/Dry_run_(testing)) first to verify that everything will work out as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:377 +msgid "A dry-run would not cause downtime, because it avoids stopping Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:379 +msgid "To perform a dry-run, run:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:385 +msgid "Observe the command output (especially the last line of the the syn2mas output). If you are confident that the migration will work out as expected, you can proceed with a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:387 +msgid "Performing a real syn2mas migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:389 +msgid "Before performing a real migration make sure:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:391 +msgid "you've familiarized yourself with the [expectations](#expectations)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:393 +msgid "you've performed a Postgres backup, just in case" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:395 +msgid "you're aware of the irreversibility of the migration process without disruption after users have created new login sessions via the new MAS setup" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:397 +msgid "you've [configured syn2mas](#configuring-syn2mas), especially if you've used [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:399 +msgid "you've performed a [syn2mas dry-run](#performing-a-syn2mas-dry-run) and don't see any issues in its output" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:401 +msgid "To perform a real migration, run the `matrix-authentication-service-syn2mas` tag **without** the `matrix_authentication_service_syn2mas_dry_run` variable:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:407 +msgid "Having performed a `syn2mas` migration once, trying to do it again will report errors for users that were already migrated (e.g. \"Error: Unknown upstream provider oauth-delegated\")." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:409 +msgid "Verify that Matrix Authentication Service is installed correctly" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:411 +msgid "After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:413 +msgid "You can do it:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:415 +msgid "either via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag: `just run-tags matrix-authentication-service-mas-cli-doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:417 +msgid "or by running the `mas-cli` script on the server (which invokes the `mas-cli` tool inside a container): `/matrix/matrix-authentication-service/bin/mas-cli doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:419 +msgid "If successful, you should see some output that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:431 +msgid "Management" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:433 +msgid "You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:435 +msgid "This documentation page already mentions:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:437 +msgid "the `mas-cli doctor` sub-command in the [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) section, which you can run via the CLI and via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:439 +msgid "the `mas-cli manage register-user` sub-command in the [Registering users](./registering-users.md) documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:441 +msgid "There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:443 +msgid "User registration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:445 +msgid "After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration))." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:447 +msgid "You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:449 +msgid "Working around email deliverability issues" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:451 +msgid "Because Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user, you may need to work around email deliverability issues if [your email-sending configuration](./configuring-playbook-email.md) is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:453 +msgid "Matrix Authentication Service attempts to verify email addresses by sending a verification email to the address specified by the user whenever they log in to an account without a verified email address." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:455 +msgid "If email delivery is not working, **you can retrieve the email configuration code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:457 +msgid "Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com`" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po new file mode 100644 index 000000000..35eb8e43b --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po @@ -0,0 +1,130 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:1 +msgid "Setting up Matrix Corporal (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:5 +msgid "[!WARNING] This is an advanced feature! It requires prior experience with Matrix and a specific need for using [Matrix Corporal](https://github.com/devture/matrix-corporal). If you're unsure whether you have such a need, you most likely don't." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:10 +msgid "The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:12 +msgid "In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:14 +msgid "See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:16 +msgid "If you decide that you'd like to let this playbook install it for you, you'd need to also:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:17 +msgid "(required) [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:18 +msgid "(optional, but encouraged) [set up the REST authentication password provider module](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:22 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:75 +msgid "Matrix Corporal operates with a specific Matrix user on your server. By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:77 +msgid "No matter what Matrix user ID you configure to run it with, make sure that:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:79 +msgid "the Matrix Corporal user is created by [registering it](registering-users.md) **with administrator privileges**. Use a password you remember, as you'll need to log in from time to time to create or join rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:81 +msgid "the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:83 +msgid "Using a locally-stored static policy" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:85 +msgid "If you'd like to use a [static policy file](https://github.com/devture/matrix-corporal/blob/master/docs/policy-providers.md#static-file-pull-style-policy-provider), you can use a configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:117 +msgid "To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:119 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:121 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:128 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just run-tags setup-aux-files,setup-corporal,start` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:130 +msgid "`just run-tags setup-aux-files,setup-corporal,start` 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 "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:132 +msgid "Matrix Corporal files" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:134 +msgid "The following local filesystem paths are mounted in the `matrix-corporal` container and can be used in your configuration (or policy):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:136 +msgid "`/matrix/corporal/config` is mounted at `/etc/matrix-corporal` (read-only)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:138 +msgid "`/matrix/corporal/var` is mounted at `/var/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:140 +msgid "`/matrix/corporal/cache` is mounted at `/var/cache/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:142 +msgid "As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths — `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po new file mode 100644 index 000000000..c2d7ae3d9 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:1 +msgid "Setting up matrix-ldap-registration-proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:3 +msgid "The playbook can install and configure [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:5 +msgid "This proxy handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:7 +msgid "**Note**: This does support the full Matrix specification for registrations. It only provide a very coarse implementation of a basic password registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:9 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:22 +msgid "If you already use the [synapse external password provider via LDAP](configuring-playbook-ldap-auth.md) (that is, you have `matrix_synapse_ext_password_provider_ldap_enabled: true` and other options in your configuration) you can use the following values as configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:44 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:46 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po new file mode 100644 index 000000000..3acc935c1 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-28 10:25+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:1 +msgid "Storing Matrix media files using matrix-media-repo (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:3 +msgid "[matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) (often abbreviated \"MMR\") is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:5 +msgid "Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:7 +msgid "For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "**Table of Contents**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Quickstart](#quickstart)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Additional configuration options](#configuring-the-media-repo)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Importing data from an existing media store](#importing-data-from-an-existing-media-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:15 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file and [re-run the installation process](./installing.md) for the playbook:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:26 +msgid "The repo is pre-configured for integrating with the Postgres database, Traefik proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:28 +msgid "By default, the media-repo will use the local filesystem for data storage. You can alternatively use a `s3` cloud backend as well. Access token caching is also enabled by default since the logout endpoints are proxied through the media repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:30 +msgid "Configuring the media-repo" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:32 +msgid "Additional common configuration options:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:91 +msgid "Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](../roles/custom/matrix-media-repo/defaults/main.yml)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:93 +msgid "Signing Keys" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:95 +msgid "Authenticated media endpoints ([MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)) requires MMR to have a configured signing key to authorize outbound federation requests. Additionally, the signing key must be merged with your homeserver's signing key file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:97 +msgid "The playbook default is to generate a MMR signing key when invoking the setup role and merge it with your homeserver if you are using Synapse or Dendrite. This can be disabled if desired by setting the option in your inventory:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:103 +msgid "If you wish to manually generate the signing key and merge it with your homeserver's signing key file, see https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/ for more details." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:105 +msgid "**Note that if you uninstall MMR from the playbook, it will not remove the old MMR signing key from your homeserver's signing key file. You will have to remove it manually.**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:107 +msgid "Key backup and revoking" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:109 +msgid "Since your homeserver signing key file is modified by the playbook, a backup will be created in `HOMESERVER_DIR/config/example.com.signing.key.backup`. If you need to remove/revoke old keys, you can restore from this backup or remove the MMR key ID from your `example.com.signing.key` file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:111 +msgid "Additionally, its recommended after revoking a signing key to update your homeserver config file (`old_signing_keys` field for Synapse and `old_private_keys` for Dendrite). See your homeserver config file for further documentation on how to populate the field." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:113 +msgid "Importing data from an existing media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:115 +msgid "If you want to add this repo to an existing homeserver managed by the playbook, you will need to import existing media into MMR's database or you will lose access to older media while it is active. MMR versions up to `v1.3.3` only support importing from Synapse, but newer versions (at time of writing: only `latest`) also support importing from Dendrite." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:117 +msgid "**Before importing**: ensure you have an initial matrix-media-repo deployment by following the [quickstart](#quickstart) guide above" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:119 +msgid "Depending on the homeserver implementation yu're using (Synapse, Dendrite), you'll need to use a different import tool (part of matrix-media-repo) and point it to the homeserver's database." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:121 +msgid "Importing data from the Synapse media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:123 +msgid "To import the Synapse media store, you're supposed to invoke the `import_synapse` tool which is part of the matrix-media-repo container image. Your Synapse database is called `synapse` by default, unless you've changed it by modifying `matrix_synapse_database_database`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:125 +msgid "This guide here is adapted from the [upstream documentation about the import_synapse script](https://github.com/turt2live/matrix-media-repo#importing-media-from-synapse)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:127 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:149 +msgid "Run the following command on the server (after replacing `postgres_connection_password` in it with the value found in your `vars.yml` file):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:139 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:161 +msgid "Enter `1` for the Machine ID when prompted (you are not doing any horizontal scaling) unless you know what you're doing." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:141 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:163 +msgid "This should output a `msg=\"Import completed\"` when finished successfully!" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:143 +msgid "Importing data from the Dendrite media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:145 +msgid "If you're using the [Dendrite](configuring-playbook-dendrite.md) homeserver instead of the default for this playbook (Synapse), follow this importing guide here." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:147 +msgid "To import the Dendrite media store, you're supposed to invoke the `import_dendrite` tool which is part of the matrix-media-repo container image. Your Dendrite database is called `dendrite_mediaapi` by default, unless you've changed it by modifying `matrix_dendrite_media_api_database`." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po new file mode 100644 index 000000000..dd519fc34 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-registration.md:1 +msgid "Setting up matrix-registration (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:4 +msgid "This is a poorly maintained and buggy project. It's better to avoid using it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:5 +msgid "This is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:7 +msgid "The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you. It is a simple python application to have a token based Matrix registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:9 +msgid "Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows certain people (these having a special link) to register a user account, **keeping your server's registration closed (private)**." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:11 +msgid "**matrix-registration** provides 2 things:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:13 +msgid "**an API for creating registration tokens** (unique registration links). This API can be used via `curl` or via the playbook (see [Usage](#usage) below)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:15 +msgid "**a user registration page**, where people can use these registration tokens. By default, exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:19 +msgid "By default, this playbook installs the matrix-registration on the `matrix.` subdomain, at the `/matrix-registration` path (https://matrix.example.com/matrix-registration). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-registration-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:25 +msgid "To enable matrix-registration, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:34 +msgid "Adjusting the matrix-registration URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:36 +msgid "By tweaking the `matrix_registration_hostname` and `matrix_registration_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-matrix-registration.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-registration domain (`registration.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:52 +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-matrix-registration.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:65 +msgid "**matrix-registration** gets exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:67 +msgid "It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) — for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:69 +msgid "We make the most common APIs easy to use via the playbook (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:71 +msgid "Creating registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:73 +msgid "To **create a new user registration token (link)**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:81 +msgid "The above command creates and returns a **one-time use** token, which **expires** on the 31st of December 2021. Adjust the `one_time` and `ex_date` variables as you see fit." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:83 +msgid "Share the unique registration link (generated by the command above) with users to let them register on your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:85 +msgid "Listing registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:87 +msgid "To **list the existing user registration tokens**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:94 +msgid "The shortcut command with `just` program is also available: `just run-tags list-matrix-registration-tokens`" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po new file mode 100644 index 000000000..3435536f2 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po @@ -0,0 +1,183 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, facebook, instagram, signal, hangouts, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:5 +msgid "You can see each bridge's features at in the `ROADMAP.md` file in its corresponding [mautrix](https://github.com/mautrix) repository." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:9 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:16 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:18 +msgid "To **configure a user as an administrator for all bridges**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:24 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:33 +msgid "encryption" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:35 +msgid "Encryption support is off by default. If you would like to enable encryption, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:37 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:44 +#: ../../../docs/configuring-playbook-mautrix-bridges.md:61 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:51 +msgid "relay mode" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:53 +msgid "Relay mode is off by default. If you would like to enable relay mode, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:55 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:70 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:82 +msgid "Setting the bot's username" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:88 +msgid "Can be used to set the username for the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:90 +msgid "Discovering additional configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:92 +msgid "You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` to find other things you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:96 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:111 +msgid "Set up Double Puppeting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:113 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:115 +msgid "The bridge automatically performs Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) is configured and enabled on the server for this playbook by adding" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:121 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:123 +msgid "Controlling the logging level" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:129 +msgid "to `vars.yml` to control the logging level, where you may replace WARN with one of the following to control the verbosity of the logs generated: TRACE, DEBUG, INFO, WARN, ERROR, or FATAL." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:131 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:133 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:135 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:137 +msgid "Send `login` to the bridge bot to get started. You can learn more here about authentication from the bridge's official documentation on Authentication: https://docs.mau.fi/bridges/python/SERVICENAME/authentication.html" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:139 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:141 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:143 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:145 +msgid "Reporting bridge bugs should happen upstream, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-nginx.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-nginx.po new file mode 100644 index 000000000..db6c60afb --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-nginx.po @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-nginx.md:1 +msgid "Configure Nginx (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-nginx.md:3 +msgid "Since 2024-01, this playbook no longer uses nginx as its reverse-proxy." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ntfy.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ntfy.po new file mode 100644 index 000000000..0a92b3f04 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ntfy.po @@ -0,0 +1,238 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ntfy.md:1 +msgid "Setting up the ntfy push notifications server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:3 +msgid "The playbook can install and configure the [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:5 +msgid "Using the [UnifiedPush](https://unifiedpush.org) standard, ntfy enables self-hosted (Google-free) push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix compatible client apps running on Android and other devices." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:7 +msgid "This role is intended to support UnifiedPush notifications for use with the Matrix and Matrix-related services that this playbook installs. This role is not intended to support all of ntfy's other features." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:9 +msgid "**Note**: In contrast to push notifications using Google's FCM or Apple's APNs, the use of UnifiedPush allows each end-user to choose the push notification server that they prefer. As a consequence, deploying this ntfy server does not by itself ensure any particular user or device or client app will use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:13 +msgid "By default, this playbook installs ntfy on the `ntfy.` subdomain (`ntfy.example.com`) and requires you to create a CNAME record for `ntfy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:19 +msgid "To enable ntfy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:33 +msgid "For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/defaults/main.yml) of the ntfy Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:35 +msgid "For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:37 +msgid "Adjusting the ntfy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:39 +msgid "By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:41 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:48 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:52 +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-ntfy.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:61 +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-ntfy.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:65 +msgid "To make use of your ntfy installation, on Android for example, you need two things:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:67 +msgid "the `ntfy` app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:68 +msgid "a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:70 +msgid "You need to install the `ntfy` app on each device on which you want to receive push notifications through your ntfy server. The `ntfy` app will provide UnifiedPush notifications to any number of UnifiedPush-compatible messaging apps installed on the same device." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:72 +msgid "Setting up the `ntfy` Android app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:74 +msgid "Install the [ntfy Android app](https://ntfy.sh/docs/subscribe/phone/) from F-droid or Google Play." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:75 +msgid "In its Settings -> `General: Default server`, enter your ntfy server URL, such as `https://ntfy.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:76 +msgid "In its Settings -> `Advanced: Connection protocol`, choose `WebSockets`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:78 +msgid "That is all you need to do in the ntfy app. It has many other features, but for our purposes you can ignore them. In particular you do not need to follow any instructions about subscribing to a notification topic as UnifiedPush will do that automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:80 +msgid "Setting up a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:82 +msgid "Install any UnifiedPush-enabled Matrix app on that same device. The Matrix app will learn from the `ntfy` app that you have configured UnifiedPush on this device, and then it will tell your Matrix server to use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:84 +msgid "Steps needed for specific Matrix apps:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:86 +msgid "FluffyChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:87 +msgid "Should auto-detect and use it. No manual settings." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:89 +msgid "SchildiChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:90 +msgid "enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:91 +msgid "choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in `ntfy` app, force-close SchildiChat, re-open it.)*" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:92 +msgid "verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the \"Troubleshooting\" section." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:94 +msgid "Element-android v1.4.26+:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:95 +msgid "choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:96 +msgid "verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:98 +msgid "If the Matrix app asks, \"Choose a distributor: FCM Fallback or ntfy\", then choose \"ntfy\"." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:100 +msgid "If the Matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:102 +msgid "Web App" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:104 +msgid "ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:106 +msgid "The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: \"app\"` and re-running Ansible." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:110 +msgid "First check that the Matrix client app you are using supports UnifiedPush. There may well be different variants of the app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:112 +msgid "Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:114 +msgid "To check if UnifiedPush is correctly configured on the client device, look at \"Settings -> Notifications -> Notification Targets\" in Element Android or SchildiChat Android, or \"Settings -> Notifications -> Devices\" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:116 +msgid "In the \"Notification Targets\" screen in Element Android or SchildiChat Android, two relevant URLs are shown, \"push\\_key\" and \"Url\", and both should begin with your ntfy server's URL. If \"push\\_key\" shows your server but \"Url\" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the \"Usage\" section above." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:118 +msgid "If it is not working, useful tools are \"Settings -> Notifications -> Re-register push distributor\" and \"Settings -> Notifications -> Troubleshoot Notifications\" in SchildiChat Android (possibly also Element Android). In particular the \"Endpoint/FCM\" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:120 +msgid "The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-own-webserver.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-own-webserver.po new file mode 100644 index 000000000..7455f73ca --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-own-webserver.po @@ -0,0 +1,194 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-own-webserver.md:1 +msgid "Using your own webserver, instead of this playbook's Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:3 +msgid "By default, this playbook installs its own [Traefik](https://traefik.io/) reverse-proxy server (in a Docker container) which listens on ports 80 and 443. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:5 +msgid "Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:7 +msgid "[Traefik](https://traefik.io/) is the default reverse-proxy for the playbook since [2023-02-26](../CHANGELOG.md/#2023-02-26) and serves **2 purposes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:9 +msgid "serving public traffic and providing SSL-termination with certificates obtained from [Let's Encrypt](https://letsencrypt.org/). See [Adjusting SSL certificate retrieval](./configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:11 +msgid "assists internal communication between addon services (briges, bots, etc.) and the homeserver via an internal entrypoint (`matrix-internal-matrix-client-api`)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:13 +msgid "There are 2 ways to use Traefik with this playbook, as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:15 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:17 +msgid "To have the playbook install and use Traefik, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:25 +msgid "Traefik will manage SSL certificates for all services seamlessly." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:27 +msgid "Traefik managed by you" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:53 +msgid "In this mode all roles will still have Traefik labels attached. You will, however, need to configure your Traefik instance and its entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:55 +msgid "By default, the playbook configured a `default` certificate resolver and multiple entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:57 +msgid "You need to configure 4 entrypoints for your Traefik server:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:59 +msgid "`web` (TCP port `80`) — used for redirecting to HTTPS (`web-secure`)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:60 +msgid "`web-secure` (TCP port `443`) — used for exposing the Matrix Client-Server API and all other services" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:61 +msgid "`matrix-federation` (TCP port `8448`) — used for exposing the Matrix Federation API" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:62 +msgid "`matrix-internal-matrix-client-api` (TCP port `8008`) — used internally for addon services (bridges, bots) to communicate with the homserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:64 +msgid "Below is some configuration for running Traefik yourself, although we recommend using [Traefik managed by the playbook](#traefik-managed-by-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:66 +msgid "Note that this configuration on its own does **not** redirect traffic on port 80 (plain HTTP) to port 443 for HTTPS. If you are not already doing this in Traefik, it can be added to Traefik in a [file provider](https://docs.traefik.io/v2.0/providers/file/) as follows:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:86 +msgid "You can use the following `docker-compose.yml` as example to launch Traefik." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:122 +msgid "Another webserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:124 +msgid "If you don't wish to use Traefik, you can also use your own webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:126 +msgid "Doing this is possible, but requires manual work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:128 +msgid "There are 2 ways to go about it:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:130 +msgid "(recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) — using the playbook-managed reverse-proxy (Traefik), but disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:132 +msgid "(difficult) [Using no reverse-proxy on the Matrix side at all](#using-no-reverse-proxy-on-the-matrix-side-at-all) disabling the playbook-managed reverse-proxy (Traefik), exposing services one by one using `_host_bind_port` variables and forwarding traffic from your own webserver to those ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:134 +msgid "Fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:136 +msgid "This method is about leaving the integrated reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:138 +msgid "If you wish to use another webserver, the integrated reverse-proxy webserver usually gets in the way because it attempts to fetch SSL certificates and binds to ports 80, 443 and 8448 (if Matrix Federation is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:140 +msgid "You can disable such behavior and make the integrated reverse-proxy webserver only serve traffic locally on the host itself (or over a local network)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:142 +msgid "This is the recommended way for using another reverse-proxy, because the integrated one would act as a black box and wire all Matrix services correctly. You would then only need to reverse-proxy a few individual domains and ports over to it." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:144 +msgid "To front Traefik with another reverse-proxy, you would need some configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:194 +msgid "Such a configuration would expose all services on a local port `81` and Matrix Federation on a local port `8449`. Your reverse-proxy configuration needs to send traffic to these ports. [`examples/reverse-proxies`](../examples/reverse-proxies/) contains examples for various webservers such as Apache2, Caddy, HAproxy, nginx and Nginx Proxy Manager." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:196 +msgid "It's important that these webservers proxy-pass requests to the correct `ip:port` and also set the `Host` HTTP header appropriately. If you don't pass the `Host` header correctly, Traefik will return a `404 - not found` error." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:198 +msgid "To put it another way:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:199 +msgid "`curl http://127.0.0.1:81` will result in a `404 - not found` error" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:200 +msgid "but `curl -H 'Host: matrix.example.com' http://127.0.0.1:81` should work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:202 +msgid "Using no reverse-proxy on the Matrix side at all" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:204 +msgid "Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way — completely disabling the playbook-managed Traefik reverse-proxy. You would then need to reverse-proxy from your own webserver directly to each individual Matrix service." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:206 +msgid "This is more difficult, as you would need to handle the configuration for each service manually. Enabling additional services would come with extra manual work you need to do." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:208 +msgid "Also, the Traefik reverse-proxy, besides fronting everything is also serving a 2nd purpose of allowing addons services to communicate with the Matrix homeserver thanks to its `matrix-internal-matrix-client-api` entrypoint (read more about it above). Disabling Traefik completely means the playbook would wire services to directly talk to the homeserver. This can work for basic setups, but not for more complex setups involving [matrix-media-repo](./configuring-playbook-matrix-media-repo.md), [matrix-corporal](./configuring-playbook-matrix-corporal.md) or other such services that need to \"steal routes\" from the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:210 +msgid "If your webserver is on the same machine, ensure your web server user (something like `http`, `apache`, `www-data`, `nginx`) is part of the `matrix` group. You should run something like this: `usermod -a -G matrix nginx`. This allows your webserver user to access files owned by the `matrix` group, so that it can serve static files from `/matrix/static-files`." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po new file mode 100644 index 000000000..8e7eab655 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po @@ -0,0 +1,90 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-pantalaimon.md:1 +msgid "Setting up Pantalaimon (E2EE aware proxy daemon) (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:3 +msgid "The playbook can install and configure the [pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/pantalaimon/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:7 +msgid "This role exposes Pantalaimon's API only within the container network, so bots and clients installed on the same machine can use it. In particular the [Draupnir](configuring-playbook-bot-draupnir.md) and [Mjolnir](configuring-playbook-bot-mjolnir.md) roles (and possibly others) can use it." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:19 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:23 +msgid "`roles/custom/matrix-pantalaimon/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_pantalaimon_configuration` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:34 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:36 +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-pantalaimon.md:38 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:40 +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-pantalaimon`." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:42 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po new file mode 100644 index 000000000..df09dce7b --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-postgres-backup.md:1 +msgid "Setting up postgres backup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:3 +msgid "The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you via the [ansible-role-postgres-backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:5 +msgid "For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [BorgBackup](configuring-playbook-backup-borg.md) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:9 +msgid "To enable Postgres backup, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:15 +msgid "Refer to the table below for additional configuration variables and their default values." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Default value" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`false`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_schedule`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`'@daily'`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Cron-schedule specifying the interval between postgres backups." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_days`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`7`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of daily backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_weeks`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`4`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of weekly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_months`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`12`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of monthly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_base_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`\"{{ matrix_base_data_path }}/postgres-backup\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Base path for postgres-backup. Also see `postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`\"{{ postgres_backup_base_path }}/data\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Storage path for postgres-backup database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:38 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po new file mode 100644 index 000000000..f30c1e6be --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po @@ -0,0 +1,346 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:1 +msgid "Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:3 +msgid "The playbook can install [Grafana](https://grafana.com/) with [Prometheus](https://prometheus.io/) and configure performance metrics of your homeserver with graphs for you." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:5 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:7 +msgid "By default, this playbook installs Grafana web user-interface on the `stats.` subdomain (`stats.example.com`) and requires you to create a CNAME record for `stats`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:9 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:13 +msgid "To enable Grafana and/or Prometheus, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:39 +msgid "The retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:41 +msgid "Adjusting the Grafana URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:43 +msgid "By tweaking the `grafana_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:45 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:52 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Grafana domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:54 +msgid "**Note**: It is possible to install Prometheus without installing Grafana. This case it is not required to create the CNAME record." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:56 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:58 +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-prometheus-grafana.md:65 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:67 +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-prometheus-grafana.md:69 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_node_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_prometheus_nginxlog_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[NGINX Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose NGINX logs to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_anonymous_access`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_default_admin_user`
`grafana_default_admin_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:81 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:83 +msgid "Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:85 +msgid "Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:87 +msgid "Collecting metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:89 +msgid "**If the integrated Prometheus server is enabled** (`prometheus_enabled: true`), metrics are collected by it from each service via communication that happens over the container network. Each service does not need to expose its metrics \"publicly\"." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:91 +msgid "When you'd like **to collect metrics from an external Prometheus server**, you need to expose service metrics outside of the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:93 +msgid "The playbook provides a single endpoint (`https://matrix.example.com/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/hookshot`, etc). To expose all services on this `/metrics/*` feature, use `matrix_metrics_exposure_enabled`. To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), see `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` below." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:95 +msgid "When using `matrix_metrics_exposure_enabled`, you don't need to expose metrics for individual services one by one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:97 +msgid "The following variables may be of interest:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to **enable metrics exposure for all services** on `https://matrix.example.com/metrics/*`. If you think this is too much, refer to the helpful (but nonexhaustive) list of individual `matrix_SERVICE_metrics_proxying_enabled` (or similar) variables below for exposing metrics on a per-service basis." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_http_basic_auth_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials). When enabled, all endpoints beneath `/metrics` will be protected with the same credentials" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_http_basic_auth_users`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_synapse_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make Synapse expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_synapse_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose Synapse's metrics on `https://matrix.example.com/metrics/synapse/main-process` and `https://matrix.example.com/metrics/synapse/worker/TYPE-ID`. Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the node (general system stats) exporter (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_node_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_sliding_sync_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_sliding_sync_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.example.com/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_bridge_hookshot_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_bridge_hookshot_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.example.com/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_SERVICE_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_media_repo_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make media-repo expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:118 +msgid "Collecting Synapse worker metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:120 +msgid "If you are using workers (`matrix_synapse_workers_enabled: true`) and have enabled `matrix_synapse_metrics_proxying_enabled` as described above, the playbook will also automatically expose all Synapse worker threads' metrics to `https://matrix.example.com/metrics/synapse/worker/ID`, where `ID` corresponds to the worker `id` as exemplified in `matrix_synapse_workers_enabled_list`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:122 +msgid "The playbook also generates an exemplary config file (`/matrix/synapse/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs. Make sure to edit the specified `password_file` path and contents and path to your `synapse-v2.rules`. It will look a bit like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:150 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:152 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:153 +msgid "[Understanding Synapse Performance Issues Through Grafana Graphs](https://element-hq.github.io/synapse/latest/usage/administration/understanding_synapse_through_grafana_graphs.html) at the Synapse Github Wiki" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:154 +msgid "[The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:155 +msgid "[The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:156 +msgid "[The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po new file mode 100644 index 000000000..9e3297b50 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po @@ -0,0 +1,114 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:1 +msgid "Enabling metrics and graphs for NginX logs (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:3 +msgid "It can be useful to have some (visual) insight into [nginx](https://nginx.org/) logs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:5 +msgid "This adds [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) to your Matrix deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:7 +msgid "It will collect access logs from various nginx reverse-proxies which may be used internally (e.g. `matrix-synapse-reverse-proxy-companion`, if Synapse workers are enabled) and will make them available at a Prometheus-compatible `/metrics` endpoint." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:9 +msgid "**Note**: nginx is only used internally by this Ansible playbook. With Traefik being our default reverse-proxy, collecting nginx metrics is less relevant." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:11 +msgid "To make use of this, you need to install [Prometheus](./configuring-playbook-prometheus-grafana.md) either via the playbook or externally. When using an external Prometheus, configuration adjustments are necessary — see [Save metrics on an external Prometheus server](#save-metrics-on-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:13 +msgid "If your setup includes [Grafana](./configuring-playbook-prometheus-grafana.md), a dedicated `NGINX PROXY` Grafana dashboard will be created." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:23 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:25 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:32 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:34 +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-prometheus-nginxlog.md:36 +msgid "Docker Image Compatibility" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:38 +msgid "At the moment of writing only images for `amd64` and `arm64` architectures are available. The playbook currently does not support [self-building](./self-building.md) a container image on other architectures. You can however use a custom-build image by setting:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:45 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:47 +msgid "Metrics and resulting graphs can contain a lot of information. NginX logs contain information like IP address, URLs, UserAgents and more. This information can reveal usage patterns and could be considered Personally Identifiable Information (PII). Think about this before enabling (anonymous) access. Please make sure you change the default Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:49 +msgid "Save metrics on an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:51 +msgid "The playbook will automatically integrate the metrics into the [Prometheus](./configuring-playbook-prometheus-grafana.md) server provided with this playbook (if enabled). In such cases, the metrics endpoint is not exposed publicly — it's only available on the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:53 +msgid "When using an external Prometheus server, you'll need to expose metrics publicly. See [Collecting metrics to an external Prometheus server](./configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:55 +msgid "You can either use `matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled: true` to expose just this one service, or `matrix_metrics_exposure_enabled: true` to expose all services." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:57 +msgid "Whichever way you go with, this service will expose its metrics endpoint **without password-protection** at `https://matrix.example.com/metrics/nginxlog` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:59 +msgid "For password-protection, use (`matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`) or (`matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled` and `matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users`)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po new file mode 100644 index 000000000..f0e689f1a --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:1 +msgid "Enabling metrics and graphs for Postgres (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:3 +msgid "Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:7 +msgid "To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:13 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:15 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:22 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:24 +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-prometheus-postgres.md:26 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_database_username`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_database_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:35 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:37 +msgid "[The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rageshake.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rageshake.po new file mode 100644 index 000000000..c1cfbd38d --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rageshake.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-rageshake.md:1 +msgid "Setting up the rageshake bug report server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:3 +msgid "The playbook can install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:7 +msgid "**Note**: most people don't need to install rageshake to collect bug reports. This component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:11 +msgid "By default, this playbook installs rageshake on the `rageshake.` subdomain (`rageshake.example.com`) and requires you to create a CNAME record for `rageshake`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:17 +msgid "To enable rageshake, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:23 +msgid "rageshake has various options which don't have dedicated Ansible variables. You can see the full list of options in the [`rageshake.sample.yaml` file](https://github.com/matrix-org/rageshake/blob/master/rageshake.sample.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:25 +msgid "To set these, you can make use of the `matrix_rageshake_configuration_extension_yaml` variable like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:35 +msgid "Adjusting the rageshake URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:37 +msgid "By tweaking the `matrix_rageshake_hostname` and `matrix_rageshake_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-rageshake.md:39 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:50 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the rageshake domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:52 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:54 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:56 +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-rageshake.md:63 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:65 +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-rageshake.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:69 +msgid "Refer to the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) for available APIs, etc." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rest-auth.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rest-auth.po new file mode 100644 index 000000000..df2795e33 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-rest-auth.po @@ -0,0 +1,62 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-rest-auth.md:1 +msgid "Setting up the REST authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:5 +msgid "See the project's [documentation](https://github.com/ma1uta/matrix-synapse-rest-password-provider/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:19 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:21 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:38 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-riot-web.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-riot-web.po new file mode 100644 index 000000000..781c46089 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-riot-web.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-riot-web.md:1 +msgid "Configuring Riot-web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:3 +msgid "By default, this playbook **used to install** the [Riot-web](https://github.com/element-hq/riot-web) Matrix client web application." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:5 +msgid "Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:7 +msgid "to learn more about Element Web and its configuration, see our dedicated [Configuring Element Web](configuring-playbook-client-element-web.md) documentation page" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:8 +msgid "to learn how to migrate from Riot to Element Web, see [Migrating to Element Web](#migrating-to-element-web) below" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:10 +msgid "Migrating to Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:12 +msgid "Migrating your custom settings" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:14 +msgid "If you have custom `matrix_riot_web_` variables in your `inventory/host_vars/matrix.example.com/vars.yml` file, you'll need to rename them (`matrix_riot_web_` -> `matrix_client_element_`)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:16 +msgid "Some other playbook variables (but not all) with `riot` in their name are also renamed. The playbook checks and warns if you are using the old name for some commonly used ones." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:18 +msgid "Domain migration" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:20 +msgid "We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element Web at `element.example.com` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:22 +msgid "There are a few options for handling this:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:24 +msgid "(**avoiding changes** — using the old `riot.example.com` domain and avoiding DNS changes) — to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: \"riot.{{ matrix_domain }}\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:26 +msgid "(**embracing changes** — using only `element.example.com`) — set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:28 +msgid "Re-running the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:30 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:37 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:39 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po new file mode 100644 index 000000000..69b21cad4 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po @@ -0,0 +1,183 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-s3-goofys.md:1 +msgid "Storing Matrix media files on Amazon S3 with Goofys (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can let this playbook configure [Goofys](https://github.com/kahing/goofys) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:5 +msgid "Another (and better performing) way to use S3 storage with Synapse is [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:7 +msgid "Using a Goofys-backed media store works, but performance may not be ideal. If possible, try to use a region which is close to your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:9 +msgid "If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), we also provide some migration instructions below." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:13 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:23 +msgid "You can use any S3-compatible object store by **additionally** configuring these variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:30 +msgid "If you have local media store files and wish to migrate to Backblaze B2 subsequently, follow our [migration guide to Backblaze B2](#migrating-to-backblaze-b2) below instead of applying this configuration as-is." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:32 +msgid "Migrating from local filesystem storage to S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:34 +msgid "It's a good idea to [make a complete server backup](faq.md#how-do-i-back-up-the-data-on-my-server) before migrating your local media store to an S3-backed one." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:36 +msgid "After making the backup, follow one of the guides below for a migration path from a locally-stored media store to one stored on S3-compatible storage:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:38 +msgid "[Migrating to any S3-compatible storage (universal, but likely slow)](#migrating-to-any-s3-compatible-storage-universal-but-likely-slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:39 +msgid "[Migrating to Backblaze B2](#migrating-to-backblaze-b2)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:41 +msgid "Migrating to any S3-compatible storage (universal, but likely slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:43 +msgid "Proceed with the steps below without stopping Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:45 +msgid "Start by adding the base S3 configuration in your `vars.yml` file (seen above, may be different depending on the S3 provider of your choice)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:47 +msgid "In addition to the base configuration you see above, add this to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:53 +msgid "This enables S3 support, but mounts the S3 storage bucket to `/matrix/s3-media-store` without hooking it to your homeserver yet. Your homeserver will still continue using your local filesystem for its media store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:55 +msgid "Run the playbook to apply the changes: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:57 +msgid "Do an **initial sync of your files** by running this **on the server** (it may take a very long time):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:63 +msgid "You may need to install `rsync` manually." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:65 +#: ../../../docs/configuring-playbook-s3-goofys.md:106 +msgid "Stop all Matrix services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:67 +msgid "Start the S3 service by running this **on the server**: `systemctl start matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:69 +msgid "Sync the files again by re-running the `rsync` command you see in step #5" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:71 +msgid "Stop the S3 service by running this **on the server**: `systemctl stop matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:73 +#: ../../../docs/configuring-playbook-s3-goofys.md:114 +msgid "Get the old media store out of the way by running this command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:79 +msgid "Remove the `matrix_s3_media_store_path` configuration from your `vars.yml` file (undoing step #3 above)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:81 +#: ../../../docs/configuring-playbook-s3-goofys.md:122 +msgid "Run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:83 +#: ../../../docs/configuring-playbook-s3-goofys.md:124 +msgid "You're done! Verify that loading existing (old) media files works and that you can upload new ones." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:85 +#: ../../../docs/configuring-playbook-s3-goofys.md:126 +msgid "When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:87 +msgid "Migrating to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:89 +msgid "While all Matrix services are running, run the following command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:91 +msgid "(you need to adjust the 3 `--env` line below with your own data)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:104 +msgid "This is some initial file sync, which may take a very long time." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:108 +msgid "Run the command from step #1 again." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:110 +msgid "Doing this will sync any new files that may have been created locally in the meantime." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:112 +msgid "Now that Matrix services aren't running, we're sure to get Backblaze B2 and your local media store fully in sync." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:120 +msgid "Put the [Backblaze B2 settings](configuring-playbook-s3.md#backblaze-b2) in your `vars.yml` file" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3.po new file mode 100644 index 000000000..26200a384 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-s3.po @@ -0,0 +1,218 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-s3.md:1 +msgid "Storing Synapse media files on Amazon S3 or another compatible Object Storage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:3 +msgid "By default, this playbook configures your server to store Synapse's content repository (`media_store`) files on the local filesystem. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:5 +msgid "As an alternative to storing media files on the local filesystem, you can store them on [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:7 +msgid "You can do this either by sticking to Synapse's media repository and making that use S3 (read below for this method), or by switching to an external media storage implementation like [matrix-media-repo](configuring-playbook-matrix-media-repo.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:9 +msgid "First, [choose an Object Storage provider](#choosing-an-object-storage-provider)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:11 +msgid "Then, [create the S3 bucket](#bucket-creation-and-security-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:13 +msgid "Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md), [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md), or use s3 datastore with the [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:15 +msgid "Choosing an Object Storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:17 +msgid "You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Storj](https://storj.io), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:19 +msgid "Amazon S3, Backblaze B2, and Storj are pay-as-you with no minimum charges for storing too little data." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:21 +msgid "All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:23 +msgid "Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:25 +msgid "Here are some of the important aspects of choosing the right provider:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:27 +msgid "if a provider is a company you like and trust (or dislike less than the others)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:28 +msgid "if a provider implements end-to-end encryption of your data" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:29 +msgid "if a provider has a data region close to your Matrix server (if it's farther away, high latency may cause slowdowns)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:30 +msgid "if a provider's infrastructure such as data center is centralized or distributed" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:31 +msgid "if a provider's price model is transparent (whether it includes hidden costs like minimum charge, minimum storage term, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:32 +msgid "if a provider has free or cheap egress fee (in case you need to get the data out often, for some reason) — likely not too important for the common use-case" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:34 +msgid "Bucket creation and Security Configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:36 +msgid "Now that you've [chosen an Object Storage provider](#choosing-an-object-storage-provider), you need to create a storage bucket." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:38 +msgid "How you do this varies from provider to provider, with Amazon S3 being the most complicated due to its vast number of services and complicated security policies." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:40 +msgid "Below, we provider some guides for common providers. If you don't see yours, look at the others for inspiration or read some guides online about how to create a bucket. Feel free to contribute to this documentation with an update!" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:42 +msgid "Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:44 +msgid "You'll need an Amazon S3 bucket and some IAM user credentials (access key + secret key) with full write access to the bucket. Example IAM security policy:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:65 +msgid "**Note**: This policy needs to be attached to an IAM user created from the **Security Credentials** menu. This is not a **Bucket Policy**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:67 +msgid "Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:69 +msgid "To use [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html) you first need to sign up." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:71 +msgid "You [can't easily change which region (US, Europe) your Backblaze account stores files in](https://old.reddit.com/r/backblaze/comments/hi1v90/make_the_choice_for_the_b2_data_center_region/), so make sure to carefully choose the region when signing up (hint: it's a hard to see dropdown below the username/password fields in the signup form)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:73 +msgid "After logging in to Backblaze:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:75 +msgid "create a new **private** bucket through its user interface (you can call it something like `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:76 +msgid "note the **Endpoint** for your bucket (something like `s3.us-west-002.backblazeb2.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:77 +msgid "adjust its Lifecycle Rules to: Keep only the last version of the file" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:78 +msgid "go to [App Keys](https://secure.backblaze.com/app_keys.htm) and use the **Add a New Application Key** to create a new one" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:79 +msgid "restrict it to the previously created bucket (e.g. `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:80 +msgid "give it *Read & Write* access" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:82 +msgid "The `keyID` value is your **Access Key** and `applicationKey` is your **Secret Key**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:84 +msgid "For configuring [Goofys](configuring-playbook-s3-goofys.md) or [s3-synapse-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) you will need:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:86 +msgid "**Endpoint URL** — this is the **Endpoint** value you saw above, but prefixed with `https://`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:88 +msgid "**Region** — use the value you see in the Endpoint (e.g. `us-west-002`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:90 +msgid "**Storage Class** — use `STANDARD`. Backblaze B2 does not have different storage classes, so it doesn't make sense to use any other value." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:92 +msgid "Other providers" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:94 +msgid "For other S3-compatible providers, you may not need to configure security policies, etc. (just like for [Backblaze B2](#backblaze-b2))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:96 +msgid "You most likely just need to create an S3 bucket and get some credentials (access key and secret key) for accessing the bucket in a read/write manner." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:98 +msgid "Setting up" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:100 +msgid "To set up Synapse to store files in S3, follow the instructions for the method of your choice:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:102 +msgid "using [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:103 +msgid "using [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:104 +msgid "using [matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po new file mode 100644 index 000000000..6622bf13e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:1 +msgid "Setting up the Shared Secret Auth password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:5 +msgid "See the project's [documentation](https://github.com/devture/matrix-synapse-shared-secret-auth/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:18 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:20 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:37 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po new file mode 100644 index 000000000..389cf6dac --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po @@ -0,0 +1,118 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:1 +msgid "Setting up the Sliding Sync proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:3 +msgid "**Note**: The sliding-sync proxy is **not required** anymore as it's been replaced with a different method (called Simplified Sliding Sync) which is integrated into newer homeservers by default (**Conduit** homeserver from version `0.6.0` or **Synapse** from version `1.114`). This component and documentation remain here for historical purposes, but **installing this old sliding-sync proxy is generally not recommended anymore**." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:5 +msgid "The playbook can install and configure [sliding-sync](https://github.com/matrix-org/sliding-sync) proxy for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:7 +msgid "Sliding Sync is an implementation of [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md) and a prerequisite for running Element X clients ([Element X iOS](https://github.com/element-hq/element-x-ios) and [Element X Android](https://github.com/element-hq/element-x-android)). See the project's [documentation](https://github.com/matrix-org/sliding-sync) to learn more." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:11 +msgid "By default, this playbook installs the Sliding Sync proxy on the `matrix.` subdomain, at the `/sliding-sync` path (https://matrix.example.com/sliding-sync). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-sliding-sync-proxy-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:17 +msgid "To enable Sliding Sync proxy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:23 +msgid "Adjusting the Sliding Sync proxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:25 +msgid "By tweaking the `matrix_sliding_sync_hostname` and `matrix_sliding_sync_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-sliding-sync-proxy.md:27 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:35 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Sliding Sync proxy domain (`ss.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:37 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:39 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:41 +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-sliding-sync-proxy.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-sliding-sync-proxy.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-sliding-sync-proxy.md:52 +msgid "External databases" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:54 +msgid "Please note that, if your setup utilizes an external database, you must also establish configuration for the sliding sync proxy. Alter the defaults below to suit your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:64 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:66 +msgid "You **don't need to do anything special** to make use of the Sliding Sync proxy. Simply open your client which supports Sliding Sync (like Element X) and log in." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:68 +msgid "When the Sliding Sync proxy is [installed](#installing), your `/.well-known/matrix/client` file is also updated. A new `org.matrix.msc3575.proxy` section and `url` property are added there and made to point to your Sliding Sync proxy's base URL (e.g. `https://matrix.example.com/sliding-sync`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:70 +msgid "This allows clients which support Sliding Sync to detect the Sliding Sync proxy's URL and make use of it." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po new file mode 100644 index 000000000..2dcb66a6e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po @@ -0,0 +1,126 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:1 +msgid "Adjusting SSL certificate retrieval (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:3 +msgid "By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:5 +msgid "This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:7 +msgid "Using staging Let's Encrypt certificates instead of real ones" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:9 +msgid "For testing purposes, you may wish to use staging certificates provide by Let's Encrypt." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:17 +msgid "Disabling SSL termination" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:19 +msgid "For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:21 +msgid "Add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:27 +msgid "Using self-signed SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:29 +msgid "If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)):" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:31 +msgid "generate your self-signed certificate files" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:32 +msgid "follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:34 +msgid "Using your own SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:36 +msgid "To use your own SSL certificates with Traefik, you need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:38 +msgid "disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:39 +msgid "put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:40 +msgid "register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:41 +msgid "put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:89 +msgid "Using a DNS-01 ACME challenge type, instead of HTTP-01" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:91 +msgid "You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but it can be helpful to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:93 +msgid "hide your public IP from Let's Encrypt logs" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:94 +msgid "allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:96 +msgid "This is an example for how to edit the `vars.yml` file if you're using Cloudflare:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:111 +msgid "Make sure to change the value of \"provider\" to your particular DNS solution, and provide the appropriate environment variables. The full list of supported providers is available [here](https://doc.traefik.io/traefik/https/acme/#providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:113 +msgid "This example assumes you're using Cloudflare to manage your DNS zone. Note that it requires the use of two tokens: one for reading all zones (`CF_ZONE_API_TOKEN`) and another that must be able to edit the particular domain you're using (`CF_DNS_API_TOKEN`). For security, it's recommended that you create two fine-grained tokens for this purpose, but you might choose to use the same token for both." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sygnal.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sygnal.po new file mode 100644 index 000000000..7b1318358 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-sygnal.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-sygnal.md:1 +msgid "Setting up the Sygnal push gateway (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:3 +msgid "The playbook can install and configure the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/sygnal/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:7 +msgid "**Note**: most people don't need to install their own gateway. As Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) documentation says:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:9 +msgid "It is not feasible to allow end-users to configure their own Sygnal instance, because the Sygnal instance needs the appropriate FCM or APNs secrets that belong to the application." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:11 +msgid "This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:13 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:15 +msgid "By default, this playbook installs Sygnal on the `sygnal.` subdomain (`sygnal.example.com`) and requires you to create a CNAME record for `sygnal`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:17 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:21 +msgid "To enable Sygnal, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:49 +msgid "Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:51 +msgid "To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files. To do that, the above example configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:53 +msgid "makes use of the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) (and its `aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml) of the `aux` role for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `aux`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:55 +msgid "references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/…` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:57 +msgid "Adjusting the Sygnal URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:59 +msgid "By tweaking the `matrix_sygnal_hostname` and `matrix_sygnal_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-sygnal.md:61 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:72 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:74 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:76 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:78 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:80 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:82 +msgid "`roles/custom/matrix-sygnal/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:83 +msgid "`roles/custom/matrix-sygnal/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_sygnal_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:87 +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-sygnal.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:96 +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-sygnal.md:98 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:100 +msgid "To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is to your Sygnal URL endpoint (e.g. `https://sygnal.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:102 +msgid "Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po new file mode 100644 index 000000000..df6fad1c4 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po @@ -0,0 +1,126 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-admin.md:1 +msgid "Setting up Synapse Admin (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:3 +msgid "The playbook can install and configure [etkecc/synapse-admin](https://github.com/etkecc/synapse-admin) (a [feature-rich](https://github.com/etkecc/synapse-admin#fork-differences) fork of [Awesome-Technologies/synapse-admin](https://github.com/Awesome-Technologies/synapse-admin), community room: [#synapse-admin:etke.cc](https://matrix.to/#/#synapse-admin:etke.cc)) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:5 +msgid "synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation and WON'T work with Dendrite because [Dendrite Admin API](https://element-hq.github.io/dendrite/administration/adminapi) differs from [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:7 +msgid "💡 **Note**: the latest version of synapse-admin is hosted by [etke.cc](https://etke.cc/) at [admin.etke.cc](https://admin.etke.cc/). If you only need this service occasionally and trust giving your admin credentials to a 3rd party Single Page Application, you can consider using it from there and avoiding the (small) overhead of self-hosting." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:11 +msgid "By default, this playbook installs Synapse Admin on the `matrix.` subdomain, at the `/synapse-admin` path (https://matrix.example.com/synapse-admin). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-admin-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:17 +msgid "To enable Synapse Admin, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:23 +msgid "**Note**: Synapse Admin requires Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, the playbook **automatically** exposes the Synapse Admin API publicly for you. Depending on the homeserver implementation you're using (Synapse, Dendrite), this is equivalent to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:25 +msgid "for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:26 +msgid "for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:28 +msgid "By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) — the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:30 +msgid "[!WARNING] If you're using [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS) for authentication, you will be able to [log into synapse-admin with an access token](https://github.com/etkecc/synapse-admin/pull/58), but certain synapse-admin features (especially those around user management) will be limited or not work at all." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:33 +msgid "Adjusting the Synapse Admin URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:35 +msgid "By tweaking the `matrix_synapse_admin_hostname` and `matrix_synapse_admin_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-synapse-admin.md:37 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:45 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Synapse Admin domain (`admin.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:47 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:49 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:51 +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-synapse-admin.md:58 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:60 +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-synapse-admin.md:62 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:64 +msgid "After installation, Synapse Admin will be accessible at: `https://matrix.example.com/synapse-admin/`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:66 +msgid "To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po new file mode 100644 index 000000000..4267425c2 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po @@ -0,0 +1,74 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:1 +msgid "Setting up Synapse Auto Invite Accept (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:3 +msgid "The playbook can install and configure [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:5 +msgid "In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:9 +msgid "**Note**: Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the same feature [has been merged](https://github.com/element-hq/synapse/pull/17147) into Synapse (see the [Native alternative](#native-alternative) section below). You'd better use the native feature, instead of the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:13 +msgid "If you decide that you'd like to let this playbook install the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite module for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:21 +msgid "Synapse worker deployments" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:23 +msgid "In a [workerized Synapse deployment](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/c9a842147e09647c355799ca024d65a5de66b099/docs/configuring-playbook-synapse.md#load-balancing-with-workers) it is possible to run this module on a worker to reduce the load on the main process (Default is `null`). For example, add this to your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:29 +msgid "There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:31 +msgid "Native alternative" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:33 +msgid "Since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the functionality provided by the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module [has been made](https://github.com/element-hq/synapse/pull/17147) part of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:35 +msgid "Here's example configuration for using the **native** Synapse feature:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po new file mode 100644 index 000000000..a186c7e20 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:1 +msgid "Setting up synapse-auto-compressor (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:3 +msgid "The playbook can install and configure [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:5 +msgid "It's a CLI tool that automatically compresses Synapse's `state_groups` database table in the background." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/blob/master/README.md#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:17 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:19 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:26 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:28 +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-synapse-auto-compressor.md:30 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:32 +msgid "After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_calendar` by default)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:34 +msgid "Manually execute compression" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:36 +msgid "Sometimes it can be helpful to execute compression as you'd like, avoiding to wait until 00:00, like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:38 +msgid "If you want to execute it immediately, log in to the server with SSH and run `systemctl start matrix-synapse-auto-compressor`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:40 +msgid "This will not return until the compression is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po new file mode 100644 index 000000000..956b08b1c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po @@ -0,0 +1,278 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:1 +msgid "Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can use the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) media provider module for Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:5 +msgid "An alternative (which has worse performance) is to use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:7 +msgid "How it works?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:9 +msgid "Summarized writings here are inspired by [this article](https://quentin.dufour.io/blog/2021-09-14/matrix-synapse-s3-storage/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:11 +msgid "The way media storage providers in Synapse work has some caveats:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:13 +msgid "Synapse still continues to use locally-stored files (for creating thumbnails, serving files, etc)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:14 +msgid "the media storage provider is just an extra storage mechanism (in addition to the local filesystem)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:15 +msgid "all files are stored locally at first, and then copied to the media storage provider (either synchronously or asynchronously)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:16 +msgid "if a file is not available on the local filesystem, it's pulled from a media storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:18 +msgid "You may be thinking **if all files are stored locally as well, what's the point**?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:20 +msgid "You can run some scripts to delete the local files once in a while (which we do automatically by default — see [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem)), thus freeing up local disk space. If these files are needed in the future (for serving them to users, etc.), Synapse will pull them from the media storage provider on demand." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:22 +msgid "While you will need some local disk space around, it's only to accommodate usage, etc., and won't grow as large as your S3 store." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:26 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:48 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:50 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:52 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:54 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:56 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:58 +msgid "If you have existing files in Synapse's media repository (`/matrix/synapse/storage/media-store/…`):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:60 +msgid "new files will start being stored both locally and on the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:61 +msgid "the existing files will remain on the local filesystem only until [migrating them to the S3 store](#migrating-your-existing-media-files-to-the-s3-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:62 +msgid "at some point (and periodically in the future), you can delete local files which have been uploaded to the S3 store already" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:64 +msgid "Regardless of whether you need to [Migrate your existing files to the S3 store](#migrating-your-existing-media-files-to-the-s3-store) or not, make sure you've familiarized yourself with [How it works?](#how-it-works) above and [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem) below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:66 +msgid "Migrating your existing media files to the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:68 +msgid "Migrating your existing data can happen in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:70 +msgid "[using the `s3_media_upload` script from `synapse-s3-storage-provider`](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (very slow when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:71 +msgid "[using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload) (quicker when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:73 +msgid "💡 **Note**: instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:75 +msgid "Using the `s3_media_upload` script from `synapse-s3-storage-provider`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:77 +msgid "To copy your existing files, SSH into the server and run `/matrix/synapse/ext/s3-storage-provider/bin/shell`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:79 +msgid "This launches a Synapse container, which has access to the local media store, Postgres database, S3 store and has some convenient environment variables configured for you to use (`MEDIA_PATH`, `BUCKET`, `ENDPOINT`, `UPDATE_DB_DAYS`, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:81 +msgid "Then use the following commands (`$` values come from environment variables — they're **not placeholders** that you need to substitute):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:83 +msgid "`s3_media_upload update-db $UPDATE_DB_DURATION` — create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:84 +msgid "`$UPDATE_DB_DURATION` is influenced by the `matrix_synapse_ext_synapse_s3_storage_provider_update_db_day_count` variable (defaults to `0`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:85 +msgid "`$UPDATE_DB_DURATION` defaults to `0d` (0 days), which means **include files which haven't been accessed for more than 0 days** (that is, **all files will be included**)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:86 +msgid "`s3_media_upload check-deleted $MEDIA_PATH` — check whether files in the local cache still exist in the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:87 +msgid "`s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` — uploads locally-stored files to S3 and deletes them from the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:89 +msgid "The `s3_media_upload upload` command may take a lot of time to complete." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:91 +msgid "Instead of running the above commands manually in the shell, you can also run the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script which will run the same commands automatically. We demonstrate how to do it manually, because:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:93 +msgid "it's what the upstream project demonstrates and it teaches you how to use the `s3_media_upload` tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:94 +msgid "allows you to check and verify the output of each command, to catch mistakes" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:95 +msgid "includes progress bars and detailed output for each command" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:96 +msgid "allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill …`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:98 +msgid "Using another tool in combination with `s3_media_upload`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:100 +msgid "To migrate your existing local data to S3, we recommend to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:102 +msgid "**first** use another tool ([`aws s3`](#copying-data-to-amazon-s3) or [`b2 sync`](#copying-data-to-backblaze-b2), etc.) to copy the local files to the S3 bucket" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:104 +msgid "**only then** [use the `s3_media_upload` tool to finish the migration](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (this checks to ensure all files are uploaded and then deletes the local files)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:106 +msgid "Copying data to Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:108 +msgid "To copy to AWS S3, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:120 +msgid "Copying data to an S3 alternative using the aws-s3 tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:122 +msgid "To copy to a provider other than AWS S3 (e.g. Storj, Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:124 +msgid "Add this argument to the command **as-is** (`$ENDPOINT` is an environment variable corresponding to `matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url`, so you don't need to touch it). Make sure to add the argument **before** the final quote (`'`) of the command." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:126 +msgid "Copying data to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:128 +msgid "You can copy files to Backblaze B2 either by following the [Copying data to an S3 alternative using the aws-s3 tool](#copying-data-to-an-s3-alternative-using-the-aws-s3-tool) or by using the B2-specific [b2 command-line tool](https://www.backblaze.com/b2/docs/quick_command_line.html) as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:130 +msgid "To copy the data using the `b2` tool, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:144 +msgid "Periodically cleaning up the local filesystem" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:146 +msgid "As described in [How it works?](#how-it-works) above, when new media is uploaded to the Synapse homeserver, it's first stored locally and then also stored on the remote S3 storage." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:148 +msgid "By default, we periodically ensure that all local files are uploaded to S3 and are then removed from the local filesystem. This is done automatically using:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:150 +msgid "the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:151 +msgid "… invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:152 +msgid "… triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:154 +msgid "So… you don't need to perform any maintenance yourself." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po new file mode 100644 index 000000000..d4be5dc5e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:1 +msgid "Setting up Synapse Simple Antispam (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:3 +msgid "The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:5 +msgid "It lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:7 +msgid "See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po new file mode 100644 index 000000000..892191376 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:1 +msgid "Enabling synapse-usage-exporter for Synapse usage statistics (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:3 +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:5 +msgid "Synapse does not include usage statistics in its Prometheus metrics. They can be reported to an HTTP `PUT` endpoint 5 minutes after startup and from then on at a fixed interval of once every three hours. This role integrates a simple [Flask](https://flask.palletsprojects.com) project that offers an HTTP `PUT` endpoint and holds the most recent received record available to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:7 +msgid "Enabling this service will automatically:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:9 +msgid "install the synapse-usage-exporter service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:10 +msgid "re-configure Synapse to push (via HTTP `PUT`) usage statistics information to synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:11 +msgid "re-configure [Prometheus](./configuring-playbook-prometheus-grafana.md) (if Prometheus is enabled), to periodically scrape metrics from synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:12 +msgid "add a new [Grafana](./configuring-playbook-prometheus-grafana.md) dashboard (if Grafana is enabled) containing Synapse usage statistics" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:14 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:16 +msgid "By default, this playbook installs synapse-usage-exporter on the `matrix.` subdomain, at the `/report-usage-stats/push` path (https://matrix.example.com/report-usage-stats/push). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:18 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-usage-exporter-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:22 +msgid "To enable synapse-usage-exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:34 +msgid "Adjusting the synapse-usage-exporter URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:36 +msgid "By tweaking the `matrix_synapse_usage_exporter_hostname` and `matrix_synapse_usage_exporter_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-synapse-usage-exporter.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:47 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the synapse-usage-exporter domain (`sue.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:49 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:51 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:53 +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-synapse-usage-exporter.md:60 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:62 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse.po new file mode 100644 index 000000000..579bd895c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-synapse.po @@ -0,0 +1,279 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse.md:1 +msgid "Configuring Synapse (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:3 +msgid "By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, so that it works for the general case. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:7 +msgid "Load balancing with workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:9 +msgid "To have Synapse gracefully handle thousands of users, worker support should be enabled. It factors out some homeserver tasks and spreads the load of incoming client and server-to-server traffic between multiple processes. More information can be found in the [official Synapse workers documentation](https://github.com/element-hq/synapse/blob/master/docs/workers.md) and [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:11 +msgid "To enable Synapse worker support, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:19 +msgid "By default, this enables the `one-of-each` [worker preset](#worker-presets), but you may wish to use another preset or [control the number of worker instances](#controlling-the-number-of-worker-instances)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:21 +msgid "Worker presets" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:23 +msgid "We support a few configuration presets (`matrix_synapse_workers_preset: one-of-each` being the default configuration right now):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:25 +msgid "(federation-only) `little-federation-helper` — a very minimal worker configuration to improve federation performance" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:26 +msgid "(generic) `one-of-each` — defaults to one worker of each supported type — no smart routing, just generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:27 +msgid "(specialized) `specialized-workers` — defaults to one worker of each supported type, but disables generic workers and uses [specialized workers](#specialized-workers) instead" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:29 +msgid "These presets represent a few common configurations. There are many worker types which can be mixed and matched based on your needs." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:31 +msgid "Generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:33 +msgid "Previously, the playbook only supported the most basic type of load-balancing. We call it **generic load-balancing** below, because incoming HTTP requests are sent to a generic worker. Load-balancing was done based on the requestor's IP address. This is simple, but not necessarily optimal. If you're accessing your account from multiple IP addresses (e.g. your mobile phone being on a different network than your PC), these separate requests may potentially be routed to different workers, each of which would need to cache roughly the same data." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:35 +msgid "This is **still the default load-balancing method (preset) used by the playbook**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:37 +msgid "To use generic load-balancing, do not specify `matrix_synapse_workers_preset` to make it use the default value (`one-of-each`), or better yet — explicitly set it as `one-of-each`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:39 +msgid "You may also consider [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:41 +msgid "Specialized workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:43 +msgid "The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requestor and/or on the resource (room, etc.) being requested." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:45 +msgid "The playbook supports these **4 types** of specialized workers:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:47 +msgid "Room workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) & [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs dedicated to handling specific rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:48 +msgid "Sync workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs related to synchronization (most notably [the `/sync` endpoint](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv3sync))" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:49 +msgid "Client readers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs which are not for specific rooms (handled by **room workers**) or for synchronization (handled by **sync workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:50 +msgid "Federation readers — handles various [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs which are not for specific rooms (handled by **room workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:52 +msgid "To use specialized load-balancing, consider enabling the `specialized-workers` [worker preset](#worker-presets) and potentially [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:54 +msgid "Controlling the number of worker instances" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:56 +msgid "If you'd like more customization power, you can start with one of the [worker presets](#worker-presets) and then tweak various `matrix_synapse_workers_*_count` variables manually." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:58 +msgid "To find what variables are available for you to override in your own `vars.yml` configuration file, see the [`defaults/main.yml` file for the `matrix-synapse` Ansible role](../roles/custom/matrix-synapse/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:60 +msgid "The only thing you **cannot** do is mix [generic workers](#generic-workers) and [specialized workers](#specialized-workers)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:62 +msgid "Effect of enabling workers on the rest of your server" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:64 +msgid "When Synapse workers are enabled, the integrated [Postgres database is tuned](maintenance-postgres.md#tuning-postgresql), so that the maximum number of Postgres connections are increased from `200` to `500`. If you need to decrease or increase the number of maximum Postgres connections further, use the `postgres_max_connections` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:66 +msgid "A separate Ansible role (`matrix-synapse-reverse-proxy-companion`) and component handles load-balancing for workers. This role/component is automatically enabled when you enable workers. Make sure to use the `setup-all` tag (not `install-all`!) during the playbook's [installation](./installing.md) process, especially if you're disabling workers, so that components may be installed/uninstalled correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:68 +msgid "In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/element-hq/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:70 +msgid "Synapse + OpenID Connect for Single-Sign-On" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:72 +msgid "💡 An alternative to setting up OIDC in Synapse is to use [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS). Newer clients (like Element X) only support SSO-based authentication via MAS and not via the legacy Synapse OIDC setup described below. That said, MAS is still a new experimental service which comes with its own downsides. Consult its documentation to learn if it will be a good fit for your deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:74 +msgid "If you'd like to use OpenID Connect authentication with Synapse, you'll need some additional configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:76 +msgid "This example configuration is for [keycloak](https://www.keycloak.org/), an opensource Identity Provider maintained by Red Hat." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:78 +msgid "For more detailed documentation on available options and how to setup keycloak, see the [Synapse documentation on OpenID Connect with keycloak](https://github.com/element-hq/synapse/blob/develop/docs/openid.md#keycloak)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:80 +#, python-format +msgid "In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ;" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:101 +msgid "Customizing templates" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:103 +msgid "[Templates](https://github.com/element-hq/synapse/blob/develop/docs/templates.md) are used by Synapse for showing **certain web pages** handled by the server, as well as for **email notifications**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:105 +msgid "This playbook allows you to customize the default templates (see the [`synapse/res/templates` directory](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates))." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:107 +msgid "If template customization is enabled, the playbook will build a custom container image based on the official one." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:109 +msgid "Your custom templates need to live in a public or private git repository. This repository will be cloned during Synapse image customization (during the playbook run)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:111 +msgid "To enable template customizations, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:137 +msgid "As mentioned in Synapse's Templates documentation, Synapse will fall back to its own templates if a template is not found in that directory. Due to this, it's recommended to only store and maintain template files in your repository if you need to make custom changes. Other files (which you don't need to change), should not be duplicated, so that you don't need to worry about getting out-of-sync with the original Synapse templates." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:139 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:141 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:143 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:145 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:146 +msgid "`roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_synapse_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:148 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:150 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:157 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:159 +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-synapse.md:161 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:163 +msgid "Synapse Admin" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:165 +msgid "With [Synapse Admin](configuring-playbook-synapse-admin.md), certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:167 +msgid "The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:169 +msgid "Monitoring Synapse Metrics with Prometheus and Grafana" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:171 +msgid "This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:173 +msgid "To enable Synapse runtime metrics see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:175 +msgid "To enable Synapse usage metrics, see: [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-telemetry.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-telemetry.po new file mode 100644 index 000000000..76264f5f0 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-telemetry.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-telemetry.md:1 +msgid "Enabling Telemetry for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:3 +msgid "By default, this playbook configures your Matrix homeserver to not send any telemetry data anywhere." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:5 +msgid "The [matrix.org](https://matrix.org) team would really appreciate it if you could help the project out by reporting usage statistics from your homeserver. Enabling usage statistics helps track the growth of the Matrix community, and helps to make Matrix a success." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:9 +msgid "If you'd like to **help by enabling submission of general usage statistics** for your homeserver, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:17 +msgid "Usage statistics being submitted" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:19 +msgid "When enabled, your homeserver will regularly upload a few dozen statistics about your server. This data includes your homeserver's domain, the total number of users, the number of active users, the total number of rooms, and the number of messages sent per day on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:21 +msgid "See [Synapse's documentation](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md#available-statistics) or [Dendrite's documentation](https://github.com/element-hq/dendrite/blob/main/docs/FAQ.md#what-is-being-reported-when-enabling-phone-home-statistics) for the full list of statistics that are reported." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-traefik.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-traefik.po new file mode 100644 index 000000000..bbbe447eb --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-traefik.po @@ -0,0 +1,139 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-traefik.md:1 +msgid "Configuring the Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:3 +msgid "By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [ansible-role-traefik](https://github.com/mother-of-all-self-hosting/ansible-role-traefik) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:5 +msgid "This Ansible role support various configuration options. Feel free to consult its `default/main.yml` variables file." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:7 +msgid "Adjusting SSL certificate retrieval" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:9 +msgid "See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:11 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:17 +msgid "Disable access logs" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:19 +msgid "This will disable access logging." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:25 +msgid "Enable Traefik Dashboard" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:27 +msgid "This will enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:37 +msgid "[!WARNING] Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:40 +msgid "Additional configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:42 +msgid "Use the `traefik_configuration_extension_yaml` variable provided by the Traefik Ansible role to override or inject additional settings, even when no dedicated variable exists." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:52 +msgid "Reverse-proxying another service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:54 +msgid "The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:56 +msgid "However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:58 +msgid "Reverse-proxying a remote HTTP/HTTPS service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:60 +msgid "If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://:` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:62 +msgid "Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:64 +msgid "First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:78 +msgid "If you are using a self-signed certificate on your webserver, you can tell Traefik to trust your own backend servers by adding more configuration to the static configuration file. If you do so, bear in mind the security implications of disabling the certificate validity checks towards your back end." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:92 +msgid "Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:111 +#: ../../../docs/configuring-playbook-traefik.md:134 +msgid "Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:113 +msgid "Reverse-proxying another service behind Traefik without terminating SSL" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:115 +msgid "If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:136 +msgid "With these changes, all TCP traffic will be reverse-proxied to the target system." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:138 +msgid "[!WARNING] This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:141 +msgid "Traefik behind a `proxy_protocol` reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:143 +msgid "If you run a reverse-proxy which speaks `proxy_protocol`, add the following to your configuration file:" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-turn.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-turn.po new file mode 100644 index 000000000..fd8c3bac6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-turn.po @@ -0,0 +1,138 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-turn.md:1 +msgid "Configuring a TURN server (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:3 +msgid "By default, this playbook installs and configures the [coturn](https://github.com/coturn/coturn) as a TURN server, through which clients can make audio/video calls even from [NAT](https://en.wikipedia.org/wiki/Network_address_translation)-ed networks. It also configures the Synapse chat server by default, so that it points to the coturn TURN server installed by the playbook. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:5 +msgid "If you'd like to stop the playbook installing the server, see the section [below](#disabling-coturn) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:9 +msgid "Define public IP manually (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:11 +msgid "In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:13 +msgid "If you'd rather use a local IP for `ansible_host`, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_PUBLIC_IP` with the pubic IP used by the server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:19 +msgid "If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:21 +msgid "If your server has multiple external IP addresses, the coturn role offers a different variable for specifying them:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:28 +msgid "Change the authentication mechanism (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:30 +msgid "The playbook uses the [`auth-secret` authentication method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L186-L199) by default, but you may switch to the [`lt-cred-mech` method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L178) which [some report](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3191) to be working better." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:32 +msgid "To do so, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:38 +msgid "Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:40 +msgid "If [Jitsi](configuring-playbook-jitsi.md) is installed, note that switching to `lt-cred-mech` will disable the integration between Jitsi and your coturn server, as Jitsi seems to support the `auth-secret` authentication method only." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:42 +msgid "Use your own external coturn server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:44 +msgid "If you'd like to use another TURN server (be it coturn or some other one), add the following configuration to your `vars.yml` file. Make sure to replace `HOSTNAME_OR_IP` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:58 +msgid "If you have or want to enable Jitsi, you might want to enable the TURN server there too. If you do not do it, Jitsi will fall back to an upstream service." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:65 +msgid "You can put multiple host/port combinations if you'd like to." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:67 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:69 +msgid "There are some additional things you may wish to configure about the TURN server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:71 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:73 +msgid "`roles/custom/matrix-coturn/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:75 +msgid "Disabling coturn" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:77 +msgid "If, for some reason, you'd like for the playbook to not install coturn (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:83 +msgid "In that case, Synapse would not point to any coturn servers and audio/video call functionality may fail." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:87 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:96 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po new file mode 100644 index 000000000..bdc8d19b1 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po @@ -0,0 +1,234 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-user-verification-service.md:1 +msgid "Setting up Matrix User Verification Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:3 +msgid "The playbook can install and configure [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-user-verification-service/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:7 +msgid "Currently, the main purpose of this role is to allow Jitsi to authenticate Matrix users and check if they are authorized to join a conference. If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:9 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:11 +msgid "UVS can be used to verify two claims:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:13 +msgid "(A) Whether a given OpenID token is valid for a given server and" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:14 +msgid "(B) whether a user is member of a given room and the corresponding PowerLevel" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:16 +msgid "Verifying an OpenID token ID done by finding the corresponding Homeserver via `/.well-known/matrix/server` for the given domain. The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this. By default, this playbook only checks against `matrix_server_fqn_matrix`. Therefore, the request will be made against the public `openid` API for `matrix_server_fqn_matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:18 +msgid "Verifying RoomMembership and PowerLevel is done against `matrix_user_verification_service_uvs_homeserver_url` which is by default done via the docker network. UVS will verify the validity of the token beforehand though." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:20 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:22 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:24 +msgid "Enabling the UVS service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:26 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:28 +msgid "UVS can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:30 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:32 +msgid "We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username). **Because UVS requires an access token as an admin user, that user needs to be an admin.**" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:34 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:36 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:42 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:44 +msgid "UVS requires an access token as an admin user to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:46 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:49 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:51 +msgid "To enable UVS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:59 +msgid "In the default configuration, the UVS Server is only reachable via the docker network, which is fine if e.g. Jitsi is also running in a container on the host. However, it is possible to expose UVS via setting `matrix_user_verification_service_container_http_host_bind_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:61 +msgid "Custom Auth Token (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:63 +msgid "It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header `Authorization: Bearer YOUR_TOKEN_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:65 +msgid "By default, the token (`YOUR_TOKEN_HERE`) will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:67 +msgid "To set your own token, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_TOKEN_HERE` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:73 +msgid "If a Jitsi instance is also managed by this playbook and [`matrix` authentication](configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix) is enabled there, this collection will automatically configure Jitsi to use the configured auth token." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:75 +msgid "Disable Authorization (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:77 +msgid "Authorization is enabled by default. To disable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:83 +msgid "Federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:85 +msgid "In theory (however currently untested), UVS can handle federation. To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:91 +msgid "This will instruct UVS to verify the OpenID token against any domain given in a request. Homeserver discovery is done via `.well-known/matrix/server` of the given domain." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:93 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:95 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:97 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:99 +msgid "`roles/custom/matrix-user-verification-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:101 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:103 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:110 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service matrix-user-verification-service` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:112 +msgid "`just install-service matrix-user-verification-service` 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 "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:114 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:116 +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-user-verification-service`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:118 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:120 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:127 +msgid "TLS Certificate Checking" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:129 +msgid "If the Matrix Homeserver does not provide a valid TLS certificate, UVS will fail with the following error message:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:131 +msgid "message: 'No response received: [object Object]'," +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:133 +msgid "This also applies to self-signed and Let's Encrypt staging certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:135 +msgid "To disable certificate validation altogether (INSECURE! Not suitable for production use!) set: `NODE_TLS_REJECT_UNAUTHORIZED=0`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:137 +msgid "Alternatively, it is possible to inject your own CA certificates into the container by mounting a PEM file with additional trusted CAs into the container and pointing the `NODE_EXTRA_CA_CERTS` environment variable to it." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook.po new file mode 100644 index 000000000..68873c18e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-playbook.po @@ -0,0 +1,546 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook.md:1 +msgid "Configuring the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > Configuring the playbook > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:5 +msgid "If you've configured your DNS records and retrieved the playbook's source code to your computer, you can start configuring the playbook. To do so, follow these steps inside the playbook directory:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:7 +msgid "create a directory to hold your configuration (`mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\")" +msgstr "" + +#: ../../../docs/configuring-playbook.md:9 +msgid "copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:11 +msgid "edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file." +msgstr "" + +#: ../../../docs/configuring-playbook.md:13 +msgid "copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:15 +msgid "edit the inventory hosts file (`inventory/hosts`) to your liking" +msgstr "" + +#: ../../../docs/configuring-playbook.md:17 +msgid "(optional, advanced) you may wish to keep your `inventory` directory under version control with [git](https://git-scm.com/) or any other version-control system." +msgstr "" + +#: ../../../docs/configuring-playbook.md:19 +msgid "(optional, advanced) to run Ansible against multiple servers with different `sudo` credentials, you can copy the sample inventory hosts yaml file for each of your hosts: (`cp examples/host.yml inventory/my_host1.yml` …) and use the [`ansible-all-hosts.sh`](../bin/ansible-all-hosts.sh) script [in the installation step](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:21 +msgid "For a basic Matrix installation, that's all you need." +msgstr "" + +#: ../../../docs/configuring-playbook.md:23 +msgid "For a more custom setup, see the [Other configuration options](#other-configuration-options) below." +msgstr "" + +#: ../../../docs/configuring-playbook.md:25 +msgid "[▶️](installing.md) When you're done with all the configuration you'd like to do, continue with [Installing](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:27 +msgid "Other configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook.md:29 +msgid "**Note**: some of the roles like one for integrating Etherpad or Jitsi are managed by their own repositories, and the configuration files for them cannot be found locally (in `roles/galaxy`) until those roles are fetched from the upstream projects. Check [requirements.yml](../requirements.yml) for the URLs of those roles." +msgstr "" + +#: ../../../docs/configuring-playbook.md:31 +msgid "Core service adjustments" +msgstr "" + +#: ../../../docs/configuring-playbook.md:33 +msgid "Homeserver configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:34 +msgid "[Configuring Synapse](configuring-playbook-synapse.md), if you're going with the default/recommended homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:36 +msgid "[Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:38 +msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:40 +msgid "[Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:42 +msgid "Server components:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:43 +msgid "[Using an external PostgreSQL server](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:45 +msgid "[Configuring a TURN server](configuring-playbook-turn.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:47 +msgid "[Configuring the Traefik reverse-proxy](configuring-playbook-traefik.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:49 +msgid "[Using your own webserver, instead of this playbook's Traefik reverse-proxy](configuring-playbook-own-webserver.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:51 +msgid "[Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:53 +msgid "[Adjusting email-sending settings](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:55 +msgid "[Setting up ma1sd Identity Server](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:57 +msgid "[Setting up Dynamic DNS](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:59 +msgid "Server connectivity:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:60 +msgid "[Enabling Telemetry for your Matrix server](configuring-playbook-telemetry.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:62 +msgid "[Controlling Matrix federation](configuring-playbook-federation.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:64 +msgid "Clients" +msgstr "" + +#: ../../../docs/configuring-playbook.md:66 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/configuring-playbook.md:68 +msgid "[Configuring Element Web](configuring-playbook-client-element-web.md), if you're going with the default/recommended client" +msgstr "" + +#: ../../../docs/configuring-playbook.md:70 +msgid "[Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/configuring-playbook.md:72 +msgid "[Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface" +msgstr "" + +#: ../../../docs/configuring-playbook.md:74 +msgid "[Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:76 +msgid "Authentication and user-related" +msgstr "" + +#: ../../../docs/configuring-playbook.md:78 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook.md:80 +msgid "[Setting up Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (Next-generation auth for Matrix, based on OAuth 2.0/OIDC)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:82 +msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:84 +msgid "[Setting up Synapse Admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:86 +msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:88 +msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:90 +msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:92 +msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:94 +msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:96 +msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:98 +msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:100 +msgid "File Storage" +msgstr "" + +#: ../../../docs/configuring-playbook.md:102 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/configuring-playbook.md:104 +msgid "[Storing Matrix media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:106 +msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:108 +msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:110 +msgid "Bridging other networks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:112 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/configuring-playbook.md:114 +msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges" +msgstr "" + +#: ../../../docs/configuring-playbook.md:116 +msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:118 +msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:120 +msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:122 +msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:124 +msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:126 +msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:128 +msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:130 +msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:132 +msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:134 +msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:136 +msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:138 +msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:140 +msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:142 +msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:144 +msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:146 +msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:148 +msgid "[Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:150 +msgid "[Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:152 +msgid "[Setting up MX Puppet Instagram bridging](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:154 +msgid "[Setting up MX Puppet Twitter bridging](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:156 +msgid "[Setting up MX Puppet Discord bridging](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:158 +msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:160 +msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:162 +msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:164 +msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:166 +msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:168 +msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:170 +msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:172 +msgid "Bots" +msgstr "" + +#: ../../../docs/configuring-playbook.md:174 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:176 +msgid "[Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:178 +msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff" +msgstr "" + +#: ../../../docs/configuring-playbook.md:180 +msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users" +msgstr "" + +#: ../../../docs/configuring-playbook.md:182 +msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/configuring-playbook.md:184 +msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:186 +msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:188 +msgid "[Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer" +msgstr "" + +#: ../../../docs/configuring-playbook.md:190 +msgid "[Setting up Draupnir for all/D4A](configuring-playbook-appservice-draupnir-for-all.md) — like the [Draupnir bot](configuring-playbook-bot-draupnir.md) mentioned above, but running in appservice mode and supporting multiple instances" +msgstr "" + +#: ../../../docs/configuring-playbook.md:192 +msgid "[Setting up Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../docs/configuring-playbook.md:194 +msgid "Administration" +msgstr "" + +#: ../../../docs/configuring-playbook.md:196 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:198 +msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:200 +msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:202 +msgid "[Enabling metrics and graphs for NginX logs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:204 +msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:206 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:208 +msgid "Backups:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:209 +msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database" +msgstr "" + +#: ../../../docs/configuring-playbook.md:211 +msgid "[Setting up postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:213 +msgid "Other specialized services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:215 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/configuring-playbook.md:217 +msgid "[Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:219 +msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers" +msgstr "" + +#: ../../../docs/configuring-playbook.md:221 +msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:223 +msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:225 +msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:227 +msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook.md:229 +msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:231 +msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:233 +msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:235 +msgid "Deprecated / unmaintained / removed services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:237 +msgid "**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless." +msgstr "" + +#: ../../../docs/configuring-playbook.md:239 +msgid "[Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:241 +msgid "[Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:243 +msgid "[Setting up the Dimension integration manager](configuring-playbook-dimension.md) ([unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299); after [installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:245 +msgid "[Setting up Email2Matrix](configuring-playbook-email2matrix.md) (unmaintained; the author suggests taking a look at [Postmoogle](https://github.com/etkecc/postmoogle) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-postmoogle.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:247 +msgid "[Setting up Go-NEB](configuring-playbook-bot-go-neb.md) (unmaintained; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:249 +msgid "[Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) (unmaintained; the bridge's author suggests taking a look at [baibot](https://github.com/etkecc/baibot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bot-baibot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:251 +msgid "[Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:253 +msgid "[Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (deprecated in favor of the Google Chat bridge with [mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:255 +msgid "[Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:257 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/configuring-well-known.po b/i18n/locales/bg/LC_MESSAGES/docs/configuring-well-known.po new file mode 100644 index 000000000..8c838b570 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/configuring-well-known.po @@ -0,0 +1,254 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-well-known.md:1 +msgid "Configuring Service Discovery via .well-known" +msgstr "" + +#: ../../../docs/configuring-well-known.md:3 +msgid "This documentation page explains how to configure Service discovery via `/.well-known/` files. Service discovery is a way for the Matrix network to discover where a Matrix server is." +msgstr "" + +#: ../../../docs/configuring-well-known.md:5 +msgid "Types of well-known service discovery mechanism" +msgstr "" + +#: ../../../docs/configuring-well-known.md:7 +msgid "There are 3 types of well-known service discovery mechanism that Matrix makes use of:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:9 +msgid "(important) **Federation Server discovery** (`/.well-known/matrix/server`) — assists other servers in the Matrix network with finding your server. With the default playbook configuration specified on the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), this is necessary for federation to work. Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/configuring-well-known.md:11 +msgid "(less important) **Client Server discovery** (`/.well-known/matrix/client`) — assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the \"Homeserver URL\" and \"Identity Server URL\" addresses." +msgstr "" + +#: ../../../docs/configuring-well-known.md:13 +msgid "(optional) **Support service discovery** (`/.well-known/matrix/support`) — returns server admin contact and support page of the domain." +msgstr "" + +#: ../../../docs/configuring-well-known.md:15 +msgid "Federation Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:17 +msgid "All services created by this playbook are meant to be installed on their own server (such as `matrix.example.com`), instead of the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:19 +msgid "As [per the Server-Server specification](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), in order to use a short Matrix user ID like `@alice:example.com` instead of `@alice:matrix.example.com` while hosting services on a subdomain such as `matrix.example.com`, the Matrix network needs to be instructed of [server delegation](howto-server-delegation.md) / redirection." +msgstr "" + +#: ../../../docs/configuring-well-known.md:21 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:23 +msgid "If you set up the DNS SRV record for server delegation instead, take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:25 +msgid "Client Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:27 +msgid "Client Server Service discovery lets various client programs which support it, to receive a full user ID (e.g. `@alice:example.com`) and determine where the Matrix server is automatically (e.g. `https://matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:29 +msgid "This lets you (and your users) easily connect to your Matrix server without having to customize connection URLs. When using client programs that support it, you won't need to point them to `https://matrix.example.com` in Custom Server options manually anymore. The connection URL would be discovered automatically from your full username." +msgstr "" + +#: ../../../docs/configuring-well-known.md:31 +msgid "Without /.well-known/matrix/client, the client will make the wrong \"homeserver URL\" assumption (it will default to using https://example.com, and users will need to notice and adjust it manually (changing it to https://matrix.example.com)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:33 +msgid "As [per the Client-Server specification](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) Matrix does Client Server service discovery using a `/.well-known/matrix/client` file hosted on the base domain (e.g. `example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:35 +msgid "However, this playbook installs your Matrix server on another domain (e.g. `matrix.example.com`) and not on the base domain (e.g. `example.com`), so it takes a little extra manual effort to set up the file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:37 +msgid "Support Service Discovery (optional)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:39 +msgid "[MSC 1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929), which was added to [Matrix Specification version v1.10](https://spec.matrix.org/v1.10/client-server-api/#getwell-knownmatrixsupport), specifies a way to add contact details of admins, as well as a link to a support page for users who are having issues with the service. Automated services may also index this information and use it for abuse reports, etc." +msgstr "" + +#: ../../../docs/configuring-well-known.md:41 +msgid "To enable it, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:62 +msgid "Installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:64 +msgid "To implement the service discovery mechanisms, your base domain's server (e.g. `example.com`) needs to run an HTTPS-capable webserver." +msgstr "" + +#: ../../../docs/configuring-well-known.md:66 +msgid "Serving the base domain from the Matrix server via the playbook" +msgstr "" + +#: ../../../docs/configuring-well-known.md:68 +msgid "If you don't have a server for your base domain at all, you can use the Matrix server for this. If you don't need the base domain (e.g. `example.com`) for anything else (hosting a website, etc.), you can point it to the Matrix server's IP address and tell the playbook to configure it." +msgstr "" + +#: ../../../docs/configuring-well-known.md:70 +msgid "**This is the easiest way to set up well-known serving** — letting the playbook handle the whole base domain for you (including SSL certificates, etc.) and take care to serve the appropriate well-known files automatically." +msgstr "" + +#: ../../../docs/configuring-well-known.md:72 +msgid "If you decide to go this route, you don't need to read ahead in this document. Instead, go to [Serving the base domain](configuring-playbook-base-domain-serving.md) to learn how the playbook can help you set it up." +msgstr "" + +#: ../../../docs/configuring-well-known.md:74 +msgid "However, if you need to use the base domain for other things, this method is less suitable than the one explained below." +msgstr "" + +#: ../../../docs/configuring-well-known.md:76 +msgid "Manually installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:78 +msgid "If you're managing the base domain by yourself somehow, you'll need to set up serving of some `/.well-known/matrix/*` files from it via HTTPS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:80 +msgid "To make things easy for you to set up, this playbook generates and hosts a few well-known files on the Matrix domain's server. The files are generated at the `/matrix/static-files/public/.well-known/matrix/` path on the server and hosted at URLs like `https://matrix.example.com/.well-known/matrix/server` and `https://matrix.example.com/.well-known/matrix/client`, even though this is the wrong place to host them." +msgstr "" + +#: ../../../docs/configuring-well-known.md:82 +msgid "You have two options when it comes to installing the files on the base domain's server:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:84 +msgid "(Option 1): **Copying the files manually** to your base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:86 +msgid "**Hint**: Option 2 is generally a better way to do this. Make sure to go with it, if possible." +msgstr "" + +#: ../../../docs/configuring-well-known.md:88 +msgid "All you need to do is:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:90 +msgid "copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:92 +msgid "set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element Web) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:94 +msgid "This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server. It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again." +msgstr "" + +#: ../../../docs/configuring-well-known.md:96 +msgid "(Option 2): **Setting up reverse-proxying** of the well-known files from the base domain's server to the Matrix server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:98 +msgid "This option is less fragile and generally better." +msgstr "" + +#: ../../../docs/configuring-well-known.md:100 +msgid "On the base domain's server (e.g. `example.com`), you can set up reverse-proxying, so that any access for the `/.well-known/matrix` location prefix is forwarded to the Matrix domain's server (e.g. `matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:102 +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 "" + +#: ../../../docs/configuring-well-known.md:104 +msgid "**For nginx**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:121 +msgid "**For Apache2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:135 +msgid "**For Caddy 2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:145 +msgid "**For HAProxy**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:164 +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 "" + +#: ../../../docs/configuring-well-known.md:170 +msgid "**For AWS CloudFront**" +msgstr "" + +#: ../../../docs/configuring-well-known.md:172 +msgid "Add a custom origin with matrix.example.com to your distribution" +msgstr "" + +#: ../../../docs/configuring-well-known.md:173 +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 "" + +#: ../../../docs/configuring-well-known.md:175 +msgid "Make sure to:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:177 +msgid "**replace `example.com`** in the server configuration with your actual domain name" +msgstr "" + +#: ../../../docs/configuring-well-known.md:178 +msgid "and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be" +msgstr "" + +#: ../../../docs/configuring-well-known.md:180 +msgid "Confirming it works" +msgstr "" + +#: ../../../docs/configuring-well-known.md:182 +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 "" + +#: ../../../docs/configuring-well-known.md:184 +msgid "`https://example.com/.well-known/matrix/server`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:185 +msgid "`https://example.com/.well-known/matrix/client`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:186 +msgid "`https://example.com/.well-known/matrix/support`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:188 +msgid "You can also check if everything is configured correctly, by [checking if services work](maintenance-checking-services.md)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/container-images.po b/i18n/locales/bg/LC_MESSAGES/docs/container-images.po new file mode 100644 index 000000000..e4e665f10 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/container-images.po @@ -0,0 +1,1170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/container-images.md:1 +msgid "Container images used by the playbook" +msgstr "" + +#: ../../../docs/container-images.md:3 +msgid "This page summarizes the container ([Docker](https://www.docker.com/)) images used by the playbook when setting up your server." +msgstr "" + +#: ../../../docs/container-images.md:5 +msgid "We try to stick to official images (provided by their respective projects) as much as possible." +msgstr "" + +#: ../../../docs/container-images.md:7 +msgid "Homeserver" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Service" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Container image" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Default?" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Description" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Synapse](configuring-playbook-synapse.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/synapse](https://ghcr.io/element-hq/synapse)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "✅" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Conduit](configuring-playbook-conduit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "❌" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[conduwuit](configuring-playbook-conduwuit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Dendrite](configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../docs/container-images.md:16 +msgid "Clients" +msgstr "" + +#: ../../../docs/container-images.md:18 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Element Web](configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Hydrogen](configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/hydrogen-web](https://ghcr.io/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Cinny](configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ajbura/cinny](https://hub.docker.com/r/ajbura/cinny)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[SchildiChat Web](configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/schildichat-web](https://ghcr.io/etkecc/schildichat-web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../docs/container-images.md:27 +msgid "Server Components" +msgstr "" + +#: ../../../docs/container-images.md:29 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[PostgreSQL](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[postgres](https://hub.docker.com/_/postgres/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Database for Synapse. [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[coturn](configuring-playbook-turn.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[coturn/coturn](https://hub.docker.com/r/coturn/coturn/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Traefik](configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Traefik](https://hub.docker.com/_/traefik/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Web server, listening on ports 80, 443 and 8448 — standing in front of all the other services. Using your own webserver [is possible](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Let's Encrypt](configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[certbot/certbot](https://hub.docker.com/r/certbot/certbot/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "The [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Exim](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ma1sd](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ddclient](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider" +msgstr "" + +#: ../../../docs/container-images.md:41 +msgid "Authentication" +msgstr "" + +#: ../../../docs/container-images.md:43 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-rest-auth](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "(N/A)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-shared-secret-auth](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-ldap3](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[activism.international/matrix_ldap_registration_proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix User Verification Service](configuring-playbook-user-verification-service.md) (UVS)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-user-verification-service](https://hub.docker.com/r/atrixdotorg/matrix-user-verification-service)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-simple-antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A spam checker module" +msgstr "" + +#: ../../../docs/container-images.md:55 +msgid "File Storage" +msgstr "" + +#: ../../../docs/container-images.md:57 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-s3-storage-provider](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[t2bot/matrix-media-repo](https://ghcr.io/t2bot/matrix-media-repo)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/container-images.md:65 +msgid "Bridges" +msgstr "" + +#: ../../../docs/container-images.md:67 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-discord](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/discord](https://mau.dev/mautrix/discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-slack](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/slack](https://mau.dev/mautrix/slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-telegram](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-gmessages](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/wsproxy](https://mau.dev/mautrix/wsproxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/googlechat](https://mau.dev/mautrix/googlechat/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "mautrix-meta (for [Messenger](configuring-playbook-bridge-mautrix-meta-messenger.md) and [Instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/meta](https://mau.dev/mautrix/meta/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-signal](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/signal](https://mau.dev/mautrix/signal/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[beeper/linkedin](https://ghcr.io/beeper/linkedin)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Self-building" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-appservice-slack](https://hub.docker.com/r/matrixdotorg/matrix-appservice-slack)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-hookshot](configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to SMS" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-wechat](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[lxduo/matrix-wechat](https://hub.docker.com/r/lxduo/matrix-wechat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Heisenbridge](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[hif1/heisenbridge](https://hub.docker.com/r/hif1/heisenbridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[nodefyme/go-skype-bridge](https://hub.docker.com/r/nodefyme/go-skype-bridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet/slack/mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-instagram](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sorunome/mx-puppet-instagram](https://hub.docker.com/r/sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sorunome/mx-puppet-twitter](https://hub.docker.com/r/sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet/discord/mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-groupme](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[xangelix/mx-puppet-groupme](https://hub.docker.com/r/xangelix/mx-puppet-groupme)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-steam](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[icewind1991/mx-puppet-steam](https://hub.docker.com/r/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Postmoogle](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/postmoogle](https://github.com/etkecc/postmoogle/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../docs/container-images.md:99 +msgid "Bots" +msgstr "" + +#: ../../../docs/container-images.md:101 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[baibot](configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/baibot](https://ghcr.io/etkecc/baibot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[anoa/matrix-reminder-bot](https://hub.docker.com/r/anoa/matrix-reminder-bot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[moanos/matrix-registration-bot](https://hub.docker.com/r/moanos/matrix-registration-bot/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[maubot](configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Honoroit](configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A helpdesk bot" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Mjolnir](configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Draupnir](configuring-playbook-bot-draupnir.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[gnuxie/draupnir](https://hub.docker.com/r/gnuxie/draupnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Buscarron](configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/buscarron](https://ghcr.io/etkecc/buscarron)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../docs/container-images.md:114 +msgid "Administration" +msgstr "" + +#: ../../../docs/container-images.md:116 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[metio/matrix-alertmanager-receiver](https://hub.docker.com/r/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/matrix-authentication-service](https://ghcr.io/element-hq/matrix-authentication-service)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/synapse-admin](https://ghcr.io/etkecc/synapse-admin)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Metrics and Graphs](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[prom/prometheus](https://hub.docker.com/r/prom/prometheus/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Prometheus](https://prometheus.io) time-series database server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[prom/node-exporter](https://hub.docker.com/r/prom/node-exporter/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[grafana/grafana](https://hub.docker.com/r/grafana/grafana/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Graphing tool that works well with the above two images. Our playbook also adds two dashboards for [Synapse](https://github.com/element-hq/synapse/tree/master/contrib/grafana) and [Node Exporter](https://github.com/rfrail3/grafana-dashboards)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Metrics and Graphs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[martin-helmich/prometheus-nginxlog-exporter/exporter](https://ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Addon for Prometheus that gathers access logs from various nginx reverse-proxies" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Borg](configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Backups" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[rageshake](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/rageshake](https://ghcr.io/matrix-org/rageshake)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bug report server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/container-images.md:131 +msgid "Misc" +msgstr "" + +#: ../../../docs/container-images.md:133 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sliding-sync](configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/sliding-sync](https://ghcr.io/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Sliding Sync support for clients which require it (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse_auto_accept_invite](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse_auto_compressor](configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/rust-synapse-compress-state](https://gitlab.com/etke.cc/rust-synapse-compress-state/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Jitsi](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/web](https://hub.docker.com/r/jitsi/web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) web UI" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Focus component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/prosody](https://hub.docker.com/r/jitsi/prosody)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Prosody XMPP server component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/jvb](https://hub.docker.com/r/jitsi/jvb)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Video Bridge component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Cactus Comments](configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[cactuscomments/cactus-appservice](https://hub.docker.com/r/cactuscomments/cactus-appservice/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[joseluisq/static-web-server](https://hub.docker.com/r/joseluisq/static-web-server)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Pantalaimon](configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Sygnal](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Reference Push Gateway for Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ntfy](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Self-hosted, UnifiedPush-compatible push notifications server" +msgstr "" + +#: ../../../docs/container-images.md:152 +msgid "Container images of deprecated / unmaintained services" +msgstr "" + +#: ../../../docs/container-images.md:154 +msgid "The list of the deprecated or unmaintained services is available [here](configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Dimension](configuring-playbook-dimension.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An open source integration manager for Matrix clients" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Email2Matrix](configuring-playbook-email2matrix.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for relaying emails to Matrix rooms" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Go-NEB](configuring-playbook-bot-go-neb.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A multi functional bot written in Go" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Accessing ChatGPT via your favourite Matrix client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Facebook](https://facebook.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-hangouts](configuring-playbook-bridge-mautrix-hangouts.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Instagram](https://instagram.com/)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/faq.po b/i18n/locales/bg/LC_MESSAGES/docs/faq.po new file mode 100644 index 000000000..6ebcf4d73 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/faq.po @@ -0,0 +1,894 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/faq.md:1 +msgid "Frequently Asked Questions" +msgstr "" + +#: ../../../docs/faq.md:3 +msgid "This documentation page tries to answer various Frequently Asked Questions about all things [Matrix](https://matrix.org/), with a focus on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work))." +msgstr "" + +#: ../../../docs/faq.md:5 +msgid "This FAQ page does not intend to replace the [matrix.org FAQ](https://matrix.org/faq/) (please see that one too)." +msgstr "" + +#: ../../../docs/faq.md:7 +msgid "We've only started this FAQ recently, so it's still somewhat empty." +msgstr "" + +#: ../../../docs/faq.md:9 +msgid "Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to installation. To get started, see [below](#how-do-i-run-the-installation) about our installation guides." +msgstr "" + +#: ../../../docs/faq.md:11 +msgid "Introductory" +msgstr "" + +#: ../../../docs/faq.md:13 +msgid "Where do I find more questions and answers about Matrix?" +msgstr "" + +#: ../../../docs/faq.md:15 +msgid "This is a Frequently Asked Questions page focused on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)) for deploying a [Matrix](https://matrix.org/) server." +msgstr "" + +#: ../../../docs/faq.md:17 +msgid "For a lot more generic questions and answers, see the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:19 +msgid "What is Matrix? What is Element? What is Synapse? Why are you confusing me with so many terms?" +msgstr "" + +#: ../../../docs/faq.md:21 +msgid "[Matrix](https://matrix.org/) is a new type of realtime communication (chat) network, the closest analogy to which is probably \"email\"." +msgstr "" + +#: ../../../docs/faq.md:23 +msgid "You don't just use the \"email\" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these \"email\" protocols via some *client* program (Outlook, Thunderbird, some website, etc)." +msgstr "" + +#: ../../../docs/faq.md:25 +msgid "In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element Desktop on your desktop, but Fluffychat on your phone, etc)." +msgstr "" + +#: ../../../docs/faq.md:27 +msgid "Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`)." +msgstr "" + +#: ../../../docs/faq.md:29 +msgid "If someone else is hosting your Matrix server (you being `@alice:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android." +msgstr "" + +#: ../../../docs/faq.md:31 +msgid "If you'd like to host your own server (you being `@alice:example.com`), you'd need to set up a Matrix server program, like Synapse." +msgstr "" + +#: ../../../docs/faq.md:33 +msgid "In short:" +msgstr "" + +#: ../../../docs/faq.md:35 +msgid "Matrix is the protocol — a set of rules about how the chat network operates" +msgstr "" + +#: ../../../docs/faq.md:36 +msgid "Element is a client program you can use to participate on the Matrix chat network via some server (yours or someone else's). There are also [many other client programs](https://matrix.org/clients/)." +msgstr "" + +#: ../../../docs/faq.md:37 +msgid "Synapse is a server program you can use to host your very own Matrix server." +msgstr "" + +#: ../../../docs/faq.md:39 +msgid "This FAQ here mostly focuses on installing various Matrix services using the Ansible automation tool. You can learn much more about Matrix in the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:41 +msgid "People I wish to talk to are not on Matrix. Can I talk to them?" +msgstr "" + +#: ../../../docs/faq.md:43 +msgid "You most likely can. Besides Matrix-native chats, Matrix also supports the concept of \"bridging\", which allows you to plug other networks into it." +msgstr "" + +#: ../../../docs/faq.md:45 +msgid "This Ansible playbook can help you install [tens of bridges for various networks](configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../docs/faq.md:47 +msgid "Besides setting up your own bridges (preferable), you can also use some [public bridges hosted by others](https://publiclist.anchel.nl/#bridges)." +msgstr "" + +#: ../../../docs/faq.md:49 +msgid "How do I get started with Matrix?" +msgstr "" + +#: ../../../docs/faq.md:51 +msgid "One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people — one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`)." +msgstr "" + +#: ../../../docs/faq.md:53 +msgid "There are 3 ways to get into Matrix, depending on your technical ability and needs:" +msgstr "" + +#: ../../../docs/faq.md:55 +msgid "**using the existing default server** — the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting." +msgstr "" + +#: ../../../docs/faq.md:57 +msgid "**using some other server** — instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login." +msgstr "" + +#: ../../../docs/faq.md:59 +msgid "**using your own server** — running your own server puts you in ultimate control of your data. It also lets you have your own user IDs (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server)." +msgstr "" + +#: ../../../docs/faq.md:61 +msgid "How do I set up my own Matrix server?" +msgstr "" + +#: ../../../docs/faq.md:63 +msgid "Normally, you'd first choose the [Matrix](https://matrix.org/) server software you'd like to run. At the time of this writing (January/2021), there's only one fully-featured server program, so there's only one reasonable choice. That's [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:65 +msgid "There are [many guides about installing Synapse](https://matrix.org/docs/guides/#installing-synapse). Using this Ansible playbook is just one way of doing it." +msgstr "" + +#: ../../../docs/faq.md:67 +msgid "Naturally, we're biased, so our usual recommendation is to go with this [Ansible](https://www.ansible.com/) playbook, instead of installing Synapse (and many many other things around it) manually." +msgstr "" + +#: ../../../docs/faq.md:69 +msgid "To get started with the playbook, check out the [Quick start](quick-start.md) or full installation guide (starting at the [Prerequisites](prerequisites.md) page)." +msgstr "" + +#: ../../../docs/faq.md:71 +msgid "What is Ansible? How does it work?" +msgstr "" + +#: ../../../docs/faq.md:73 +msgid "[Ansible](https://www.ansible.com/) is an automation program. This \"playbook\" is a collection of tasks/scripts that will set up a [Matrix](https://matrix.org/) server for you, so you don't have to perform these tasks manually." +msgstr "" + +#: ../../../docs/faq.md:75 +msgid "We have written these automated tasks for you and all you need to do is execute them using the Ansible program." +msgstr "" + +#: ../../../docs/faq.md:77 +msgid "You can install Ansible and this playbook code repository on your own computer and tell it to install Matrix services at the server living at `matrix.example.com`. We recommend installing Ansible on your own computer." +msgstr "" + +#: ../../../docs/faq.md:79 +msgid "Alternatively, you can download Ansible and the playbook itself directly on the `matrix.example.com` server." +msgstr "" + +#: ../../../docs/faq.md:81 +msgid "To learn more, see our [dedicated Ansible documentation page](ansible.md)." +msgstr "" + +#: ../../../docs/faq.md:83 +msgid "What is `just`?" +msgstr "" + +#: ../../../docs/faq.md:85 +msgid "[`just`](https://github.com/casey/just) is a modern command-runner alternative to [make](https://www.gnu.org/software/make/). It can be used to invoke commands with less typing." +msgstr "" + +#: ../../../docs/faq.md:87 +msgid "The `just` utility executes shortcut commands (called \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile)." +msgstr "" + +#: ../../../docs/faq.md:89 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/faq.md:91 +msgid "The playbook also contains a `Makefile` for the `make` tool, but most of the just recipes are not available as targets in the `Makefile`." +msgstr "" + +#: ../../../docs/faq.md:93 +msgid "Why use this playbook and not install Synapse and other things manually?" +msgstr "" + +#: ../../../docs/faq.md:95 +msgid "There are various guides telling you how easy it is to install [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:97 +msgid "Reading the documentation of this Ansible playbook, you may also be thinking:" +msgstr "" + +#: ../../../docs/faq.md:99 +msgid "I don't know what [Ansible](https://www.ansible.com/) is. I don't know what [Docker](https://www.docker.com/) is. This looks more complicated." +msgstr "" + +#: ../../../docs/faq.md:101 +msgid "… so you may be leaning toward [installing Synapse manually](https://github.com/element-hq/synapse/blob/master/INSTALL.md)." +msgstr "" + +#: ../../../docs/faq.md:103 +msgid "The problem with a manual installation is:" +msgstr "" + +#: ../../../docs/faq.md:105 +msgid "Synapse is written in Python. If not packaged for your distribution, you'd need to install various Python modules, etc., and keep them updated." +msgstr "" + +#: ../../../docs/faq.md:106 +msgid "Synapse requires a [Postgres](https://www.postgresql.org/) database (it can run on SQLite, but that's very much discouraged). So you'd need to install Postgres as well." +msgstr "" + +#: ../../../docs/faq.md:107 +msgid "you may also need a reverse-proxy server in front of it (nginx, Apache), so you'd need to be familiar with that" +msgstr "" + +#: ../../../docs/faq.md:108 +msgid "SSL is required, so you'd need to obtain Let's Encrypt (or other free or non-free) certificates for one or more domain names. You'd need to be familiar with [certbot](https://certbot.eff.org/) (when using Let's Encrypt) or similar software." +msgstr "" + +#: ../../../docs/faq.md:109 +msgid "for each additional component you'd like to add (client like [Element](https://element.io), bridge to some other chat network, integration manager (stickers, other services, Identity Manager, etc.), you'll need to spend extra time installing and wiring it with the rest of the system in a way that works." +msgstr "" + +#: ../../../docs/faq.md:110 +msgid "you'll likely get slower updates for all of these components, depending on your distro packaging or your own time and ability" +msgstr "" + +#: ../../../docs/faq.md:112 +msgid "The playbook, on the other hand, installs a bunch of components for you by default, obtains SSL certificates for you, etc. If you'd like, you can enable various bridges and other services with very little effort. All the components are wired to work together." +msgstr "" + +#: ../../../docs/faq.md:114 +msgid "All services run in Docker containers (most being officially provided by each component's developers), so we're not at the mercy of distro packaging." +msgstr "" + +#: ../../../docs/faq.md:116 +msgid "Why use this playbook and not just use the Docker image directly?" +msgstr "" + +#: ../../../docs/faq.md:118 +msgid "Reasons are similar to the reasons for not installing manually." +msgstr "" + +#: ../../../docs/faq.md:120 +msgid "Besides Synapse, you'd need other things — a Postgres database, likely the [Element](https://element.io) client, etc., etc." +msgstr "" + +#: ../../../docs/faq.md:122 +msgid "Using the playbook, you get all these components in a way that works well together out of the box." +msgstr "" + +#: ../../../docs/faq.md:124 +msgid "Occasionally I see some people are talking about \"MDAD\". What is it?" +msgstr "" + +#: ../../../docs/faq.md:126 +msgid "It is the acronym of us: **m**atrix-**d**ocker-**a**nsible-**d**eploy." +msgstr "" + +#: ../../../docs/faq.md:128 +msgid "What's different about this Ansible playbook compared to [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy)?" +msgstr "" + +#: ../../../docs/faq.md:130 +msgid "This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but:" +msgstr "" + +#: ../../../docs/faq.md:132 +msgid "this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** — especially for folks not familiar with Ansible" +msgstr "" + +#: ../../../docs/faq.md:134 +msgid "this one installs and hooks together **a lot more Matrix-related services** for you (see above)" +msgstr "" + +#: ../../../docs/faq.md:136 +msgid "this one **can be executed more than once** without causing trouble" +msgstr "" + +#: ../../../docs/faq.md:138 +msgid "works on various distros: **CentOS** (7.0+), Debian-based distributions (**Debian** 10/Buster+, **Ubuntu** 18.04+), **Archlinux**" +msgstr "" + +#: ../../../docs/faq.md:140 +msgid "this one installs everything in a single directory (`/matrix` by default) and **doesn't \"contaminate\" your server** with files all over the place" +msgstr "" + +#: ../../../docs/faq.md:142 +msgid "this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up [Traefik](https://doc.traefik.io/traefik/) for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/faq.md:144 +msgid "this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](container-images.md))" +msgstr "" + +#: ../../../docs/faq.md:146 +msgid "this one retrieves and automatically renews free [Let's Encrypt](https://letsencrypt.org/) **SSL certificates** for you" +msgstr "" + +#: ../../../docs/faq.md:148 +msgid "this one optionally can store the `media_store` content repository files on [Amazon S3](https://aws.amazon.com/s3/) (but defaults to storing files on the server's filesystem)" +msgstr "" + +#: ../../../docs/faq.md:150 +msgid "this one optionally **allows you to use an external PostgreSQL server** for Synapse's database (but defaults to running one in a container)" +msgstr "" + +#: ../../../docs/faq.md:152 +msgid "helps you **import data from a previous installation** (so you can migrate your manual virtualenv/Docker setup to a more managed one)" +msgstr "" + +#: ../../../docs/faq.md:154 +msgid "this one is actually **maintained**" +msgstr "" + +#: ../../../docs/faq.md:156 +msgid "Server-related" +msgstr "" + +#: ../../../docs/faq.md:158 +msgid "What kind of server do I need to install Matrix using this Ansible playbook?" +msgstr "" + +#: ../../../docs/faq.md:160 +msgid "We list our server requirements in [Prerequisites](prerequisites.md)." +msgstr "" + +#: ../../../docs/faq.md:162 +msgid "Why not run Matrix on Kubernetes?" +msgstr "" + +#: ../../../docs/faq.md:164 +msgid "There's no reason not to run Matrix on [Kubernetes](https://kubernetes.io/)." +msgstr "" + +#: ../../../docs/faq.md:166 +msgid "However, that's overly complicated for thousands of us who just want to run a single small (and sometimes not so small) Matrix server, either using \"cloud\" servers or even a [Raspberry Pi](https://www.raspberrypi.org/) at home." +msgstr "" + +#: ../../../docs/faq.md:168 +msgid "For us, a Kubernetes-based setup which requires a cluster of multiple computers and is more technically-involved is a no-go." +msgstr "" + +#: ../../../docs/faq.md:170 +msgid "There are others working on automating a Matrix-on-Kubernetes setup, such as this [Helm](https://helm.sh/) chart: https://github.com/dacruz21/matrix-chart." +msgstr "" + +#: ../../../docs/faq.md:172 +msgid "Why don't you use Podman instead of Docker?" +msgstr "" + +#: ../../../docs/faq.md:174 +msgid "We like the philosophy of a daemonless container runtime, but [Podman](https://podman.io) is just not ready for our use case yet." +msgstr "" + +#: ../../../docs/faq.md:176 +msgid "Learn more about our past experiences/attempts to give Podman a chance, by reading [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/520)." +msgstr "" + +#: ../../../docs/faq.md:178 +msgid "In short, `alias podman=docker` is a lie (for us)." +msgstr "" + +#: ../../../docs/faq.md:180 +msgid "Why use Docker?" +msgstr "" + +#: ../../../docs/faq.md:182 +msgid "[Docker](https://www.docker.com/) is one of our 2 hard dependencies (the other one being [systemd](https://systemd.io/))." +msgstr "" + +#: ../../../docs/faq.md:184 +msgid "It lets us run services in an isolated manner and independently of the (usually old) packages available for distributions." +msgstr "" + +#: ../../../docs/faq.md:186 +msgid "It also lets us have a unified setup which runs the same across various supported distros (see them on [Prerequisites](prerequisites.md))." +msgstr "" + +#: ../../../docs/faq.md:188 +msgid "Is Docker a hard requirement?" +msgstr "" + +#: ../../../docs/faq.md:190 +msgid "Yes. See [Why don't you use Podman instead of Docker?](#why-dont-you-use-podman-instead-of-docker) for why we're not using another container runtime." +msgstr "" + +#: ../../../docs/faq.md:192 +msgid "All of our services run in containers. It's how we achieve predictability and also how we support tens of different services across lots of distros." +msgstr "" + +#: ../../../docs/faq.md:194 +msgid "The only thing we need on the distro is systemd and Python (we install Docker ourselves, unless you ask us not to)." +msgstr "" + +#: ../../../docs/faq.md:196 +msgid "Why don't you use docker-compose?" +msgstr "" + +#: ../../../docs/faq.md:198 +msgid "Instead of using [docker-compose](https://docs.docker.com/compose/), we prefer installing systemd services and scheduling those independently." +msgstr "" + +#: ../../../docs/faq.md:200 +msgid "There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625). There is also a demo project ([element-docker-demo](https://github.com/element-hq/element-docker-demo)) by Element." +msgstr "" + +#: ../../../docs/faq.md:202 +msgid "Can I run this on a distro without systemd?" +msgstr "" + +#: ../../../docs/faq.md:204 +msgid "No. [systemd](https://systemd.io/) is one of our 2 hard dependencies (the other one being [Docker](https://www.docker.com/))." +msgstr "" + +#: ../../../docs/faq.md:206 +msgid "Can I install this on a Raspberry Pi?" +msgstr "" + +#: ../../../docs/faq.md:208 +msgid "Yes, you can. See our [Alternative Architectures](alternative-architectures.md) documentation page." +msgstr "" + +#: ../../../docs/faq.md:210 +msgid "Whether a Raspberry Pi has enough power to give you a good experience is another question. It depends on your use case." +msgstr "" + +#: ../../../docs/faq.md:212 +msgid "Also see: [What kind of server specs do I need?](#what-kind-of-server-specs-do-i-need)." +msgstr "" + +#: ../../../docs/faq.md:214 +msgid "What kind of server specs do I need?" +msgstr "" + +#: ../../../docs/faq.md:216 +msgid "This largely depends on your use case. It's not so much the number of users that you plan to host, but rather the number of large rooms they will join." +msgstr "" + +#: ../../../docs/faq.md:218 +msgid "Federated rooms with lots of history and containing hundreds of other servers are very heavy CPU-wise and memory-wise." +msgstr "" + +#: ../../../docs/faq.md:220 +msgid "You can probably use a 1 CPU + 1GB memory server to host hundreds of local users just fine, but as soon as one of them joins a federated room like `#matrix:matrix.org` (Matrix HQ) or some IRC-bridged room (say `##linux`), your server will get the need for a lot more power (at least 2GB RAM, etc)." +msgstr "" + +#: ../../../docs/faq.md:222 +msgid "Running Matrix on a server with 1GB of memory is possible (especially if you disable some not-so-important services). See [How do I optimize this setup for a low-power server?](#how-do-i-optimize-this-setup-for-a-low-power-server)." +msgstr "" + +#: ../../../docs/faq.md:224 +msgid "**We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea." +msgstr "" + +#: ../../../docs/faq.md:226 +msgid "Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferrably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage." +msgstr "" + +#: ../../../docs/faq.md:228 +msgid "Can I run this in an LXC container?" +msgstr "" + +#: ../../../docs/faq.md:230 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/faq.md:232 +msgid "Configuration" +msgstr "" + +#: ../../../docs/faq.md:234 +msgid "Why install my server at matrix.example.com and not at the base domain?" +msgstr "" + +#: ../../../docs/faq.md:236 +msgid "It's the same with email servers. Your email address is likely `name@company.com`, not `name@mail.company.com`, even though it's `mail.company.com` that is really handling your data for `@company.com` email to work." +msgstr "" + +#: ../../../docs/faq.md:238 +msgid "Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc. Therefore, this playbook sets up services on your Matrix server (`matrix.example.com`) by default." +msgstr "" + +#: ../../../docs/faq.md:240 +msgid "I don't control anything on the base domain and can't set up delegation to matrix.example.com. What do I do?" +msgstr "" + +#: ../../../docs/faq.md:242 +msgid "If you're not in control of your base domain (or the server handling it) at all, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:244 +msgid "I can't set up HTTPS on the base domain. How will I get Matrix federating?" +msgstr "" + +#: ../../../docs/faq.md:246 +msgid "If you really can't obtain an HTTPS certificate for your base domain, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:248 +msgid "How do I install on matrix.example.com without involving the base domain?" +msgstr "" + +#: ../../../docs/faq.md:250 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:271 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/faq.md:278 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/faq.md:280 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/faq.md:282 +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/faq.md:284 +msgid "Without setting up [server delegation](howto-server-delegation.md) to `matrix.example.com`, your user IDs will be like `@alice:matrix.example.com`. This is equivalent to having an email address like `bob@mail.company.com`, instead of just `bob@company.com`." +msgstr "" + +#: ../../../docs/faq.md:286 +msgid "I don't use the base domain for anything. How am I supposed to set up Server Delegation for Matrix services?" +msgstr "" + +#: ../../../docs/faq.md:288 +msgid "If you don't use your base domain for anything, then it's hard for you to \"serve files over HTTPS\" on it — something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md))." +msgstr "" + +#: ../../../docs/faq.md:290 +msgid "Luckily, the playbook can set up your Matrix server (at `matrix.example.com`) to also handle traffic for the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/faq.md:292 +msgid "See [Serving the base domain](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/faq.md:294 +msgid "How do I optimize this setup for a low-power server?" +msgstr "" + +#: ../../../docs/faq.md:296 +msgid "You can disable some not-so-important services to save on memory." +msgstr "" + +#: ../../../docs/faq.md:318 +msgid "You can also consider implementing a restriction on room complexity, in order to prevent users from joining very heavy rooms:" +msgstr "" + +#: ../../../docs/faq.md:328 +msgid "If you've installed [Jitsi](configuring-playbook-jitsi.md) (not installed by default), there are additional optimizations listed on its documentation page that you can perform." +msgstr "" + +#: ../../../docs/faq.md:330 +msgid "I already have Docker on my server. Can you stop installing Docker via the playbook?" +msgstr "" + +#: ../../../docs/faq.md:332 +msgid "Yes, we can stop installing Docker ourselves. Just use this in your `vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:338 +msgid "I run another webserver on the same server where I wish to install Matrix. What now?" +msgstr "" + +#: ../../../docs/faq.md:340 +msgid "By default, we install a webserver for you ([Traefik](https://doc.traefik.io/traefik/)), but you can also use [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/faq.md:342 +msgid "How is the effective configuration determined?" +msgstr "" + +#: ../../../docs/faq.md:344 +msgid "Configuration variables are defined in multiple places in this playbook and are considered in this order:" +msgstr "" + +#: ../../../docs/faq.md:346 +msgid "there are defaults coming from each role's defaults file (`role/matrix*/defaults/main.yml`). These variable values aim to be good defaults for when the role is used standalone (outside of this collection of roles, also called playbook)." +msgstr "" + +#: ../../../docs/faq.md:348 +msgid "then, there are overrides in `group_vars/matrix_servers`, which aim to adjust these \"standalone role defaults\" to something which better fits the playbook in its entirety." +msgstr "" + +#: ../../../docs/faq.md:350 +msgid "finally, there's your `inventory/host_vars/matrix.example.com/vars.yml` file, which is the ultimate override" +msgstr "" + +#: ../../../docs/faq.md:352 +msgid "What configuration variables are available?" +msgstr "" + +#: ../../../docs/faq.md:354 +msgid "You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`)." +msgstr "" + +#: ../../../docs/faq.md:356 +msgid "As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/faq.md:358 +msgid "Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.example.com/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features)." +msgstr "" + +#: ../../../docs/faq.md:360 ../../../docs/faq.md:372 +msgid "**Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`)." +msgstr "" + +#: ../../../docs/faq.md:362 +msgid "I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?" +msgstr "" + +#: ../../../docs/faq.md:364 +msgid "The playbook doesn't aim to expose all configuration settings for all services using variables. Doing so would amount to hundreds of variables that we have to create and maintain." +msgstr "" + +#: ../../../docs/faq.md:366 +msgid "Instead, we only try to make some important basics configurable using dedicated variables you can see in each role. See [What configuration variables are available?](#what-configuration-variables-are-available)." +msgstr "" + +#: ../../../docs/faq.md:368 +msgid "Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_configuration_extension_yaml` (or `matrix_SOME_COMPONENT_configuration_extension_json`) variable, which can be used to override the configuration." +msgstr "" + +#: ../../../docs/faq.md:370 +msgid "Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable and an example for how use it." +msgstr "" + +#: ../../../docs/faq.md:374 +msgid "Installation" +msgstr "" + +#: ../../../docs/faq.md:376 +msgid "How do I run the installation?" +msgstr "" + +#: ../../../docs/faq.md:378 +msgid "See [Installing](installing.md) to learn how to use Ansible to install Matrix services." +msgstr "" + +#: ../../../docs/faq.md:380 +msgid "However, we recommend you to follow our installation guide, instead of jumping straight to installing." +msgstr "" + +#: ../../../docs/faq.md:382 +msgid "There are two guides available:" +msgstr "" + +#: ../../../docs/faq.md:384 +msgid "⚡ **[Quick start](quick-start.md)** (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/faq.md:386 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](prerequisites.md)** documentation page." +msgstr "" + +#: ../../../docs/faq.md:388 +msgid "I installed Synapse some other way. Can I migrate such a setup to the playbook?" +msgstr "" + +#: ../../../docs/faq.md:390 +msgid "Yes, you can." +msgstr "" + +#: ../../../docs/faq.md:392 +msgid "You generally need to do a playbook installation. It's recommended to follow the full installation guide (starting at the [Prerequisites](prerequisites.md) page), not the [Quick start](quick-start.md) guide. The full installation guide will tell you when it's time to import your existing data into the newly-prepared server." +msgstr "" + +#: ../../../docs/faq.md:394 +msgid "This Ansible playbook guides you into installing a server for `example.com` (user IDs are like this: `@alice:example.com`), while the server is at `matrix.example.com`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `example.com`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup — [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:396 +msgid "After configuring the playbook and installing and **before starting** services (done with `ansible-playbook … --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md)." +msgstr "" + +#: ../../../docs/faq.md:398 +msgid "I've downloaded Ansible and the playbook on the server. It can't connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:400 +msgid "If you're using the playbook directly on the server, then Ansible doesn't need to connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:402 +msgid "It can perform a local connection instead. Just set `ansible_connection=local` at the end of the server line in `inventory/hosts` and re-run the playbook." +msgstr "" + +#: ../../../docs/faq.md:404 +msgid "If you're running Ansible from within a container (one of the possibilities we list on our [dedicated Ansible documentation page](ansible.md)), then using `ansible_connection=local` is not possible." +msgstr "" + +#: ../../../docs/faq.md:406 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/faq.md:408 +msgid "I get \"Error response from daemon: configured logging driver does not support reading\" when I do `docker logs matrix-synapse`." +msgstr "" + +#: ../../../docs/faq.md:410 +msgid "See [How can I see the logs?](#how-can-i-see-the-logs)." +msgstr "" + +#: ../../../docs/faq.md:412 +msgid "How can I see the logs?" +msgstr "" + +#: ../../../docs/faq.md:414 +msgid "We utilize [systemd/journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Description) for logging." +msgstr "" + +#: ../../../docs/faq.md:416 +msgid "To see logs for Synapse, run `journalctl -fu matrix-synapse.service`. You may wish to see the [manual page for journalctl](https://www.commandlinux.com/man-page/man1/journalctl.1.html)." +msgstr "" + +#: ../../../docs/faq.md:418 +msgid "Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server." +msgstr "" + +#: ../../../docs/faq.md:420 +msgid "Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that." +msgstr "" + +#: ../../../docs/faq.md:422 +msgid "We also disable Docker logging, so you can't use `docker logs matrix-*` either. We do this to prevent useless double (or even triple) logging and to avoid having to rotate log files." +msgstr "" + +#: ../../../docs/faq.md:424 +msgid "We just simply delegate logging to journald and it takes care of persistence and expiring old data." +msgstr "" + +#: ../../../docs/faq.md:426 +msgid "Also see: [How long do systemd/journald logs persist for?](#how-long-do-systemdjournald-logs-persist-for)" +msgstr "" + +#: ../../../docs/faq.md:428 +msgid "How long do systemd/journald logs persist for?" +msgstr "" + +#: ../../../docs/faq.md:430 +msgid "On some distros, the journald logs are just in-memory and not persisted to disk." +msgstr "" + +#: ../../../docs/faq.md:432 +msgid "Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`." +msgstr "" + +#: ../../../docs/faq.md:434 +msgid "To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this:" +msgstr "" + +#: ../../../docs/faq.md:445 +msgid "Maintenance" +msgstr "" + +#: ../../../docs/faq.md:447 +msgid "Do I need to do anything to keep my Matrix server updated?" +msgstr "" + +#: ../../../docs/faq.md:449 +msgid "Yes. We don't update anything for you automatically." +msgstr "" + +#: ../../../docs/faq.md:451 +msgid "See our [documentation page about upgrading services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/faq.md:453 +msgid "How do I move my existing installation to another (VM) server?" +msgstr "" + +#: ../../../docs/faq.md:455 +msgid "If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server using [our dedicated server migration guide](maintenance-migrating.md)." +msgstr "" + +#: ../../../docs/faq.md:457 +msgid "If your previous installation is done in some other way (not using this Ansible playbook), see [I installed Synapse some other way. Can I migrate such a setup to the playbook?](#i-installed-synapse-some-other-way-can-i-migrate-such-a-setup-to-the-playbook)." +msgstr "" + +#: ../../../docs/faq.md:459 +msgid "How do I back up the data on my server?" +msgstr "" + +#: ../../../docs/faq.md:461 +msgid "We haven't documented this properly yet, but the general advice is to:" +msgstr "" + +#: ../../../docs/faq.md:463 +msgid "back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql)" +msgstr "" + +#: ../../../docs/faq.md:465 +msgid "back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql))." +msgstr "" + +#: ../../../docs/faq.md:467 +msgid "You can later restore these by:" +msgstr "" + +#: ../../../docs/faq.md:469 +msgid "Restoring the `/matrix` directory and files on the new server manually" +msgstr "" + +#: ../../../docs/faq.md:470 +msgid "Following the instruction described on [Installing a server into which you'll import old data](installing.md#installing-a-server-into-which-youll-import-old-data)" +msgstr "" + +#: ../../../docs/faq.md:472 +msgid "If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again." +msgstr "" + +#: ../../../docs/faq.md:474 +msgid "What is this `/matrix/postgres/data-auto-upgrade-backup` directory that is taking up so much space?" +msgstr "" + +#: ../../../docs/faq.md:476 +msgid "When you [perform a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql), we save the the old data files in `/matrix/postgres/data-auto-upgrade-backup`, just so you could easily restore them should something have gone wrong." +msgstr "" + +#: ../../../docs/faq.md:478 +msgid "After verifying that everything still works after the Postgres upgrade, you can safely delete `/matrix/postgres/data-auto-upgrade-backup`" +msgstr "" + +#: ../../../docs/faq.md:480 +msgid "How do I debug or force SSL certificate renewal?" +msgstr "" + +#: ../../../docs/faq.md:482 +msgid "SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server." +msgstr "" + +#: ../../../docs/faq.md:484 +msgid "If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`)." +msgstr "" + +#: ../../../docs/faq.md:486 +msgid "If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way." +msgstr "" + +#: ../../../docs/faq.md:488 +msgid "Miscellaneous" +msgstr "" + +#: ../../../docs/faq.md:490 +msgid "I would like to see this favorite service of mine integrated and become available on my Matrix server. How can I request it?" +msgstr "" + +#: ../../../docs/faq.md:492 +msgid "You can freely create an issue for feature request on the repository at GitHub [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new). Note this is a community project with no financial backing, and there is not assurance that your request would be eventually picked up by others and the requested feature would become available. The easiest way to get a feature into this project is to just develop it yourself." +msgstr "" + +#: ../../../docs/faq.md:494 +msgid "Also, please note that this playbook intends to focus solely on Matrix and Matrix-related services. If your request is not specific to Matrix, you may as well to consider to submit it to the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), maintained by the members behind this matrix-docker-ansible-deploy project. [This document on the interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) describes how to deploy services along with the Matrix services easily." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/getting-the-playbook.po b/i18n/locales/bg/LC_MESSAGES/docs/getting-the-playbook.po new file mode 100644 index 000000000..f381493e5 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/getting-the-playbook.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/getting-the-playbook.md:1 +msgid "Getting the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > Getting the playbook > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:5 +msgid "This Ansible playbook is meant to be executed on your own computer (not the Matrix server)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:7 +msgid "In special cases (if your computer cannot run Ansible, etc.) you may put the playbook on the server as well." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:9 +msgid "You can retrieve the playbook's source code by:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:11 +msgid "[Using git to get the playbook](#using-git-to-get-the-playbook) (recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:13 +msgid "[Downloading the playbook as a ZIP archive](#downloading-the-playbook-as-a-zip-archive) (not recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:15 +msgid "Using git to get the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:17 +msgid "We recommend using the [git](https://git-scm.com/) tool to get the playbook's source code, because it lets you easily keep up to date in the future when [Maintaining services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:19 +msgid "Once you've installed git on your computer, you can go to any directory of your choosing and run the following command to retrieve the playbook's source code:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:25 +msgid "This will create a new `matrix-docker-ansible-deploy` directory. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:27 +msgid "Downloading the playbook as a ZIP archive" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:29 +msgid "Alternatively, you can download the playbook as a ZIP archive. This is not recommended, as it's not easy to keep up to date with future updates. We suggest you [use git](#using-git-to-get-the-playbook) instead." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:31 +msgid "The latest version is always at the following URL: https://github.com/spantaleev/matrix-docker-ansible-deploy/archive/master.zip" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:33 +msgid "You can extract this archive anywhere. You'll get a directory called `matrix-docker-ansible-deploy-master`. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:37 +msgid "[▶️](configuring-playbook.md) No matter which method you've used to download the playbook, you can proceed by [Configuring the playbook](configuring-playbook.md)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/howto-server-delegation.po b/i18n/locales/bg/LC_MESSAGES/docs/howto-server-delegation.po new file mode 100644 index 000000000..2c2a847d5 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/howto-server-delegation.po @@ -0,0 +1,190 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/howto-server-delegation.md:1 +msgid "Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:5 +msgid "Server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:7 +msgid "[Setting up a `/.well-known/matrix/server` file](#server-delegation-via-a-well-known-file) on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:8 +msgid "[Setting up a `_matrix._tcp` DNS SRV record](#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:10 +msgid "Both methods have their place and will continue to do so. You only need to use just one of these delegation methods." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:12 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file. However, that method may have some downsides that are not to your liking. Hence this guide about alternative ways to set up Server Delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:14 +msgid "**Note**: as an alternative, it is possible to install the server such that it uses only the `matrix.example.com` domain (instead of identifying as the shorter base domain — `example.com`). This should be helpful if you are not in control of anything on the base domain (`example.com`). In this case, you would not need to configure server delegation, but you would need to add other configuration. 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 "" + +#: ../../../docs/howto-server-delegation.md:16 +msgid "Server Delegation via a well-known file" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:18 +msgid "This playbook recommends you to set up server delegation by means of a `/.well-known/matrix/server` file served from the base domain (`example.com`), as this is the most straightforward way to set up the delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:20 +msgid "To configure server delegation with the well-known file, check this section on [Configuring Service Discovery via .well-known](configuring-well-known.md): [Installing well-known files on the base domain's server](configuring-well-known.md#installing-well-known-files-on-the-base-domain-s-server)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:22 +msgid "Downsides of well-known-based Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:24 +msgid "Server Delegation by means of a `/.well-known/matrix/server` file is the most straightforward, but suffers from the following downsides:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:26 +msgid "you need to have a working HTTPS server for the base domain (`example.com`). If you don't have any server for the base domain at all, you can easily solve it by making the playbook [serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:28 +msgid "any downtime on the base domain (`example.com`) or network trouble between the Matrix subdomain (`matrix.example.com`) and the base `example.com` may cause Matrix Federation outages. As the [Server-Server spec says](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery):" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:30 +msgid "Errors are recommended to be cached for up to an hour, and servers are encouraged to exponentially back off for repeated failures." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:32 +msgid "**For most people, this is a reasonable tradeoff** given that it's easy and straightforward to set up. We recommend you stay on this path." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:34 +msgid "Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced) (much more complicated)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:36 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:38 +msgid "**Note**: doing Server Delegation via a DNS SRV record is a more **advanced** way to do it and is not the default for this playbook. This is usually **much more complicated** to set up, so **we don't recommend it**. If you're not an experienced sysadmin, you'd better stay away from this." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:40 +msgid "As per the [Server-Server spec](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), it's possible to do Server Delegation using only a SRV record (without a `/.well-known/matrix/server` file)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:42 +msgid "This prevents you from suffering the [Downsides of well-known-based Server Delegation](#downsides-of-well-known-based-server-delegation)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:44 +msgid "To use DNS SRV record validation, you need to:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:46 +msgid "ensure that `/.well-known/matrix/server` is **not served** from the base domain, as that would interfere with DNS SRV record Server Delegation. To make the playbook **not** generate and serve the file, use the following configuration: `matrix_static_files_file_matrix_server_enabled: false`." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:48 +msgid "ensure that you have a `_matrix._tcp` DNS SRV record for your base domain (`example.com`) with a value of `10 0 8448 matrix.example.com`" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:50 +msgid "ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `example.com` (not `matrix.example.com`!). Getting this certificate to the `matrix.example.com` server may be complicated. The playbook's automatic SSL obtaining/renewal flow will likely not work and you'll need to copy certificates around manually. See below." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:52 +msgid "For more details on how to configure the playbook to work with SRV delegation, take a look at this documentation: [Server Delegation via a DNS SRV record (advanced)](howto-srv-server-delegation.md)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:54 +msgid "Obtain certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:56 +msgid "How you can obtain a valid certificate for `example.com` on the `matrix.example.com` server is up to you." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:58 +msgid "If `example.com` and `matrix.example.com` are hosted on the same machine, you can let the playbook obtain the certificate for you, by following our [Obtaining SSL certificates for additional domains](configuring-playbook-ssl-certificates.md#obtaining-ssl-certificates-for-additional-domains) guide." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:60 +msgid "If `example.com` and `matrix.example.com` are not hosted on the same machine, you can copy over the certificate files manually. Don't forget that they may get renewed once in a while, so you may also have to transfer them periodically. How often you do that is up to you, as long as the certificate files don't expire." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:62 +msgid "Serving the Federation API with your certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:64 +msgid "Regardless of which method for obtaining certificates you've used, once you've managed to get certificates for your base domain onto the `matrix.example.com` machine you can put them to use." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:66 +msgid "Based on your setup, you have different ways to go about it:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:68 +msgid "Serving the Federation API with your certificates and Synapse handling Federation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:70 +msgid "You can let Synapse handle Federation by itself." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:72 +msgid "To do that, make sure the certificate files are mounted into the Synapse container:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:79 +msgid "You can then tell Synapse to serve Federation traffic over TLS on `tcp/8448`:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:87 +msgid "Make sure to reload Synapse once in a while (`systemctl reload matrix-synapse`), so that newer certificates can kick in. Reloading doesn't cause any downtime." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:89 +msgid "Serving the Federation API with your certificates and another webserver" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:91 +msgid "**Alternatively**, if you are using another webserver, you can set up reverse-proxying for the `tcp/8448` port by yourself. Make sure to use the proper certificates for `example.com` (not for `matrix.example.com`) when serving the `tcp/8448` port." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:93 +msgid "As recommended in our [Fronting the integrated reverse-proxy webserver with another reverse-proxy](./configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section, we recommend you to expose the Matrix Federation entrypoint from traffic at a local port (e.g. `127.0.0.1:8449`), so your reverese-proxy should send traffic there." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/howto-srv-server-delegation.po b/i18n/locales/bg/LC_MESSAGES/docs/howto-srv-server-delegation.po new file mode 100644 index 000000000..8a38862f9 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/howto-srv-server-delegation.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/howto-srv-server-delegation.md:1 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:3 +msgid "**Reminder** : unless you are affected by the [Downsides of well-known-based Server Delegation](howto-server-delegation.md#downsides-of-well-known-based-server-delegation), we suggest you **stay on the simple/default path**: [Server Delegation](howto-server-delegation.md) by [configuring well-known files](configuring-well-known.md) at the base domain." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:5 +msgid "This guide is about configuring Server Delegation using DNS SRV records (for the [Traefik](https://doc.traefik.io/traefik/) webserver). This method has special requirements when it comes to SSL certificates, so various changes are required." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:9 +msgid "SRV delegation while still using the playbook provided Traefik to get / renew the certificate requires a wildcard certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:11 +msgid "To obtain / renew one from [Let's Encrypt](https://letsencrypt.org/), one needs to use a [DNS-01 challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) method instead of the default [HTTP-01](https://letsencrypt.org/docs/challenge-types/#http-01-challenge)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:13 +msgid "This means that this is **limited to the list of DNS providers supported by Traefik**, unless you bring in your own certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:15 +msgid "The up-to-date list can be accessed on [traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:19 +msgid "**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:21 +msgid "if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md) or [Dendrite](./configuring-playbook-dendrite.md))" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:22 +msgid "if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:24 +msgid "Also, all instructions below are from an older version of the playbook and may not work anymore." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:26 +msgid "Federation Endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:33 +msgid "This is because with SRV federation, some servers / tools (one of which being the federation tester) try to access the federation API using the resolved IP address instead of the domain name (or they are not using SNI). This change will make Traefik route all traffic for which the path match this rule go to the federation endpoint." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:35 +msgid "Tell Traefik which certificate to serve for the federation endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:37 +msgid "Now that the federation endpoint is not bound to a domain anymore we need to explicitely tell Traefik to use a wildcard certificate in addition to one containing the base name." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:39 +msgid "This is because the Matrix specification expects the federation endpoint to be served using a certificate compatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:48 +msgid "Configure the DNS-01 challenge for let's encrypt" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:50 +msgid "Since we're now requesting a wildcard certificate, we need to change the ACME challenge method. To request a wildcard certificate from Let's Encrypt we are required to use the DNS-01 challenge." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:52 +msgid "This will need 3 changes:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:53 +msgid "Add a new certificate resolver that works with DNS-01" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:54 +msgid "Configure the resolver to allow access to the DNS zone to configure the records to answer the challenge (refer to [Traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers) to know which environment variables to set)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:55 +msgid "Tell the playbook to use the new resolver as default" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:57 +msgid "We cannot just disable the default resolver as that would disable SSL in quite a few places in the playbook." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:86 +msgid "Adjust coturn's configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:88 +msgid "The last step is to alter the generated coturn configuration." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:90 +msgid "By default, coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent coturn from starting." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:92 +msgid "We also need to indicate to coturn where the wildcard certificate is." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:94 +msgid "⚠️ **Warning** : On first start of the services, coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the coturn service (`just start-group coturn`)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:96 +msgid "This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the coturn service is setup to restart periodically." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:122 +msgid "Full example of a working configuration" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/importing-postgres.po b/i18n/locales/bg/LC_MESSAGES/docs/importing-postgres.po new file mode 100644 index 000000000..38bac600c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/importing-postgres.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-postgres.md:1 +msgid "Importing an existing Postgres database from another installation (optional)" +msgstr "" + +#: ../../../docs/importing-postgres.md:3 +msgid "Run this if you'd like to import your database from a previous installation. (don't forget to import your Synapse `media_store` files as well — see [the importing-synape-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-postgres.md:6 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-postgres.md:8 +msgid "For this to work, **the database name in Postgres must match** what this playbook uses. This playbook uses a Postgres database name of `synapse` by default (controlled by the `matrix_synapse_database_database` variable). If your database name differs, be sure to change `matrix_synapse_database_database` to your desired name and to re-run the playbook before proceeding." +msgstr "" + +#: ../../../docs/importing-postgres.md:10 +msgid "The playbook supports importing Postgres dump files in **text** (e.g. `pg_dump > dump.sql`) or **gzipped** formats (e.g. `pg_dump | gzip -c > dump.sql.gz`). Importing multiple databases (as dumped by `pg_dumpall`) is also supported." +msgstr "" + +#: ../../../docs/importing-postgres.md:12 +msgid "The migration might be a good moment, to \"reset\" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new rooms, …)" +msgstr "" + +#: ../../../docs/importing-postgres.md:14 +msgid "Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-postgres.md:16 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-postgres.md:18 +msgid "To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-postgres.md:26 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-postgres.md:28 +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 "" + +#: ../../../docs/importing-postgres.md:29 +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 "" + +#: ../../../docs/importing-postgres.md:30 +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 "" + +#: ../../../docs/importing-postgres.md:32 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/importing-postgres.md:34 +msgid "Table Ownership" +msgstr "" + +#: ../../../docs/importing-postgres.md:36 +msgid "A table ownership issue can occur if you are importing from a Synapse installation which was both:" +msgstr "" + +#: ../../../docs/importing-postgres.md:38 +msgid "migrated from SQLite to Postgres, and" +msgstr "" + +#: ../../../docs/importing-postgres.md:39 +msgid "used a username other than 'synapse'" +msgstr "" + +#: ../../../docs/importing-postgres.md:41 +msgid "In this case you may run into the following error during the import task:" +msgstr "" + +#: ../../../docs/importing-postgres.md:47 +msgid "where `synapse_user` is the database username from the previous Synapse installation." +msgstr "" + +#: ../../../docs/importing-postgres.md:49 +msgid "This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:" +msgstr "" + +#: ../../../docs/importing-postgres.md:61 +msgid "It can be worked around by changing the username to `synapse`, for example by using `sed`:" +msgstr "" + +#: ../../../docs/importing-postgres.md:67 +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 "" + +#: ../../../docs/importing-postgres.md:69 +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 "" + +#: ../../../docs/importing-postgres.md:75 +msgid "Repeat import" +msgstr "" + +#: ../../../docs/importing-postgres.md:77 +msgid "In this case you can use the command suggested in the import task to clear the database before retrying the import:" +msgstr "" + +#: ../../../docs/importing-postgres.md:85 +msgid "Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc." +msgstr "" + +#: ../../../docs/importing-postgres.md:87 +msgid "If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database." +msgstr "" + +#: ../../../docs/importing-postgres.md:93 +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 "" + +#: ../../../docs/importing-postgres.md:95 +msgid "Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)" +msgstr "" + +#: ../../../docs/importing-postgres.md:101 +msgid "Hints" +msgstr "" + +#: ../../../docs/importing-postgres.md:103 +msgid "To open psql terminal run `/matrix/postgres/bin/cli`" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-media-store.po b/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-media-store.po new file mode 100644 index 000000000..345710043 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-media-store.po @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-synapse-media-store.md:1 +msgid "Importing `media_store` data files from an existing Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:3 +msgid "Run this if you'd like to import your `media_store` files from a previous installation of Synapse." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:5 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:7 +msgid "Before doing the actual data restore, **you need to upload your media store directory to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:9 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:11 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:13 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:15 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:17 +msgid "Run this command (make sure to replace `` with a path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:23 +msgid "**Note**: `` must be a file path to a `media_store` directory on the server (not on your local machine!)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-sqlite.po b/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-sqlite.po new file mode 100644 index 000000000..a17efdad4 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/importing-synapse-sqlite.po @@ -0,0 +1,74 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-synapse-sqlite.md:1 +msgid "Importing an existing SQLite database from another Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:3 +msgid "Run this if you'd like to import your database from a previous default installation of Synapse (don't forget to import your `media_store` files as well — see [the importing-synapse-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:5 +msgid "While this playbook only supports running Synapse in combination with PostgreSQL, a Synapse instance installed manually usually defaults to using an SQLite database." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:7 +msgid "If you have such a Synapse setup and wish to migrate it to one managed by the playbook (and over to PostgreSQL), this documentation page is for you." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:11 +msgid "Before doing the actual import:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:13 +msgid "**ensure you have NOT started Synapse yet**. That is, make sure you have followed the [Installing step](installing.md), but haven't run the playbook's `start` tag yet. If you had started your new Synapse instance, it may have already initialized your Postgres database and importing onto it may not work. In such cases, you may need to clean up the `synapse` database first." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:14 +msgid "**ensure you have uploaded your SQLite database file to the server** (any path is okay)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:15 +msgid "if you're using the integrated Postgres server (**by default, you are** using it, unless you've explicitly switched to [Using an external PostgreSQL server](configuring-playbook-external-postgres.md)), **make sure Postgres is started** by running `just start-group postgres`" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:17 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:19 +msgid "Run this command (make sure to replace `` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:25 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:27 +msgid "`` must be replaced with a file path to a `homeserver.db` **file on the server** (not on your local machine!)." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:28 +msgid "if the SQLite database is from an older version of Synapse, the **importing procedure may run migrations on it to bring it up to date**. That is, your SQLite database file may get modified and become unusable with your older Synapse version. Keeping a copy of the original is probably wise." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/installing.po b/i18n/locales/bg/LC_MESSAGES/docs/installing.po new file mode 100644 index 000000000..b2e838185 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/installing.po @@ -0,0 +1,306 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/installing.md:1 +msgid "Installing" +msgstr "" + +#: ../../../docs/installing.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > Installing" +msgstr "" + +#: ../../../docs/installing.md:5 +msgid "If you've configured your DNS records and the playbook, you can start the installation procedure." +msgstr "" + +#: ../../../docs/installing.md:7 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/installing.md:9 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/installing.md:11 +msgid "To update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file), run:" +msgstr "" + +#: ../../../docs/installing.md:13 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/installing.md:14 +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 "" + +#: ../../../docs/installing.md:16 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/installing.md:18 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/installing.md:20 +msgid "Install Matrix server and services" +msgstr "" + +#: ../../../docs/installing.md:22 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/installing.md:24 +msgid "The general command syntax for installation (and also maintenance) is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`. It is recommended to get yourself familiar with the [playbook tags](playbook-tags.md) before proceeding." +msgstr "" + +#: ../../../docs/installing.md:26 +msgid "If you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:28 +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 all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:30 +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 "" + +#: ../../../docs/installing.md:32 +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 "" + +#: ../../../docs/installing.md:34 +msgid "Installing a brand new server (without importing data)" +msgstr "" + +#: ../../../docs/installing.md:36 +msgid "If this is **a brand new** Matrix server and you **won't be importing old data into it**, run all these tags:" +msgstr "" + +#: ../../../docs/installing.md:42 +msgid "This will do a full installation and start all Matrix services." +msgstr "" + +#: ../../../docs/installing.md:44 +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 "" + +#: ../../../docs/installing.md:46 +msgid "Installing a server into which you'll import old data" +msgstr "" + +#: ../../../docs/installing.md:48 +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 "" + +#: ../../../docs/installing.md:50 +msgid "To do the installation **without** starting services, run `ansible-playbook` with the `install-all` tag only:" +msgstr "" + +#: ../../../docs/installing.md:56 +msgid "[!WARNING] 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 "" + +#: ../../../docs/installing.md:59 +msgid "When this command completes, services won't be running yet." +msgstr "" + +#: ../../../docs/installing.md:61 +msgid "You can now:" +msgstr "" + +#: ../../../docs/installing.md:63 +msgid "[Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:65 +msgid "[Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:67 +msgid "[Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:69 +msgid "… and then proceed to starting all services:" +msgstr "" + +#: ../../../docs/installing.md:75 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/installing.md:77 +msgid "ℹ️ *You can skip this step if you have installed a server and imported old data to it.*" +msgstr "" + +#: ../../../docs/installing.md:79 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/installing.md:81 +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 "" + +#: ../../../docs/installing.md:83 +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 "" + +#: ../../../docs/installing.md:85 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/installing.md:86 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/installing.md:87 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/installing.md:88 +msgid "Use `admin=yes` to make your user account an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/installing.md:96 +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 "" + +#: ../../../docs/installing.md:98 +msgid "For more information, see the documentation for [registering users](registering-users.md)." +msgstr "" + +#: ../../../docs/installing.md:100 +msgid "Finalize the installation" +msgstr "" + +#: ../../../docs/installing.md:102 +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 "" + +#: ../../../docs/installing.md:104 +msgid "This is required for federation to work! Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/installing.md:106 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/installing.md:108 +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 "" + +#: ../../../docs/installing.md:109 +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 "" + +#: ../../../docs/installing.md:111 +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 "" + +#: ../../../docs/installing.md:117 +msgid "After configuring the playbook, run the command below:" +msgstr "" + +#: ../../../docs/installing.md:123 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/installing.md:125 +msgid "After finilizing the installation, you can:" +msgstr "" + +#: ../../../docs/installing.md:127 +msgid "[check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/installing.md:128 +msgid "or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)" +msgstr "" + +#: ../../../docs/installing.md:129 +msgid "or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:130 +msgid "or learn how to [maintain your server](faq.md#maintenance)" +msgstr "" + +#: ../../../docs/installing.md:131 +msgid "or join some Matrix rooms:" +msgstr "" + +#: ../../../docs/installing.md:132 +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." +msgstr "" + +#: ../../../docs/installing.md:133 +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 "" + +#: ../../../docs/installing.md:134 +msgid "or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))" +msgstr "" + +#: ../../../docs/installing.md:136 +msgid "Maintaining your setup in the future" +msgstr "" + +#: ../../../docs/installing.md:138 +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 "" + +#: ../../../docs/installing.md:140 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities." +msgstr "" + +#: ../../../docs/installing.md:142 +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 "" + +#: ../../../docs/installing.md:144 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:146 +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 "" + +#: ../../../docs/installing.md:152 +msgid "**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/installing.md:154 +msgid "Make full use of `just` shortcut commands" +msgstr "" + +#: ../../../docs/installing.md:156 +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 "" + +#: ../../../docs/installing.md:158 +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 "" + +#: ../../../docs/installing.md:160 +msgid "You can learn about the shortcut commands on this page: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/just.po b/i18n/locales/bg/LC_MESSAGES/docs/just.po new file mode 100644 index 000000000..aa56f7f74 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/just.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/just.md:1 +msgid "Running `just` commands" +msgstr "" + +#: ../../../docs/just.md:3 +msgid "We have previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers [`ansible-galaxy`](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html)). Our [`Makefile`](../Makefile) is still around, and you can still run these commands." +msgstr "" + +#: ../../../docs/just.md:5 +msgid "In addition, we have added support for running commands via [`just`](https://github.com/casey/just) — a more modern command-runner alternative to `make`. It can be used to invoke `ansible-playbook` commands with less typing." +msgstr "" + +#: ../../../docs/just.md:7 +msgid "The `just` utility executes shortcut commands (called as \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile). Most of the just recipes have no corresponding `Makefile` targets." +msgstr "" + +#: ../../../docs/just.md:9 +msgid "For some recipes such as `just update`, our `justfile` recommends installing [`agru`](https://github.com/etkecc/agru) (a faster alternative to `ansible-galaxy`) to speed up the process." +msgstr "" + +#: ../../../docs/just.md:11 +msgid "Here are some examples of shortcuts:" +msgstr "" + +#: ../../../docs/just.md +msgid "Shortcut" +msgstr "" + +#: ../../../docs/just.md +msgid "Result" +msgstr "" + +#: ../../../docs/just.md +msgid "`just roles`" +msgstr "" + +#: ../../../docs/just.md +msgid "Install the necessary Ansible roles pinned in [`requirements.yml`](../requirements.yml)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just update`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `git pull` (to update the playbook) and install the Ansible roles" +msgstr "" + +#: ../../../docs/just.md ../../../docs/just.md:33 +msgid "`just install-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "`just setup-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "`just install-all --ask-vault-pass`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run commands with additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just run-tags install-mautrix-slack,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run specific playbook tags (here `install-mautrix-slack` and `start`)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just install-service mautrix-slack`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `just run-tags install-mautrix-slack,start` with even less typing" +msgstr "" + +#: ../../../docs/just.md +msgid "`just start-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "(Re-)starts all services" +msgstr "" + +#: ../../../docs/just.md +msgid "`just stop-group postgres`" +msgstr "" + +#: ../../../docs/just.md +msgid "Stop only the Postgres service" +msgstr "" + +#: ../../../docs/just.md +msgid "`just register-user alice secret-password yes`" +msgstr "" + +#: ../../../docs/just.md +msgid "Registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../docs/just.md:26 +msgid "While [our documentation on prerequisites](prerequisites.md) lists `just` as one of the requirements for installation, using `just` is optional. If you find it difficult to install it, do not find it useful, or want to prefer raw `ansible-playbook` commands for some reason, feel free to run all commands manually. For example, you can run `ansible-galaxy` directly to install the Ansible roles: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`." +msgstr "" + +#: ../../../docs/just.md:28 +msgid "Difference between playbook tags and shortcuts" +msgstr "" + +#: ../../../docs/just.md:30 +msgid "It is worth noting that `just` \"recipes\" are different from [playbook tags](playbook-tags.md). The recipes are shortcuts of commands defined in `justfile` and can be executed by the `just` program only, while the playbook tags are available for the raw `ansible-playbook` commands as well. Please be careful not to confuse them." +msgstr "" + +#: ../../../docs/just.md:32 +msgid "For example, these two commands are different:" +msgstr "" + +#: ../../../docs/just.md:34 +msgid "`ansible-playbook -i inventory/hosts setup.yml --tags=install-all`" +msgstr "" + +#: ../../../docs/just.md:36 +msgid "The just recipe runs `ensure-matrix-users-created` and `start` tags after `install-all`, while the latter runs only `install-all` tag. The correct shortcut of the latter is `just run-tags install-all`." +msgstr "" + +#: ../../../docs/just.md:38 +msgid "Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components which may prevent your from importing old data." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-and-troubleshooting.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-and-troubleshooting.po new file mode 100644 index 000000000..b001bbf63 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-and-troubleshooting.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-and-troubleshooting.md:1 +msgid "Maintenance and Troubleshooting" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:3 +msgid "How to see the current status of your services" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:5 +msgid "You can check the status of your services by using `systemctl status`. Example:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:15 +msgid "Docker containers that the playbook configures are supervised by [systemd](https://wiki.archlinux.org/title/Systemd) and their logs are configured to go to [systemd-journald](https://wiki.archlinux.org/title/Systemd/Journal)." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:17 +msgid "To prevent double-logging, Docker logging is disabled by explicitly passing `--log-driver=none` to all containers. Due to this, you **cannot** view logs using `docker logs`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:19 +msgid "To view systemd-journald logs using [journalctl](https://man.archlinux.org/man/journalctl.1), run a command like this:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:25 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:27 +msgid "Because the [Synapse](https://github.com/element-hq/synapse) Matrix server is originally very chatty when it comes to logging, we intentionally reduce its [logging level](https://docs.python.org/3/library/logging.html#logging-levels) from `INFO` to `WARNING`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:29 +msgid "If you'd like to debug an issue or [report a Synapse bug](https://github.com/element-hq/synapse/issues/new/choose) to the developers, it'd be better if you temporarily increasing the logging level to `INFO`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:31 +msgid "Example configuration (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:39 +msgid "Re-run the playbook after making these configuration changes." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:41 +msgid "Remove unused Docker data" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:43 +msgid "You can free some disk space from Docker, see [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags run-docker-prune`" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:51 +msgid "Postgres" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:53 +msgid "See the dedicated [PostgreSQL Maintenance](maintenance-postgres.md) documentation page." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-checking-services.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-checking-services.po new file mode 100644 index 000000000..457d4acb6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-checking-services.po @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-checking-services.md:1 +msgid "Checking if services work" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:3 +msgid "The playbook can perform a check to ensure that you've configured things correctly and that services are running." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:5 +msgid "To perform the check, run:" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:11 +msgid "The shortcut command with `just` program is also available: `just run-tags self-check`" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:13 +msgid "If it's all green, everything is probably running correctly." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:15 +msgid "Besides this self-check, 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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-migrating.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-migrating.po new file mode 100644 index 000000000..a82fdaf44 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-migrating.po @@ -0,0 +1,138 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-migrating.md:1 +msgid "Migrating to new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:3 +msgid "This documentation explains how to migrate your Matrix services (server, client, bridges, etc.) and data **from an old server to a new server**." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:6 +msgid "This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`)." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:8 +msgid "If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is **not** possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:9 +msgid "If you have any questions about migration or encountered an issue during migration, do not hesitate to ask for help on [our Matrix room](https://matrix.to/#/%23matrix-docker-ansible-deploy:devture.com). You probably might want to prepare a temporary/sub account on another Matrix server in case it becomes impossible to use your server due to migration failure by any chance." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:11 +msgid "You can't change the domain (specified in the `matrix_domain` variable) after the initial deployment." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:13 +msgid "Lower DNS TTL" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:15 +msgid "Prepare by lowering DNS TTL for your domains (`matrix.example.com`, etc.), so that DNS record changes would happen faster, leading to less downtime." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:17 +msgid "Stop services on the old server completely" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:19 +msgid "Before migrating, you need to stop all services on the old server and make sure they won't be starting again." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:21 +msgid "To do so, it is recommended to run the `systemctl` command on the server. Running the playbook's `stop` tag also stops the services, but just once; they will start again if you reboot the server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:23 +msgid "Log in to the old server and run the command as `root` (or a user that can run it with `sudo`):" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:29 +msgid "Copy data directory to the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:31 +msgid "After you've confirmed that all services were stopped, copy the `/matrix` directory from the old server to the new server. When copying, make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)!" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:33 +msgid "Adjust DNS records" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:35 +msgid "Make sure your DNS records are adjusted to point to the new server's IP address." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:37 +msgid "Update `inventory/hosts` file" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:39 +msgid "Having adjusted DNS records, replace the old server's external IP address on the `inventory/hosts` file with that of the new server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:41 +msgid "Create `matrix` user and group on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:43 +msgid "Then, run the command below on your local computer to create the `matrix` user and group on the new server:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags setup-system-user`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:51 +msgid "**Note**: because the `matrix` user and group are created dynamically on each server, the user/group ID may differ between the old and new server. We suggest that you adjust ownership of `/matrix` files. To adjust the ownership, log in to the new server and run the command:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:57 +msgid "Install and start all services on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:59 +msgid "Finally, run the command below on your local computer to finish the installation and start all services:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:65 +msgid "The shortcut command with `just` program is also available: `just run-tags install-all,start`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:67 +msgid "Check if services work" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:69 +msgid "After starting the services, you probably might want to ensure that you've migrated things correctly and that services are running. For instructions, see: [check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:71 +msgid "Having make sure that both services and federation work as expected, you can safely shutdown the old server." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-postgres.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-postgres.po new file mode 100644 index 000000000..620ced334 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-postgres.po @@ -0,0 +1,222 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-postgres.md:1 +msgid "PostgreSQL maintenance" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Postgres database server used by Matrix." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:7 +msgid "[Getting a database terminal](#getting-a-database-terminal), for when you wish to execute SQL queries" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:9 +msgid "[Vacuuming PostgreSQL](#vacuuming-postgresql), for when you wish to run a Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) (optimizing disk space)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:11 +msgid "[Backing up PostgreSQL](#backing-up-postgresql), for when you wish to make a backup" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:13 +msgid "[Upgrading PostgreSQL](#upgrading-postgresql), for upgrading to new major versions of PostgreSQL. Such **manual upgrades are sometimes required**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:15 +msgid "[Tuning PostgreSQL](#tuning-postgresql) to make it run faster" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:17 +msgid "Getting a database terminal" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:19 +msgid "You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:21 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:23 +msgid "By default, this tool puts you in the `matrix` database, which contains nothing." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:25 +msgid "To see the available databases, run `\\list` (or just `\\l`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:27 +msgid "To change to another database (for example `synapse`), run `\\connect synapse` (or just `\\c synapse`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:29 +msgid "You can then proceed to write queries. Example: `SELECT COUNT(*) FROM users;`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:31 +msgid "**Be careful**. Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption. When in doubt, consider [making a backup](#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:33 +msgid "Vacuuming PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:35 +msgid "Deleting lots data from Postgres does not make it release disk space, until you perform a [`VACUUM` operation](https://www.postgresql.org/docs/current/sql-vacuum.html)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:37 +msgid "You can run different `VACUUM` operations via the playbook, with the default preset being `vacuum-complete`:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:39 +msgid "(default) `vacuum-complete`: stops all services temporarily and runs `VACUUM FULL VERBOSE ANALYZE`." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:40 +msgid "`vacuum-full`: stops all services temporarily and runs `VACUUM FULL VERBOSE`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:41 +msgid "`vacuum`: runs `VACUUM VERBOSE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:42 +msgid "`vacuum-analyze` runs `VACUUM VERBOSE ANALYZE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:43 +msgid "`analyze` runs `ANALYZE VERBOSE` without stopping any services (this is just [ANALYZE](https://www.postgresql.org/docs/current/sql-analyze.html) without doing a vacuum, so it's faster)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:45 +msgid "**Note**: for the `vacuum-complete` and `vacuum-full` presets, you'll need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`). These presets also stop all services (e.g. Synapse, etc.) while the vacuum operation is running." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:47 +msgid "Example playbook invocations:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:49 +msgid "`just run-tags run-postgres-vacuum`: runs the default `vacuum-complete` preset and restarts all services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:50 +msgid "`just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze`: runs the `analyze` preset with all services remaining operational at all times" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:52 +msgid "Backing up PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:54 +msgid "To automatically make Postgres database backups on a fixed schedule, see [Setting up postgres backup](configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:56 +msgid "To make a one off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:67 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because neither the credentials file (`/matrix/postgres/env-postgres-psql`), nor the `matrix-postgres` container is available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:69 +msgid "Restoring a backup made this way can be done by [importing it](importing-postgres.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:71 +msgid "Upgrading PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:73 +msgid "Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:75 +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 "" + +#: ../../../docs/maintenance-postgres.md:77 +msgid "Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:79 +msgid "The playbook can upgrade your existing Postgres setup with the following command:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:85 +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 "" + +#: ../../../docs/maintenance-postgres.md:87 +msgid "The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:89 +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 "" + +#: ../../../docs/maintenance-postgres.md:91 +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 "" + +#: ../../../docs/maintenance-postgres.md:93 +msgid "**All databases, roles, etc. on the Postgres server are migrated**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:95 +msgid "Tuning PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:97 +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 "" + +#: ../../../docs/maintenance-postgres.md:99 +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_auto` variable." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:101 +msgid "Most users should be fine with the automatically-done tuning. However, you may wish to:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:103 +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_auto` variable" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:105 +msgid "**turn automatically-performed tuning off**: override it like this: `postgres_postgres_process_extra_arguments_auto: []`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:107 +msgid "**add additional tuning parameters**: define your additional Postgres configuration parameters in `postgres_postgres_process_extra_arguments_custom`. See `postgres_postgres_process_extra_arguments_auto` 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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-synapse.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-synapse.po new file mode 100644 index 000000000..da0db46d9 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-synapse.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-synapse.md:1 +msgid "Synapse maintenance" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Synapse chat server." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:7 +msgid "[Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api), for when you wish to delete in-use (but old) data from the Synapse database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:9 +msgid "[Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:11 +msgid "[Browse and manipulate the database](#browse-and-manipulate-the-database), for when you really need to take matters into your own hands" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:13 +msgid "[Make Synapse faster](#make-synapse-faster)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:15 +msgid "Purging old data with the Purge History API" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:17 +msgid "You can use the **[Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md)** to delete old messages on a per-room basis. **This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:19 +msgid "To make use of this Synapse Admin API, **you'll need an admin access token** first. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:21 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:24 +msgid "Synapse's Admin API is not exposed to the internet by default, following [official Synapse reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). To expose it you will need to add `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:26 +msgid "Follow the [Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md) documentation page for the actual purging instructions." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:28 +msgid "After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:30 +msgid "Compressing state with rust-synapse-compress-state" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:32 +msgid "[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:34 +msgid "**Note**: besides running the `rust-synapse-compress-state` tool manually, you can also enable its `synapse-auto-compressor` tool by [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md). The automatic tool will run on a schedule every day and you won't have to compress state manually ever again." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:36 +msgid "`rust-synapse-compress-state` should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:38 +msgid "To ask the playbook to run rust-synapse-compress-state, execute:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:44 +msgid "The shortcut command with `just` program is also available: `just run-tags rust-synapse-compress-state`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:46 +msgid "By default, all rooms with more than `100000` state group rows will be compressed. If you need to adjust this, pass: `--extra-vars='matrix_synapse_rust_synapse_compress_state_min_state_groups_required=SOME_NUMBER_HERE'` to the command above." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:48 +msgid "After state compression, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:50 +msgid "Browse and manipulate the database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:52 +msgid "When the [Synapse Admin API](https://github.com/element-hq/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:54 +msgid "Editing the database manually is not recommended or supported by the Synapse developers. If you are going to do so you should [make a database backup](./maintenance-postgres.md#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:56 +msgid "First, set up an SSH tunnel to your Matrix server (skip if it is your local machine):" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:63 +msgid "Then start up an ephemeral [adminer](https://www.adminer.org/) container on the Matrix server, connecting it to the `matrix` network and linking the postgresql container:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:69 +msgid "You should then be able to browse the adminer database administration GUI at http://localhost:1799/ after entering your DB credentials (found in the `host_vars` or on the server in `{{matrix_synapse_config_dir_path}}/homeserver.yaml` under `database.args`)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:71 +msgid "⚠️️ Be **very careful** with this, there is **no undo** for impromptu DB operations." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:73 +msgid "Make Synapse faster" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:75 +msgid "Synapse's presence feature which tracks which users are online and which are offline can use a lot of processing power. You can disable presence by adding `matrix_synapse_presence_enabled: false` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:77 +msgid "If you have enough compute resources (CPU & RAM), you can make Synapse better use of them by [enabling load-balancing with workers](configuring-playbook-synapse.md#load-balancing-with-workers)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:79 +msgid "[Tuning your PostgreSQL database](maintenance-postgres.md#tuning-postgresql) could also improve Synapse performance. The playbook tunes the integrated Postgres database automatically, but based on your needs you may wish to adjust tuning variables manually. If you're using an [external Postgres database](configuring-playbook-external-postgres.md), you will also need to tune Postgres manually." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:81 +msgid "Tuning caches and cache autotuning" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:83 +msgid "Tuning Synapse's cache factor is useful for performance increases but also as part of controlling Synapse's memory use. Use the variable `matrix_synapse_caches_global_factor` to set the cache factor as part of this process." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:85 +msgid "**The playbook defaults the global cache factor to a large value** (e.g. `10`). A smaller value (e.g. `0.5`) will decrease the amount used for caches, but will [not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:87 +msgid "Tuning the cache factor is useful only to a limited degree (as its crude to do in isolation) and therefore users who are tuning their cache factor should likely look into tuning autotune variables as well (see below)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:89 +msgid "Cache autotuning is **enabled by default** and controlled via the following variables:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:91 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:92 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:93 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:95 +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 "" + +#: ../../../docs/maintenance-synapse.md:97 +msgid "To **disable cache auto-tuning**, unset all values:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:105 +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 "" + +#: ../../../docs/maintenance-synapse.md:107 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/maintenance-upgrading-services.po b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-upgrading-services.po new file mode 100644 index 000000000..495acd2e7 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/maintenance-upgrading-services.po @@ -0,0 +1,126 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-upgrading-services.md:1 +msgid "Upgrading the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:3 +msgid "This playbook not only installs the various Matrix services for you, but can also upgrade them as new versions are made available." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:5 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:7 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities (for example, see [here](https://github.com/element-hq/element-web/security) for known ones on Element Web)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:9 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:11 +msgid "The developers of this playbook strive to maintain the playbook updated, so that you can re-run the playbook to address such vulnerabilities. It is **your responsibility** to keep your server and the services on it up-to-date." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:13 +msgid "If you want to be notified when new versions of Synapse are released, you should join the Synapse Homeowners room: [#homeowners:matrix.org](https://matrix.to/#/#homeowners:matrix.org)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:15 +msgid "Steps to upgrade the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:17 +msgid "Check the changelog" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:19 +msgid "Before updating the playbook and the Ansible roles in the playbook, take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:21 +msgid "Update the playbook and the Ansible roles" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:23 +msgid "If it looks good to you, go to the `matrix-docker-ansible-deploy` directory, update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) by running:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:25 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:26 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:28 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:30 +msgid "**Note**: for details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:32 +msgid "Re-run the playbook setup" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:34 +msgid "After updating the Ansible roles, then re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:40 +msgid "If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:50 +msgid "Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:52 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:54 +msgid "See [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:56 +msgid "PostgreSQL major version upgrade" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:58 +msgid "Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:60 +msgid "For details about upgrading it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/obtaining-access-tokens.po b/i18n/locales/bg/LC_MESSAGES/docs/obtaining-access-tokens.po new file mode 100644 index 000000000..909035f7e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/obtaining-access-tokens.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/obtaining-access-tokens.md:1 +msgid "Obtaining an Access Token" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:3 +msgid "When setting up some optional features like bots and bridges you will need to provide an access token for some user. This document provides documentation on how to obtain such an access token." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:5 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:8 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:10 +msgid "The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:12 +msgid "Below, we describe 2 ways to generate an access token for a user — using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:14 +msgid "Obtain an access token via Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:16 +msgid "In a private browsing session (incognito window), open Element Web." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:17 +msgid "Log in with the user's credentials." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:18 +msgid "In the settings page, choose \"Help & About\", scroll down to the bottom and expand the `Access Token` section (see screenshot below)." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:19 +msgid "Copy the access token to your configuration." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:20 +msgid "Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "![Obtaining an access token with Element Web](assets/obtain_admin_access_token_element_web.png)" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "Obtaining an access token with Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:24 +msgid "Obtain an access token via curl" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:26 +msgid "You can use the following command to get an access token for your user directly from the [Matrix Client-Server API](https://www.matrix.org/docs/guides/client-server-api#login):" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:36 +msgid "Change `USERNAME`, `PASSWORD`, and `example.com` accordingly." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:38 +msgid "`YOURDEVICEID` is optional and can be used to more easily identify the session later. When omitted (mind the commas in the JSON payload if you'll be omitting it), a random device ID will be generated." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:40 +msgid "Your response will look like this (prettified):" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/playbook-tags.po b/i18n/locales/bg/LC_MESSAGES/docs/playbook-tags.po new file mode 100644 index 000000000..d99618b29 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/playbook-tags.po @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/playbook-tags.md:1 +msgid "Playbook tags" +msgstr "" + +#: ../../../docs/playbook-tags.md:3 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/playbook-tags.md:5 +msgid "The general command syntax is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`" +msgstr "" + +#: ../../../docs/playbook-tags.md:7 +msgid "Here are some playbook tags that you should be familiar with:" +msgstr "" + +#: ../../../docs/playbook-tags.md:9 +msgid "`setup-all` — runs all setup tasks (installation and uninstallation) for all components, but does not start/restart services" +msgstr "" + +#: ../../../docs/playbook-tags.md:11 +msgid "`install-all` — like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed" +msgstr "" + +#: ../../../docs/playbook-tags.md:13 +msgid "`setup-SERVICE` (e.g. `setup-postmoogle`) — runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag)." +msgstr "" + +#: ../../../docs/playbook-tags.md:15 +msgid "`install-SERVICE` (e.g. `install-postmoogle`) — like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information." +msgstr "" + +#: ../../../docs/playbook-tags.md:17 +msgid "`start` — starts all systemd services and makes them start automatically in the future" +msgstr "" + +#: ../../../docs/playbook-tags.md:19 +msgid "`stop` — stops all systemd services" +msgstr "" + +#: ../../../docs/playbook-tags.md:21 +msgid "`ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created" +msgstr "" + +#: ../../../docs/playbook-tags.md:23 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/playbook-tags.md:24 +msgid "`setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc." +msgstr "" + +#: ../../../docs/playbook-tags.md:25 +msgid "Please be careful not to confuse the playbook tags with the `just` shortcut commands (\"recipes\"). For details about `just` commands, see: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/prerequisites.po b/i18n/locales/bg/LC_MESSAGES/docs/prerequisites.po new file mode 100644 index 000000000..08e6a0ce8 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/prerequisites.po @@ -0,0 +1,166 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/prerequisites.md:1 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/prerequisites.md:3 +msgid "Prerequisites > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/prerequisites.md:5 +msgid "To install Matrix services using this Ansible playbook, you need to prepare several requirements both on your local computer (where you will run the playbook to configure the server) and the server (where the playbook will install the Matrix services for you). **These requirements need to be set up manually** before proceeding to the next step." +msgstr "" + +#: ../../../docs/prerequisites.md:7 +msgid "We will be using `example.com` as the domain in the following instruction. Please remember to replace it with your own domain before running any commands." +msgstr "" + +#: ../../../docs/prerequisites.md:9 +msgid "**Note**: if you do not have an existing Matrix server and want to start quickly with \"opinionated defaults\", we suggest you to follow ⚡ **[Quick start](quick-start.md)** installation guide." +msgstr "" + +#: ../../../docs/prerequisites.md:11 +msgid "Your local computer" +msgstr "" + +#: ../../../docs/prerequisites.md:13 +msgid "[Ansible](http://ansible.com/) program. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible." +msgstr "" + +#: ../../../docs/prerequisites.md:15 +msgid "[passlib](https://passlib.readthedocs.io/en/stable/index.html) Python library. See [this official documentation](https://passlib.readthedocs.io/en/stable/install.html#installation-instructions) for an instruction to install it. On most distros, you need to install some `python-passlib` or `py3-passlib` package, etc." +msgstr "" + +#: ../../../docs/prerequisites.md:17 +msgid "[`git`](https://git-scm.com/) as the recommended way to download the playbook. `git` may also be required on the server if you will be [self-building](self-building.md) components." +msgstr "" + +#: ../../../docs/prerequisites.md:19 +msgid "[`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually. Take at look at this documentation for more information: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:21 +msgid "Strong password (random strings) generator. The playbook often requires you to create a strong password and use it for settings on `vars.yml`, components, etc. As any tools should be fine, this playbook has adopted [`pwgen`](https://linux.die.net/man/1/pwgen) (running `pwgen -s 64 1`). [Password Tech](https://pwgen-win.sourceforge.io/), formerly known as \"PWGen for Windows\", is available as free and open source password generator for Windows. Generally, using a random generator available on the internet is not recommended." +msgstr "" + +#: ../../../docs/prerequisites.md:23 +msgid "Server" +msgstr "" + +#: ../../../docs/prerequisites.md:25 +msgid "(Recommended) An **x86** server ([What kind of server specs do I need?](faq.md#what-kind-of-server-specs-do-i-need)) running one of these operating systems that make use of [systemd](https://systemd.io/):" +msgstr "" + +#: ../../../docs/prerequisites.md:26 +msgid "**Archlinux**" +msgstr "" + +#: ../../../docs/prerequisites.md:27 +msgid "**CentOS**, **Rocky Linux**, **AlmaLinux**, or possibly other RHEL alternatives (although your mileage may vary)" +msgstr "" + +#: ../../../docs/prerequisites.md:28 +msgid "**Debian** (10/Buster or newer)" +msgstr "" + +#: ../../../docs/prerequisites.md:29 +msgid "**Ubuntu** (18.04 or newer, although [20.04 may be problematic](ansible.md#supported-ansible-versions) if you run the Ansible playbook on it)" +msgstr "" + +#: ../../../docs/prerequisites.md:31 +msgid "Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. The playbook can take over your whole server or co-exist with other services that you have there." +msgstr "" + +#: ../../../docs/prerequisites.md:33 +msgid "This playbook somewhat supports running on non-`amd64` architectures like ARM. See [Alternative Architectures](alternative-architectures.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:35 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/prerequisites.md:37 +msgid "`root` access to your server (or a user capable of elevating to `root` via `sudo`)." +msgstr "" + +#: ../../../docs/prerequisites.md:39 +msgid "[Python](https://www.python.org/). Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`)" +msgstr "" + +#: ../../../docs/prerequisites.md:41 +msgid "[sudo](https://www.sudo.ws/), even when you've configured Ansible to log in as `root`. Some distributions, like a minimal Debian net install, do not include the `sudo` package by default." +msgstr "" + +#: ../../../docs/prerequisites.md:43 +msgid "An HTTPS-capable web server at the base domain name (`example.com`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:45 +msgid "Properly configured DNS records for `example.com` (details in [Configuring DNS](configuring-dns.md))." +msgstr "" + +#: ../../../docs/prerequisites.md:47 +msgid "Some TCP/UDP ports open. This playbook (actually [Docker itself](https://docs.docker.com/network/iptables/)) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports:" +msgstr "" + +#: ../../../docs/prerequisites.md:49 +msgid "`80/tcp`: HTTP webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:50 +msgid "`443/tcp` and `443/udp`: HTTPS webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:51 +msgid "`3478/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:52 +msgid "`3478/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:53 +msgid "`5349/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:54 +msgid "`5349/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:55 +msgid "`8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**." +msgstr "" + +#: ../../../docs/prerequisites.md:56 +msgid "the range `49152-49172/udp`: TURN over UDP" +msgstr "" + +#: ../../../docs/prerequisites.md:57 +msgid "potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that." +msgstr "" + +#: ../../../docs/prerequisites.md:61 +msgid "[▶️](configuring-dns.md) When ready to proceed, continue with [Configuring DNS](configuring-dns.md)." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/quick-start.po b/i18n/locales/bg/LC_MESSAGES/docs/quick-start.po new file mode 100644 index 000000000..fc8f45f9c --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/quick-start.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: 2024-12-20 15:23+0200\n" +"Last-Translator: \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/quick-start.md:1 +msgid "Quick start" +msgstr "Бърза инсталация" + +#: ../../../docs/quick-start.md:9 +msgid "This page explains how to use this Ansible playbook to install Matrix services on your server with a minimal set of core services." +msgstr "Тази страница показва как да използвате Ansible плейбука за да инсталирате минимален брой от важните Matrix услуги на ваш собствен сървър." + +#: ../../../docs/quick-start.md:11 +msgid "We will be using `example.com` as the \"base domain\" in the following instruction." +msgstr "Ще използваме `example.com` като \"базов домейн\" в инструкциите по-долу." + +#: ../../../docs/quick-start.md:13 +msgid "By following the instruction on this page, you will set up:" +msgstr "Следвайки инструкциите на тази страница, ще настройте:" + +#: ../../../docs/quick-start.md:15 +msgid "**your own Matrix server** on a `matrix.example.com` server, which is configured to present itself as `example.com`" +msgstr "**ваш собствен Matrix сървър** на `matrix.example.com` сървъра, който е настроен да се представя за `example.com`" + +#: ../../../docs/quick-start.md:16 +msgid "**your user account** like `@alice:example.com` on the server" +msgstr "**ваш потребителски профил** като `@alice:example.com` на сървъра" + +#: ../../../docs/quick-start.md:17 +msgid "a **self-hosted Matrix client**, [Element Web](configuring-playbook-client-element-web.md) with the default subdomain at `element.example.com`" +msgstr "**самостоятелно-хостван Matrix клиент**, [Element Web](configuring-playbook-client-element-web.md) на поддомейн по подразбиране `element.example.com`" + +#: ../../../docs/quick-start.md:18 +msgid "Matrix delegation, so that your `matrix.example.com` server (presenting itself as `example.com`) can join the Matrix Federation and communicate with any other server in the Matrix network" +msgstr "Matrix делегиране, така че `matrix.example.com` сървърът ви (представящ се за `example.com`) да може да се включи в Matrix Федерацията и да комуникира с други сървъри в Matrix мрежата" + +#: ../../../docs/quick-start.md:20 +msgid "Please remember to replace `example.com` with your own domain before running any commands." +msgstr "Моля, помнете да замените `example.com` със собствения си домейн преди да изпълните командите по-долу." + +#: ../../../docs/quick-start.md:22 +msgid "Prerequisites" +msgstr "Предварителни условия" + +#: ../../../docs/quick-start.md:24 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Prerequisites](prerequisites.md)" +msgstr "Този раздел е оптимизиран за този наръчник за бърза инсталация на базата на следната страница от пълната документация: [Предварителни условия](prerequisites.md)" + +#: ../../../docs/quick-start.md:26 +msgid "At first, **check prerequisites** and prepare for installation by setting up programs [on your own computer](prerequisites.md#your-local-computer) and [your server](prerequisites.md#server). You also need `root` access on your server (a user that could elevate to `root` via `sudo` also works)." +msgstr "" + +#: ../../../docs/quick-start.md:28 +msgid "When preparing your server, make sure to check [the server specs you need](faq.md#what-kind-of-server-specs-do-i-need). We recommend starting with a server having at least 2GB of memory." +msgstr "" + +#: ../../../docs/quick-start.md:34 +msgid "If you encounter an error during installation, please make sure that you have installed and configured programs correctly." +msgstr "" + +#: ../../../docs/quick-start.md:36 +msgid "One of the main reasons of basic errors is using an incompatible version of required software such as Ansible. Take a look at [our guide about Ansible](ansible.md) for more information. In short: installing the latest available version is recommended." +msgstr "" + +#: ../../../docs/quick-start.md:38 +msgid "Configure your DNS settings" +msgstr "" + +#: ../../../docs/quick-start.md:40 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring your DNS settings](configuring-dns.md)" +msgstr "Този раздел е оптимизиран за този наръчник за бърза инсталация на базата на следната страница от пълната документация: [Конфигуриране на DNS настройките](configuring-dns.md)" + +#: ../../../docs/quick-start.md:42 +msgid "After installing and configuring prerequisites, you will need to **configure DNS records**." +msgstr "" + +#: ../../../docs/quick-start.md:44 +msgid "To configure Matrix services in the default settings, go to your DNS service provider, and adjust DNS records as below." +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Type" +msgstr "Тип" + +#: ../../../docs/quick-start.md +msgid "Host" +msgstr "Домейн" + +#: ../../../docs/quick-start.md +msgid "Priority" +msgstr "Приоритет" + +#: ../../../docs/quick-start.md +msgid "Weight" +msgstr "Тегло" + +#: ../../../docs/quick-start.md +msgid "Port" +msgstr "Порт" + +#: ../../../docs/quick-start.md +msgid "Target" +msgstr "Цел" + +#: ../../../docs/quick-start.md +msgid "A" +msgstr "A" + +#: ../../../docs/quick-start.md +msgid "`matrix`" +msgstr "`matrix`" + +#: ../../../docs/quick-start.md +msgid "-" +msgstr "-" + +#: ../../../docs/quick-start.md +msgid "`matrix-server-IP`" +msgstr "`IP-на-matrix-сървъра`" + +#: ../../../docs/quick-start.md +msgid "CNAME" +msgstr "CNAME" + +#: ../../../docs/quick-start.md +msgid "`element`" +msgstr "`element`" + +#: ../../../docs/quick-start.md +msgid "`matrix.example.com`" +msgstr "`matrix.example.com`" + +#: ../../../docs/quick-start.md:51 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "Както показва таблицата, необходимо е да създадете 2 поддомейна (`matrix.example.com` и `element.example.com`) и да ги насочите към IP адреса на сървъра (чрез DNS `A` запис или `CNAME` запис)." + +#: ../../../docs/quick-start.md:53 +msgid "It might take some time for the DNS records to propagate after creation." +msgstr "Може да отнеме известно време след създаване на DNS записите докато се отразят." + +#: ../../../docs/quick-start.md:55 +msgid "**💡 Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\"" +msgstr "" + +#: ../../../docs/quick-start.md:57 +msgid "Get the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:59 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Getting the playbook](getting-the-playbook.md)" +msgstr "Този раздел е оптимизиран за този наръчник за бърза инсталация на базата на следната страница от пълната документация: [Изтегляне на плейбука](getting-the-playbook.md)" + +#: ../../../docs/quick-start.md:61 +msgid "Next, let's **get the playbook's source code**." +msgstr "" + +#: ../../../docs/quick-start.md:63 +msgid "We recommend to do so with [git](https://git-scm.com/) as it enables you to keep it up to date with the latest source code. While it is possible to download the playbook as a ZIP archive, it is not recommended." +msgstr "" + +#: ../../../docs/quick-start.md:65 +msgid "To get the playbook with git, install git on your computer, go to a directory, and run the command:" +msgstr "" + +#: ../../../docs/quick-start.md:71 +msgid "It will fetch the playbook to a new `matrix-docker-ansible-deploy` directory underneath the directory you are currently in." +msgstr "" + +#: ../../../docs/quick-start.md:73 +msgid "Configure the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:75 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring the playbook](configuring-playbook.md)" +msgstr "Този раздел е оптимизиран за този наръчник за бърза инсталация на базата на следната страница от пълната документация: [Конфигуриране на плейбука](configuring-playbook.md)" + +#: ../../../docs/quick-start.md:77 +msgid "Now that the playbook was fetched, it is time to **configure** it per your needs." +msgstr "" + +#: ../../../docs/quick-start.md:79 +msgid "To install Matrix services with this playbook, you would at least need 2 configuration files." +msgstr "" + +#: ../../../docs/quick-start.md:81 +msgid "For your convenience, we have prepared example files of them ([`vars.yml`](../examples/vars.yml) and [`hosts`](../examples/hosts))." +msgstr "" + +#: ../../../docs/quick-start.md:83 +msgid "To start quickly based on these example files, go into the `matrix-docker-ansible-deploy` directory and follow the instructions below:" +msgstr "" + +#: ../../../docs/quick-start.md:85 +msgid "Create a directory to hold your configuration: `mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\"" +msgstr "" + +#: ../../../docs/quick-start.md:86 +msgid "Copy the sample configuration file: `cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`" +msgstr "" + +#: ../../../docs/quick-start.md:87 +msgid "Copy the sample inventory hosts file: `cp examples/hosts inventory/hosts`" +msgstr "" + +#: ../../../docs/quick-start.md:88 +msgid "Edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/quick-start.md:89 +msgid "Edit the inventory hosts file (`inventory/hosts`)" +msgstr "" + +#: ../../../docs/quick-start.md:91 +msgid "Before editing these 2 files, make sure to read explanations on them to understand what needs to be configured." +msgstr "" + +#: ../../../docs/quick-start.md:93 +msgid "**💡 Notes:**" +msgstr "" + +#: ../../../docs/quick-start.md:94 +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 "" + +#: ../../../docs/quick-start.md:95 +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 "" + +#: ../../../docs/quick-start.md:96 +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 "" + +#: ../../../docs/quick-start.md:98 +msgid "Install" +msgstr "" + +#: ../../../docs/quick-start.md:100 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Installing](installing.md)" +msgstr "Този раздел е оптимизиран за този наръчник за бърза инсталация на базата на следната страница от пълната документация: [Инсталиране](installing.md)" + +#: ../../../docs/quick-start.md:102 +msgid "After editing `vars.yml` and `hosts` files, let's start the **installation** procedure." +msgstr "" + +#: ../../../docs/quick-start.md:104 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/quick-start.md:106 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/quick-start.md:108 +msgid "To update your playbook directory and all upstream Ansible roles, run:" +msgstr "" + +#: ../../../docs/quick-start.md:110 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/quick-start.md:111 +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 "" + +#: ../../../docs/quick-start.md:113 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/quick-start.md:115 +msgid "Run installation command" +msgstr "" + +#: ../../../docs/quick-start.md:117 +msgid "Then, run the command below to start installation:" +msgstr "" + +#: ../../../docs/quick-start.md:123 +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 "" + +#: ../../../docs/quick-start.md:125 +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 "" + +#: ../../../docs/quick-start.md:127 +msgid "Wait until the command completes. If it's all green, everything should be running properly." +msgstr "" + +#: ../../../docs/quick-start.md:129 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/quick-start.md:131 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/quick-start.md:133 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/quick-start.md:135 +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 "" + +#: ../../../docs/quick-start.md:137 +msgid "**💡 Notes**:" +msgstr "" + +#: ../../../docs/quick-start.md:138 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/quick-start.md:139 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/quick-start.md:151 +msgid "Finalize server installation" +msgstr "" + +#: ../../../docs/quick-start.md:153 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Server Delegation](howto-server-delegation.md)" +msgstr "" + +#: ../../../docs/quick-start.md:155 +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 "" + +#: ../../../docs/quick-start.md:157 +msgid "**This is required for federation to work!** Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/quick-start.md:159 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/quick-start.md:161 +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 "" + +#: ../../../docs/quick-start.md:162 +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 "" + +#: ../../../docs/quick-start.md:164 +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 "" + +#: ../../../docs/quick-start.md:170 +msgid "After configuring the playbook, run the command below and wait until it finishes:" +msgstr "" + +#: ../../../docs/quick-start.md:176 +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 "" + +#: ../../../docs/quick-start.md:178 +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 "" + +#: ../../../docs/quick-start.md:180 +msgid "Re-run the full setup command any time" +msgstr "" + +#: ../../../docs/quick-start.md:182 +msgid "If you think something is wrong with the server configuration, feel free to re-run the setup command any time:" +msgstr "" + +#: ../../../docs/quick-start.md:188 +msgid "Log in to your user account" +msgstr "" + +#: ../../../docs/quick-start.md:190 +msgid "Finally, let's make sure that you can log in to the created account with the specified password." +msgstr "" + +#: ../../../docs/quick-start.md:192 +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 "" + +#: ../../../docs/quick-start.md:194 +msgid "**If you successfully logged in to your account, installing and configuring is complete**🎉" +msgstr "" + +#: ../../../docs/quick-start.md:196 +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 "" + +#: ../../../docs/quick-start.md:198 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/quick-start.md:200 +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 "" + +#: ../../../docs/quick-start.md:202 +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 "" + +#: ../../../docs/quick-start.md:204 +msgid "⚠️Keep the playbook and services up-to-date" +msgstr "" + +#: ../../../docs/quick-start.md:206 +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 "" + +#: ../../../docs/quick-start.md:208 +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 "" + +#: ../../../docs/quick-start.md:210 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/registering-users.po b/i18n/locales/bg/LC_MESSAGES/docs/registering-users.po new file mode 100644 index 000000000..6beb19bb6 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/registering-users.po @@ -0,0 +1,246 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/registering-users.md:1 +msgid "Registering users" +msgstr "" + +#: ../../../docs/registering-users.md:3 +msgid "This documentation page tells you how to create user accounts on your Matrix server." +msgstr "" + +#: ../../../docs/registering-users.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/registering-users.md:7 +msgid "[Registering users](#registering-users)" +msgstr "" + +#: ../../../docs/registering-users.md:8 +msgid "[Registering users manually](#registering-users-manually)" +msgstr "" + +#: ../../../docs/registering-users.md:9 +msgid "[Managing users via a Web UI](#managing-users-via-a-web-ui)" +msgstr "" + +#: ../../../docs/registering-users.md:10 +msgid "[Letting certain users register on your private server](#letting-certain-users-register-on-your-private-server)" +msgstr "" + +#: ../../../docs/registering-users.md:11 +msgid "[Enabling public user registration](#enabling-public-user-registration)" +msgstr "" + +#: ../../../docs/registering-users.md:12 +msgid "[Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user)" +msgstr "" + +#: ../../../docs/registering-users.md:14 +msgid "Registering users manually" +msgstr "" + +#: ../../../docs/registering-users.md:16 ../../../docs/registering-users.md:121 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/registering-users.md:17 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/registering-users.md:18 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/registering-users.md:19 +msgid "Use `admin=yes` or `admin=no` depending on whether you wish to make the user an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/registering-users.md:21 +msgid "After registering a user (using one of the methods below), **you can log in with that user** via the [Element Web](configuring-playbook-client-element-web.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/registering-users.md:23 +msgid "Registering users via the Ansible playbook" +msgstr "" + +#: ../../../docs/registering-users.md:25 +msgid "It's best to register users via the Ansible playbook, because it works regardless of homeserver implementation (Synapse, Dendrite, etc) or usage of [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../docs/registering-users.md:27 +msgid "To register a user via this Ansible playbook:" +msgstr "" + +#: ../../../docs/registering-users.md:35 +msgid "**or** by invoking `ansible-playbook` manually:" +msgstr "" + +#: ../../../docs/registering-users.md:43 +msgid "Feel free to register as many users (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your user account only (with `admin=yes`), and others should be created with `admin=no`." +msgstr "" + +#: ../../../docs/registering-users.md:45 +msgid "[!WARNING] If you're registering users against Matrix Authentication Service, do note that it [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:48 +msgid "Registering users manually for Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:50 +msgid "If you're using the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default), you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:58 +msgid "Registering users manually for Dendrite" +msgstr "" + +#: ../../../docs/registering-users.md:60 +msgid "If you're using the [Dendrite](./configuring-playbook-dendrite.md) homeserver implementation, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:68 +msgid "Registering users manually for Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:70 +msgid "If you're using the [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) and your existing homeserver (most likely [Synapse](./configuring-playbook-synapse.md)) is delegating authentication to it, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:78 +msgid "This `register-user` script actually invokes the `mas-cli manage register-user` command under the hood. If you'd like more control over the registration process, consider invoking the `mas-cli` command directly:" +msgstr "" + +#: ../../../docs/registering-users.md:84 +msgid "[!WARNING] Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:87 +msgid "Managing users via a Web UI" +msgstr "" + +#: ../../../docs/registering-users.md:89 +msgid "To manage users more easily (via a web user-interace), you can install [Synapse Admin](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/registering-users.md:91 +msgid "[!WARNING] If you're using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), note that user management via synapse-admin is not fully working yet. See the [Expectations](configuring-playbook-matrix-authentication-service.md#expectations) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:94 +msgid "Letting certain users register on your private server" +msgstr "" + +#: ../../../docs/registering-users.md:96 +msgid "If you'd rather **keep your server private** (public registration closed, as is the default), and **let certain people create accounts by themselves** (instead of creating user accounts manually like this), consider installing and making use of [matrix-registration](configuring-playbook-matrix-registration.md)." +msgstr "" + +#: ../../../docs/registering-users.md:98 +msgid "Enabling public user registration" +msgstr "" + +#: ../../../docs/registering-users.md:100 +msgid "To **open up user registration publicly** (usually **not recommended**), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/registering-users.md:102 +msgid "For Synapse:" +msgstr "" + +#: ../../../docs/registering-users.md:108 +msgid "For Dendrite:" +msgstr "" + +#: ../../../docs/registering-users.md:114 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/registering-users.md:123 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/registering-users.md:125 +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/registering-users.md:127 +msgid "If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md)." +msgstr "" + +#: ../../../docs/registering-users.md:129 +msgid "Adding/Removing Administrator privileges to an existing user" +msgstr "" + +#: ../../../docs/registering-users.md:131 +msgid "Adding/Removing Administrator privileges to an existing user in Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:133 +msgid "To change the admin privileges for a user in Synapse's local database, you need to run an SQL query like this against the `synapse` database:" +msgstr "" + +#: ../../../docs/registering-users.md:139 +msgid "where:" +msgstr "" + +#: ../../../docs/registering-users.md:141 +msgid "`ADMIN_VALUE` being either `0` (regular user) or `1` (admin)" +msgstr "" + +#: ../../../docs/registering-users.md:142 +msgid "`USER` and `example.com` pointing to a valid user on your server" +msgstr "" + +#: ../../../docs/registering-users.md:144 +msgid "If you're using the integrated Postgres server and not an [external Postgres server](configuring-playbook-external-postgres.md), you can launch a Postgres into the `synapse` database by:" +msgstr "" + +#: ../../../docs/registering-users.md:146 +msgid "running `/matrix/postgres/bin/cli` — to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html)" +msgstr "" + +#: ../../../docs/registering-users.md:147 +msgid "running `\\c synapse` — to change to the `synapse` database" +msgstr "" + +#: ../../../docs/registering-users.md:149 +msgid "You can then proceed to run the query above." +msgstr "" + +#: ../../../docs/registering-users.md:151 +msgid "**Note**: directly modifying the raw data of Synapse (or any other software) could cause the software to break. You've been warned!" +msgstr "" + +#: ../../../docs/registering-users.md:153 +msgid "Adding/Removing Administrator privileges to an existing user in Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:155 +msgid "Promoting/demoting a user in Matrix Authentication Service cannot currently (2024-10-19) be done via the [`mas-cli` Management tool](./configuring-playbook-matrix-authentication-service.md#management)." +msgstr "" + +#: ../../../docs/registering-users.md:157 +msgid "You can do it via the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html)'s `POST /api/admin/v1/users/{id}/set-admin` endpoint." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/self-building.po b/i18n/locales/bg/LC_MESSAGES/docs/self-building.po new file mode 100644 index 000000000..89bf5c0f5 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/self-building.po @@ -0,0 +1,178 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/self-building.md:1 +msgid "Self-building" +msgstr "" + +#: ../../../docs/self-building.md:3 +msgid "**Caution: self-building does not have to be used on its own. See the [Alternative Architectures](alternative-architectures.md) page.**" +msgstr "" + +#: ../../../docs/self-building.md:5 +msgid "The playbook supports self-building of various components, which don't have a container image for your architecture (see the [container images we use](container-images.md)). For `amd64`, self-building is not required." +msgstr "" + +#: ../../../docs/self-building.md:7 +msgid "For other architectures (e.g. `arm32`, `arm64`), ready-made container images are used when available. If there's no ready-made image for a specific component and said component supports self-building, an image will be built on the host. Building images like this takes more time and resources (some build tools need to get installed by the playbook to assist building)." +msgstr "" + +#: ../../../docs/self-building.md:9 +msgid "To make use of self-building, you don't need to do anything. If a component has an image for the specified architecture, the playbook will use it directly. If not, it will build the image on the server itself." +msgstr "" + +#: ../../../docs/self-building.md:11 +msgid "Note that **not all components support self-building yet**." +msgstr "" + +#: ../../../docs/self-building.md:13 +msgid "Possibly outdated list of roles where self-building the Docker image is currently possible:" +msgstr "" + +#: ../../../docs/self-building.md:14 +msgid "`matrix-synapse`" +msgstr "" + +#: ../../../docs/self-building.md:15 +msgid "`matrix-synapse-admin`" +msgstr "" + +#: ../../../docs/self-building.md:16 +msgid "`matrix-client-element`" +msgstr "" + +#: ../../../docs/self-building.md:17 +msgid "`matrix-client-hydrogen`" +msgstr "" + +#: ../../../docs/self-building.md:18 +msgid "`matrix-client-cinny`" +msgstr "" + +#: ../../../docs/self-building.md:19 +msgid "`matrix-registration`" +msgstr "" + +#: ../../../docs/self-building.md:20 +msgid "`matrix-coturn`" +msgstr "" + +#: ../../../docs/self-building.md:21 +msgid "`matrix-corporal`" +msgstr "" + +#: ../../../docs/self-building.md:22 +msgid "`matrix-dimension`" +msgstr "" + +#: ../../../docs/self-building.md:23 +msgid "`matrix-ma1sd`" +msgstr "" + +#: ../../../docs/self-building.md:24 +msgid "`exim-relay`" +msgstr "" + +#: ../../../docs/self-building.md:25 +msgid "`matrix-bridge-hookshot`" +msgstr "" + +#: ../../../docs/self-building.md:26 +msgid "`matrix-bridge-appservice-irc`" +msgstr "" + +#: ../../../docs/self-building.md:27 +msgid "`matrix-bridge-appservice-slack`" +msgstr "" + +#: ../../../docs/self-building.md:28 +msgid "`matrix-bridge-appservice-webhooks`" +msgstr "" + +#: ../../../docs/self-building.md:29 +msgid "`matrix-bridge-beeper-linkedin`" +msgstr "" + +#: ../../../docs/self-building.md:30 +msgid "`matrix-bridge-mautrix-facebook`" +msgstr "" + +#: ../../../docs/self-building.md:31 +msgid "`matrix-bridge-mautrix-hangouts`" +msgstr "" + +#: ../../../docs/self-building.md:32 +msgid "`matrix-bridge-mautrix-googlechat`" +msgstr "" + +#: ../../../docs/self-building.md:33 +msgid "`matrix-bridge-mautrix-telegram`" +msgstr "" + +#: ../../../docs/self-building.md:34 +msgid "`matrix-bridge-mautrix-signal`" +msgstr "" + +#: ../../../docs/self-building.md:35 +msgid "`matrix-bridge-mautrix-gmessages`" +msgstr "" + +#: ../../../docs/self-building.md:36 +msgid "`matrix-bridge-mautrix-whatsapp`" +msgstr "" + +#: ../../../docs/self-building.md:37 +msgid "`matrix-bridge-mx-puppet-steam`" +msgstr "" + +#: ../../../docs/self-building.md:38 +msgid "`matrix-bot-mjolnir`" +msgstr "" + +#: ../../../docs/self-building.md:39 +msgid "`matrix-bot-honoroit`" +msgstr "" + +#: ../../../docs/self-building.md:40 +msgid "`matrix-bot-matrix-reminder-bot`" +msgstr "" + +#: ../../../docs/self-building.md:41 +msgid "`matrix-bot-maubot`" +msgstr "" + +#: ../../../docs/self-building.md:42 +msgid "`matrix-email2matrix`" +msgstr "" + +#: ../../../docs/self-building.md:43 +msgid "`matrix-pantalaimon`" +msgstr "" + +#: ../../../docs/self-building.md:45 +msgid "Adding self-building support to other roles is welcome. Feel free to contribute!" +msgstr "" + +#: ../../../docs/self-building.md:47 +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 "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/uninstalling.po b/i18n/locales/bg/LC_MESSAGES/docs/uninstalling.po new file mode 100644 index 000000000..b16bebd9f --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/uninstalling.po @@ -0,0 +1,82 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/uninstalling.md:1 +msgid "Uninstalling" +msgstr "" + +#: ../../../docs/uninstalling.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/uninstalling.md:4 +msgid "If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating." +msgstr "" + +#: ../../../docs/uninstalling.md:5 +msgid "If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**." +msgstr "" + +#: ../../../docs/uninstalling.md:9 +msgid "Uninstalling using a script" +msgstr "" + +#: ../../../docs/uninstalling.md:11 +msgid "Installing places a `/matrix/bin/remove-all` script on the server." +msgstr "" + +#: ../../../docs/uninstalling.md:13 +msgid "You can run it to to have it uninstall things for you automatically (see below). **Use with caution!**" +msgstr "" + +#: ../../../docs/uninstalling.md:15 +msgid "Uninstalling manually" +msgstr "" + +#: ../../../docs/uninstalling.md:17 +msgid "If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself):" +msgstr "" + +#: ../../../docs/uninstalling.md:19 +msgid "ensure all Matrix services are stopped: `ansible-playbook -i inventory/hosts setup.yml --tags=stop` (if you can't get Ansible working to run this command, you can run `systemctl stop 'matrix*'` manually on the server)" +msgstr "" + +#: ../../../docs/uninstalling.md:21 +msgid "delete the Matrix-related systemd `.service` and `.timer` files (`rm -f /etc/systemd/system/matrix*.{service,timer}`) and reload systemd (`systemctl daemon-reload`)" +msgstr "" + +#: ../../../docs/uninstalling.md:23 +msgid "delete some cached Docker images (`docker system prune -a`) or just delete them all (`docker rmi $(docker images -aq)`)" +msgstr "" + +#: ../../../docs/uninstalling.md:25 +msgid "delete the Docker networks: `docker network rm matrix matrix-coturn` (might have been deleted already if you ran the `docker system prune` command)" +msgstr "" + +#: ../../../docs/uninstalling.md:27 +msgid "uninstall Docker itself, if necessary" +msgstr "" + +#: ../../../docs/uninstalling.md:29 +msgid "delete the `/matrix` directory (`rm -rf /matrix`)" +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/docs/updating-users-passwords.po b/i18n/locales/bg/LC_MESSAGES/docs/updating-users-passwords.po new file mode 100644 index 000000000..0d3caf7c2 --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/docs/updating-users-passwords.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: bg\n" +"Language-Team: bg \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/updating-users-passwords.md:1 +msgid "Updating users passwords" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:3 +msgid "Option 1 (if you are using the integrated Postgres database):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:6 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:7 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:9 +msgid "You can reset a user's password via the Ansible playbook:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:15 +msgid "**You can then log in with that user** via Element Web that this playbook has created for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:17 +msgid "Option 2 (if you are using an external Postgres server):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:19 +msgid "You can manually generate the password hash by using the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#finalize-the-installation):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:25 +msgid "and then connecting to the postgres server and executing:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:31 +msgid "where `` is the hash returned by the docker command above." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:33 +msgid "Option 3:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:35 +msgid "Use the Synapse User Admin API as described here: https://github.com/element-hq/synapse/blob/master/docs/admin_api/user_admin_api.rst#reset-password" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:37 +msgid "This requires an [access token](obtaining-access-tokens.md) from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:39 +msgid "If you didn't make your account a server admin when you created it, you can learn how to switch it now by reading about it in [Adding/Removing Administrator privileges to an existing user in Synapse](registering-users.md#addingremoving-administrator-privileges-to-an-existing-user-in-synapse)." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:41 +msgid "Example:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:43 +msgid "To set @alice:example.com's password to `correct_horse_battery_staple` you could use this curl command:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:49 +msgid "Make sure to replace `ACCESS_TOKEN_HERE` with the access token of the server admin account." +msgstr "" diff --git a/i18n/locales/bg/LC_MESSAGES/i18n/README.po b/i18n/locales/bg/LC_MESSAGES/i18n/README.po new file mode 100644 index 000000000..c5e6d158e --- /dev/null +++ b/i18n/locales/bg/LC_MESSAGES/i18n/README.po @@ -0,0 +1,210 @@ +# Translations template for PROJECT. +# Copyright (C) 2024 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-12-20 15:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../README.md:8 +msgid "Internationalization" +msgstr "" + +#: ../../README.md:10 +msgid "Translated documentation files are published and maintained in [`translations/`](translations/) directory." +msgstr "" + +#: ../../README.md:12 +msgid "Currently, we support translation of:" +msgstr "" + +#: ../../README.md:14 +msgid "Markdown files found at the top level project directory" +msgstr "" + +#: ../../README.md:15 +msgid "Markdown files found in the [`docs`](../docs/) directory (this is where the bulk of the documentation is)" +msgstr "" + +#: ../../README.md:16 +msgid "this current document in the `i18n` directory" +msgstr "" + +#: ../../README.md:18 +msgid "💡 For readers' sake, we only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold (requiring that at least the project README and core installation guides are translated)." +msgstr "" + +#: ../../README.md:20 +msgid "Organization of this `i18n` directory is as follows:" +msgstr "" + +#: ../../README.md:22 +msgid "[PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory)" +msgstr "" + +#: ../../README.md:23 +msgid "[.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionaly ignore translated results (`translations/` directories) for languages taht are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold." +msgstr "" + +#: ../../README.md:24 +msgid "[justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner" +msgstr "" + +#: ../../README.md:25 +msgid "[requirements.txt](requirements.txt): a list of Python packages required to work with translations" +msgstr "" + +#: ../../README.md:26 +msgid "[translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files" +msgstr "" + +#: ../../README.md:27 +msgid "[locales/](locales/): localization files for languages" +msgstr "" + +#: ../../README.md:28 +msgid "[translations/](translations/): translated documents for published languages (see [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) and [publish translations in a new language](#publish-translations-in-a-new-language))" +msgstr "" + +#: ../../README.md:30 +msgid "Guide for translators" +msgstr "" + +#: ../../README.md:32 +msgid "This project uses [Sphinx](https://www.sphinx-doc.org/) to generate translated documents." +msgstr "" + +#: ../../README.md:34 +msgid "For details about using Sphinx for translation, refer [this official document](https://www.sphinx-doc.org/en/master/usage/advanced/intl.html) as well." +msgstr "" + +#: ../../README.md:36 +msgid "For now, translations are handled manually by editing `.po` files in the `locales/` directory. In the future, we plan on integrating with [Weblate](https://weblate.org/) to allow for translating from a web interface." +msgstr "" + +#: ../../README.md:38 +msgid "(Recommended) Using the uv package manager and just command runner" +msgstr "" + +#: ../../README.md:40 +msgid "If you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed, you can use our [justfile](justfile) recipes to easily manage translation files and build translated documents." +msgstr "" + +#: ../../README.md:42 +msgid "The recipes will use [uv](https://github.com/astral-sh/uv) to auto-create [a Python virtual environment](https://docs.astral.sh/uv/pip/environments/) in the `.venv` directory and install the required Python packages (as per [requirements.txt](requirements.txt)) to it." +msgstr "" + +#: ../../README.md:44 ../../README.md:71 +msgid "Preparation" +msgstr "" + +#: ../../README.md:46 +msgid "Make sure you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed." +msgstr "" + +#: ../../README.md:48 ../../README.md:79 +msgid "Translation" +msgstr "" + +#: ../../README.md:50 ../../README.md:81 +msgid "Recommended flow when working on a new language (replace `` with the language code, e.g. `bg`):" +msgstr "" + +#: ../../README.md:52 +msgid "Update the locale files for your language: `just sync-for-language ` (internally, this automatically runs `just extract-translation-templates` to make sure the translation templates are up-to-date)" +msgstr "" + +#: ../../README.md:54 ../../README.md:87 +msgid "Use an editor to translate the files in the `locales/` directory" +msgstr "" + +#: ../../README.md:56 +msgid "Build translated documents: `just build-for-language `" +msgstr "" + +#: ../../README.md:58 ../../README.md:91 +msgid "Preview the result in the `translations/` directory" +msgstr "" + +#: ../../README.md:60 ../../README.md:93 +msgid "Commit your changes done to the `locales/` directory" +msgstr "" + +#: ../../README.md:62 ../../README.md:95 +msgid "If you have progressed with the translation beyond a certain threshold, consider [Publishing translations in a new language](#publish-translations-in-a-new-language)" +msgstr "" + +#: ../../README.md:64 +msgid "Using any other package manager and manual scripts" +msgstr "" + +#: ../../README.md:66 +msgid "If you cannot use [uv](https://docs.astral.sh/uv/) and/or [just](https://github.com/casey/just), you can:" +msgstr "" + +#: ../../README.md:68 +msgid "manage Python packages in another way ([pip](https://pip.pypa.io/en/stable/), [Poetry](https://python-poetry.org/), etc.)" +msgstr "" + +#: ../../README.md:69 +msgid "manage translation strings and build translated documents manually by invoking scripts from the [bin](bin/) directory" +msgstr "" + +#: ../../README.md:73 +msgid "virtualenv and pip" +msgstr "" + +#: ../../README.md:75 +msgid "Create a Python virtual environment in the `.venv` directory: `virtualenv .venv`" +msgstr "" + +#: ../../README.md:76 +msgid "Activate the virtual environment: `source .venv/bin/activate`" +msgstr "" + +#: ../../README.md:77 +msgid "Install the required Python packages using [pip](https://pip.pypa.io/en/stable/): `pip install -r requirements.txt`" +msgstr "" + +#: ../../README.md:83 +msgid "Ensure the English translation templates ([translation-templates/](translation-templates/)) are extracted: `./bin/extract-translation-templates.sh`" +msgstr "" + +#: ../../README.md:85 +msgid "Update the locale files for your language: `./bin/sync-translation-templates-to-locales.sh `" +msgstr "" + +#: ../../README.md:89 +msgid "Build translated documents: `./bin/build-translated-result.sh `" +msgstr "" + +#: ../../README.md:97 +msgid "Publish translations in a new language" +msgstr "" + +#: ../../README.md:99 +msgid "To publish prebuilt documents translated in a new language to the `translations/` directory:" +msgstr "" + +#: ../../README.md:101 +msgid "add its language code to the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file" +msgstr "" + +#: ../../README.md:102 +msgid "whitelist its `translations/` directory by adding a `!translations/` rule to the [.gitignore](.gitignore) file" +msgstr "" + +#: ../../README.md:104 +msgid "💡 Leave a trailing new line at the end of the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/CHANGELOG.po b/i18n/locales/jp/LC_MESSAGES/CHANGELOG.po new file mode 100644 index 000000000..331c474d9 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/CHANGELOG.po @@ -0,0 +1,7069 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../CHANGELOG.md:1 +msgid "2025-01-27" +msgstr "" + +#: ../../../CHANGELOG.md:3 +msgid "Redis and KeyDB are no longer part of the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:5 +msgid "**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead." +msgstr "" + +#: ../../../CHANGELOG.md:7 +msgid "The playbook has gone through several iterations of memorystore implementations:" +msgstr "" + +#: ../../../CHANGELOG.md:9 +msgid "It initially used Redis, auto-installing it when needed by features/services" +msgstr "" + +#: ../../../CHANGELOG.md:10 +msgid "[Switched to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis) as the default, while keeping Redis support for those who wished to remain on Redis" +msgstr "" + +#: ../../../CHANGELOG.md:11 +msgid "[Switched to Valkey](#backward-compatibility-break-the-playbook-now-defaults-to-valkey-instead-of-keydb) due to [KeyDB issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), while keeping Redis and KeyDB support, for those who wished to remain on them" +msgstr "" + +#: ../../../CHANGELOG.md:13 +msgid "To reduce configuration complexity and maintenance overhead, we are now:" +msgstr "" + +#: ../../../CHANGELOG.md:15 +msgid "removing Redis and KeyDB support entirely" +msgstr "" + +#: ../../../CHANGELOG.md:16 +msgid "using Valkey as the sole Redis-compatible memorystore implementation" +msgstr "" + +#: ../../../CHANGELOG.md:18 +msgid "To update your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:20 +msgid "**Most users** don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:21 +msgid "**Users that were explicitly sticking to Redis/KeyDB** need to update their `vars.yml` to use `valkey_*` variables instead" +msgstr "" + +#: ../../../CHANGELOG.md:24 +msgid "2025-01-19" +msgstr "" + +#: ../../../CHANGELOG.md:26 +msgid "conduwuit support" +msgstr "" + +#: ../../../CHANGELOG.md:28 +msgid "Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [conduwuit](https://conduwuit.puppyirl.gay/) homeserver support for new installations." +msgstr "" + +#: ../../../CHANGELOG.md:30 +msgid "conduwuit is a fork of [Conduit](./docs/configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../CHANGELOG.md:32 +msgid "Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:34 +msgid "To try out conduwuit, we recommend that you **use a new server**. Refer to our [Configuring conduwuit](./docs/configuring-playbook-conduwuit.md) guide for details." +msgstr "" + +#: ../../../CHANGELOG.md:36 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to conduwuit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:39 +msgid "2025-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:41 +msgid "(Backward Compatibility Break) Synapse v1.122.0 requires Postgres v13" +msgstr "" + +#: ../../../CHANGELOG.md:43 +msgid "The Synapse homeserver [requires Postgres v13 or newer](https://github.com/element-hq/synapse/issues/18034)." +msgstr "" + +#: ../../../CHANGELOG.md:45 +msgid "If you've been maintaining your setup for a while and you haven't been doing [Postgres upgrades](docs/maintenance-postgres.md#upgrading-postgresql), you may be on an old version of Postgres. The easiest way to check is to see the contents of the `/matrix/postgres/data/PG_VERSION` file." +msgstr "" + +#: ../../../CHANGELOG.md:47 +msgid "If you're on a Postgres version older than v13, you need to [upgrade your Postgres setup](docs/maintenance-postgres.md#upgrading-postgresql) or Synapse will produce an error on startup." +msgstr "" + +#: ../../../CHANGELOG.md:49 +msgid "If you're using an external Postgres server (not installed by this playbook), you'll need to figure out how to upgrade it yourself." +msgstr "" + +#: ../../../CHANGELOG.md:51 +msgid "If you're not ready to upgrade your Postgres setup yet, you can temporarily remain on an old Synapse version by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:59 +msgid "2024-11-26" +msgstr "" + +#: ../../../CHANGELOG.md:61 +msgid "(Backward Compatibility Break) Synapse now defaults to enabling authenticated media" +msgstr "" + +#: ../../../CHANGELOG.md:63 +msgid "**TLDR**: with this update, your Synapse homeserver will start requiring authentication for newly-uploaded media files. While the majority of the ecosystem (clients, bots, etc.) should support this, certain software may lack support for it (and you may wish to turn it off, if it's causing issues)." +msgstr "" + +#: ../../../CHANGELOG.md:65 +msgid "The default configuration for the Synapse homeserver now [enforces Authenticated media by default](https://element-hq.github.io/synapse/v1.120/upgrade.html#authenticated-media-is-now-enforced-by-default)." +msgstr "" + +#: ../../../CHANGELOG.md:67 +msgid "Servers like `matrix.org` have already [sunset unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) months ago." +msgstr "" + +#: ../../../CHANGELOG.md:69 +msgid "Now that **various clients, bots, bridges and extra services have caught up with authenticated media support**, Synapse developers seem confident that it's time to enable authenticated media by default." +msgstr "" + +#: ../../../CHANGELOG.md:71 +msgid "We're changing the playbook configuration for authenticated media to keep up with upstream defaults changing." +msgstr "" + +#: ../../../CHANGELOG.md:73 +msgid "Old and unmaintained bridges (like all mx-puppet bridges, etc.) do not support authenticated media. Other software may be similarly affected. If you experience issues with some Matrix-related software, you may wish to disable authenticated media and contact the software maintainers to let them know." +msgstr "" + +#: ../../../CHANGELOG.md:75 +msgid "You can disable authenticated media at any time by setting `matrix_synapse_enable_authenticated_media: false` in your `vars.yml` configuration file and re-running the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:78 +msgid "2024-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:80 +msgid "(Backward Compatibility Break) The playbook now defaults to Valkey, instead of KeyDB" +msgstr "" + +#: ../../../CHANGELOG.md:82 +msgid "**TLDR**: if the playbook installed KeyDB (or Redis) as a dependency for you before, it will now replace it with [Valkey](https://valkey.io/) (a drop-in alternative). We [previously switched from Redis to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis), but Valkey is a better alternative, so we're switching again." +msgstr "" + +#: ../../../CHANGELOG.md:84 +msgid "The playbook used to install Redis or KeyDB if services have a need for a Redis-compatible implementation ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.)." +msgstr "" + +#: ../../../CHANGELOG.md:86 +msgid "Earlier this year, we switched from Redis to KeyDB — see [(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis)." +msgstr "" + +#: ../../../CHANGELOG.md:88 +msgid "Because Valkey seems to be a better successor to Redis (than KeyDB) and likely doesn't suffer from [issues like this one](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), we now replace KeyDB with Valkey." +msgstr "" + +#: ../../../CHANGELOG.md:90 +msgid "Valkey (like KeyDB and Redis in the past) is an implicitly enabled dependency — you don't need custom configuration in `vars.yml` to enable it." +msgstr "" + +#: ../../../CHANGELOG.md:92 +msgid "Next time your run the playbook (via the `setup-all` tag), **KeyDB will be automatically uninstalled and replaced with Valkey**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:94 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for Valkey**, nor the Valkey role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of Valkey (or Redis/KeyDB). If Redis is necessary in an `arm32` deployment, disabling Valkey and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:96 ../../../CHANGELOG.md:436 +msgid "**The playbook still supports Redis** and you can keep using Redis (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:107 +msgid "**The playbook still supports KeyDB** and you can keep using KeyDB (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:117 +msgid "At some point in time in the future, we'll remove both KeyDB and Redis from the playbook, so we recommend that you migrate to Valkey earlier anyway." +msgstr "" + +#: ../../../CHANGELOG.md:120 +msgid "2024-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:122 +msgid "HTTP-compression support for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:124 +msgid "The playbook now **automatically enables HTTP-compression support** for major services powered by the playbook, like [Cinny](./docs/configuring-playbook-client-cinny.md), [Element Web](./docs/configuring-playbook-client-element-web.md), [Hydrogen](./docs/configuring-playbook-client-hydrogen.md), as well as for Matrix Client-Server and Federation APIs (`matrix.example.com`)." +msgstr "" + +#: ../../../CHANGELOG.md:126 +msgid "Other services installed by the playbook are currently not compression-enabled, but may become so over time. This change is rolled out on a per-service basis (as opposed to doing it globally, at the Traefik entrypoint level) to allow certain services or route endpoints which do not behave well when compressed (e.g. [issue 3749](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3749)) to be excluded from compression." +msgstr "" + +#: ../../../CHANGELOG.md:128 +msgid "A long time ago, various services were operating with `gzip`-compression enabled at the nginx level. Since the switch to Traefik (see [Goodbye, `matrix-nginx-proxy` 🪦](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/57c5271d9d6265a34a9d9cceb93365f685074f96/CHANGELOG.md#goodbye-matrix-nginx-proxy-)), all services (with the exception of Matrix APIs for Synapse worker-enabled setups which are powered by `nginx` via `synapse-reverse-proxy-companion`) have been operating without HTTP-compression support." +msgstr "" + +#: ../../../CHANGELOG.md:130 +msgid "HTTP-compression is now done via Traefik's [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware. We use the default configuration for this middleware, which enables `zstd`, `br` and `gzip` support (in this order). This middleware's configuration can be configured via variables in the Traefik role (see `traefik_config_http_middlewares_compression_middleware_options`)." +msgstr "" + +#: ../../../CHANGELOG.md:132 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you can benefit from the same by:" +msgstr "" + +#: ../../../CHANGELOG.md:134 +msgid "defining a [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware (via the [file](https://doc.traefik.io/traefik/providers/file/) or [Docker](https://doc.traefik.io/traefik/providers/docker/) providers)" +msgstr "" + +#: ../../../CHANGELOG.md:135 +msgid "setting `matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled` to `true`" +msgstr "" + +#: ../../../CHANGELOG.md:136 +msgid "specifying the middleware's name in `matrix_playbook_reverse_proxy_traefik_middleware_compression_name` (e.g. `matrix_playbook_reverse_proxy_traefik_middleware_compression_name: my-compression-middleware@file`)" +msgstr "" + +#: ../../../CHANGELOG.md:138 +msgid "Timeout adjustments for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:140 +msgid "The playbook now supports configuring various [transport.respondingTimeouts](https://doc.traefik.io/traefik/routing/entrypoints/#respondingtimeouts) timeout values (`readTimeout`, `writeTimeout`, `idleTimeout`) for the `web`, `web-secure` and `matrix-federation` entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:142 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you may wish to do similar configuration changes to your setup manually." +msgstr "" + +#: ../../../CHANGELOG.md:144 +msgid "The most interesting of these is the `readTimeout` configuration value (the maximum duration for reading the entire request, including the body), which used to default to `60s`. For large and slowly progressing file uploads, `60s` would often not be enough for the transfer to finish and uploads would end up being interrupted. The playbook now raises the `readTimeout` value to 5 minutes (`300s`) to improve this use-case." +msgstr "" + +#: ../../../CHANGELOG.md:146 +msgid "The `traefik_config_entrypoint_web_transport_respondingTimeouts_*` variables (for the `web` entrypoint) cascade to affecting the timeout values for the `web-secure` and `matrix-federation` entrypoints, so you can easily adjust all timeout values using them." +msgstr "" + +#: ../../../CHANGELOG.md:148 +msgid "Example of the default timeout values used by the playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:159 +msgid "Alternatively, you may adjust the timeout values for specific entrypoints (like `web-secure` and `matrix-federation`) using dedicated variables (like `traefik_config_entrypoint_web_secure_transport_respondingTimeouts_readTimeout` and `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_transport_respondingTimeouts_readTimeout`)." +msgstr "" + +#: ../../../CHANGELOG.md:162 +msgid "2024-11-08" +msgstr "" + +#: ../../../CHANGELOG.md:164 +msgid "Support for synapse-admin auto-configuration via /.well-known/matrix/client" +msgstr "" + +#: ../../../CHANGELOG.md:166 +msgid "You can administrate your Synapse-powered homeserver using synapse-admin hosted externally (e.g. [admin.etke.cc](https://admin.etke.cc/)) and the synapse-admin instance would still auto-configure itself correctly for your server by [reading its `/.well-known/matrix/client` file](https://github.com/etkecc/synapse-admin/pull/126)." +msgstr "" + +#: ../../../CHANGELOG.md:168 +msgid "The playbook now configures the `/.well-known/matrix/client` file for this by default, injecting into it a `cc.etke.synapse-admin` section that contains the full synapse-admin configuration. This is done even if you don't enable the synapse-admin service in your configuration. The reason for always doing it is to allow users to skip the (small) overhead of self-hosting the non-core synapse-admin service, yet still be able to use it from elsewhere when needed." +msgstr "" + +#: ../../../CHANGELOG.md:170 +msgid "If you don't ever plan on using synapse-admin from other servers (besides your own due to [self-hosting synapse-admin](./docs/configuring-playbook-synapse-admin.md)), you **can disable this** `/.well-known/matrix/client` configuration via `matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:173 +msgid "2024-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:175 +msgid "(BC Break) Postmoogle's variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:177 +msgid "Due to the recategorization of [Postmoogle](./docs/configuring-playbook-bridge-postmoogle.md) from the bot to the bridge, its variables were renamed (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`). You need to adjust your `vars.yml` configuration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:179 +msgid "2024-10-19" +msgstr "" + +#: ../../../CHANGELOG.md:181 +msgid "Support for Matrix Authentication Service" +msgstr "" + +#: ../../../CHANGELOG.md:183 +msgid "The playbook now supports installing and configuring [Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../CHANGELOG.md:185 +msgid "Huge thanks to [Quentin Gliech](https://github.com/sandhose) from the [Element](https://element.io/) / [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service) team for answering our numerous questions about MAS." +msgstr "" + +#: ../../../CHANGELOG.md:187 +msgid "This is an **experimental service** and there are **still certain issues with it** (see [Expectations](./docs/configuring-playbook-matrix-authentication-service.md#expectations)). Matrix server administrators should only consider switching if they identify with one or more [reasons to use Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md#reasons-to-use-matrix-authentication-service). As MAS adoption improves and more services are adjusted to support it, we expect that using MAS will become the norm." +msgstr "" + +#: ../../../CHANGELOG.md:189 +msgid "Our [Setting up Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) documentation page has more details about this new service, what you might expect from the switch and how you can migrate your existing (Synapse) homeserver setup to MAS." +msgstr "" + +#: ../../../CHANGELOG.md:192 +msgid "2024-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:194 +msgid "(BC Break) Postgres & Traefik roles have been relocated and variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:196 +msgid "Various roles have been relocated from the [devture](https://github.com/devture) organization to the [mother-of-all-self-hosting](https://github.com/mother-of-all-self-hosting) organization." +msgstr "" + +#: ../../../CHANGELOG.md:198 +msgid "Along with the relocation, the `devture_` prefix was dropped from their variable names, so you need to adjust your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:200 +msgid "You need to do the following replacements:" +msgstr "" + +#: ../../../CHANGELOG.md:202 +msgid "`devture_postgres_` -> `postgres_`" +msgstr "" + +#: ../../../CHANGELOG.md:203 +msgid "`devture_traefik_` -> `traefik_`" +msgstr "" + +#: ../../../CHANGELOG.md:205 +msgid "As always, the playbook would let you know about this and point out any variables you may have missed." +msgstr "" + +#: ../../../CHANGELOG.md:208 +msgid "2024-09-12" +msgstr "" + +#: ../../../CHANGELOG.md:210 +msgid "Support for baibot" +msgstr "" + +#: ../../../CHANGELOG.md:212 +msgid "The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) — a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../CHANGELOG.md:214 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as well as many other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../CHANGELOG.md:216 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to the now-unmaintained [matrix-chatgpt-bot](./docs/configuring-playbook-bot-chatgpt.md)." +msgstr "" + +#: ../../../CHANGELOG.md:218 +msgid "To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baibot.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:220 +msgid "Switching synapse-admin to etke.cc's fork" +msgstr "" + +#: ../../../CHANGELOG.md:222 +msgid "The playbook now installs [etke.cc](https://etke.cc/)'s [fork](https://github.com/etkecc/synapse-admin) of [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) (originally developed by [Awesome-Technologies](https://github.com/Awesome-Technologies)). This fork is a drop-in replacement for the original software." +msgstr "" + +#: ../../../CHANGELOG.md:224 +msgid "The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) — to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork." +msgstr "" + +#: ../../../CHANGELOG.md:226 +msgid "If upstream synapse-admin picks up the pace and improves, the etke.cc fork may disappear and the playbook may switch to the original software again. Until that time comes, we believe that etke.cc's fork is the better software to use right now." +msgstr "" + +#: ../../../CHANGELOG.md:228 +msgid "If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:241 +msgid "2024-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:243 +msgid "New appservice-double-puppet service for better double-puppeting" +msgstr "" + +#: ../../../CHANGELOG.md:245 +msgid "Mautrix bridges are undergoing large changes as announced in the [August 2024 releases & progress](https://mau.fi/blog/2024-08-mautrix-release/) blog post." +msgstr "" + +#: ../../../CHANGELOG.md:247 +msgid "The playbook has already upgraded to the rewritten mautrix-slack ([v0.1.0](https://github.com/mautrix/slack/releases/tag/v0.1.0)) and mautrix-signal ([v0.7.0](https://github.com/mautrix/signal/releases/tag/v0.7.0)) bridges." +msgstr "" + +#: ../../../CHANGELOG.md:249 +msgid "The newly rewritten bridges do not support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) anymore, which has prompted us to switch to the new & better [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new) for double-puppeting. The playbook automates this double-puppeting setup for you if you enable the new [Appservice Double Puppet](./docs/configuring-playbook-appservice-double-puppet.md) service." +msgstr "" + +#: ../../../CHANGELOG.md:251 +msgid "All non-deprecated mautrix bridges in the playbook have been reworked to support double-puppeting via an Appservice. Most bridges still support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md), so the playbook supports it too. If only Shared Secret Auth is enabled, double-puppeting will be configured using that method (for the bridges that support it). That said, **Shared Secret Auth double-puppeting is being phased out and we recommend replacing it with the new Appservice method**." +msgstr "" + +#: ../../../CHANGELOG.md:253 +msgid "We recommend **enabling double-puppeting via the new Appservice method** by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:259 +msgid "You can still **keep** [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) enabled. Non-mautrix bridges and other services (e.g. [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) may still require it." +msgstr "" + +#: ../../../CHANGELOG.md:261 +msgid "When both double-puppeting methods are enabled, the playbook will automatically choose the new and better Appservice method for bridges that support it." +msgstr "" + +#: ../../../CHANGELOG.md:264 +msgid "2024-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:266 +msgid "matrix-media-repo now configured for Authenticated Media" +msgstr "" + +#: ../../../CHANGELOG.md:268 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), our matrix-media-repo implementation now automatically [sets up signing keys](https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/) for Authenticated Media (as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916))." +msgstr "" + +#: ../../../CHANGELOG.md:270 +msgid "If you had never heard of Authenticated Media before, the [Sunsetting unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) article on [matrix.org](https://matrix.org/) is a good introduction." +msgstr "" + +#: ../../../CHANGELOG.md:272 +msgid "This feature is enabled for matrix-media-repo installations by default and will append an additional (matrix-media-repo-generated signing key) to your homeserver's (Synapse or Dendrite) signing key. See the [Signing keys](./docs/configuring-playbook-matrix-media-repo.md#signing-keys) and [Key backup and revoking](./docs/configuring-playbook-matrix-media-repo.md#key-backup-and-revoking) sections of the matrix-media-repo documentation for more details." +msgstr "" + +#: ../../../CHANGELOG.md:274 +msgid "If you'd like to avoid this new feature, you can disable it by setting `matrix_media_repo_generate_signing_key: false` in your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:277 +msgid "2024-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:279 +msgid "(Backward Compatibility Break) matrix-corporal has been upgraded to v3" +msgstr "" + +#: ../../../CHANGELOG.md:281 +msgid "The playbook now installs [matrix-corporal](https://github.com/devture/matrix-corporal) v3.0.0, which brings support for **power-level management** (thanks to [this PR](https://github.com/devture/matrix-corporal/pull/32))." +msgstr "" + +#: ../../../CHANGELOG.md:283 +msgid "This upgrade necessitates configuration policy changes as described in [matrix-corporal's changelog entry](https://github.com/devture/matrix-corporal/blob/5287cb81c82cd3b951c2a099b4697c3e0b384559/CHANGELOG.md#version-300-2024-08-08)." +msgstr "" + +#: ../../../CHANGELOG.md:285 +msgid "If you'd like to remain on the old (v2) version of matrix-corporal, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:291 +msgid "2024-07-25" +msgstr "" + +#: ../../../CHANGELOG.md:293 +msgid "synapse-usage-exporter support" +msgstr "" + +#: ../../../CHANGELOG.md:295 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) — a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape." +msgstr "" + +#: ../../../CHANGELOG.md:297 +msgid "To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](docs/configuring-playbook-synapse-usage-exporter.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:300 +msgid "2024-07-06" +msgstr "" + +#: ../../../CHANGELOG.md:302 +msgid "matrix-alertmanager-receiver support" +msgstr "" + +#: ../../../CHANGELOG.md:304 +msgid "For those wishing to more easily integrate [Prometheus](https://prometheus.io/)' alerting service ([Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)) with Matrix, the playbook can now set up [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)." +msgstr "" + +#: ../../../CHANGELOG.md:306 +msgid "See [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](./docs/configuring-playbook-alertmanager-receiver.md) for more details." +msgstr "" + +#: ../../../CHANGELOG.md:308 +msgid "Traefik v3 and HTTP/3 are here now" +msgstr "" + +#: ../../../CHANGELOG.md:310 +msgid "**TLDR**: Traefik was migrated from v2 to v3. Minor changes were done to the playbook. Mostly everything else worked out of the box. Most people will not have to do any tweaks to their configuration. In addition, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is now auto-enabled for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. If you have a firewall in front of your server and you wish to benefit from `HTTP3`, you will need to open the `443` and `8448` UDP ports in it." +msgstr "" + +#: ../../../CHANGELOG.md:312 +msgid "Traefik v3" +msgstr "" + +#: ../../../CHANGELOG.md:314 +msgid "The reverse-proxy that the playbook uses by default (Traefik) has recently been upgraded to v3 (see [this blog post](https://traefik.io/blog/announcing-traefik-proxy-v3-rc/) to learn about its new features). Version 3 includes some small breaking configuration changes requiring a [migration](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:316 +msgid "We have **updated the playbook to Traefik v3** (make sure to run `just roles` / `make roles` to get it)." +msgstr "" + +#: ../../../CHANGELOG.md:318 +msgid "There were **only minor playbook changes required** to adapt to Traefik v3, and only to the Ansible role for [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) where we changed a few [`PathPrefix` instances to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp), because these instances were using a regular expression instead of a fixed path. For fixed-path values, `PathPrefix` is still the preferred matcher function to use." +msgstr "" + +#: ../../../CHANGELOG.md:320 +msgid "**Most people using the playbook should not have to do any changes**." +msgstr "" + +#: ../../../CHANGELOG.md:322 +msgid "If you're using the playbook's Traefik instance to reverse-proxy to some other services of your own (not managed by the playbook), you may wish to review their Traefik labels and make sure they're in line with the [Traefik v2 to v3 migration guide](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:324 +msgid "If you've tweaked any of this playbook's `_path_prefix` variables and made them use a regular expression, you will now need to make additional adjustments. The playbook makes extensive use of `PathPrefix()` matchers in Traefik rules and `PathPrefix` does not support regular expressions anymore. To work around it, you may now need to override a whole `_traefik_rule` variable and switch it from [`PathPrefix` to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp)." +msgstr "" + +#: ../../../CHANGELOG.md:326 +msgid "If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` — a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand." +msgstr "" + +#: ../../../CHANGELOG.md:328 +msgid "HTTP/3 is enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:330 +msgid "In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now. Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:332 +msgid "HTTP3 uses the UDP protocol and **the playbook (together with Docker) will make sure that the appropriate ports** (`443` over UDP & `8448` over UDP) **are exposed and whitelisted in your server's firewall**. However, **if you have another firewall in front of your server** (as is the case for many cloud providers), **you will need to manually open these UDP ports**." +msgstr "" + +#: ../../../CHANGELOG.md:334 +msgid "If you do not open the UDP ports correctly or there is some other issue, clients (browsers, mostly) will fall-back to [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2) or even [HTTP/1.1](https://en.wikipedia.org/wiki/HTTP)." +msgstr "" + +#: ../../../CHANGELOG.md:336 +msgid "Still, if HTTP/3 cannot function correctly in your setup, it's best to disable advertising support for it (and misleading clients into trying to use HTTP/3)." +msgstr "" + +#: ../../../CHANGELOG.md:338 +msgid "To **disable HTTP/3**, you can use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:352 +msgid "If you are using [your own webserver](./docs/configuring-playbook-own-webserver.md) (in front of Traefik), port binding on UDP port `8448` by default due to HTTP/3 is either unnecessary or [may get in the way](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402). If it does, you can disable it:" +msgstr "" + +#: ../../../CHANGELOG.md:365 +msgid "2024-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:367 +msgid "synapse-admin is now restricted to your homeserver's URL by default" +msgstr "" + +#: ../../../CHANGELOG.md:369 +msgid "A new feature introduced in synapse-admin [v0.10.0](https://github.com/Awesome-Technologies/synapse-admin/releases/tag/0.10.0) (released and supported by the playbook since a a few months ago) provides the ability to [restrict its usage to a specific homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) (or multiple homeservers)." +msgstr "" + +#: ../../../CHANGELOG.md:371 +msgid "The playbook has just started making use of this feature. **From now on, your synapse-admin instance will be restricted to the homeserver you're managing via the playbook**. When configured like this, the *Homeserver URL* field in synapse-admin's web UI changes from a text field to a dropdown having a single value (the URL of your homeserver). This makes usage simpler for most people, as they won't need to manually enter a *Homeserver URL* anymore." +msgstr "" + +#: ../../../CHANGELOG.md:373 +msgid "If you'd like **to go back to the old unrestricted behavior**, use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:381 +msgid "2024-06-25" +msgstr "" + +#: ../../../CHANGELOG.md:383 +msgid "The URL-prefix for Hookshot generic webhooks has changed" +msgstr "" + +#: ../../../CHANGELOG.md:385 +msgid "Until now, generic Hookshot webhook URLs looked like this: `https://matrix.example.com/hookshot/webhooks/:hookId`." +msgstr "" + +#: ../../../CHANGELOG.md:387 +msgid "The `/hookshot/webhooks` common prefix gets stripped by Traefik automatically, so Hookshot only sees the part that comes after (`/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:389 +msgid "[A few years ago](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681), Hookshot started to prefer to handle webhooks at a `/webhook/:hookId` path (instead of directly at `/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:391 +msgid "To avoid future problems, we've [reconfigured](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/4704a60718946fd469aeee7fc3ae8127c633bb6b) our Hookshot configuration to use webhook URLs that include `/webhook` in the URL suffix (e.g. `/hookshot/webhooks/webhook/:hookId`, instead of `/hookshot/webhooks/:hookId`). This means that when we strip the common prefi (`/hookshot/webhooks`), we'll end up sending `/webhook/:hookId` to Hookshot, just like recommended." +msgstr "" + +#: ../../../CHANGELOG.md:393 +msgid "When generating new webhooks, you should start seeing the new URLs being used." +msgstr "" + +#: ../../../CHANGELOG.md:395 +msgid "**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work**, so your webhooks will not break just yet." +msgstr "" + +#: ../../../CHANGELOG.md:397 +msgid "However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side — you merely need to reconfigure the remote systems that use your webhook URLs." +msgstr "" + +#: ../../../CHANGELOG.md:400 +msgid "2024-06-22" +msgstr "" + +#: ../../../CHANGELOG.md:402 +msgid "The maubot user is now managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:404 +msgid "To make things easier and to be consistent with other roles, the [maubot](./docs/configuring-playbook-bot-maubot.md) user (`bot.maubot` by default) is [now](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3376) automatically created be the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:406 +msgid "If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined. Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable." +msgstr "" + +#: ../../../CHANGELOG.md:408 +msgid "If you've registered another username for the bot (other than the recommended default of `bot.maubot`), consider adjusting the `matrix_bot_maubot_login` variable (e.g. `matrix_bot_maubot_login: my.maubot.username`)." +msgstr "" + +#: ../../../CHANGELOG.md:411 +msgid "2024-06-03" +msgstr "" + +#: ../../../CHANGELOG.md:413 +msgid "WeChat bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:415 +msgid "Thanks to [Tobias Diez](https://github.com/tobiasdiez)'s [efforts](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3241), the playbook now supports bridging to [WeChat](https://www.wechat.com/) via the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:417 +msgid "See our [Setting up WeChat bridging](docs/configuring-playbook-bridge-wechat.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:420 +msgid "2024-03-26" +msgstr "" + +#: ../../../CHANGELOG.md:422 +msgid "(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis" +msgstr "" + +#: ../../../CHANGELOG.md:424 +msgid "**TLDR**: if the playbook used installed Redis as a dependency for you before, it will now replace it with [KeyDB](https://docs.keydb.dev/) (a drop-in alternative) due to [Redis having changed its license](https://redis.com/blog/redis-adopts-dual-source-available-licensing/)." +msgstr "" + +#: ../../../CHANGELOG.md:426 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now uses [KeyDB](https://docs.keydb.dev/) (a drop-in alternative for Redis), instead of [Redis](https://redis.io/)." +msgstr "" + +#: ../../../CHANGELOG.md:428 +msgid "The playbook used to install Redis (and now installs KeyDB in its place) if services have a need for it ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.) or if you explicitly enabled the service (`redis_enabled: true` or `keydb_enabled: true`)." +msgstr "" + +#: ../../../CHANGELOG.md:430 +msgid "This change is provoked by the fact that [Redis is now \"source available\"](https://redis.com/blog/redis-adopts-dual-source-available-licensing/). According to the Limitations of [the new license](https://redis.com/legal/rsalv2-agreement/) (as best as we understand them, given that we're not lawyers), using Redis in the playbook (even in a commercial FOSS service like [etke.cc](https://etke.cc/)) does not violate the new Redis license. That said, we'd rather neither risk it, nor endorse shady licenses and products that pretend to be free-software. Another high-quality alternative to Redis seems to be [Dragonfly](https://www.dragonflydb.io/), but the [Dragonfly license](https://github.com/dragonflydb/dragonfly?tab=License-1-ov-file#readme) is no better than Redis's." +msgstr "" + +#: ../../../CHANGELOG.md:432 +msgid "Next time your run the playbook (via the `setup-all` tag), **Redis will be automatically uninstalled and replaced with KeyDB**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:434 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for KeyDB**, nor the KeyDB role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of KeyDB (or Redis). If Redis is necessary in an `arm32` deployment, disabling KeyDB and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:445 +msgid "2024-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:447 +msgid "Initial work on IPv6 support" +msgstr "" + +#: ../../../CHANGELOG.md:449 +msgid "Thanks to [Tilo Spannagel](https://github.com/tilosp), the playbook can now enable IPv6 for container networks for various components (roles) via [the `devture_systemd_docker_base_ipv6_enabled` variable](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L14-L31)." +msgstr "" + +#: ../../../CHANGELOG.md:451 +msgid "It should be noted that:" +msgstr "" + +#: ../../../CHANGELOG.md:453 +msgid "Matrix roles (`roles/custom/matrix-*`) respect this variable, but external roles (those defined in `requirements.yml` and installed via `just roles`) do not respect it yet. Additional work is necessary" +msgstr "" + +#: ../../../CHANGELOG.md:454 +msgid "changing the variable subsequently may not change existing container networks. Refer to [these instructions](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L26-L30)" +msgstr "" + +#: ../../../CHANGELOG.md:455 +msgid "this is all very new and untested" +msgstr "" + +#: ../../../CHANGELOG.md:457 +msgid "Pantalaimon support" +msgstr "" + +#: ../../../CHANGELOG.md:459 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms — see our Draupnir docs for details." +msgstr "" + +#: ../../../CHANGELOG.md:461 +msgid "See our [Setting up Pantalaimon](docs/configuring-playbook-pantalaimon.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:464 +msgid "2024-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:466 +msgid "Support for Draupnir-for-all" +msgstr "" + +#: ../../../CHANGELOG.md:468 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) (aka multi-instance Draupnir running in appservice mode)." +msgstr "" + +#: ../../../CHANGELOG.md:470 +msgid "This is an alternative to [running Draupnir in bot mode](./docs/configuring-playbook-bot-draupnir.md), which is still supported by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:472 +msgid "The documentation page for [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) contains more information on how to install it." +msgstr "" + +#: ../../../CHANGELOG.md:475 +msgid "2024-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:477 +msgid "Support for bridging to Facebook/Messenger via the new mautrix-meta bridge" +msgstr "" + +#: ../../../CHANGELOG.md:479 +msgid "The [mautrix-facebook](./docs/configuring-playbook-bridge-mautrix-facebook.md) and [mautrix-instagram](./docs/configuring-playbook-bridge-mautrix-instagram.md) bridges are being [superseded by a new bridge](https://github.com/mautrix/facebook/issues/332) — the [mautrix-meta](https://github.com/mautrix/meta) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:481 +msgid "The playbook now supports the new mautrix-meta bridge — a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time." +msgstr "" + +#: ../../../CHANGELOG.md:483 +msgid "If you're using mautrix-facebook or mautrix-instagram right now, **you can still continue using the old bridges, but may wish to change to the new bridge implementations**. See:" +msgstr "" + +#: ../../../CHANGELOG.md:485 +msgid "[Setting up Instagram bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../CHANGELOG.md:487 +msgid "[Setting up Messenger bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../CHANGELOG.md:489 +msgid "The documentation pages contain more information on how to migrate." +msgstr "" + +#: ../../../CHANGELOG.md:492 +msgid "2024-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:494 +msgid "Much larger Synapse caches and cache auto-tuning enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:496 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). This work and the default values used by the playbook are inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/deployment/synapse.html)." +msgstr "" + +#: ../../../CHANGELOG.md:498 +msgid "The playbook has always used a very conservative cache factor (`matrix_synapse_caches_global_factor`) value of `0.5`, which may be OK for small and underactive deployments, but is not ideal for larger servers. Paradoxically, a small global cache factor value [does not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../CHANGELOG.md:500 +msgid "The playbook now uses **a 20x larger cache factor** (currently `10`), adjusts a few other cache-related variables, and **enables cache auto-tuning** via the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:502 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:503 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:504 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../CHANGELOG.md:506 +msgid "These values should be good defaults for most servers, but may change over time as we experiment further." +msgstr "" + +#: ../../../CHANGELOG.md:508 +msgid "Refer to our new [Tuning caches and cache autotuning](docs/maintenance-synapse.md#tuning-caches-and-cache-autotuning) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:511 +msgid "2024-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:513 +msgid "(Backward-compatibility break) Minor changes necessary for some people serving a static website at the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:515 +msgid "This only affects people who are [Serving a static website at the base domain](./docs/configuring-playbook-base-domain-serving.md#serving-a-static-website-at-the-base-domain), but not managing its `index.html` through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:517 +msgid "That is, for people who have `matrix_static_files_file_index_html_enabled: false` in their `vars.yml` configuration, the playbook has a new default behavior. Since the playbook is not managing the `index.html` file, it will default to a more sensible way of handling the base domain — redirecting `https://example.com/` to `https://matrix.example.com/`, instead of serving a 404 page." +msgstr "" + +#: ../../../CHANGELOG.md:519 +msgid "If you are managing your static website by yourself (by dropping files into `/matrix/static-files/public` somehow), then you probably don't wish for such redirection to happen. You can disable it by adding `matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:522 +msgid "2024-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:524 +msgid "Support for more efficient (specialized) Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:526 +msgid "Thanks to [Charles Wright](https://github.com/cvwright) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook has [received support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3100) for load-balancing the Synapse workload via [specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) which are supposed to work better than our old [generic workers](./docs/configuring-playbook-synapse.md#generic-workers) implementation." +msgstr "" + +#: ../../../CHANGELOG.md:528 +msgid "For now, playbook defaults remain unchanged and the `one-of-each` [workers preset](./docs/configuring-playbook-synapse.md#worker-presets) continues being the default. However, the default may change in the future. If you'd like to remain on this preset even if/when the defaults change, consider explicitly adding `matrix_synapse_workers_preset: one-of-each` to your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:530 +msgid "Our specialized workers setup is based on recommendations found in [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). What's special about our new setup is that we try to parse information out of the request (who the user is; which room is being operated on) and try to forward similar requests to the same worker. As an example, this means that once a worker caches some room information, subsequent requests for the same room will be routed to the same worker (which supposedly still has the room's state cached)." +msgstr "" + +#: ../../../CHANGELOG.md:532 +msgid "To get started, refer to our [Specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) documentation section." +msgstr "" + +#: ../../../CHANGELOG.md:535 +msgid "2024-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:537 +msgid "Switching to Element's AGPLv3-licensed Synapse release" +msgstr "" + +#: ../../../CHANGELOG.md:539 +msgid "A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under:" +msgstr "" + +#: ../../../CHANGELOG.md:541 +msgid "the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license — the same license that this Ansible playbook has always used" +msgstr "" + +#: ../../../CHANGELOG.md:542 +msgid "a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license" +msgstr "" + +#: ../../../CHANGELOG.md:544 +msgid "You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation." +msgstr "" + +#: ../../../CHANGELOG.md:546 +msgid "The change has [already happened](https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/) and the first Synapse release under the new license is here: [v1.99.0](https://github.com/element-hq/synapse/releases/tag/v1.99.0)." +msgstr "" + +#: ../../../CHANGELOG.md:548 +msgid "There is no up-to-date alternative Synapse fork right now and this free-software (AGPLv3-licensed) playbook is definitely not against free-software licenses, so we are now switching to the Element-maintained Synapse release." +msgstr "" + +#: ../../../CHANGELOG.md:550 +msgid "**What does this mean to you?**" +msgstr "" + +#: ../../../CHANGELOG.md:552 +msgid "For most home users, it doesn't mean anything. Your installation will continue working as it should and you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:554 +msgid "For people building commercial products on top of Synapse, they may have to either buy a license exception from Element (from what we hear, the fee depends on the number of monthly-active users on your instance) or they may need to release all related code as free-software (which is what we've been doing at [etke.cc](https://etke.cc/) ([here](https://gitlab.com/etke.cc)) all along)." +msgstr "" + +#: ../../../CHANGELOG.md:556 +msgid "We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own!" +msgstr "" + +#: ../../../CHANGELOG.md:558 +msgid "If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this:" +msgstr "" + +#: ../../../CHANGELOG.md:570 +msgid "Notes:" +msgstr "" + +#: ../../../CHANGELOG.md:572 +msgid "if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` — see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version" +msgstr "" + +#: ../../../CHANGELOG.md:574 +msgid "running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution." +msgstr "" + +#: ../../../CHANGELOG.md:576 +msgid "2024-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:578 +msgid "`Draupnir` has been relicensed to AFL-3.0" +msgstr "" + +#: ../../../CHANGELOG.md:580 +msgid "As of [#204](https://github.com/the-draupnir-project/Draupnir/pull/204) Draupnir changed its licence to AFL-3.0 from the CSL licence. This change affects playbook users who could not run Draupnir under the old license restrictions. The new license is considerably less restrictive and is OSI approved. Draupnir version v1.86.0 and later are covered by this license change." +msgstr "" + +#: ../../../CHANGELOG.md:582 +msgid "2024-01-15" +msgstr "" + +#: ../../../CHANGELOG.md:584 +msgid "Goodbye, `matrix-nginx-proxy` 🪦" +msgstr "" + +#: ../../../CHANGELOG.md:586 +msgid "**TLDR**: All traces of the `matrix-nginx-proxy` reverse-proxy component are now gone. This brought about many other internal changes (and security improvements), so setups may need minor adjustments or suffer some (temporary) breakage. People who have been on the Traefik-native setup may upgrade without much issues. Those running their own Traefik instance may need minor changes. People who have been postponing the migration away from `matrix-nginx-proxy` (for more than a year already!) will now finally need to do something about it." +msgstr "" + +#: ../../../CHANGELOG.md:588 +msgid "Backstory on `matrix-nginx-proxy`" +msgstr "" + +#: ../../../CHANGELOG.md:590 +msgid "We gather here today to celebrate the loss of a once-beloved component in our stack — `matrix-nginx-proxy`. It's been our [nginx](https://nginx.org/)-based reverse-proxy of choice since the [first commit](https://github.com/spantaleev/matrix-docker-ansible-deploy/tree/87f5883f2455fb115457b65f267f17de305c053c) of this playbook, 7 years ago." +msgstr "" + +#: ../../../CHANGELOG.md:592 +msgid "For 6 years, `matrix-nginx-proxy` has been the front-most reverse-proxy in our setup (doing SSL termination, etc.). After [transitioning to Traefik last year](#traefik-is-the-default-reverse-proxy-now), `matrix-nginx-proxy` took a step back. Nevertheless, since it was so ingrained into the playbook, it still remained in use — even if only internally. Despite our warnings of its imminent death, many of you have indubitably continued to use it instead of Traefik. Its suffering continued for too long, because it served many different purposes and massive effort was required to transition them to others." +msgstr "" + +#: ../../../CHANGELOG.md:594 +msgid "To us, `matrix-nginx-proxy` was:" +msgstr "" + +#: ../../../CHANGELOG.md:596 +msgid "an [nginx](https://nginx.org/)-based reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:597 +msgid "an Ansible role organizing the work of [certbot](https://certbot.eff.org/) — retrieving free [Let's Encrypt](https://letsencrypt.org/) SSL certificates for `matrix-nginx-proxy` and for the [coturn TURN server](./docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../CHANGELOG.md:598 +msgid "a central component for reverse-proxying to the [long list of services](./docs/configuring-playbook.md) supported by the playbook. As such, it became a dependency that all these services had to inject themselves into during runtime" +msgstr "" + +#: ../../../CHANGELOG.md:599 +msgid "an intermediary through which addons (bridges, bots) communicated with the homeserver. Going through an intermediary (instead of directly talking to the homeserver) is useful when certain components (like [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) are enabled, because it lets these services \"steal routes\" from the homeserver" +msgstr "" + +#: ../../../CHANGELOG.md:600 +msgid "a webserver for serving the `/.well-known/matrix` static files (generated by the `matrix-base` role until now)" +msgstr "" + +#: ../../../CHANGELOG.md:601 +msgid "a webserver [serving your base domain](./docs/configuring-playbook-base-domain-serving.md) (and also generating the `index.html` page for it)" +msgstr "" + +#: ../../../CHANGELOG.md:602 +msgid "a central component providing global [HTTP Basic Auth](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) password-protection for all `/metrics` endpoints when metrics were exposed publicly for consumption from a remote Prometheus server" +msgstr "" + +#: ../../../CHANGELOG.md:604 +msgid "Talk about a jack of all trades! The [UNIX philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) (and Docker container philosophy) of \"do one thing and do it well\" had been severely violated for too long." +msgstr "" + +#: ../../../CHANGELOG.md:606 +msgid "On a related note, we also had a large chain of reverse-proxies in the mix. In the worst case, it was something like this: (Traefik -> `matrix-nginx-proxy:8080` -> `matrix-nginx-proxy:12080` -> `matrix-synapse-reverse-proxy-companion:8008` -> `matrix-synapse:8008`)." +msgstr "" + +#: ../../../CHANGELOG.md:608 +msgid "Due to complexity and the playbook's flexibility (trying to accommodate a mix of tens of components), many layers of indirection were necessary. We do like reverse-proxies, but… not quite enough to enjoy going through a chain of ~4 of them before reaching the target service." +msgstr "" + +#: ../../../CHANGELOG.md:610 +msgid "After **a ton of work** in the last weeks (200+ commits, which changed 467 files - 8684 insertions and 8913 deletions), **we're finally saying goodbye** to `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:612 +msgid "Going Traefik-native and cutting out all middlemen" +msgstr "" + +#: ../../../CHANGELOG.md:614 +msgid "In our new setup, you'll see the bare minimum number of reverse-proxies." +msgstr "" + +#: ../../../CHANGELOG.md:616 +msgid "In most cases, there's only Traefik and all services being registered directly with it. When [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) are enabled, `matrix-synapse-reverse-proxy-companion` remains as an extra reverse-proxy that requests go through (for load-balancing to the correct Synapse worker), but in all other cases services are exposed directly." +msgstr "" + +#: ../../../CHANGELOG.md:618 +msgid "This reduces \"network\" hops (improving performance) and also decreases the number of components (containers). Each Ansible role in our setup is now independent and doesn't need to interact with other roles during runtime." +msgstr "" + +#: ../../../CHANGELOG.md:620 +msgid "Traefik now has an extra job" +msgstr "" + +#: ../../../CHANGELOG.md:622 +msgid "Previously, **Traefik had a single purpose** — being the main reverse-proxy. It was either front-most (terminating SSL, etc.) or you were [fronting Traefik with your own other reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). In any case — it had this central (yet decentralized) job." +msgstr "" + +#: ../../../CHANGELOG.md:624 +msgid "Now, **Traefik has one more role** — it serves as an intermediary which allows addon services (bridges, bots, etc.) to communicate with the homeserver. As mentioned above, such an intermediary service is not strictly necessary in all kinds of setups, but more complex setups (including [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) benefit from it." +msgstr "" + +#: ../../../CHANGELOG.md:626 +msgid "To perform this new role, Traefik now has a new internal [entrypoint](https://doc.traefik.io/traefik/routing/entrypoints/) called `matrix-internal-matrix-client-api`. All homeservers (Conduit, Dendrite, Synapse and even `matrix-synapse-reverse-proxy-companion`) and homeserver-related core services ([matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md), [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md) and potentially others) register their routes (using [container labels](https://docs.docker.com/config/labels-custom-metadata/)) not only on the public entrypoints (`web-secure`, `matrix-federation`), but also on this new internal entrypoint." +msgstr "" + +#: ../../../CHANGELOG.md:628 +msgid "Doing so, services can contact Traefik on this entrypoint's dedicated port (the URL defaults to `http://matrix-traefik:8008`) and reach the homeserver Client-Server API as they expect. Internally, Traefik takes care of the routing to the correct service." +msgstr "" + +#: ../../../CHANGELOG.md:630 +msgid "We've also considered keeping it simple and having services talk to the homeserver over the public internet (e.g. `https://matrix.example.com`) thus reusing all existing Traefik routing labels. In this scenario, performance was incredibly poor (e.g. 70 rps, instead of 1400 rps) due to TLS and networking overhead. The need for fast internal communication (via the new internal non-TLS-enabled Traefik entrypoint) is definitely there. In our benchmarks, Traefik even proved more efficient than nginx at doing this: ~1200 rps for Traefik compared to ~900 rps for nginx (out of ~1400 rps when talking to the Synapse homeserver directly)." +msgstr "" + +#: ../../../CHANGELOG.md:632 +msgid "Traefik serving this second purpose has a few downsides:" +msgstr "" + +#: ../../../CHANGELOG.md:634 +msgid "Traefik becomes a runtime dependency for all homeserver-dependant container services" +msgstr "" + +#: ../../../CHANGELOG.md:635 +msgid "all homeserver-dependant services now need to be connected to the `traefik` container network, even if they don't need public internet exposure" +msgstr "" + +#: ../../../CHANGELOG.md:637 +msgid "Despite these downsides (which the playbook manages automatically), we believe it's still a good compromise given the amount of complexity it eliminates and the performance benefits it yields. One alternative we've [considered](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3045#issuecomment-1867327001) was adding a new intermediary service (e.g. `matrix-homeserver-proxy` powered by nginx), but this both had much higher complexity (one more component in the mix; duplication of effort to produce nginx-compatible route definitions for it) and slightly worse performance (see above)." +msgstr "" + +#: ../../../CHANGELOG.md:639 +msgid "People running the default Traefik setup do not need to do anything to make Traefik take on this extra job. Your Traefik configuration will be updated automatically." +msgstr "" + +#: ../../../CHANGELOG.md:641 +msgid "**People runnning their own Traefik reverse-proxy need to do [minor adjustments](#people-managing-their-own-traefik-instance-need-to-do-minor-changes)**, as described in the section below." +msgstr "" + +#: ../../../CHANGELOG.md:643 +msgid "You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a \"simpler\" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended." +msgstr "" + +#: ../../../CHANGELOG.md:645 +msgid "People managing their own Traefik instance need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:647 +msgid "This section is for people [managing their own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you). Those [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) don't need to do any changes." +msgstr "" + +#: ../../../CHANGELOG.md:649 +msgid "Because [Traefik has an extra job now](#traefik-now-has-an-extra-job), you need to adapt your configuration to add the additional `matrix-internal-matrix-client-api` entrypoint and potentially configure the `matrix_playbook_reverse_proxy_container_network` variable. See the [Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:651 +msgid "People fronting Traefik with another reverse proxy need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:653 +msgid "We've already previously mentioned that you need to do some minor [configuration changes related to `traefik_additional_entrypoints_auto`](#backward-compatibility-configuration-changes-required-for-people-fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:655 +msgid "If you don't do these changes (switching from `traefik_additional_entrypoints_auto` to multiple other variables), your Traefik setup will not automatically receive the new `matrix-internal-matrix-client-api` Traefik entrypoint and Traefik would not be able to perform [its new duty of connecting addons with the homeserver](#traefik-now-has-an-extra-job)." +msgstr "" + +#: ../../../CHANGELOG.md:657 +msgid "Supported reverse proxy types are now fewer" +msgstr "" + +#: ../../../CHANGELOG.md:659 +msgid "This section is for people using a more custom reverse-proxy setup — those having `matrix_playbook_reverse_proxy_type` set to a value different than the default (`playbook-managed-traefik`)." +msgstr "" + +#: ../../../CHANGELOG.md:661 +msgid "Previously, we allowed you to set `matrix_playbook_reverse_proxy_type` to 7 different values to accommodate various reverse-proxy setups." +msgstr "" + +#: ../../../CHANGELOG.md:663 +msgid "The complexity of this is too high, so we only support 3 values right now:" +msgstr "" + +#: ../../../CHANGELOG.md:665 +msgid "(the default) `playbook-managed-traefik`, when you're [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:666 +msgid "`other-traefik-container`, when you're [managing your own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)" +msgstr "" + +#: ../../../CHANGELOG.md:667 +msgid "`none`, when you wish for [no reverse-proxy integration to be done at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all)" +msgstr "" + +#: ../../../CHANGELOG.md:669 +msgid "The `none` value is not recommended and may not work adequately, due to lack of testing and [Traefik's new responsibilities](#traefik-now-has-an-extra-job) in our setup." +msgstr "" + +#: ../../../CHANGELOG.md:671 +msgid "**Previous values that are now gone** (and the playbook would report them as such) are: `playbook-managed-nginx`, `other-nginx-non-container`, `other-on-same-host` and `other-on-another-host`." +msgstr "" + +#: ../../../CHANGELOG.md:673 +msgid "If you were using these values as a way to stay away from Traefik, you now have 2 options:" +msgstr "" + +#: ../../../CHANGELOG.md:675 +msgid "(recommended) [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)" +msgstr "" + +#: ../../../CHANGELOG.md:676 +msgid "(not recommended) [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all) and reverse-proxying to each and every service manually" +msgstr "" + +#: ../../../CHANGELOG.md:678 +msgid "Container networking changes" +msgstr "" + +#: ../../../CHANGELOG.md:680 +msgid "Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out some other long-overdue technical debt." +msgstr "" + +#: ../../../CHANGELOG.md:682 +msgid "Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network." +msgstr "" + +#: ../../../CHANGELOG.md:684 +msgid "Moving components (especially the database) into other container networks was difficult — it required changes to many other components to ensure correct connectivity." +msgstr "" + +#: ../../../CHANGELOG.md:686 +msgid "All the hard work has been done now. We've added much more isolation between services by splitting them up into separate networks (`matrix-homeserver`, `matrix-addons`, `matrix-monitoring`, `matrix-exim-relay`, etc). Components are only joined to the networks they need and should (for the most part) not be able to access unrelated things." +msgstr "" + +#: ../../../CHANGELOG.md:688 +msgid "Carrying out these container networking changes necessitated modifying many components, so **we're hoping not too many bugs were introduced in the process**." +msgstr "" + +#: ../../../CHANGELOG.md:690 +msgid "We've refrained from creating too many container networks (e.g. one for each component), to avoid exhausting Docker's default network pool and contaminating the container networks list too much." +msgstr "" + +#: ../../../CHANGELOG.md:692 +msgid "Metrics exposure changes" +msgstr "" + +#: ../../../CHANGELOG.md:694 +msgid "This section is for people who are exposing monitoring metrics publicly, to be consumed by an external Prometheus server." +msgstr "" + +#: ../../../CHANGELOG.md:696 +msgid "Previously, `matrix-nginx-proxy` was potentially password-protecting all `/metrics/*` endpoints with the same username and password (specified as plain-text in your `vars.yml` configuration file)." +msgstr "" + +#: ../../../CHANGELOG.md:698 +msgid "From now on, there are new variables for doing roughly the same — `matrix_metrics_exposure_enabled`, `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. See the [Prometheus & Grafana](./docs/configuring-playbook-prometheus-grafana.md) docs page for details." +msgstr "" + +#: ../../../CHANGELOG.md:700 +msgid "`matrix-nginx-proxy` is not acting as a \"global guardian\" anymore. Now, each role provides its own metrics exposure and protection by registering with Traefik. Nevertheless, all roles are wired (via playbook configuration in `group_vars/matrix_servers`) to obey these new `matrix_metrics_exposure_*` variables. We've eliminated the centralization, but have kept the ease of use. Now, you can also do per-service password-protection (with different credentials), should you need to do that for some reason." +msgstr "" + +#: ../../../CHANGELOG.md:702 +msgid "The playbook will tell you about all variables that you need to migrate during runtime, so rest assured — you shouldn't be able to miss anything!" +msgstr "" + +#: ../../../CHANGELOG.md:704 +msgid "Matrix static files" +msgstr "" + +#: ../../../CHANGELOG.md:706 +msgid "As mentioned above, static files like `/.well-known/matrix/*` or your base domain's `index.html` file (when [serving the base domain via the Matrix server](./docs/configuring-playbook-base-domain-serving.md) was enabled) were generated by the `matrix-base` or `matrix-nginx-proxy` roles and put into a `/matrix/static-files` directory on the server. Then `matrix-nginx-proxy` was serving all these static files." +msgstr "" + +#: ../../../CHANGELOG.md:708 +msgid "All of this has been extracted into a new `matrix-static-files` Ansible role that's part of the playbook. The static files generated by this new role still live at roughly the same place (`/matrix/static-files/public` directory, instead of `/matrix/static-files`)." +msgstr "" + +#: ../../../CHANGELOG.md:710 +msgid "The playbook will migrate and update the `/.well-known/matrix/*` files automatically but not your own files in `nginx-proxy/data/matrix-domain/` you will need to back these up yourself otherwise they will be lost. It will also warn you about usage of old variable names, so you can adapt to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:712 +msgid "A note on performance" +msgstr "" + +#: ../../../CHANGELOG.md:714 +msgid "Some of you have been voicing their concerns (for a long time) about Traefik being too slow and nginx being better." +msgstr "" + +#: ../../../CHANGELOG.md:716 +msgid "Some online benchmarks support this by demonstrating slightly higher SSL-termination performance in favor of nginx. The upcoming Traefik v3 release is [said to](https://medium.com/beyn-technology/is-nginx-dead-is-traefik-v3-20-faster-than-traefik-v2-f28ffb7eed3e) improve Traefik's SSL performance by some 20%, but that still ends up being somewhat slower than nginx." +msgstr "" + +#: ../../../CHANGELOG.md:718 +msgid "We believe that using Traefik provides way too many benefits to worry about this minor performance impairment." +msgstr "" + +#: ../../../CHANGELOG.md:720 +msgid "The heaviest part of running a Matrix homeserver is all the slow and potentially inefficient things the homeserver (e.g. Synapse) is doing. These things affect performance much more than whatever reverse-proxy is in front. Your server will die the same way by joining the famously large **Matrix HQ** room, no matter which reverse-proxy you put in front." +msgstr "" + +#: ../../../CHANGELOG.md:722 +msgid "Even our previously mentioned benchmarks (yielding ~1300 rps) are synthetic — hitting a useless `/_matrix/client/versions` endpoint. Real-use does much more than this." +msgstr "" + +#: ../../../CHANGELOG.md:724 +msgid "If this is still not convincing enough for you and you want the best possible performance, consider [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (thus having the slowest part — SSL termination — happen elsewhere) or [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all). The playbook will not get in your way of doing that, but these options may make your life much harder. Performance comes at a cost, after all." +msgstr "" + +#: ../../../CHANGELOG.md:726 +msgid "Migration procedure" +msgstr "" + +#: ../../../CHANGELOG.md:728 +msgid "The updated playbook will automatically perform some migration tasks for you:" +msgstr "" + +#: ../../../CHANGELOG.md:730 +msgid "It will stop and remove the `matrix-nginx-proxy` systemd service and container for you. This behavior cannot be disabled. It's essential that this service gets stopped, because it remaining running (and having container labels) may confuse Traefik as to where to route HTTP requests." +msgstr "" + +#: ../../../CHANGELOG.md:732 +msgid "It will delete the `/matrix/nginx-proxy` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_uninstallation_enabled: false` to your `vars.yml` configuration file. Doing so will leave its data around." +msgstr "" + +#: ../../../CHANGELOG.md:734 +msgid "It will delete the `/matrix/ssl` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_uninstallation_enabled: false` to your `vars.yml` configuration file. If you have some important certificates there for some reason, take them out or temporarily disable removal of these files until you do." +msgstr "" + +#: ../../../CHANGELOG.md:736 +msgid "It will tell you about all variables (`matrix_nginx_proxy_*` and many others — even from other roles) that have changed during this large nginx-elimination upgrade. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:738 +msgid "It will tell you about any leftover `matrix_nginx_proxy_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_leftover_variable_validation_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:740 +msgid "It will tell you about any leftover `matrix_ssl_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_leftover_variable_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:742 +msgid "We don't recommend changing these variables and suppressing warnings, unless you know what you're doing." +msgstr "" + +#: ../../../CHANGELOG.md:744 +msgid "**Most people should just upgrade as per-normal**, bearing in mind that a lot has changed and some issues may arise. The playbook would guide you through renamed variables automatically." +msgstr "" + +#: ../../../CHANGELOG.md:746 +msgid "Conclusion" +msgstr "" + +#: ../../../CHANGELOG.md:748 +msgid "Thousands of lines of code were changed across hundreds of files. All addons (bridges, bots) were rewired in terms of container networking and in terms of how they reach the homeserver." +msgstr "" + +#: ../../../CHANGELOG.md:750 +msgid "I don't actively use all the ~100 components offered by the playbook (no one does), nor do I operate servers exercising all edge-cases. As such, issues may arise. Please have patience and report (or try to fix) these issues!" +msgstr "" + +#: ../../../CHANGELOG.md:753 +msgid "2024-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:755 +msgid "(Backward Compatibility) Configuration changes required for people fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:757 +msgid "If you're on the default setup (using the Traefik reverse-proxy as installed by the playbook), you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:759 +msgid "People who are [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), as per our previous instructions are redefining `traefik_additional_entrypoints_auto` in their `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:761 +msgid "Such a full variable redefinion is intrustive, because it prevents the playbook from injecting additional entrypoints into the Traefik webserver. In the future, the playbook may have a need to do so." +msgstr "" + +#: ../../../CHANGELOG.md:763 +msgid "For this reason, we no longer recommend completely redefining `traefik_additional_entrypoints_auto`. The playbook now defines [various `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_*` variables in the `defaults/main.yml` file](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-base/defaults/main.yml) of the `matrix-base` role which can be used as a safer alternative to `traefik_additional_entrypoints_auto`." +msgstr "" + +#: ../../../CHANGELOG.md:765 +msgid "Adapt your configuration as seen below:" +msgstr "" + +#: ../../../CHANGELOG.md:798 +msgid "Also, feel free to read the [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section again for additional details." +msgstr "" + +#: ../../../CHANGELOG.md:801 +msgid "2024-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:803 +msgid "matrix-reminder-bot update with more secure (backward-incompatible) default settings" +msgstr "" + +#: ../../../CHANGELOG.md:805 +msgid "**TLDR**: your updated (to [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0)) [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) is now more secure. By default, like other bridges/bots managed by the playbook, it will only provide its services to users of your own server (not to anyone, even across the Matrix Federation). If that's fine, there's nothing you need to do." +msgstr "" + +#: ../../../CHANGELOG.md:807 +msgid "Maintenance of [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) has been picked up by [Kim Brose](https://github.com/HarHarLinks) and [@svierne](https://github.com/svierne)." +msgstr "" + +#: ../../../CHANGELOG.md:809 +msgid "Thanks to them, a new [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0) release is out. The new version is now available for the ARM64 architecture, so playbook users on this architecture will no longer need to wait for [self-building](./docs/self-building.md) to happen." +msgstr "" + +#: ../../../CHANGELOG.md:811 +msgid "The new version also comes with new `allowlist` and `blocklist` settings, which make it possible to restrict who can use the bot. Previously anyone, even across the Matrix Federation could talk to it and schedule reminders." +msgstr "" + +#: ../../../CHANGELOG.md:813 +msgid "The playbook defaults all bridges and bots (where possible) to only be exposed to users of the current homeserver, not users across federation. Thanks to the new version of this bot making such a restriction possible, we're now making use of it. The playbook (via its `group_vars/matrix_servers` file) automatically enables the `allowlist` (`matrix_bot_matrix_reminder_bot_allowlist_enabled: true`) and configures it in such a way (`matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) so as to restrict the bot to your homeserver's users." +msgstr "" + +#: ../../../CHANGELOG.md:815 +msgid "If you need **to undo or tweak these security improvements**, you can change your `vars.yml` file to:" +msgstr "" + +#: ../../../CHANGELOG.md:817 +msgid "disable the allowlist (`matrix_bot_matrix_reminder_bot_allowlist_enabled: false`), making the bot allow usage by anyone, anywhere" +msgstr "" + +#: ../../../CHANGELOG.md:819 +msgid "inject additional allowed servers or users by adding **additional** (on top of the default allowlist in `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) custom regexes in the `matrix_bot_matrix_reminder_bot_allowlist_regexes_custom` list variable (see the [syntax reference](https://github.com/anoadragon453/matrix-reminder-bot/blob/1e910c0aa3469d280d93ee7e6c6d577227a3460c/sample.config.yaml#L43-L49))" +msgstr "" + +#: ../../../CHANGELOG.md:821 +msgid "override the default allowlist (in the `group_vars/matrix_servers` file) by redefining `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`" +msgstr "" + +#: ../../../CHANGELOG.md:824 +msgid "2024-01-05" +msgstr "" + +#: ../../../CHANGELOG.md:826 +msgid "matrix-mailer has been replaced by the exim-relay external role" +msgstr "" + +#: ../../../CHANGELOG.md:828 ../../../CHANGELOG.md:1468 +msgid "We're continuing our effort to make [the playbook use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things), so as to avoid doing everything ourselves and to facilitate code re-use." +msgstr "" + +#: ../../../CHANGELOG.md:830 +msgid "The `matrix-mailer` role has been moved to its own repository ([ansible-role-exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay)) that this playbook now includes." +msgstr "" + +#: ../../../CHANGELOG.md:832 +msgid "To migrate:" +msgstr "" + +#: ../../../CHANGELOG.md:834 +msgid "pull the playbook changes, as usual" +msgstr "" + +#: ../../../CHANGELOG.md:835 +msgid "update your roles (run `just roles` or `make roles`)" +msgstr "" + +#: ../../../CHANGELOG.md:836 +msgid "update your `vars.yml`, renaming `matrix_mailer`-prefixed variables to `exim_relay`-prefixed ones (e.g. `matrix_mailer_sender_address` -> `exim_relay_sender_address`). If you find none, it means you're using the default configuration and your migraiton job is even simpler." +msgstr "" + +#: ../../../CHANGELOG.md:837 +msgid "re-run the playbook (`install-all` or `setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:839 +msgid "The playbook will take care of stopping the old `matrix-mailer` systemd service, relocating its directory and restarting it under the new name (`matrix-exim-relay.service`)." +msgstr "" + +#: ../../../CHANGELOG.md:842 +msgid "2024-01-02" +msgstr "" + +#: ../../../CHANGELOG.md:844 +msgid "mautrix-signal now powered by the new Go-based bridge" +msgstr "" + +#: ../../../CHANGELOG.md:846 +msgid "The old Python-based [mautrix-signal](https://github.com/mautrix/signal) bridge is no longer maintained upstream. It's also known to have issues linking new devices." +msgstr "" + +#: ../../../CHANGELOG.md:848 +msgid "It seems like the path forward is to switch to the new mautrix-signal bridge written in Golang, which we did thanks to [PR #3031](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3041) by [Pierre 'McFly' Marty](https://github.com/pm-McFly)." +msgstr "" + +#: ../../../CHANGELOG.md:850 +msgid "The playbook should **automatically migrate your mautrix-signal installation to the new bridge code**. You will **need to relink all your devices** to continue your bridged conversations." +msgstr "" + +#: ../../../CHANGELOG.md:853 +msgid "2023-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:855 +msgid "Enabling `allow_public_rooms_over_federation` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:857 +msgid "**TDLR**: if your Matrix server is federating (which it mostly likely is, unless you've [disabled federation](docs/configuring-playbook-federation.md#disabling-federation)), your public rooms will not only be joinable across federation (as they've always been), but from now on will be discoverable (made available as a list across federation). We're changing this by flipping the value for Synapse's `allow_public_rooms_over_federation` setting to `true`, going against the upstream default. Servers that disable federation are not affected. Servers that have public rooms which are not published to the room directory are also not affected." +msgstr "" + +#: ../../../CHANGELOG.md:859 +msgid "We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) — the default value was making Synapse more wasteful of resources by default." +msgstr "" + +#: ../../../CHANGELOG.md:861 +msgid "Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`. This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms)." +msgstr "" + +#: ../../../CHANGELOG.md:863 +msgid "The upstream Synapse default is `false` (disabled), so that public rooms are not exposed for other servers to discover (learn about their existence). Nevertheless, even if these rooms are not exposed (listed) for discovery, they are **still joinable** by anyone who knows their address or is invited to the room by an existing member." +msgstr "" + +#: ../../../CHANGELOG.md:865 +msgid "**We go against the upstream default** in an effort to make Matrix federation more useful — a public room should be globally public — not only joinable, but also discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:867 +msgid "The **historical reasoning** behind this change is as follows:" +msgstr "" + +#: ../../../CHANGELOG.md:869 +msgid "`allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network — rooms should be joinable and discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:871 +msgid "In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/element-hq/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense." +msgstr "" + +#: ../../../CHANGELOG.md:873 +#, python-format +msgid "[etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://github.com/etkecc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful." +msgstr "" + +#: ../../../CHANGELOG.md:875 +msgid "Here are **actions you may wish to take** as a result of this change:" +msgstr "" + +#: ../../../CHANGELOG.md:877 +msgid "(recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery." +msgstr "" + +#: ../../../CHANGELOG.md:879 +msgid "(switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for \"mostly private\" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces — you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting — controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them." +msgstr "" + +#: ../../../CHANGELOG.md:881 +msgid "(keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures." +msgstr "" + +#: ../../../CHANGELOG.md:884 +msgid "2023-10-18" +msgstr "" + +#: ../../../CHANGELOG.md:886 +msgid "Postgres parameters are automatically tuned now" +msgstr "" + +#: ../../../CHANGELOG.md:888 +msgid "The playbook has provided some hints about [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) for quite a while now." +msgstr "" + +#: ../../../CHANGELOG.md:890 +msgid "From now on, the [Postgres Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) automatically tunes your Postgres configuration with the same [calculation logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) that powers https://pgtune.leopard.in.ua/." +msgstr "" + +#: ../../../CHANGELOG.md:892 +msgid "Our [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) documentation page has details about how you can turn auto-tuning off or adjust the automatically-determined Postgres configuration parameters manually." +msgstr "" + +#: ../../../CHANGELOG.md:894 +msgid "People who [enable load-balancing with Synapse workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) no longer need to increase the maximum number of Postgres connections manually (previously done via `postgres_process_extra_arguments`). There's a new variable (`postgres_max_connections`) for controlling this number and the playbook automatically raises its value from `200` to `500` for setups which enable workers." +msgstr "" + +#: ../../../CHANGELOG.md:897 +msgid "2023-08-31" +msgstr "" + +#: ../../../CHANGELOG.md:899 +msgid "SchildiChat Web support" +msgstr "" + +#: ../../../CHANGELOG.md:901 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client." +msgstr "" + +#: ../../../CHANGELOG.md:903 +msgid "See our [Configuring SchildiChat Web](docs/configuring-playbook-client-schildichat-web.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:906 +msgid "2023-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:908 +msgid "mautrix-wsproxy support" +msgstr "" + +#: ../../../CHANGELOG.md:910 +msgid "Thanks to [Johan Swetzén](https://github.com/jswetzen)'s efforts (who finished what was started by [James Reilly](https://github.com/hanthor) and [Shreyas Ajjarapu](https://github.com/shreyasajj)), the playbook now supports bridging to Android SMS and Apple iMessage via the [mautrix-wsproxy](https://github.com/mautrix/wsproxy) service (in combination with a [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone)." +msgstr "" + +#: ../../../CHANGELOG.md:912 +msgid "See our [Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](docs/configuring-playbook-bridge-mautrix-wsproxy.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:915 +msgid "2023-07-24" +msgstr "" + +#: ../../../CHANGELOG.md:917 +msgid "matrix-registration-bot usage changed" +msgstr "" + +#: ../../../CHANGELOG.md:919 +msgid "[matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) got some updates and now supports password-only-based login. Therefore the bot now doesn't need any manual configuration except setting a password in your `vars.yml`. The bot will be registered as admin and access tokens will be obtained automatically by the bot." +msgstr "" + +#: ../../../CHANGELOG.md:921 +msgid "**For existing users** You need to set `matrix_bot_matrix_registration_bot_bot_password` if you previously only used `matrix_bot_matrix_registration_bot_bot_access_token`. Please also remove the following deprecated settings" +msgstr "" + +#: ../../../CHANGELOG.md:923 +msgid "`matrix_bot_matrix_registration_bot_bot_access_token`" +msgstr "" + +#: ../../../CHANGELOG.md:924 +msgid "`matrix_bot_matrix_registration_bot_api_token`" +msgstr "" + +#: ../../../CHANGELOG.md:927 +msgid "2023-07-21" +msgstr "" + +#: ../../../CHANGELOG.md:929 +msgid "mautrix-gmessages support" +msgstr "" + +#: ../../../CHANGELOG.md:931 +msgid "Thanks to [Shreyas Ajjarapu](https://github.com/shreyasajj)'s efforts, the playbook now supports bridging to [Google Messages](https://messages.google.com/) via the [mautrix-gmessages](https://github.com/mautrix/gmessages) bridge. See our [Setting up Mautrix Google Messages bridging](docs/configuring-playbook-bridge-mautrix-gmessages.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:934 +msgid "2023-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:936 +msgid "matrix-media-repo support" +msgstr "" + +#: ../../../CHANGELOG.md:938 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) — an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features." +msgstr "" + +#: ../../../CHANGELOG.md:940 +msgid "To learn more see our [Storing Matrix media files using matrix-media-repo](docs/configuring-playbook-matrix-media-repo.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:943 +msgid "2023-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:945 +msgid "Enabling `forget_rooms_on_leave` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:947 +msgid "With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`. This way, **when you leave a room, Synapse will now forget it automatically**." +msgstr "" + +#: ../../../CHANGELOG.md:949 +msgid "The upstream Synapse default is `false` (disabled), so that you must forget rooms manually after leaving." +msgstr "" + +#: ../../../CHANGELOG.md:951 +msgid "**We go against the upstream default** ([somewhat controversially](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2700)) in an effort to make Synapse leaner and potentially do what we believe most users would expect their homeserver to be doing." +msgstr "" + +#: ../../../CHANGELOG.md:953 +msgid "If you'd like to go back to the old behavior, add the following to your configuration: `matrix_synapse_forget_rooms_on_leave: false`" +msgstr "" + +#: ../../../CHANGELOG.md:956 +msgid "2023-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:958 +msgid "The matrix-jitsi role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:960 +msgid "**TLDR**: the `matrix-jitsi` role is now included from the [ansible-role-jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:962 +msgid "The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:964 +msgid "As part of the extraction process of this role out of the Matrix playbook, a few other things improved:" +msgstr "" + +#: ../../../CHANGELOG.md:966 +msgid "**native Traefik support** has been added" +msgstr "" + +#: ../../../CHANGELOG.md:967 +msgid "**support for hosting under a subpath** has been added, although it suffers from a few minor issues listed [here](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md#url)" +msgstr "" + +#: ../../../CHANGELOG.md:969 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Jitsi or not." +msgstr "" + +#: ../../../CHANGELOG.md:971 +msgid "If you're making use of Jitsi via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:973 +msgid "`matrix_jitsi_*_docker_image_` -> `matrix_jitsi_*_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:974 +msgid "`matrix_jitsi_` -> `jitsi_`" +msgstr "" + +#: ../../../CHANGELOG.md:975 ../../../CHANGELOG.md:1002 +msgid "some other internal variables have changed, but the playbook will tell you about them" +msgstr "" + +#: ../../../CHANGELOG.md:977 +msgid "2023-03-22" +msgstr "" + +#: ../../../CHANGELOG.md:979 +msgid "ntfy Web App is disabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:981 +msgid "ntfy provides a web app, which is now disabled by default, because it may be unknown to and unused by most users of this playbook. You can enable it by setting `ntfy_web_root: \"app\"` (see [ntfy documentation](docs/configuring-playbook-ntfy.md))." +msgstr "" + +#: ../../../CHANGELOG.md:983 +msgid "This change was already applied a while before this entry, but as some users were reporting the missing web app, this entry was added (see [#2529](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2529))." +msgstr "" + +#: ../../../CHANGELOG.md:986 +msgid "2023-03-21" +msgstr "" + +#: ../../../CHANGELOG.md:988 +msgid "The matrix-prometheus role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:990 +msgid "**TLDR**: the `matrix-prometheus` role is now included from the [ansible-role-prometheus](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:992 +msgid "The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:994 +msgid "Extracting the Prometheus role out of this Matrix playbook required huge internal refactoring to the way the Prometheus configuration (scraping jobs) is generated. If you notice any breakage after upgrading, let us know." +msgstr "" + +#: ../../../CHANGELOG.md:996 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Prometheus or not." +msgstr "" + +#: ../../../CHANGELOG.md:998 +msgid "If you're making use of Prometheus via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1000 +msgid "`matrix_prometheus_docker_image_` -> `matrix_prometheus_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1001 +msgid "`matrix_prometheus_` -> `prometheus_`" +msgstr "" + +#: ../../../CHANGELOG.md:1005 +msgid "2023-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:1007 +msgid "synapse-auto-compressor support" +msgstr "" + +#: ../../../CHANGELOG.md:1009 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state)'s `synapse_auto_compressor` tool to run periodically." +msgstr "" + +#: ../../../CHANGELOG.md:1011 +msgid "If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before — see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because:" +msgstr "" + +#: ../../../CHANGELOG.md:1013 +msgid "it runs on a more up-to-date version of `rust-synapse-compress-state`" +msgstr "" + +#: ../../../CHANGELOG.md:1014 +msgid "it's a set-it-and-forget-it tool that you can enable and never have to deal with manual compression anymore" +msgstr "" + +#: ../../../CHANGELOG.md:1016 +msgid "This tool needs to be enabled manually, for now. In the future, we're considering enabling it by default for all Synapse installations." +msgstr "" + +#: ../../../CHANGELOG.md:1018 +msgid "See our [Setting up synapse-auto-compressor](docs/configuring-playbook-synapse-auto-compressor.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1021 +msgid "2023-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:1023 +msgid "Sliding Sync proxy (Element X) support" +msgstr "" + +#: ../../../CHANGELOG.md:1025 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn) for [getting it started](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515), [FSG-Cat](https://github.com/FSG-Cat) for fixing it up and me ([Slavi](https://github.com/spantaleev)) for polishing it up, the playbook can now install and configure the [sliding-sync proxy](https://github.com/matrix-org/sliding-sync)." +msgstr "" + +#: ../../../CHANGELOG.md:1027 +msgid "The upcoming Element X clients ([Element X iOS](https://github.com/vector-im/element-x-ios) and [Element X Android](https://github.com/vector-im/element-x-android)) require the `sliding-sync` proxy to do their job. **These clients are still in beta** (especially Element X Android, which requires manual compilation to get it working with a non-`matrix.org` homeseserver). Playbook users can now easily give these clients a try and help test them thanks to us having `sliding-sync` support." +msgstr "" + +#: ../../../CHANGELOG.md:1029 +msgid "To get started, see our [Setting up the Sliding Sync proxy](docs/configuring-playbook-sliding-sync-proxy.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:1032 +msgid "2023-03-02" +msgstr "" + +#: ../../../CHANGELOG.md:1034 +msgid "The matrix-etherpad role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1036 +msgid "**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1038 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Etherpad or not." +msgstr "" + +#: ../../../CHANGELOG.md:1040 +msgid "If you're making use of Etherpad via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1042 +msgid "Rename `matrix_etherpad_public_endpoint` to `etherpad_path_prefix`" +msgstr "" + +#: ../../../CHANGELOG.md:1044 +msgid "Replace `matrix_etherpad_mode: dimension` with:" +msgstr "" + +#: ../../../CHANGELOG.md:1045 +msgid "for `matrix-nginx-proxy` users:" +msgstr "" + +#: ../../../CHANGELOG.md:1046 +msgid "`etherpad_nginx_proxy_dimension_integration_enabled: true`" +msgstr "" + +#: ../../../CHANGELOG.md:1047 +msgid "`etherpad_hostname: \"{{ matrix_server_fqn_dimension }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:1048 +msgid "for Traefik users:" +msgstr "" + +#: ../../../CHANGELOG.md:1049 +msgid "define your own `etherpad_hostname` and `etherpad_path_prefix` as you see fit" +msgstr "" + +#: ../../../CHANGELOG.md:1051 +msgid "Rename all other variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1052 +msgid "`matrix_etherpad_docker_image_` -> `matrix_etherpad_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1053 +msgid "`matrix_etherpad_` -> `etherpad_`" +msgstr "" + +#: ../../../CHANGELOG.md:1055 +msgid "Along with this relocation, the new role also:" +msgstr "" + +#: ../../../CHANGELOG.md:1057 +msgid "supports [self-building](docs/self-building.md), so it should work on `arm32` and `arm64` architectures" +msgstr "" + +#: ../../../CHANGELOG.md:1058 +msgid "has native Traefik reverse-proxy support (Etherpad requests no longer go through `matrix-nginx-proxy` when using Traefik)" +msgstr "" + +#: ../../../CHANGELOG.md:1061 +msgid "2023-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:1063 +msgid "Traefik is the default reverse-proxy now" +msgstr "" + +#: ../../../CHANGELOG.md:1065 +msgid "**TLDR**: new installations will now default to Traefik as their reverse-proxy. Existing users need to explicitly choose their reverse-proxy type. [Switching to Traefik](#how-do-i-switch-my-existing-setup-to-traefik) is strongly encouraged. `matrix-nginx-proxy` may break over time and will ultimately be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1067 +msgid "As mentioned 2 weeks ago in [(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support](#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support), the playbook is moving to Traefik as its default SSL-terminating reverse-proxy." +msgstr "" + +#: ../../../CHANGELOG.md:1069 +msgid "Until now, we've been doing the migration gradually and keeping full backward compatibility. New installations were defaulting to `matrix-nginx-proxy` (just like before), while existing installations were allowed to remain on `matrix-nginx-proxy` as well. This makes things very difficult for us, because we need to maintain and think about lots of different setups:" +msgstr "" + +#: ../../../CHANGELOG.md:1071 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1072 +msgid "Traefik managed by the user in another way" +msgstr "" + +#: ../../../CHANGELOG.md:1073 +msgid "another reverse-proxy on the same host (`127.0.0.1` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1074 +msgid "another reverse-proxy on another host (`0.0.0.0` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1075 +msgid "`matrix-nginx-proxy` — an `nginx` container managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1076 +msgid "`nginx` webserver operated by the user, running without a container on the same server" +msgstr "" + +#: ../../../CHANGELOG.md:1078 +msgid "Each change we do and each new feature that comes in needs to support all these different ways of reverse-proxying. Because `matrix-nginx-proxy` was the default and pretty much everyone was (and still is) using it, means that new PRs also come with `matrix-nginx-proxy` as their main focus and Traefik as an afterthought, which means we need to spend hours fixing up Traefik support." +msgstr "" + +#: ../../../CHANGELOG.md:1080 +msgid "We can't spend all this time maintaining so many different configurations anymore. Traefik support has been an option for 2 weeks and lots of people have already migrated their server and have tested things out. Traefik is what we use and preferentially test for." +msgstr "" + +#: ../../../CHANGELOG.md:1082 +msgid "It's time for the **next step in our migration process** to Traefik and elimination of `matrix-nginx-proxy`:" +msgstr "" + +#: ../../../CHANGELOG.md:1084 +msgid "Traefik is now the default reverse-proxy for new installations" +msgstr "" + +#: ../../../CHANGELOG.md:1085 +msgid "All existing users need to explicitly choose their reverse-proxy type by defining the `matrix_playbook_reverse_proxy_type` variable in their `vars.yml` configuration file. We strongly encourage existing users to [switch the Traefik](#how-to-switch-an-existing-setup-to-traefik), as the nginx setup is bound to become more and more broken over time until it's ultimately removed" +msgstr "" + +#: ../../../CHANGELOG.md:1087 +msgid "How do I switch my existing setup to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1089 +msgid "**For users who are on `matrix-nginx-proxy`** (the default reverse-proxy provided by the playbook), switching to Traefik can happen with a simple configuration change. Follow this section from 2 weeks ago: [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now)." +msgstr "" + +#: ../../../CHANGELOG.md:1091 +msgid "If you experience trouble:" +msgstr "" + +#: ../../../CHANGELOG.md:1093 +msgid "Follow [How do I remain on matrix-nginx-proxy?](#how-do-i-remain-on-matrix-nginx-proxy) to bring your server back online using the old reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:1094 +msgid "Ask for help in our [support channels](README.md#support)" +msgstr "" + +#: ../../../CHANGELOG.md:1095 +msgid "Try switching to Traefik again later" +msgstr "" + +#: ../../../CHANGELOG.md:1097 +msgid "**For users with a more special reverse-proxying setup** (another nginx server, Apache, Caddy, etc.), the migration may not be so smooth. Follow the [Using your own webserver](docs/configuring-playbook-own-webserver.md) guide. Ideally, your custom reverse-proxy will be configured in such a way that it **fronts the Traefik reverse-proxy** provided by the playbook. Other means of reverse-proxying are more fragile and may be deprecated in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1099 +msgid "I already use my own Traefik server. How do I plug that in?" +msgstr "" + +#: ../../../CHANGELOG.md:1101 +msgid "See the [Traefik managed by the playbook](docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) section." +msgstr "" + +#: ../../../CHANGELOG.md:1103 +msgid "Why is matrix-nginx-proxy used even after switching to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1105 +msgid "This playbook manages many different services. All these services were initially integrated with `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:1107 +msgid "While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component). As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed." +msgstr "" + +#: ../../../CHANGELOG.md:1109 +msgid "How do I remain on matrix-nginx-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1111 +msgid "Most new work and testing targets Traefik, so remaining on nginx is **not** \"the good old stable\" option, but rather the \"still available, but largely untested and likely to be broken very soon\" option." +msgstr "" + +#: ../../../CHANGELOG.md:1113 +msgid "To proceed regardless of this warning, add `matrix_playbook_reverse_proxy_type: playbook-managed-nginx` to your configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1115 +msgid "At some point in the **near** future (days, or even weeks at most), we hope to completely get rid of `matrix-nginx-proxy` (or break it enough to make it unusable), so you **will soon be forced to migrate** anyway. Plan your migration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:1117 +msgid "How do I keep using my own other reverse-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1119 +msgid "We recommend that you follow the guide for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:1122 +msgid "2023-02-25" +msgstr "" + +#: ../../../CHANGELOG.md:1124 +msgid "rageshake support" +msgstr "" + +#: ../../../CHANGELOG.md:1126 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn), the playbook can now install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server." +msgstr "" + +#: ../../../CHANGELOG.md:1128 +msgid "Additional details are available in [Setting up rageshake](docs/configuring-playbook-rageshake.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1131 +msgid "2023-02-17" +msgstr "" + +#: ../../../CHANGELOG.md:1133 +msgid "Synapse templates customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1135 +msgid "The playbook can now help you customize Synapse's templates." +msgstr "" + +#: ../../../CHANGELOG.md:1137 +msgid "Additional details are available in the [Customizing templates](docs/configuring-playbook-synapse.md#customizing-templates) section of our Synapse documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1139 +msgid "The matrix-redis role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1141 +msgid "**TLDR**: the `matrix-redis` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1143 +msgid "The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-redis). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1145 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_redis_` -> `redis_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1147 +msgid "The matrix-ntfy role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1149 +msgid "**TLDR**: the `matrix-ntfy` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1151 +msgid "The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1153 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_ntfy_` -> `ntfy_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1156 +msgid "2023-02-15" +msgstr "" + +#: ../../../CHANGELOG.md:1158 +msgid "The matrix-grafana role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1160 +msgid "**TLDR**: the `matrix-grafana` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1162 +msgid "The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-grafana). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1164 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Grafana or not. If you're making use of Grafana via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_grafana_` -> `grafana_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1167 +msgid "2023-02-13" +msgstr "" + +#: ../../../CHANGELOG.md:1169 +msgid "The matrix-backup-borg role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1171 +msgid "**TLDR**: the `matrix-backup-borg` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1173 +msgid "Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [BorgBackup](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon." +msgstr "" + +#: ../../../CHANGELOG.md:1175 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Borg's backup functionality or not. If you're making use of BorgBackup via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_backup_borg_` -> `backup_borg_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1178 +msgid "2023-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1180 +msgid "(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support" +msgstr "" + +#: ../../../CHANGELOG.md:1182 +msgid "**TLDR**:" +msgstr "" + +#: ../../../CHANGELOG.md:1184 +msgid "there's a new `matrix_playbook_reverse_proxy_type` variable (see [roles/custom/matrix-base/defaults/main.yml](roles/custom/matrix-base/defaults/main.yml)), which lets you tell the playbook what reverse-proxy setup you'd like to have. This makes it easier for people who want to do reverse-proxying in other ways." +msgstr "" + +#: ../../../CHANGELOG.md:1185 +msgid "the default reverse-proxy (`matrix_playbook_reverse_proxy_type`) is still `playbook-managed-nginx` (via `matrix-nginx-proxy`), for now. **Existing `matrix-nginx-proxy` users should not observe any changes** and can stay on this for now." +msgstr "" + +#: ../../../CHANGELOG.md:1186 +msgid "**Users who use their [own other webserver](docs/configuring-playbook-own-webserver.md) (e.g. Apache, etc.) need to change** `matrix_playbook_reverse_proxy_type` to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`" +msgstr "" + +#: ../../../CHANGELOG.md:1187 +msgid "we now have **optional [Traefik](https://traefik.io/) support**, so you could easily host Matrix and other Traefik-native services in containers on the same server. Traefik support is still experimental (albeit, good enough) and will improve over time. It does work, but certain esoteric features may not be there yet." +msgstr "" + +#: ../../../CHANGELOG.md:1188 +msgid "**Traefik will become the default reverse-proxy in the near future**. `matrix-nginx-proxy` will either remain as an option, or be completely removed to simplify the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1190 +msgid "Motivation for redoing our reverse-proxy setup" +msgstr "" + +#: ../../../CHANGELOG.md:1192 +msgid "The playbook has supported various reverse-proxy setups for a long time. We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though — hard to figure out and with lots of variables to toggle to make things work as you'd expect — huge **operational complexity**." +msgstr "" + +#: ../../../CHANGELOG.md:1194 +msgid "We love containers, proven by the fact that **everything** that this playbook manages runs in a container. Yet, we weren't allowing people to easily host other web-exposed containers alongside Matrix services on the same server. We were using `matrix-nginx-proxy` (our integrated [nginx](https://nginx.org/) server), which was handling web-exposure and SSL termination for our own services, but we **weren't helping you with all your other containers**." +msgstr "" + +#: ../../../CHANGELOG.md:1196 +msgid "People who were **using `matrix-nginx-proxy`** were on the happy path on which everything worked well by default (Matrix-wise), **but** could not easily run other web-exposed services on their Matrix server because `matrix-nginx-proxy` was occupying ports `80` and `443`. Other services which wanted to get web exposure either had to be plugged into `matrix-nginx-proxy` (somewhat difficult) or people had to forgo using `matrix-nginx-proxy` in favor of something else." +msgstr "" + +#: ../../../CHANGELOG.md:1198 +msgid "Of those that decided to forgo `matrix-nginx-proxy`, many were **using nginx** on the same server without a container. This was likely some ancient nginx version, depending on your choice of distro. The Matrix playbook was trying to be helpful and even with `matrix_nginx_proxy_enabled: false` was still generating nginx configuration in `/matrix/nginx-proxy/conf.d`. Those configuration files were adapted for inclusion into an nginx server running locally. Disabling the `matrix-nginx-proxy` role like this, yet still having it produce files is a bit disgusting, but it's what we've had since the early beginnings of this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1200 +msgid "Others still, wanted to run Matrix locally (no SSL certificates), regardless of which web server technology this relied on, and then **reverse-proxy from another machine on the network** which was doing SSL termination. These people were:" +msgstr "" + +#: ../../../CHANGELOG.md:1202 +msgid "*either* relying on `matrix_nginx_proxy_enabled: false` as well, combined with exposing services manually (setting `_bind_port` variables)" +msgstr "" + +#: ../../../CHANGELOG.md:1203 +msgid "*or* better yet, they were keeping `matrix-nginx-proxy` enabled, but in `http`-only mode (no SSL certificate retrieval)." +msgstr "" + +#: ../../../CHANGELOG.md:1205 +msgid "Despite this operational complexity, things worked and were reasonably flexible to adapt to all these situations." +msgstr "" + +#: ../../../CHANGELOG.md:1207 +msgid "When using `matrix-nginx-proxy` as is, we still had another problem — one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime — see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still… yikes)." +msgstr "" + +#: ../../../CHANGELOG.md:1209 +msgid "The next problem is one of **efficiency, interoperability and cost-saving**. We're working on other playbooks:" +msgstr "" + +#: ../../../CHANGELOG.md:1211 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server — an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager" +msgstr "" + +#: ../../../CHANGELOG.md:1212 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) — for hosting the [Gitea](https://gitea.io/) git source code hosting service" +msgstr "" + +#: ../../../CHANGELOG.md:1213 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) — for hosting the [Nextcloud](https://nextcloud.com/) groupware platform" +msgstr "" + +#: ../../../CHANGELOG.md:1215 +msgid "We'd love for users to be able to **seamlessly use all these playbooks (and others, even) against a single server**. We don't want `matrix-nginx-proxy` to have a monopoly on port `80`/`443` and make it hard for other services to join in on the party. Such a thing forces people into running multiple servers (one for each service), which does provide nice security benefits, but is costly and ineffiecient. We'd like to make self-hosting these services cheap and easy." +msgstr "" + +#: ../../../CHANGELOG.md:1217 +msgid "These other playbooks have been using [Traefik](https://traefik.io/) as their default reverse-proxy for a long time. They can all coexist nicely together (as an example, see the [Interoperability](https://github.com/spantaleev/nextcloud-docker-ansible-deploy/blob/master/docs/configuring-playbook-interoperability.md) documentation for the [Nextcloud playbook](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)). Now that this playbook is gaining Traefik support, it will be able to interoperate with them. If you're going this way, make sure to have the Matrix playbook install Traefik and have the others use `*_reverse_proxy_type: other-traefik-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1219 +msgid "Finally, at [etke.cc — a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with." +msgstr "" + +#: ../../../CHANGELOG.md:1221 +msgid "How do these changes fix all these problems?" +msgstr "" + +#: ../../../CHANGELOG.md:1223 +msgid "The new `matrix_playbook_reverse_proxy_type` lets you easily specify your preferred reverse-proxy type, including `other-on-same-host`, `other-on-another-host` and `none`, so people who'd like to reverse-proxy with their own web server have more options now." +msgstr "" + +#: ../../../CHANGELOG.md:1225 +msgid "Using Traefik greatly simplifies things, so going forward we'll have a simpler and easier to maintain playbook, which is also interoperable with other services." +msgstr "" + +#: ../../../CHANGELOG.md:1227 +msgid "Traefik is a web server, which has been specifically **designed for reverse-proxying to services running in containers**. It's ideal for usage in an Ansible playbook which runs everything in containers." +msgstr "" + +#: ../../../CHANGELOG.md:1229 +msgid "**Traefik obtains SSL certificates automatically**, so there's no need for plugging additional tools like [Certbot](https://certbot.eff.org/) into your web server (like we were doing in the `matrix-nginx-proxy` role). No more certificate renewal timers, web server reloading timers, etc. It's just simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1231 +msgid "Traefik is a **modern web server**. [HTTP/3](https://doc.traefik.io/traefik/routing/entrypoints/#http3) is supported already (experimentally) and will move to stable soon, in the upcoming Traefik v3 release." +msgstr "" + +#: ../../../CHANGELOG.md:1233 +msgid "Traefik does not lock important functionality we'd like to use into [plus packages like nginx does](https://www.nginx.com/products/nginx/), leading us to resolve to configuration workarounds. The default Traefik package is good enough as it is." +msgstr "" + +#: ../../../CHANGELOG.md:1235 +msgid "Where we're at right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1237 +msgid "`matrix_playbook_reverse_proxy_type` still defaults to a value of `playbook-managed-nginx`." +msgstr "" + +#: ../../../CHANGELOG.md:1239 +msgid "Unless we have some regression, **existing `matrix-nginx-proxy` users should be able to update their Matrix server and not observe any changes**. Their setup should still remain on nginx and everything should still work as expected." +msgstr "" + +#: ../../../CHANGELOG.md:1241 +msgid "**Users using [their own webservers](docs/configuring-playbook-own-webserver.md) will need to change `matrix_playbook_reverse_proxy_type`** to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`. Previously, they could toggle `matrix_nginx_proxy_enabled` to `false`, and that made the playbook automatically expose services locally. Currently, we only do this if you change the reverse-proxy type to `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1243 +msgid "How do I explicitly switch to Traefik right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1245 +msgid "**Users who wish to migrate to Traefik** today, can do so by **adding** this to their configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1253 +msgid "You may still need to keep certain old `matrix_nginx_proxy_*` variables (like `matrix_nginx_proxy_base_domain_serving_enabled`), even when using Traefik. For now, we recommend keeping all `matrix_nginx_proxy_*` variables just in case. In the future, reliance on `matrix-nginx-proxy` will be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1255 +msgid "Switching to Traefik will obtain new SSL certificates from Let's Encrypt (stored in `/matrix/traefik/ssl/acme.json`). **The switch is reversible**. You can always go back to `playbook-managed-nginx` if Traefik is causing you trouble." +msgstr "" + +#: ../../../CHANGELOG.md:1257 +msgid "**Note**: toggling `matrix_playbook_reverse_proxy_type` between Traefik and nginx will uninstall the Traefik role and all of its data (under `/matrix/traefik`), so you may run into a Let's Encrypt rate limit if you do it often." +msgstr "" + +#: ../../../CHANGELOG.md:1259 +msgid "Treafik directly reverse-proxies to **some** services right now, but for most other services it goes through `matrix-nginx-proxy` (e.g. Traefik -> `matrix-nginx-proxy` -> [Ntfy](docs/configuring-playbook-ntfy.md)). So, even if you opt into Traefik, you'll still see `matrix-nginx-proxy` being installed in local-only mode. This will improve with time." +msgstr "" + +#: ../../../CHANGELOG.md:1261 +msgid "Some services (like [coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bridge-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool." +msgstr "" + +#: ../../../CHANGELOG.md:1263 +msgid "Our Traefik setup mostly works, but certain esoteric features may not work. If you have a default setup, we expect you to have a good experience." +msgstr "" + +#: ../../../CHANGELOG.md:1265 +msgid "Where we're going in the near future?" +msgstr "" + +#: ../../../CHANGELOG.md:1267 +msgid "The `matrix-nginx-proxy` role is quite messy. It manages both nginx and Certbot and its certificate renewal scripts and timers. It generates configuration even when the role is disabled (weird). Although it doesn't directly reach into variables from other roles, it has explicit awareness of various other services that it reverse-proxies to (`roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-ntfy.conf.j2`, etc.). We'd like to clean this up. The only way is probably to just get rid of the whole thing at some point." +msgstr "" + +#: ../../../CHANGELOG.md:1269 +msgid "For now, `matrix-nginx-proxy` will stay around." +msgstr "" + +#: ../../../CHANGELOG.md:1271 +msgid "As mentioned above, Traefik still reverse-proxies to some (most) services by going through a local-only `matrix-nginx-proxy` server. This has allowed us to add Traefik support to the playbook early on (without having to rework all services), but is not the final goal. We'll **work on making each service support Traefik natively**, so that traffic will not need to go through `matrix-nginx-proxy` anymore. In the end, choosing Traefik should only give you a pure Traefik installation with no `matrix-nginx-proxy` in sight." +msgstr "" + +#: ../../../CHANGELOG.md:1273 +msgid "As Traefik support becomes complete and proves to be stable for a while, especially as a playbook default, we will **most likely remove `matrix-nginx-proxy` completely**. It will likely be some months before this happens though. Keeping support for both Traefik and nginx in the playbook will be a burden, especially with most of us running Traefik in the future. The Traefik role should do everything nginx does in a better and cleaner way. Users who use their own `nginx` server on the Matrix server will be inconvenienced, as nothing will generate ready-to-include nginx configuration for them. Still, we hope it won't be too hard to migrate their setup to another way of doing things, like:" +msgstr "" + +#: ../../../CHANGELOG.md:1275 +msgid "not using nginx anymore. A common reason for using nginx until now was that you were running other containers and you need your own nginx to reverse-proxy to all of them. Just switch them to Traefik as well." +msgstr "" + +#: ../../../CHANGELOG.md:1276 +msgid "running Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and using some nginx configuration which reverse-proxies to Traefik (we should introduce examples for this in `examples/nginx`)." +msgstr "" + +#: ../../../CHANGELOG.md:1278 +msgid "How do I help?" +msgstr "" + +#: ../../../CHANGELOG.md:1280 +msgid "You can help by:" +msgstr "" + +#: ../../../CHANGELOG.md:1282 +msgid "**explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles" +msgstr "" + +#: ../../../CHANGELOG.md:1284 +msgid "**adding native Traefik support to a role** (requires adding Traefik labels, etc.) — for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers)." +msgstr "" + +#: ../../../CHANGELOG.md:1286 +msgid "**adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server" +msgstr "" + +#: ../../../CHANGELOG.md:1289 +msgid "2023-02-10" +msgstr "" + +#: ../../../CHANGELOG.md:1291 +msgid "Matrix Authentication Support for Jitsi" +msgstr "" + +#: ../../../CHANGELOG.md:1293 +msgid "Thanks to [Jakob S.](https://github.com/jakicoll) ([zakk gGmbH](https://github.com/zakk-it)), Jitsi can now use Matrix for authentication (via [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service))." +msgstr "" + +#: ../../../CHANGELOG.md:1295 +msgid "Additional details are available in the [Authenticate using Matrix OpenID (Auth-Type 'matrix')](docs/configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix)." +msgstr "" + +#: ../../../CHANGELOG.md:1297 +msgid "Draupnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:1299 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (bot). Draupnir is a fork of [Mjolnir](docs/configuring-playbook-bot-mjolnir.md) (which the playbook has supported for a long time) maintained by Mjolnir's former lead developer." +msgstr "" + +#: ../../../CHANGELOG.md:1301 +msgid "Additional details are available in [Setting up Draupnir](docs/configuring-playbook-bot-draupnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1304 +msgid "2023-02-05" +msgstr "" + +#: ../../../CHANGELOG.md:1306 +msgid "The matrix-prometheus-postgres-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1308 +msgid "**TLDR**: the `matrix-prometheus-postgres-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1310 +msgid "The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1312 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1314 +msgid "The `matrix-prometheus-services-proxy-connect` role has bee adjusted to help integrate the new `prometheus_postgres_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1316 ../../../CHANGELOG.md:1358 +msgid "Other roles which aren't strictly related to Matrix are likely to follow this fate of moving to their own repositories. Extracting them out allows other Ansible playbooks to make use of these roles easily." +msgstr "" + +#: ../../../CHANGELOG.md:1319 +msgid "2023-01-26" +msgstr "" + +#: ../../../CHANGELOG.md:1321 +msgid "coturn can now use host-networking" +msgstr "" + +#: ../../../CHANGELOG.md:1323 +msgid "Large coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown." +msgstr "" + +#: ../../../CHANGELOG.md:1325 +msgid "Such deployments don't need to run coturn within a private container network anymore. coturn can now run with host-networking by using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1331 +msgid "With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time coturn starts and stops. This, however, means that **you will need to ensure these ports are open** in your firewall yourself." +msgstr "" + +#: ../../../CHANGELOG.md:1333 +msgid "Thanks to us [tightening coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network." +msgstr "" + +#: ../../../CHANGELOG.md:1335 +msgid "(Backward Compatibility) Tightening coturn security can lead to connectivity issues" +msgstr "" + +#: ../../../CHANGELOG.md:1337 +msgid "**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it." +msgstr "" + +#: ../../../CHANGELOG.md:1339 +msgid "Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better." +msgstr "" + +#: ../../../CHANGELOG.md:1341 +msgid "If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it." +msgstr "" + +#: ../../../CHANGELOG.md:1343 +msgid "We've also added `no-multicast-peers` to the default coturn configuration, but we don't expect this to cause trouble for most people." +msgstr "" + +#: ../../../CHANGELOG.md:1346 +msgid "2023-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:1348 +msgid "The matrix-prometheus-node-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1350 +msgid "**TLDR**: the `matrix-prometheus-node-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1352 +msgid "The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1354 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1356 +msgid "A new `matrix-prometheus-services-proxy-connect` role was added to the playbook to help integrate the new `prometheus_node_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1361 +msgid "2023-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:1363 +msgid "Support for running commands via just" +msgstr "" + +#: ../../../CHANGELOG.md:1365 +msgid "We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)). Our `Makefile` is still around and you can still run these commands." +msgstr "" + +#: ../../../CHANGELOG.md:1367 +msgid "In addition, we've added support for running commands via [just](https://github.com/casey/just) — a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same." +msgstr "" + +#: ../../../CHANGELOG.md:1369 +msgid "Our [justfile](justfile) already defines some additional helpful **shortcut** commands that weren't part of our `Makefile`. Here are some examples:" +msgstr "" + +#: ../../../CHANGELOG.md:1371 +msgid "`just install-all` to trigger the much longer `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` command" +msgstr "" + +#: ../../../CHANGELOG.md:1372 +msgid "`just install-all --ask-vault-pass` — commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../CHANGELOG.md:1373 +msgid "`just run-tags install-mautrix-slack,start` — to run specific playbook tags" +msgstr "" + +#: ../../../CHANGELOG.md:1374 +msgid "`just start-all` — (re-)starts all services" +msgstr "" + +#: ../../../CHANGELOG.md:1375 +msgid "`just stop-group postgres` — to stop only the Postgres service" +msgstr "" + +#: ../../../CHANGELOG.md:1376 +msgid "`just register-user alice secret-password yes` — registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../CHANGELOG.md:1378 +msgid "Additional helpful commands and shortcuts may be defined in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1380 +msgid "This is all completely optional. If you find it difficult to [install `just`](https://github.com/casey/just#installation) or don't find any of this convenient, feel free to run all commands manually." +msgstr "" + +#: ../../../CHANGELOG.md:1383 +msgid "2023-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:1385 +msgid "mautrix-slack support" +msgstr "" + +#: ../../../CHANGELOG.md:1387 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix)'s efforts, the playbook now supports bridging to [Slack](https://slack.com/) via the [mautrix-slack](https://mau.dev/mautrix/slack) bridge. See our [Setting up Mautrix Slack bridging](docs/configuring-playbook-bridge-mautrix-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1389 +msgid "**Note**: this is a new Slack bridge. The playbook still retains Slack bridging via [matrix-appservice-slack](docs/configuring-playbook-bridge-appservice-slack.md) and [mx-puppet-slack](docs/configuring-playbook-bridge-mx-puppet-slack.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1392 +msgid "2023-01-10" +msgstr "" + +#: ../../../CHANGELOG.md:1394 +msgid "ChatGPT support" +msgstr "" + +#: ../../../CHANGELOG.md:1396 +msgid "Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) — a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model." +msgstr "" + +#: ../../../CHANGELOG.md:1398 +msgid "See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1401 +msgid "2022-11-30" +msgstr "" + +#: ../../../CHANGELOG.md:1403 +msgid "matrix-postgres-backup has been replaced by the ansible-role-postgres-backup external role" +msgstr "" + +#: ../../../CHANGELOG.md:1405 +msgid "Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role — [com.devture.ansible.role.postgres_backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres_backup)." +msgstr "" + +#: ../../../CHANGELOG.md:1407 +msgid "You'll need to rename your `matrix_postgres_backup`-prefixed variables such that they use a `postgres_backup` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1410 +msgid "2022-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:1412 +msgid "matrix-postgres has been replaced by the ansible-role-postgres external role" +msgstr "" + +#: ../../../CHANGELOG.md:1414 +msgid "**TLDR**: the tasks that install the integrated Postgres server now live in an external role — [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`)." +msgstr "" + +#: ../../../CHANGELOG.md:1416 +msgid "The `matrix-postgres` role that has been part of the playbook for a long time has been replaced with the [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) role. This was done as part of our work to [use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) for better code re-use and maintainability." +msgstr "" + +#: ../../../CHANGELOG.md:1418 +msgid "The new role is an upgraded version of the old `matrix-postgres` role with these notable differences:" +msgstr "" + +#: ../../../CHANGELOG.md:1420 +msgid "it uses different names for its variables (`matrix_postgres` -> `devture_postgres`)" +msgstr "" + +#: ../../../CHANGELOG.md:1421 +msgid "when [Vacuuming PostgreSQL](docs/maintenance-postgres.md#vacuuming-postgresql), it will vacuum all your databases, not just the Synapse one" +msgstr "" + +#: ../../../CHANGELOG.md:1423 +msgid "You'll need to run `make roles` to install the new role. You would also need to rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1425 +msgid "Note: the systemd service still remains the same — `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc. Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin)." +msgstr "" + +#: ../../../CHANGELOG.md:1427 +msgid "The playbook no longer installs scripts to /usr/local/bin" +msgstr "" + +#: ../../../CHANGELOG.md:1429 +msgid "The locations of various scripts installed by the playbook have changed." +msgstr "" + +#: ../../../CHANGELOG.md:1431 +msgid "The playbook no longer contaminates your `/usr/local/bin` directory. All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below:" +msgstr "" + +#: ../../../CHANGELOG.md:1433 +msgid "`/usr/local/bin/matrix-remove-all` -> `/matrix/bin/remove-all`" +msgstr "" + +#: ../../../CHANGELOG.md:1434 +msgid "`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1435 +msgid "`/usr/local/bin/matrix-ssl-lets-encrypt-certificates-renew` -> `/matrix/ssl/bin/lets-encrypt-certificates-renew`" +msgstr "" + +#: ../../../CHANGELOG.md:1436 +msgid "`/usr/local/bin/matrix-synapse-register-user` -> `/matrix/synapse/bin/register-user`" +msgstr "" + +#: ../../../CHANGELOG.md:1439 +msgid "2022-11-25" +msgstr "" + +#: ../../../CHANGELOG.md:1441 +msgid "2x-5x performance improvements in playbook runtime" +msgstr "" + +#: ../../../CHANGELOG.md:1443 +msgid "**TLDR**: the playbook is 2x faster for running `--tags=setup-all` (and various other tags). It also has new `--tags=install-*` tags (like `--tags=install-all`), which skip uninstallation tasks and bring an additional 2.5x speedup. In total, the playbook can maintain your server 5 times faster." +msgstr "" + +#: ../../../CHANGELOG.md:1445 +msgid "Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot. The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience." +msgstr "" + +#: ../../../CHANGELOG.md:1447 +msgid "Even when running `ansible-playbook` manually (as most of us here do), it's beneficial not to waste time and CPU resources." +msgstr "" + +#: ../../../CHANGELOG.md:1449 +msgid "Recently, a few large optimizations have been done to this playbook and its external roles (see [The playbook now uses external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) and don't forget to run `make roles`):" +msgstr "" + +#: ../../../CHANGELOG.md:1451 +msgid "Replacing Ansible `import_tasks` calls with `include_tasks`, which decreased runtime in half. Using `import_tasks` is slower and causes Ansible to go through and skip way too many tasks (tasks which could have been skipped altogether by not having Ansible include them in the first place). On an experimental VM, **deployment time was decreased from ~530 seconds to ~250 seconds**." +msgstr "" + +#: ../../../CHANGELOG.md:1453 +msgid "Introducing new `install-*` tags (`install-all` and `install-COMPONENT`, e.g. `install-synapse`, `install-bot-mjolnir`), which only run Ansible tasks pertaining to installation, while skipping uninstallation tasks. In most cases, people are maintaining the same setup or they're *adding* new components. Removing components is rare. Running thousands of uninstallation tasks each time is wasteful. On an experimental VM, **deployment time was decreased from ~250 seconds (`--tags=setup-all`) to ~100 seconds (`--tags=install-all`)**." +msgstr "" + +#: ../../../CHANGELOG.md:1455 +msgid "You can still use `--tags=setup-all`. In fact, that's the best way to ensure your server is reconciled with the `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1457 +msgid "If you know you haven't uninstalled any services since the last time you ran the playbook, you could run `--tags=install-all` instead and benefit from quicker runtimes. It should be noted that a service may become \"eligible for uninstallation\" even if your `vars.yml` file remains the same. In rare cases, we toggle services from being auto-installed to being optional, like we did on the 17th of March 2022 when we made [ma1sd not get installed by default](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#compatibility-break-ma1sd-identity-server-no-longer-installed-by-default). In such rare cases, you'd also need to run `--tags=setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:1460 +msgid "2022-11-22" +msgstr "" + +#: ../../../CHANGELOG.md:1462 +msgid "Automatic `matrix_architecture` determination" +msgstr "" + +#: ../../../CHANGELOG.md:1464 +msgid "From now on, the playbook automatically determines your server's architecture and sets the `matrix_architecture` variable accordingly. You no longer need to set this variable manually in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1466 +msgid "Docker and the Docker SDK for Python are now installed via external roles" +msgstr "" + +#: ../../../CHANGELOG.md:1470 +msgid "Docker will now be installed on the server via the [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker) Ansible role. If you'd like to manage the Docker installation yourself, you can disable the playbook's installation of Docker by setting `matrix_playbook_docker_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1472 +msgid "The Docker SDK for Python (named `docker-python`, `python-docker`, etc. on the different platforms) is now also installed by another role ([com.devture.ansible.role.docker_sdk_for_python](https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python)). To disable this role and install the necessary tools yourself, use `devture_docker_sdk_for_python_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1474 +msgid "If you're hitting issues with Docker installation or Docker SDK for Python installation, consider reporting bugs or contributing to these other projects." +msgstr "" + +#: ../../../CHANGELOG.md:1476 +msgid "These additional roles are downloaded into the playbook directory (to `roles/galaxy`) via an `ansible-galaxy …` command. `make roles` is an easy shortcut for invoking the `ansible-galaxy` command to download these roles." +msgstr "" + +#: ../../../CHANGELOG.md:1479 +msgid "2022-11-20" +msgstr "" + +#: ../../../CHANGELOG.md:1481 +msgid "(Backward Compatibility Break) Changing how reverse-proxying to Synapse works — now via a `matrix-synapse-reverse-proxy-companion` service" +msgstr "" + +#: ../../../CHANGELOG.md:1483 +msgid "**TLDR**: There's now a `matrix-synapse-reverse-proxy-companion` nginx service, which helps with reverse-proxying to Synapse and its various worker processes (if workers are enabled), so that `matrix-nginx-proxy` can be relieved of this role. `matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. `matrix-synapse-reverse-proxy-companion` is just one more reverse-proxy thrown into the mix for convenience. People with a more custom reverse-proxying configuration may be affected — see [Webserver configuration](#webserver-configuration) below." +msgstr "" + +#: ../../../CHANGELOG.md:1485 +msgid "Background" +msgstr "" + +#: ../../../CHANGELOG.md:1487 +msgid "Previously, `matrix-nginx-proxy` forwarded requests to Synapse directly. When Synapse is running in worker mode, the reverse-proxying configuration is more complicated (different requests need to go to different Synapse worker processes). `matrix-nginx-proxy` had configuration for sending each URL endpoint to the correct Synapse worker responsible for handling it. However, sometimes people like to disable `matrix-nginx-proxy` (for whatever reason) as detailed in [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1489 +msgid "Because `matrix-nginx-proxy` was so central to request forwarding, when it was disabled and Synapse was running with workers enabled, there was nothing which could forward requests to the correct place anymore… which caused [problems such as this one affecting Dimension](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090)." +msgstr "" + +#: ../../../CHANGELOG.md:1491 +msgid "Solution" +msgstr "" + +#: ../../../CHANGELOG.md:1493 +msgid "From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxying to Synapse and its various worker processes. This role is now handled by the new `matrix-synapse-reverse-proxy-companion` nginx service and works even if `matrix-nginx-proxy` is disabled. The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to:" +msgstr "" + +#: ../../../CHANGELOG.md:1495 +msgid "serve as a companion to Synapse and know how to reverse-proxy to Synapse correctly (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1497 +msgid "provide a unified container address for reaching Synapse (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1498 +msgid "`matrix-synapse-reverse-proxy-companion:8008` for Synapse Client-Server API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1499 +msgid "`matrix-synapse-reverse-proxy-companion:8048` for Synapse Server-Server (Federation) API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1501 +msgid "simplify `matrix-nginx-proxy` configuration — it now only needs to send requests to `matrix-synapse-reverse-proxy-companion` or `matrix-dendrite`, etc., without having to worry about workers" +msgstr "" + +#: ../../../CHANGELOG.md:1503 +msgid "allow reverse-proxying to Synapse, even if `matrix-nginx-proxy` is disabled" +msgstr "" + +#: ../../../CHANGELOG.md:1505 +msgid "`matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. All traffic goes through it before reaching any of the services. It's just that now the Synapse traffic is routed through `matrix-synapse-reverse-proxy-companion` like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1507 +msgid "(`matrix-nginx-proxy` -> `matrix-synapse-reverse-proxy-companion` -> (`matrix-synapse` or some Synapse worker))." +msgstr "" + +#: ../../../CHANGELOG.md:1509 +msgid "Various services (like Dimension, etc.) still talk to Synapse via `matrix-nginx-proxy` (e.g. `http://matrix-nginx-proxy:12080`) preferentially. They only talk to Synapse via the reverse-proxy companion (e.g. `http://matrix-synapse-reverse-proxy-companion:8008`) if `matrix-nginx-proxy` is disabled. Services should not be talking to Synapse (e.g. `https://matrix-synapse:8008` directly anymore), because when workers are enabled, that's the Synapse `master` process and may not be serving all URL endpoints needed by the service." +msgstr "" + +#: ../../../CHANGELOG.md:1511 +msgid "Webserver configuration" +msgstr "" + +#: ../../../CHANGELOG.md:1513 +msgid "if you're using `matrix-nginx-proxy` (`matrix_nginx_proxy_enabled: true`, which is the default for the playbook), you don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:1515 +msgid "if you're using your own `nginx` webserver running on the server, you shouldn't be affected. The `/matrix/nginx/conf.d` configuration and exposed ports that you're relying on will automatically be updated in a way that should work" +msgstr "" + +#: ../../../CHANGELOG.md:1517 +msgid "if you're using another local webserver (e.g. Apache, etc.) and haven't changed any ports (`matrix_*_host_bind_port` definitions), you shouldn't be affected. You're likely sending Matrix traffic to `127.0.0.1:8008` and `127.0.0.1:8048`. These ports (`8008` and `8048`) will still be exposed on `127.0.0.1` by default — just not by the `matrix-synapse` container from now on, but by the `matrix-synapse-reverse-proxy-companion` container instead" +msgstr "" + +#: ../../../CHANGELOG.md:1519 +msgid "if you've been exposing `matrix-synapse` ports (`matrix_synapse_container_client_api_host_bind_port`, etc.) manually, you should consider exposing `matrix-synapse-reverse-proxy-companion` ports instead" +msgstr "" + +#: ../../../CHANGELOG.md:1521 +msgid "if you're running Traefik and reverse-proxying directly to the `matrix-synapse` container, you should start reverse-proxying to the `matrix-synapse-reverse-proxy-companion` container instead. See [our updated Traefik example configuration](docs/configuring-playbook-own-webserver.md#sample-configuration-for-running-behind-traefik-20). Note: we now recommend calling the federation entry point `federation` (instead of `synapse`) and reverse-proxying the federation traffic via `matrix-nginx-proxy`, instead of sending it directly to Synapse (or `matrix-synapse-reverse-proxy-companion`). This makes the configuration simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1524 +msgid "2022-11-05" +msgstr "" + +#: ../../../CHANGELOG.md:1526 +msgid "(Backward Compatibility Break) A new default standalone mode for Etherpad" +msgstr "" + +#: ../../../CHANGELOG.md:1528 +msgid "Until now, [Etherpad](https://etherpad.org/) (which [the playbook could install for you](docs/configuring-playbook-etherpad.md)) required the [Dimension integration manager](docs/configuring-playbook-dimension.md) to also be installed, because Etherpad was hosted on the Dimension domain (at `dimension.example.com/etherpad`)." +msgstr "" + +#: ../../../CHANGELOG.md:1530 +msgid "From now on, Etherpad can be installed in `standalone` mode on `etherpad.example.com` and used even without Dimension. This is much more versatile, so the playbook now defaults to this new mode (`etherpad_mode: standalone`)." +msgstr "" + +#: ../../../CHANGELOG.md:1532 +msgid "If you've already got both Etherpad and Dimension in use you could:" +msgstr "" + +#: ../../../CHANGELOG.md:1534 +msgid "**either** keep hosting Etherpad under the Dimension domain by adding `etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary." +msgstr "" + +#: ../../../CHANGELOG.md:1536 +msgid "**or**, you could change to hosting Etherpad separately on `etherpad.example.com`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.example.com/…`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.example.com/etherpad/…`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode" +msgstr "" + +#: ../../../CHANGELOG.md:1539 +msgid "2022-11-04" +msgstr "" + +#: ../../../CHANGELOG.md:1541 +msgid "The playbook now uses external roles for some things" +msgstr "" + +#: ../../../CHANGELOG.md:1543 +msgid "**TLDR**: when updating the playbook and before running it, you'll need to run `make roles` to make [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) download dependency roles (see the [`requirements.yml` file](requirements.yml)) to the `roles/galaxy` directory. Without this, the playbook won't work." +msgstr "" + +#: ../../../CHANGELOG.md:1545 +msgid "We're in the process of trimming the playbook and making it reuse Ansible roles." +msgstr "" + +#: ../../../CHANGELOG.md:1547 +msgid "Starting now, the playbook is composed of 2 types of Ansible roles:" +msgstr "" + +#: ../../../CHANGELOG.md:1549 +msgid "those that live within the playbook itself (`roles/custom/*`)" +msgstr "" + +#: ../../../CHANGELOG.md:1551 +msgid "those downloaded from other sources (using [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to `roles/galaxy`, based on the [`requirements.yml` file](requirements.yml)). These roles are maintained by us or by other people from the Ansible community." +msgstr "" + +#: ../../../CHANGELOG.md:1553 +msgid "We're doing this for greater code-reuse (across Ansible playbooks, including our own related playbooks [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) and [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)) and decreased maintenance burden. Until now, certain features were copy-pasted across playbooks or were maintained separately in each one, with improvements often falling behind. We've also tended to do too much by ourselves — installing Docker on the server from our `matrix-base` role, etc. — something that we'd rather not do anymore by switching to the [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker) role." +msgstr "" + +#: ../../../CHANGELOG.md:1555 +msgid "Some variable names will change during the transition to having more and more external (galaxy) roles. There's a new `custom/matrix_playbook_migration` role added to the playbook which will tell you about these changes each time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1557 +msgid "**From now on**, every time you update the playbook (well, every time the `requirements.yml` file changes), it's best to run `make roles` to update the roles downloaded from other sources. `make roles` is a shortcut (a `roles` target defined in [`Makefile`](Makefile) and executed by the [`make`](https://www.gnu.org/software/make/) utility) which ultimately runs [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to download Ansible roles. If you don't have `make`, you can also manually run the commands seen in the `Makefile`." +msgstr "" + +#: ../../../CHANGELOG.md:1560 +msgid "2022-10-14" +msgstr "" + +#: ../../../CHANGELOG.md:1562 +msgid "synapse-s3-storage-provider support" +msgstr "" + +#: ../../../CHANGELOG.md:1564 +msgid "**`synapse-s3-storage-provider` support is very new and still relatively untested. Using it may cause data loss.**" +msgstr "" + +#: ../../../CHANGELOG.md:1566 +msgid "You can now store your Synapse media repository files on Amazon S3 (or another S3-compatible object store) using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) — a media provider for Synapse (Python module), which should work faster and more reliably than our previous [Goofys](docs/configuring-playbook-s3-goofys.md) implementation (Goofys will continue to work)." +msgstr "" + +#: ../../../CHANGELOG.md:1568 +msgid "This is not just for initial installations. Users with existing files (stored in the local filesystem) can also migrate their files to `synapse-s3-storage-provider`." +msgstr "" + +#: ../../../CHANGELOG.md:1570 +msgid "To get started, see our [Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](docs/configuring-playbook-synapse-s3-storage-provider.md) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1572 +msgid "Synapse container image customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1574 +msgid "We now support customizing the Synapse container image by adding additional build steps to its [`Dockerfile`](https://docs.docker.com/engine/reference/builder/)." +msgstr "" + +#: ../../../CHANGELOG.md:1576 +msgid "Our [synapse-s3-storage-provider support](#synapse-s3-storage-provider-support) is actually built on this. When `s3-storage-provider` is enabled, we automatically add additional build steps to install its Python module into the Synapse image." +msgstr "" + +#: ../../../CHANGELOG.md:1578 +msgid "Besides this kind of auto-added build steps (for components supported by the playbook), we also let you inject your own custom build steps using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1589 +msgid "People who have needed to customize Synapse previously had to fork the git repository, make their changes to the `Dockerfile` there, point the playbook to the new repository (`matrix_synapse_container_image_self_build_repo`) and enable self-building from scratch (`matrix_synapse_container_image_self_build: true`). This is harder and slower." +msgstr "" + +#: ../../../CHANGELOG.md:1591 +msgid "With the new Synapse-customization feature in the playbook, we use the original upstream (pre-built, if available) Synapse image and only build on top of it, right on the Matrix server. This is much faster than building all of Synapse from scratch." +msgstr "" + +#: ../../../CHANGELOG.md:1594 +msgid "2022-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:1596 +msgid "matrix-ldap-registration-proxy support" +msgstr "" + +#: ../../../CHANGELOG.md:1598 +msgid "Thanks to [@TheOneWithTheBraid](https://github.com/TheOneWithTheBraid), we now support installing [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) — a proxy which handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../CHANGELOG.md:1600 +msgid "See our [Setting up matrix-ldap-registration-proxy](docs/configuring-playbook-matrix-ldap-registration-proxy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1603 +msgid "2022-09-15" +msgstr "" + +#: ../../../CHANGELOG.md:1605 +msgid "(Potential Backward Compatibility Break) Major improvements to Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:1607 +msgid "People who are interested in running a Synapse worker setup should know that **our Synapse worker implementation is much more powerful now**:" +msgstr "" + +#: ../../../CHANGELOG.md:1609 +msgid "we've added support for [Stream writers](#stream-writers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1610 +msgid "we've added support for [multiple federation sender workers](#multiple-federation-sender-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1611 +msgid "we've added support for [multiple pusher workers](#multiple-pusher-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1612 +msgid "we've added support for [running background tasks on a worker](#background-tasks-can-run-on-a-worker)" +msgstr "" + +#: ../../../CHANGELOG.md:1613 +msgid "we've restored support for [`appservice` workers](#appservice-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1614 +msgid "we've restored support for [`user_dir` workers](#user-directory-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1615 +msgid "we've made it possible to [reliably use more than 1 `media_repository` worker](#using-more-than-1-media-repository-worker-is-now-more-reliable)" +msgstr "" + +#: ../../../CHANGELOG.md:1616 +msgid "see the [Potential Backward Incompatibilities after these Synapse worker changes](#potential-backward-incompatibilities-after-these-synapse-worker-changes)" +msgstr "" + +#: ../../../CHANGELOG.md:1618 +msgid "Stream writers support" +msgstr "" + +#: ../../../CHANGELOG.md:1620 +msgid "From now on, the playbook lets you easily set up various [stream writer workers](https://matrix-org.github.io/synapse/latest/workers.html#stream-writers) which can handle different streams (`events` stream; `typing` URL endpoints, `to_device` URL endpoints, `account_data` URL endpoints, `receipts` URL endpoints, `presence` URL endpoints). All of this work was previously handled by the main Synapse process, but can now be offloaded to stream writer worker processes." +msgstr "" + +#: ../../../CHANGELOG.md:1622 +msgid "If you're using `matrix_synapse_workers_preset: one-of-each`, you'll automatically get 6 additional workers (one for each of the above stream types). Our `little-federation-helper` preset (meant to be quite minimal and focusing in improved federation performance) does not include stream writer workers." +msgstr "" + +#: ../../../CHANGELOG.md:1624 +msgid "If you'd like to customize the number of workers we also make that possible using these variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1637 +msgid "Multiple federation sender workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1639 +msgid "Until now, we only supported a single `federation_sender` worker (`matrix_synapse_workers_federation_sender_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with your federation traffic." +msgstr "" + +#: ../../../CHANGELOG.md:1641 +msgid "Multiple pusher workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1643 +msgid "Until now, we only supported a single `pusher` worker (`matrix_synapse_workers_pusher_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with pushing notifications out." +msgstr "" + +#: ../../../CHANGELOG.md:1645 +msgid "Background tasks can run on a worker" +msgstr "" + +#: ../../../CHANGELOG.md:1647 +msgid "From now on, you can put [background task processing on a worker](https://matrix-org.github.io/synapse/latest/workers.html#background-tasks)." +msgstr "" + +#: ../../../CHANGELOG.md:1649 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `background` worker automatically. You can also control the `background` workers count with `matrix_synapse_workers_background_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1651 +msgid "Appservice worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1653 +msgid "We previously had an `appservice` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1655 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of talking to Application Services. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1657 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `appservice` worker automatically. You can also control the `appservice` workers count with `matrix_synapse_workers_appservice_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1659 +msgid "User Directory worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1661 +msgid "We previously had a `user_dir` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1663 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of serving the user directory. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1665 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `user_dir` worker automatically. You can also control the `user_dir` workers count with `matrix_synapse_workers_user_dir_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1667 +msgid "Using more than 1 media repository worker is now more reliable" +msgstr "" + +#: ../../../CHANGELOG.md:1669 +msgid "With `matrix_synapse_workers_preset: one-of-each`, we only launch one `media_repository` worker." +msgstr "" + +#: ../../../CHANGELOG.md:1671 +msgid "If you've been configuring `matrix_synapse_workers_media_repository_workers_count` manually, you may have increased that to more workers. When multiple media repository workers are in use, background tasks related to the media repository must always be configured to run on a single `media_repository` worker via `media_instance_running_background_jobs`. Until now, we weren't doing this correctly, but we now are." +msgstr "" + +#: ../../../CHANGELOG.md:1673 +msgid "Potential Backward Incompatibilities after these Synapse worker changes" +msgstr "" + +#: ../../../CHANGELOG.md:1675 +msgid "Below we'll discuss **potential backward incompatibilities**." +msgstr "" + +#: ../../../CHANGELOG.md:1677 +msgid "**Worker names** (container names, systemd services, worker configuration files) **have changed**. Workers are now labeled sequentially (e.g. `matrix-synapse-worker_generic_worker-18111` -> `matrix-synapse-worker-generic-0`). The playbook will handle these changes automatically." +msgstr "" + +#: ../../../CHANGELOG.md:1679 +msgid "Due to increased worker types support above, people who use `matrix_synapse_workers_preset: one-of-each` should be aware that with these changes, **the playbook will deploy 9 additional workers** (6 stream writers, 1 `appservice` worker, 1 `user_dir` worker, 1 background task worker). This **may increase RAM/CPU usage**, etc. If you find your server struggling, consider disabling some workers with the appropriate `matrix_synapse_workers_*_workers_count` variables." +msgstr "" + +#: ../../../CHANGELOG.md:1681 +msgid "**Metric endpoints have also changed** (`/metrics/synapse/worker/generic_worker-18111` -> `/metrics/synapse/worker/generic-worker-0`). If you're [collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server), consider revisiting our [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server) docs and updating your Prometheus configuration. **If you're collecting metrics to the integrated Prometheus server** (not enabled by default), **your Prometheus configuration will be updated automatically**. Old data (from before this change) may stick around though." +msgstr "" + +#: ../../../CHANGELOG.md:1683 +msgid "**the format of `matrix_synapse_workers_enabled_list` has changed**. You were never advised to use this variable for directly creating workers (we advise people to control workers using `matrix_synapse_workers_preset` or by tweaking `matrix_synapse_workers_*_workers_count` variables only), but some people may have started using the `matrix_synapse_workers_enabled_list` variable to gain more control over workers. If you're one of them, you'll need to adjust its value. See `roles/custom/matrix-synapse/defaults/main.yml` for more information on the new format. The playbook will also do basic validation and complain if you got something wrong." +msgstr "" + +#: ../../../CHANGELOG.md:1686 +msgid "2022-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:1688 +msgid "Cactus Comments support" +msgstr "" + +#: ../../../CHANGELOG.md:1690 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now set up [Cactus Comments](https://cactus.chat) — federated comment system for the web based on Matrix." +msgstr "" + +#: ../../../CHANGELOG.md:1692 +msgid "See our [Setting up Cactus Comments](docs/configuring-playbook-cactus-comments.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1695 +msgid "2022-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:1697 +msgid "Postmoogle email bridge support" +msgstr "" + +#: ../../../CHANGELOG.md:1699 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge. Postmoogle is like the [Email2Matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving." +msgstr "" + +#: ../../../CHANGELOG.md:1701 +msgid "See our [Setting up Postmoogle email bridging](docs/configuring-playbook-bridge-postmoogle.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1704 +msgid "2022-08-10" +msgstr "" + +#: ../../../CHANGELOG.md:1706 +msgid "mautrix-whatsapp default configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:1708 +msgid "In [Pull Request #2012](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2012), we've made some changes to the default configuration used by the `mautrix-whatsapp` bridge." +msgstr "" + +#: ../../../CHANGELOG.md:1710 +msgid "If you're using this bridge, you should look into this PR and see if the new configuration suits you. If not, you can always change individual preferences in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1712 +msgid "Most notably, spaces support has been enabled by default. The bridge will now group rooms into a Matrix space. **If you've already bridged to Whatsapp** prior to this update, you will need to send `!wa sync space` to the bridge bot to make it create the space and put your existing rooms into it." +msgstr "" + +#: ../../../CHANGELOG.md:1715 +msgid "2022-08-09" +msgstr "" + +#: ../../../CHANGELOG.md:1717 +msgid "Conduit support" +msgstr "" + +#: ../../../CHANGELOG.md:1719 +msgid "Thanks to [Charles Wright](https://github.com/cvwright), we now have optional experimental [Conduit](https://conduit.rs) homeserver support for new installations. This comes as a follow-up to the playbook getting [Dendrite support](#dendrite-support) earlier this year." +msgstr "" + +#: ../../../CHANGELOG.md:1721 +msgid "Existing Synapse or Dendrite installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1723 +msgid "To try out Conduit, we recommend that you **use a new server** and the following `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1729 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse or Dendrite to Conduit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:1732 +msgid "2022-07-29" +msgstr "" + +#: ../../../CHANGELOG.md:1734 +msgid "mautrix-discord support" +msgstr "" + +#: ../../../CHANGELOG.md:1736 +msgid "Thanks to [MdotAmaan](https://github.com/MdotAmaan)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mautrix-discord](https://mau.dev/mautrix/discord) bridge. See our [Setting up Mautrix Discord bridging](docs/configuring-playbook-bridge-mautrix-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1738 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md) and [mx-puppet-discord](docs/configuring-playbook-bridge-mx-puppet-discord.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1741 +msgid "2022-07-27" +msgstr "" + +#: ../../../CHANGELOG.md:1743 +msgid "matrix-appservice-kakaotalk support" +msgstr "" + +#: ../../../CHANGELOG.md:1745 +msgid "The playbook now supports bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) via [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) — a bridge based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. Thanks to [hnarjis](https://github.com/hnarjis) for helping us add support for this!" +msgstr "" + +#: ../../../CHANGELOG.md:1747 +msgid "See our [Setting up Appservice Kakaotalk bridging](docs/configuring-playbook-bridge-appservice-kakaotalk.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1750 +msgid "2022-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:1752 +msgid "maubot support" +msgstr "" + +#: ../../../CHANGELOG.md:1754 +msgid "Thanks to [Stuart Mumford (@Cadair)](https://github.com/cadair) for starting ([PR #373](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/373) and [PR #622](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/622)) and to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s) for finishing up (in [PR #1894](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894)), the playbook can now help you set up [maubot](https://github.com/maubot/maubot) — a plugin-based Matrix bot system." +msgstr "" + +#: ../../../CHANGELOG.md:1756 +msgid "See our [Setting up maubot](docs/configuring-playbook-bot-maubot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1759 +msgid "2022-07-14" +msgstr "" + +#: ../../../CHANGELOG.md:1761 +msgid "mx-puppet-skype removal" +msgstr "" + +#: ../../../CHANGELOG.md:1763 +msgid "The playbook no longer includes the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge, because it has been broken and unmaintained for a long time. Users that have `matrix_mx_puppet_skype_enabled` in their configuration files will encounter an error when running the playbook until they remove references to this bridge from their configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1765 +msgid "To completely clean up your server from `mx-puppet-skype`'s presence on it:" +msgstr "" + +#: ../../../CHANGELOG.md:1767 +msgid "ensure your Ansible configuration (`vars.yml` file) no longer contains `matrix_mx_puppet_skype_*` references" +msgstr "" + +#: ../../../CHANGELOG.md:1768 +msgid "stop and disable the systemd service (run `systemctl disable --now matrix-mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1769 +msgid "delete the systemd service (run `rm /etc/systemd/system/matrix-mx-puppet-skype.service` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1770 +msgid "delete `/matrix/mx-puppet-skype` (run `rm -rf /matrix/mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1771 +msgid "drop the `matrix_mx_puppet_skype` database (run `/usr/local/bin/matrix-postgres-cli` on the server, and execute the `DROP DATABASE matrix_mx_puppet_skype;` query there)" +msgstr "" + +#: ../../../CHANGELOG.md:1773 +msgid "If you still need bridging to [Skype](https://www.skype.com/), consider switching to [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) instead. See [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1775 +msgid "If you think this is a mistake and `mx-puppet-skype` works for you (or you get it to work somehow), let us know and we may reconsider this removal." +msgstr "" + +#: ../../../CHANGELOG.md:1777 +msgid "signald (0.19.0+) upgrade requires data migration" +msgstr "" + +#: ../../../CHANGELOG.md:1779 +msgid "In [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921) we upgraded [signald](https://signald.org/) (used by the mautrix-signal bridge) from `v0.18.5` to `v0.20.0`." +msgstr "" + +#: ../../../CHANGELOG.md:1781 +msgid "Back in the [`v0.19.0` released of signald](https://gitlab.com/signald/signald/-/blob/main/releases/0.19.0.md) (which we skipped and migrated straight to `v0.20.0`), a new `--migrate-data` command had been added that migrates avatars, group images, attachments, etc., into the database (those were previously stored in the filesystem)." +msgstr "" + +#: ../../../CHANGELOG.md:1783 +msgid "If you've been using the mautrix-signal bridge for a while, you may have files stored in the local filesystem, which will need to be upgraded." +msgstr "" + +#: ../../../CHANGELOG.md:1785 +msgid "We attempt to do this data migration automatically every time Signald starts (`matrix-mautrix-signal-daemon.service`) using a `ExecStartPre` systemd unit definition." +msgstr "" + +#: ../../../CHANGELOG.md:1787 +msgid "Keep an eye on your Signal bridge and let us know (in our [support room](README.md#support) or in [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921)) if you experience any trouble!" +msgstr "" + +#: ../../../CHANGELOG.md:1790 +msgid "2022-07-05" +msgstr "" + +#: ../../../CHANGELOG.md:1792 +msgid "Ntfy push notifications support" +msgstr "" + +#: ../../../CHANGELOG.md:1794 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install a [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../CHANGELOG.md:1796 +msgid "See our [Setting up the ntfy push notifications server](docs/configuring-playbook-ntfy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1799 +msgid "2022-06-23" +msgstr "" + +#: ../../../CHANGELOG.md:1801 +msgid "(Potential Backward Compatibility Break) Changes around metrics collection" +msgstr "" + +#: ../../../CHANGELOG.md:1803 +msgid "**TLDR**: we've made extensive **changes to metrics exposure/collection, which concern people using an external Prometheus server**. If you don't know what that is, you don't need to read below." +msgstr "" + +#: ../../../CHANGELOG.md:1805 +msgid "**Why do major changes to metrics**? Because various services were exposing metrics in different, hacky, ways. Synapse was exposing metrics at `/_synapse/metrics` and `/_synapse-worker-…/metrics` on the `matrix.example.com`. The Hookshot role was **repurposing** the Granana web UI domain (`stats.example.com`) for exposing its metrics on `stats.example.com/hookshot/metrics`, while protecting these routes using Basic Authentication **normally used for Synapse** (`/_synapse/metrics`). Node-exporter and Postgres-exporter roles were advising for more `stats.example.com` usage in manual ways. Each role was doing things differently and mixing variables from other roles. Each metrics endpoint was ending up in a different place, protected by who knows what Basic Authentication credentials (if protected at all)." +msgstr "" + +#: ../../../CHANGELOG.md:1807 +msgid "**The solution**: a completely revamped way to expose metrics to an external Prometheus server. We are **introducing new `https://matrix.example.com/metrics/*` endpoints**, where various services *can* expose their metrics, for collection by external Prometheus servers. To enable the `/metrics/*` endpoints, use `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`. There's also a way to protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). See the `matrix-nginx-proxy` role or our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation for additional variables around `matrix_nginx_proxy_proxy_matrix_metrics_enabled`." +msgstr "" + +#: ../../../CHANGELOG.md:1809 +msgid "**If you are using the [Hookshot bridge](docs/configuring-playbook-bridge-hookshot.md)**, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1810 +msgid "**Metrics may not be enabled by default anymore**:" +msgstr "" + +#: ../../../CHANGELOG.md:1811 +msgid "If Prometheus is enabled (`prometheus_enabled: true`), then Hookshot metrics will be enabled automatically (`matrix_hookshot_metrics_enabled: true`). These metrics will be collected from the local (in-container) Prometheus over the container network." +msgstr "" + +#: ../../../CHANGELOG.md:1812 +msgid "**If Prometheus is not enabled** (you are either not using Prometheus or are using an external one), **Hookshot metrics will not be enabled by default anymore**. Feel free to enable them by setting `matrix_hookshot_metrics_enabled: true`. Also, see below." +msgstr "" + +#: ../../../CHANGELOG.md:1813 +msgid "When metrics are meant to be **consumed by an external Prometheus server**, `matrix_hookshot_metrics_proxying_enabled` needs to be set to `true`, so that metrics would be exposed (proxied) \"publicly\" on `https://matrix.example.com/metrics/hookshot`. To make use of this, you'll also need to enable the new `https://matrix.example.com/metrics/*` endpoints mentioned above, using `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. Learn more in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1814 +msgid "**We've changed the URL we're exposing Hookshot metrics at** for external Prometheus servers. Until now, you were advised to consume Hookshot metrics from `https://stats.example.com/hookshot/metrics` (working in conjunction with `matrix_nginx_proxy_proxy_synapse_metrics`). From now on, **this no longer works**. As described above, you need to start consuming metrics from `https://matrix.example.com/metrics/hookshot`." +msgstr "" + +#: ../../../CHANGELOG.md:1816 +msgid "**If you're using node-exporter** (`matrix_prometheus_node_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_node_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/node-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1818 +msgid "**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/postgres-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1820 +msgid "**If you're using Synapse** and would like to collect its metrics from an external Prometheus server, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1822 +msgid "Exposing metrics is now done using `matrix_synapse_metrics_proxying_enabled`, not `matrix_nginx_proxy_proxy_synapse_metrics: true`. You may still need to enable metrics using `matrix_synapse_metrics_enabled: true` before exposing them." +msgstr "" + +#: ../../../CHANGELOG.md:1823 +msgid "Protecting metrics endpoints using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is now done in another way. See our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation" +msgstr "" + +#: ../../../CHANGELOG.md:1824 +msgid "If Synapse metrics are exposed, they will be made available at `https://matrix.example.com/metrics/synapse/main-process` or `https://matrix.example.com/metrics/synapse/worker/TYPE-ID` (when workers are enabled), not at `https://matrix.example.com/_synapse/metrics` and `https://matrix.example.com/_synapse-worker-…/metrics`" +msgstr "" + +#: ../../../CHANGELOG.md:1825 +msgid "The playbook still generates an `external_prometheus.yml.example` sample file for scraping Synapse from Prometheus as described in [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server), but it's now saved under `/matrix/synapse` (not `/matrix`)." +msgstr "" + +#: ../../../CHANGELOG.md:1827 +msgid "**If you where already using a external Prometheus server** before this change, and you gave a hashed version of the password as a variable, the playbook will now take care of hashing the password for you. Thus, you need to provide the non-hashed version now." +msgstr "" + +#: ../../../CHANGELOG.md:1829 +msgid "2022-06-13" +msgstr "" + +#: ../../../CHANGELOG.md:1831 +msgid "go-skype-bridge bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1833 +msgid "Thanks to [CyberShadow](https://github.com/CyberShadow), the playbook can now install the [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) bridge for bridging Matrix to [Skype](https://www.skype.com/)." +msgstr "" + +#: ../../../CHANGELOG.md:1835 +msgid "See our [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1837 +msgid "The playbook has supported [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridging (see [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md)) since [2020-04-09](#2020-04-09), but `mx-puppet-skype` is reportedly broken." +msgstr "" + +#: ../../../CHANGELOG.md:1840 +msgid "2022-06-09" +msgstr "" + +#: ../../../CHANGELOG.md:1842 +msgid "Running Ansible in a container can now happen on the Matrix server itself" +msgstr "" + +#: ../../../CHANGELOG.md:1844 +msgid "If you're tired of being on an old and problematic Ansible version, you can now run [run Ansible in a container on the Matrix server itself](docs/ansible.md#running-ansible-in-a-container-on-the-matrix-server-itself)." +msgstr "" + +#: ../../../CHANGELOG.md:1847 +msgid "2022-05-31" +msgstr "" + +#: ../../../CHANGELOG.md:1849 +msgid "Synapse v1.60 upgrade may cause trouble and require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:1851 +msgid "Synapse v1.60 will try to add a new unique index to `state_group_edges` upon startup and could fail if your database is corrupted." +msgstr "" + +#: ../../../CHANGELOG.md:1853 +msgid "We haven't observed this problem yet, but [the Synapse v1.60.0 upgrade notes](https://github.com/element-hq/synapse/blob/v1.60.0/docs/upgrade.md#adding-a-new-unique-index-to-state_group_edges-could-fail-if-your-database-is-corrupted) mention it, so we're giving you a heads up here in case you're unlucky." +msgstr "" + +#: ../../../CHANGELOG.md:1855 +msgid "**If Synapse fails to start** after your next playbook run, you'll need to:" +msgstr "" + +#: ../../../CHANGELOG.md:1857 +msgid "SSH into the Matrix server" +msgstr "" + +#: ../../../CHANGELOG.md:1858 +msgid "launch `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1859 +msgid "switch to the `synapse` database: `\\c synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:1860 +msgid "run the following SQL query:" +msgstr "" + +#: ../../../CHANGELOG.md:1879 +msgid "You could then restart services: `ansible-playbook -i inventory/hosts setup.yml --tags=start`" +msgstr "" + +#: ../../../CHANGELOG.md:1882 +msgid "2022-04-25" +msgstr "" + +#: ../../../CHANGELOG.md:1884 +msgid "Buscarron bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1886 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [the Buscarron bot](https://github.com/etkecc/buscarron). It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../CHANGELOG.md:1888 +msgid "See our [Setting up Buscarron](docs/configuring-playbook-bot-buscarron.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1891 +msgid "2022-04-21" +msgstr "" + +#: ../../../CHANGELOG.md:1893 +msgid "matrix-registration-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1895 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) — a bot that is used to create and manage registration tokens for a Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1897 +msgid "See our [Setting up matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1900 +msgid "2022-04-19" +msgstr "" + +#: ../../../CHANGELOG.md:1902 +msgid "BorgBackup support" +msgstr "" + +#: ../../../CHANGELOG.md:1904 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [Borg](https://www.borgbackup.org/) backups with [borgmatic](https://torsion.org/borgmatic/) of your Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1906 +msgid "See our [Setting up BorgBackup](docs/configuring-playbook-backup-borg.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1908 +msgid "(Compatibility Break) Upgrading to Synapse v1.57 on setups using workers may require manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1910 +msgid "If you're running a worker setup for Synapse (`matrix_synapse_workers_enabled: true`), the [Synapse v1.57 upgrade notes](https://github.com/element-hq/synapse/blob/v1.57.0rc1/docs/upgrade.md#changes-to-database-schema-for-application-services) say that you may need to take special care when upgrading:" +msgstr "" + +#: ../../../CHANGELOG.md:1912 +msgid "Synapse v1.57.0 includes a change to the way transaction IDs are managed for application services. If your deployment uses a dedicated worker for application service traffic, **it must be stopped** when the database is upgraded (which normally happens when the main process is upgraded), to ensure the change is made safely without any risk of reusing transaction IDs." +msgstr "" + +#: ../../../CHANGELOG.md:1914 +msgid "If you're not running an `appservice` worker (`matrix_synapse_workers_preset: little-federation-helper` or `matrix_synapse_workers_appservice_workers_count: 0`), you are probably safe to upgrade as per normal, without taking any special care." +msgstr "" + +#: ../../../CHANGELOG.md:1916 +msgid "If you are running a setup with an `appservice` worker, or otherwise want to be on the safe side, we recommend the following upgrade path:" +msgstr "" + +#: ../../../CHANGELOG.md:1918 +msgid "Pull the latest playbook changes" +msgstr "" + +#: ../../../CHANGELOG.md:1919 +msgid "Stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:1920 +msgid "Re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:1921 +msgid "Start Postgres (`systemctl start matrix-postgres` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1922 +msgid "Start the main Synapse process (`systemctl start matrix-synapse` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1923 +msgid "Wait a while so that Synapse can start and complete the database migrations. You can use `journalctl -fu matrix-synapse` on the server to get a clue. Waiting a few minutes should also be enough." +msgstr "" + +#: ../../../CHANGELOG.md:1924 +msgid "It should now be safe to start all other services. `ansible-playbook -i inventory/hosts setup.yml --tags=start` will do it for you" +msgstr "" + +#: ../../../CHANGELOG.md:1927 +msgid "2022-04-14" +msgstr "" + +#: ../../../CHANGELOG.md:1929 +msgid "(Compatibility Break) Changes to `docker-src` permissions necessitating manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1931 +msgid "Users who build container images from source will need to manually correct file permissions of some directories on the server." +msgstr "" + +#: ../../../CHANGELOG.md:1933 +msgid "When self-building, the playbook used to `git clone` repositories (into `/matrix/SERVICE/docker-src`) using the `root` user, but now uses `matrix` instead to work around [the following issue with git 2.35.2](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1749)." +msgstr "" + +#: ../../../CHANGELOG.md:1935 +msgid "If you're on a non-`amd64` architecture (that is, you're overriding `matrix_architecture` in your `vars.yml` file) or you have enabled self-building for some service (e.g. `matrix_*_self_build: true`), you're certainly building some container images from source and have `docker-src` directories with mixed permissions lying around in various `/matrix/SERVICE` directories." +msgstr "" + +#: ../../../CHANGELOG.md:1937 +msgid "The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places — something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf`" +msgstr "" + +#: ../../../CHANGELOG.md:1940 +msgid "2022-03-17" +msgstr "" + +#: ../../../CHANGELOG.md:1942 +msgid "(Compatibility Break) ma1sd identity server no longer installed by default" +msgstr "" + +#: ../../../CHANGELOG.md:1944 +msgid "The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:1946 +msgid "The main reason we used to install ma1sd by default in the past was to prevent Element clients from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks." +msgstr "" + +#: ../../../CHANGELOG.md:1948 +msgid "Since Element clients no longer default to using a public identity server if another one is not provided, we can stop installing ma1sd." +msgstr "" + +#: ../../../CHANGELOG.md:1950 +msgid "If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1957 +msgid "2022-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1959 +msgid "matrix_encryption_disabler support" +msgstr "" + +#: ../../../CHANGELOG.md:1961 +msgid "We now support installing the [matrix_encryption_disabler](https://github.com/digitalentity/matrix_encryption_disabler) Synapse module, which lets you prevent End-to-End-Encryption from being enabled by users on your homeserver. The popular opinion is that this is dangerous and shouldn't be done, but there are valid use cases for disabling encryption discussed [here](https://github.com/matrix-org/synapse/issues/4401)." +msgstr "" + +#: ../../../CHANGELOG.md:1963 +msgid "To enable this module (and prevent encryption from being used on your homserver), add `matrix_synapse_ext_encryption_disabler_enabled: true` to your configuration. This module provides further customization. Check its other configuration settings (and defaults) in `roles/custom/matrix-synapse/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:1966 +msgid "2022-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:1968 +msgid "matrix-hookshot bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1970 +msgid "Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA. See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1973 +msgid "2022-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:1975 +msgid "ARM support for matrix-corporal" +msgstr "" + +#: ../../../CHANGELOG.md:1977 +msgid "[matrix-corporal](https://github.com/devture/matrix-corporal) (as of version `2.2.3`) is now published to Docker Hub (see [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal)) as a multi-arch container image with support for all these platforms: `linux/amd64`, `linux/arm64/v8` and `linux/arm/v7`. The playbook no longer resorts to self-building matrix-corporal on these ARM architectures." +msgstr "" + +#: ../../../CHANGELOG.md:1980 +msgid "2022-01-07" +msgstr "" + +#: ../../../CHANGELOG.md:1982 +msgid "Dendrite support" +msgstr "" + +#: ../../../CHANGELOG.md:1984 +msgid "**TLDR**: We now have optional experimental [Dendrite](https://github.com/matrix-org/dendrite) homeserver support for new installations. **Existing (Synapse) installations need to be updated**, because some internals changed. See [Adapting the configuration for existing Synapse installations](#adapting-the-configuration-for-existing-synapse-installations)." +msgstr "" + +#: ../../../CHANGELOG.md:1986 +msgid "[Jip J. Dekker](https://github.com/Dekker1) did the [initial work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818) of adding [Dendrite](https://github.com/matrix-org/dendrite) support to the playbook back in January 2021. Lots of work (and time) later, Dendrite support is finally ready for testing." +msgstr "" + +#: ../../../CHANGELOG.md:1988 +msgid "We believe that 2022 will be the year of the non-Synapse Matrix server!" +msgstr "" + +#: ../../../CHANGELOG.md:1990 +msgid "The playbook was previously quite [Synapse](https://github.com/element-hq/synapse)-centric, but can now accommodate multiple homeserver implementations. Only one homeserver implementation can be active (installed) at a given time." +msgstr "" + +#: ../../../CHANGELOG.md:1992 +msgid "**Synapse is still the default homeserver implementation** installed by the playbook. A new variable (`matrix_homeserver_implementation`) controls which server implementation is enabled (`synapse` or `dendrite` at the given moment)." +msgstr "" + +#: ../../../CHANGELOG.md:1994 +msgid "Adapting the configuration for existing Synapse installations" +msgstr "" + +#: ../../../CHANGELOG.md:1996 +msgid "Because the playbook is not so Synapse-centric anymore, a small configuration change is necessary for existing installations to bring them up to date." +msgstr "" + +#: ../../../CHANGELOG.md:1998 +msgid "The `vars.yml` file for **existing installations will need to be updated** by adding this **additional configuration**:" +msgstr "" + +#: ../../../CHANGELOG.md:2010 +msgid "Trying out Dendrite" +msgstr "" + +#: ../../../CHANGELOG.md:2012 +msgid "Finally, **to try out Dendrite**, we recommend that you **use a new server** and the following addition to your `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2018 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse to Dendrite) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:2020 +msgid "We're excited to gain support for other homeserver implementations, like [Conduit](https://conduit.rs/), etc!" +msgstr "" + +#: ../../../CHANGELOG.md:2022 +msgid "Honoroit bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2024 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) — a helpdesk bot." +msgstr "" + +#: ../../../CHANGELOG.md:2026 +msgid "See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2029 +msgid "2022-01-06" +msgstr "" + +#: ../../../CHANGELOG.md:2031 +msgid "Cinny support" +msgstr "" + +#: ../../../CHANGELOG.md:2033 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) — a new simple, elegant and secure Matrix client." +msgstr "" + +#: ../../../CHANGELOG.md:2035 +msgid "By default, we still install Element Web. Still, people who'd like to try Cinny out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2037 +msgid "Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2040 +msgid "2021-12-22" +msgstr "" + +#: ../../../CHANGELOG.md:2042 +msgid "Twitter bridging support via mautrix-twitter" +msgstr "" + +#: ../../../CHANGELOG.md:2044 +msgid "Thanks to [Matthew Cengia](https://github.com/mattcen) and [Shreyas Ajjarapu](https://github.com/shreyasajj), besides [mx-puppet-twitter](docs/configuring-playbook-bridge-mx-puppet-twitter.md), bridging to [Twitter](https://twitter.com/) can now also happen with [mautrix-twitter](docs/configuring-playbook-bridge-mautrix-twitter.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2047 +msgid "2021-12-14" +msgstr "" + +#: ../../../CHANGELOG.md:2049 +msgid "(Security) Users of the Signal bridge may wish to upgrade it to work around log4j vulnerability" +msgstr "" + +#: ../../../CHANGELOG.md:2051 +msgid "Recently, a security vulnerability affecting the Java logging package `log4j` [has been discovered](https://www.huntress.com/blog/rapid-response-critical-rce-vulnerability-is-affecting-java). Software that uses this Java package is potentially vulnerable." +msgstr "" + +#: ../../../CHANGELOG.md:2053 +msgid "One such piece of software that is part of the playbook is the [mautrix-signal bridge](./docs/configuring-playbook-bridge-mautrix-signal.md), which [has been patched already](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1452). If you're running this bridge, you may wish to [upgrade](./docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2056 +msgid "2021-11-11" +msgstr "" + +#: ../../../CHANGELOG.md:2058 +msgid "Dropped support for Postgres v9.6" +msgstr "" + +#: ../../../CHANGELOG.md:2060 +msgid "Postgres v9.6 reached its end of life today, so the playbook will refuse to run for you if you're still on that version." +msgstr "" + +#: ../../../CHANGELOG.md:2062 +msgid "Synapse still supports v9.6 (for now), but we're retiring support for it early, to avoid having to maintain support for so many Postgres versions. Users that are still on Postgres v9.6 can easily [upgrade Postgres](docs/maintenance-postgres.md#upgrading-postgresql) via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2065 +msgid "2021-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:2067 +msgid "Hangouts bridge no longer updated, superseded by a Googlechat bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2069 +msgid "The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future. We still retain support for this bridge in the playbook, but you're encouraged to switch away from it." +msgstr "" + +#: ../../../CHANGELOG.md:2071 +msgid "There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md). Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2074 +msgid "2021-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:2076 +msgid "LinkedIn bridging support via beeper-linkedin" +msgstr "" + +#: ../../../CHANGELOG.md:2078 +msgid "Thanks to [Alexandar Mechev](https://github.com/apmechev), the playbook can now install the [beeper-linkedin](https://gitlab.com/beeper/linkedin) bridge for bridging to [LinkedIn](https://www.linkedin.com/) Messaging." +msgstr "" + +#: ../../../CHANGELOG.md:2080 +msgid "This brings the total number of bridges supported by the playbook up to 20. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2082 +msgid "To get started with bridging to LinkedIn, see [Setting up Beeper LinkedIn bridging](docs/configuring-playbook-bridge-beeper-linkedin.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2085 +msgid "2021-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:2087 +msgid "Sygnal upgraded — ARM support and no longer requires a database" +msgstr "" + +#: ../../../CHANGELOG.md:2089 +msgid "The [Sygnal](docs/configuring-playbook-sygnal.md) push gateway has been upgraded from `v0.9.0` to `v0.10.1`." +msgstr "" + +#: ../../../CHANGELOG.md:2091 +msgid "This is an optional component for the playbook, so most of our users wouldn't care about this announcement." +msgstr "" + +#: ../../../CHANGELOG.md:2093 +msgid "Since this feels like a relatively big (and untested, as of yet) Sygnal change, we're putting up this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2095 +msgid "The new version is also available for the ARM architecture. It also no longer requires a database anymore. If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit." +msgstr "" + +#: ../../../CHANGELOG.md:2098 +msgid "2021-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:2100 +msgid "Hydrogen support" +msgstr "" + +#: ../../../CHANGELOG.md:2102 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) — a new lightweight Matrix client with legacy and mobile browser support." +msgstr "" + +#: ../../../CHANGELOG.md:2104 +msgid "By default, we still install Element Web, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2106 +msgid "Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2109 +msgid "2021-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2111 +msgid "Heisenbridge support" +msgstr "" + +#: ../../../CHANGELOG.md:2113 +msgid "Thanks to [Toni Spets (hifi)](https://github.com/hifi), the playbook now supports bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) using yet another bridge (besides matrix-appservice-irc), called [Heisenbridge](https://github.com/hifi/heisenbridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2115 +msgid "Additional details are available in [Setting up Heisenbridge bouncer-style IRC bridging](docs/configuring-playbook-bridge-heisenbridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2118 +msgid "2021-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:2120 +msgid "Disabling TLSv1 and TLSv1.1 for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:2122 +msgid "To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [coturn](https://github.com/coturn/coturn) configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2124 +msgid "If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2132 +msgid "2021-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2134 +msgid "Automated local Postgres backup support" +msgstr "" + +#: ../../../CHANGELOG.md:2136 +msgid "Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local)." +msgstr "" + +#: ../../../CHANGELOG.md:2138 +msgid "Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2141 +msgid "2021-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2143 +msgid "Mjolnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:2145 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook can now install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation tool (bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2147 +msgid "Additional details are available in [Setting up Mjolnir](docs/configuring-playbook-bot-mjolnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2150 +msgid "2021-03-20" +msgstr "" + +#: ../../../CHANGELOG.md:2152 +msgid "Sygnal push gateway support" +msgstr "" + +#: ../../../CHANGELOG.md:2154 +msgid "The playbook can now install the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../CHANGELOG.md:2156 +msgid "This is only useful to people who develop/build their own Matrix client applications." +msgstr "" + +#: ../../../CHANGELOG.md:2158 +msgid "Additional details are available in our [Setting up the Sygnal push gateway](docs/configuring-playbook-sygnal.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2161 +msgid "2021-03-16" +msgstr "" + +#: ../../../CHANGELOG.md:2163 +msgid "Go-NEB support" +msgstr "" + +#: ../../../CHANGELOG.md:2165 +msgid "Thanks to [Zir0h](https://github.com/Zir0h), the playbook can now install and configure the [Go-NEB](https://github.com/matrix-org/go-neb) bot." +msgstr "" + +#: ../../../CHANGELOG.md:2167 +msgid "Additional details are available in [Setting up Go-NEB](docs/configuring-playbook-bot-go-neb.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2170 +msgid "2021-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:2172 +msgid "GroupMe bridging support via mx-puppet-groupme" +msgstr "" + +#: ../../../CHANGELOG.md:2174 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix), the playbook can now install the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge for bridging to [GroupMe](https://groupme.com)." +msgstr "" + +#: ../../../CHANGELOG.md:2176 +msgid "This brings the total number of bridges supported by the playbook up to 18. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2178 +msgid "To get started, follow our [Setting up MX Puppet GroupMe](docs/configuring-playbook-bridge-mx-puppet-groupme.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2180 +msgid "Mautrix Instagram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2182 +msgid "The playbook now supports bridging with [Instagram](https://www.instagram.com/) by installing the [mautrix-instagram](https://github.com/tulir/mautrix-instagram) bridge. This playbook functionality is available thanks to [@MarcProe](https://github.com/MarcProe)." +msgstr "" + +#: ../../../CHANGELOG.md:2184 +msgid "Additional details are available in [Setting up Mautrix Instagram bridging](docs/configuring-playbook-bridge-mautrix-instagram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2186 +msgid "Synapse workers support" +msgstr "" + +#: ../../../CHANGELOG.md:2188 +msgid "After [lots and lots of work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456) (done over many months by [Marcel Partap](https://github.com/eMPee584), [Max Klenk](https://github.com/maxklenk), a few others from the [Technical University of Dresden, Germany](https://tu-dresden.de/) and various other contributors), support for Synapse workers has finally landed." +msgstr "" + +#: ../../../CHANGELOG.md:2190 +msgid "Having support for workers makes the playbook suitable for larger homeserver deployments." +msgstr "" + +#: ../../../CHANGELOG.md:2192 +msgid "Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 — TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk)." +msgstr "" + +#: ../../../CHANGELOG.md:2194 +msgid "By default, workers are disabled and Synapse runs as a single process (homeservers don't necessarily need the complexity and increased memory requirements of running a worker-based setup)." +msgstr "" + +#: ../../../CHANGELOG.md:2196 +msgid "To enable Synapse workers, follow our [Load balancing with workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2199 +msgid "2021-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:2201 +msgid "(Potential Breaking Change) Monitoring/metrics support using Prometheus and Grafana" +msgstr "" + +#: ../../../CHANGELOG.md:2203 +msgid "Thanks to [@Peetz0r](https://github.com/Peetz0r), the playbook can now install a bunch of tools for monitoring your Matrix server: the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI." +msgstr "" + +#: ../../../CHANGELOG.md:2205 +msgid "To get get these installed, follow our [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](docs/configuring-playbook-prometheus-grafana.md) docs page." +msgstr "" + +#: ../../../CHANGELOG.md:2207 +msgid "This update comes with a **potential breaking change** for people who were already exposing Synapse metrics (for consumption via another Prometheus installation). From now on, `matrix_synapse_metrics_enabled: true` no longer exposes metrics publicly via matrix-nginx-proxy (at `https://matrix.example.com/_synapse/metrics`). To do so, you'd need to explicitly set `matrix_nginx_proxy_proxy_synapse_metrics: true`." +msgstr "" + +#: ../../../CHANGELOG.md:2210 +msgid "2021-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:2212 +msgid "Etherpad support" +msgstr "" + +#: ../../../CHANGELOG.md:2214 +msgid "Thanks to [@pushytoxin](https://github.com/pushytoxin), the playbook can now install the [Etherpad](https://etherpad.org) realtime collaborative text editor. It can be used in a [Jitsi](https://jitsi.org/) audio/video call or integrated as a widget into Matrix chat rooms via the [Dimension](https://dimension.t2bot.io) integration manager." +msgstr "" + +#: ../../../CHANGELOG.md:2216 +msgid "To get it installed, follow [our Etherpad docs page](docs/configuring-playbook-etherpad.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2219 +msgid "2021-01-22" +msgstr "" + +#: ../../../CHANGELOG.md:2221 +msgid "(Breaking Change) Postgres changes that require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:2223 +msgid "We've made a lot of changes to our Postgres setup and some manual action is required (described below). Sorry about the hassle." +msgstr "" + +#: ../../../CHANGELOG.md:2225 +msgid "**TLDR**: people running an [external Postgres server](docs/configuring-playbook-external-postgres.md) don't need to change anything for now. Everyone else (the common/default case) is affected and manual intervention is required." +msgstr "" + +#: ../../../CHANGELOG.md:2227 +msgid "Why?" +msgstr "" + +#: ../../../CHANGELOG.md:2229 +msgid "we had a default Postgres password (`matrix_postgres_connection_password: synapse-password`), which we think is **not ideal for security anymore**. We now ask you to generate/provide a strong password yourself. Postgres is normally not exposed outside the container network, making it relatively secure, but still:" +msgstr "" + +#: ../../../CHANGELOG.md:2230 +msgid "by tweaking the configuration, you may end up intentionally or unintentionally exposing your Postgres server to the local network (or even publicly), while still using the default default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2231 +msgid "we can't be sure we trust all these services (bridges, etc). Some of them may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2232 +msgid "you may have other containers running on the same Docker network, which may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2233 +msgid "our Postgres usage **was overly-focused on Synapse** (default username of `synapse` and default/main database of `homeserver`). Additional homeserver options are likely coming in the future ([Dendrite](https://matrix.org/docs/projects/server/dendrite), [Conduit](https://matrix.org/docs/projects/server/conduit), [The Construct](https://matrix.org/docs/projects/server/construct)), so being too focused on `matrix-synapse` is not great. From now on, Synapse is just another component of this playbook, which happens to have an *additional database* (called `synapse`) on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2234 +msgid "we try to reorganize things a bit, to make the playbook even friendlier to people running an [external Postgres server](docs/configuring-playbook-external-postgres.md). Work on this will proceed in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2236 +msgid "So, this is some **effort to improve security** and to **prepare for a brighter future of having more homeserver options** than just Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:2238 +msgid "What has really changed?" +msgstr "" + +#: ../../../CHANGELOG.md:2240 +msgid "the default superuser Postgres username is now `matrix` (used to be `synapse`)" +msgstr "" + +#: ../../../CHANGELOG.md:2241 +msgid "the default Postgres database is now `matrix` (used to be `homeserver`)" +msgstr "" + +#: ../../../CHANGELOG.md:2242 +msgid "Synapse's database is now `synapse` (used to be `homeserver`). This is now just another \"additional database\" that the playbook manages for you" +msgstr "" + +#: ../../../CHANGELOG.md:2243 +msgid "Synapse's user called `synapse` is just a regular user that can only use the `synapse` database (not a superuser anymore)" +msgstr "" + +#: ../../../CHANGELOG.md:2245 +msgid "What do I do if I'm using the integrated Postgres server (default)?" +msgstr "" + +#: ../../../CHANGELOG.md:2247 +msgid "By default, the playbook runs an integrated Postgres server for you in a container (`matrix-postgres`). Unless you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), these steps are meant for you." +msgstr "" + +#: ../../../CHANGELOG.md:2249 +msgid "To migrate to the new setup, expect a few minutes of downtime, while you follow these steps:" +msgstr "" + +#: ../../../CHANGELOG.md:2251 +msgid "We believe the steps below are safe and you won't encounter any data loss, but consider [making a Postgres backup](docs/maintenance-postgres.md#backing-up-postgresql) anyway. If you've never backed up Postgres, now would be a good time to try it." +msgstr "" + +#: ../../../CHANGELOG.md:2253 +msgid "Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can create one with a command like `pwgen -s 64 1`. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy!" +msgstr "" + +#: ../../../CHANGELOG.md:2255 +msgid "Update your playbook's `inventory/host_vars/matrix.example.com/vars.yml` file, adding a line like this:" +msgstr "" + +#: ../../../CHANGELOG.md:2260 ../../../CHANGELOG.md:2272 +msgid "… where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2." +msgstr "" + +#: ../../../CHANGELOG.md:2262 +msgid "Stop all services: `ansible-playbook -i inventory/hosts setup.yml --tags=stop`" +msgstr "" + +#: ../../../CHANGELOG.md:2263 +msgid "Log in to the server via SSH. The next commands will be performed there." +msgstr "" + +#: ../../../CHANGELOG.md:2264 +msgid "Start the Postgres database server: `systemctl start matrix-postgres`" +msgstr "" + +#: ../../../CHANGELOG.md:2265 +msgid "Open a Postgres shell: `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:2266 +msgid "Execute the following query, while making sure to **change the password inside** (**don't forget the ending `;`**):" +msgstr "" + +#: ../../../CHANGELOG.md:2274 +msgid "Execute the following queries as you see them (no modifications necessary, so you can just **paste them all at once**):" +msgstr "" + +#: ../../../CHANGELOG.md:2292 +msgid "You may need to press *Enter* after pasting the lines above." +msgstr "" + +#: ../../../CHANGELOG.md:2294 +msgid "Re-run the playbook normally: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2296 +msgid "What do I do if I'm using an external Postgres server?" +msgstr "" + +#: ../../../CHANGELOG.md:2298 +msgid "If you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), there are **no changes** that you need to do at this time." +msgstr "" + +#: ../../../CHANGELOG.md:2300 +msgid "The fact that we've renamed Synapse's database from `homeserver` to `synapse` (in our defaults) should not affect you, as you're already explicitly defining `matrix_synapse_database_database` (if you've followed our guide, that is). If you're not explicitly defining this variable, you may wish to do so (`matrix_synapse_database_database: homeserver`), to avoid the new `synapse` default and keep things as they were." +msgstr "" + +#: ../../../CHANGELOG.md:2303 +msgid "2021-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:2305 +msgid "(Breaking Change) The mautrix-facebook bridge now requires a Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2307 +msgid "**Update from 2021-11-15**: SQLite support has been re-added to the mautrix-facebook bridge in [v0.3.2](https://github.com/mautrix/facebook/releases/tag/v0.3.2). You can ignore this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2309 +msgid "A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite." +msgstr "" + +#: ../../../CHANGELOG.md:2311 +msgid "**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2313 +msgid "Whether this change requires your intervention depends mostly on:" +msgstr "" + +#: ../../../CHANGELOG.md:2314 +msgid "whether you're using an [external Postgres server](docs/configuring-playbook-external-postgres.md). If yes, then [you need to do something](#upgrade-path-for-people-running-an-external-postgres-server)." +msgstr "" + +#: ../../../CHANGELOG.md:2315 +msgid "or whether you've force-changed the bridge's database engine to SQLite (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) some time in the past (likely during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous))." +msgstr "" + +#: ../../../CHANGELOG.md:2317 +msgid "As already mentioned above, you most likely don't need to do anything. If you rerun the playbook and don't get an error, you've been automatically upgraded. Just send a `login` message to the Facebook bridge bot again. Otherwise, read below for a solution." +msgstr "" + +#: ../../../CHANGELOG.md:2319 +msgid "Upgrade path for people NOT running an external Postgres server (default for the playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:2321 +msgid "If you're **not running an external Postgres server**, then this bridge either already works on Postgres for you, or you've intentionally kept it back on SQLite with custom configuration (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) ." +msgstr "" + +#: ../../../CHANGELOG.md:2323 +msgid "Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically. You'll need to send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2325 +msgid "Alternatively, [you can stay on SQLite for a little longer](#staying-on-sqlite-for-a-little-longer-temporary-solution)." +msgstr "" + +#: ../../../CHANGELOG.md:2327 +msgid "Upgrade path for people running an external Postgres server" +msgstr "" + +#: ../../../CHANGELOG.md:2329 +msgid "For people using the internal Postgres server (the default for the playbook):" +msgstr "" + +#: ../../../CHANGELOG.md:2330 +msgid "we automatically create an additional `matrix_mautrix_facebook` Postgres database and credentials to access it" +msgstr "" + +#: ../../../CHANGELOG.md:2331 +msgid "we automatically adjust the bridge's `matrix_mautrix_facebook_database_*` variables to point the bridge to that Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2332 +msgid "we use [pgloader](https://pgloader.io/) to automatically import the existing SQLite data for the bridge into the `matrix_mautrix_facebook` Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2334 +msgid "If you are using an [external Postgres server](docs/configuring-playbook-external-postgres.md), unfortunately we currently can't do any of that for you." +msgstr "" + +#: ../../../CHANGELOG.md:2336 +msgid "You have 3 ways to proceed:" +msgstr "" + +#: ../../../CHANGELOG.md:2338 +msgid "contribute to the playbook to make this possible (difficult)" +msgstr "" + +#: ../../../CHANGELOG.md:2339 +msgid "or, do the migration \"steps\" manually:" +msgstr "" + +#: ../../../CHANGELOG.md:2340 +msgid "stop the bridge (`systemctl stop matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2341 +msgid "create a new `matrix_mautrix_facebook` Postgres database for it" +msgstr "" + +#: ../../../CHANGELOG.md:2342 +msgid "run [pgloader](https://pgloader.io/) manually (we import this bridge's data using default settings and it works well)" +msgstr "" + +#: ../../../CHANGELOG.md:2343 +msgid "define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) — you can find their defaults in `roles/custom/matrix-mautrix-facebook/defaults/main.yml`" +msgstr "" + +#: ../../../CHANGELOG.md:2344 +msgid "switch the bridge to Postgres (`matrix_mautrix_facebook_database_engine: 'postgres'` in your `vars.yml` file)" +msgstr "" + +#: ../../../CHANGELOG.md:2345 +msgid "re-run the playbook (`--tags=setup-all,start`) and ensure the bridge works (`systemctl status matrix-mautrix-facebook` and `journalctl -fu matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2346 +msgid "send a `login` message to the Facebook bridge bot again" +msgstr "" + +#: ../../../CHANGELOG.md:2347 +msgid "or, [stay on SQLite for a little longer (temporary solution)](#staying-on-sqlite-for-a-little-longer-temporary-solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2349 +msgid "Staying on SQLite for a little longer (temporary solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2351 +msgid "To keep using this bridge with SQLite for a little longer (**not recommended**), use the following configuration in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:2361 +msgid "If you do this, keep in mind that **you can't run this forever**. This SQLite-supporting bridge version is not getting any updates and will break sooner or later. The playbook will also drop support for SQLite at some point in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2364 +msgid "2021-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:2366 +msgid "matrix-corporal goes 2.0" +msgstr "" + +#: ../../../CHANGELOG.md:2368 +msgid "[matrix-corporal v2 has been released](https://github.com/devture/matrix-corporal/releases/tag/2.0.0) and the playbook also supports it now." +msgstr "" + +#: ../../../CHANGELOG.md:2370 +msgid "No manual intervention is required in the common case." +msgstr "" + +#: ../../../CHANGELOG.md:2372 +msgid "The new [matrix-corporal](https://github.com/devture/matrix-corporal) version is also the first one to support Interactive Authentication. If you wish to enable that (hint: you should), you'll need to set up the [REST auth password provider](docs/configuring-playbook-rest-auth.md). There's more information in [our matrix-corporal docs](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2375 +msgid "2021-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2377 +msgid "Moving from cronjobs to systemd timers" +msgstr "" + +#: ../../../CHANGELOG.md:2379 +msgid "We no longer use cronjobs for Let's Encrypt SSL renewal and `matrix-nginx-proxy`/`matrix-coturn` reloading. Instead, we've switched to systemd timers." +msgstr "" + +#: ../../../CHANGELOG.md:2381 +msgid "The largest benefit of this is that we no longer require you to install a cron daemon, thus simplifying our install procedure." +msgstr "" + +#: ../../../CHANGELOG.md:2383 +msgid "The playbook will migrate you from cronjobs to systemd timers automatically. This is just a heads up." +msgstr "" + +#: ../../../CHANGELOG.md:2386 +msgid "2021-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:2388 +msgid "(Breaking Change) New SSL configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2390 +msgid "SSL configuration (protocols, ciphers) can now be more easily controlled thanks to us making use of configuration presets." +msgstr "" + +#: ../../../CHANGELOG.md:2392 +msgid "We define a few presets (old, intermediate, modern), following the [Mozilla SSL Configuration Generator](https://ssl-config.mozilla.org/#server=nginx)." +msgstr "" + +#: ../../../CHANGELOG.md:2394 +msgid "A new variable `matrix_nginx_proxy_ssl_preset` controls which preset is used (defaults to `\"intermediate\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2396 +msgid "Compared to before, this changes nginx's `ssl_prefer_server_ciphers` to `off` (used to default to `on`). It also add some more ciphers to the list, giving better performance on mobile devices, and removes some weak ciphers. More information in the [documentation](docs/configuring-playbook-nginx.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2398 +msgid "To revert to the old behaviour, set the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:2405 +msgid "Just like before, you can still use your own custom protocols by specifying them in `matrix_nginx_proxy_ssl_protocols`. Doing so overrides the values coming from the preset." +msgstr "" + +#: ../../../CHANGELOG.md:2408 +msgid "2021-01-03" +msgstr "" + +#: ../../../CHANGELOG.md:2410 +msgid "Signal bridging support via mautrix-signal" +msgstr "" + +#: ../../../CHANGELOG.md:2412 +msgid "Thanks to [laszabine](https://github.com/laszabine)'s efforts, the playbook now supports bridging to [Signal](https://www.signal.org/) via the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge. See our [Setting up Mautrix Signal bridging](docs/configuring-playbook-bridge-mautrix-signal.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2414 +msgid "If you had installed the mautrix-signal bridge while its Pull Request was still work-in-progress, you can migrate your data to the new and final setup by referring to [this comment](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686#issuecomment-753510789)." +msgstr "" + +#: ../../../CHANGELOG.md:2417 +msgid "2020-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:2419 +msgid "The big move to all-on-Postgres (potentially dangerous)" +msgstr "" + +#: ../../../CHANGELOG.md:2421 +msgid "**TLDR**: all your bridges (and other services) will likely be auto-migrated from SQLite/nedb to Postgres, hopefully without trouble. You can opt-out (see how below), if too worried about breakage." +msgstr "" + +#: ../../../CHANGELOG.md:2423 +msgid "Until now, we've only used Postgres as a database for Synapse. All other services (bridges, bots, etc.) were kept simple and used a file-based database (SQLite or nedb)." +msgstr "" + +#: ../../../CHANGELOG.md:2425 +msgid "Since [this huge pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740), **all of our services now use Postgres by default**. Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann) for starting the work on it and for providing great input!" +msgstr "" + +#: ../../../CHANGELOG.md:2427 +msgid "Moving all services to Postgres brings a few **benefits** to us:" +msgstr "" + +#: ../../../CHANGELOG.md:2429 +msgid "**improved performance**" +msgstr "" + +#: ../../../CHANGELOG.md:2430 +msgid "**improved compatibility**. Most bridges are deprecating SQLite/nedb support or offer less features when not on Postgres." +msgstr "" + +#: ../../../CHANGELOG.md:2431 +msgid "**easier backups**. It's still some effort to take a proper backup (Postgres dump + various files, keys), but a Postgres dump now takes you much further." +msgstr "" + +#: ../../../CHANGELOG.md:2432 +msgid "we're now **more prepared to introduce other services** that need a Postgres database — [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc." +msgstr "" + +#: ../../../CHANGELOG.md:2434 +msgid "Key takeway" +msgstr "" + +#: ../../../CHANGELOG.md:2436 +msgid "existing installations that use an [external Postgres](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-external-postgres.md) server should be unaffected (they remain on SQLite/nedb for all services, except Synapse)" +msgstr "" + +#: ../../../CHANGELOG.md:2438 +msgid "for existing installations which use our integrated Postgres database server (`matrix-postgres`, which is the default), **we automatically migrate data** from SQLite/nedb to Postgres and **archive the database files** (`something.db` -> `something.db.backup`), so you can restore them if you need to go back (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:2440 +msgid "Opting-out of the Postgres migration" +msgstr "" + +#: ../../../CHANGELOG.md:2442 +msgid "This is a **very large and somewhat untested change** (potentially dangerous), so **if you're not feeling confident/experimental, opt-out** of it for now. Still, it's the new default and what we (and various bridges) will focus on going forward, so don't stick to old ways for too long." +msgstr "" + +#: ../../../CHANGELOG.md:2444 +msgid "You can remain on SQLite/nedb (at least for now) by adding a variable like this to your `vars.yml` file for each service you use: `matrix_COMPONENT_database_engine: sqlite` (e.g. `matrix_mautrix_facebook_database_engine: sqlite`)." +msgstr "" + +#: ../../../CHANGELOG.md:2446 +msgid "Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2448 +msgid "Going back to SQLite/nedb if things went wrong" +msgstr "" + +#: ../../../CHANGELOG.md:2450 +msgid "If you went with the Postgres migration and it went badly for you (some bridge not working as expected or not working at all), do this:" +msgstr "" + +#: ../../../CHANGELOG.md:2452 +msgid "stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:2453 +msgid "SSH into the server and rename the old database files (`something.db.backup` -> `something.db`). Example: `mv /matrix/mautrix-facebook/data/mautrix-facebook.db.backup /matrix/mautrix-facebook/data/mautrix-facebook.db`" +msgstr "" + +#: ../../../CHANGELOG.md:2454 +msgid "switch the affected service back to SQLite (e.g. `matrix_mautrix_facebook_database_engine: sqlite`). Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2455 +msgid "re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`)" +msgstr "" + +#: ../../../CHANGELOG.md:2456 +msgid "[get in touch](README.md#support) with us" +msgstr "" + +#: ../../../CHANGELOG.md:2458 +msgid "2020-12-11" +msgstr "" + +#: ../../../CHANGELOG.md:2460 +msgid "synapse-janitor support removed" +msgstr "" + +#: ../../../CHANGELOG.md:2462 +msgid "We've removed support for the unmaintained [synapse-janitor](https://github.com/xwiki-labs/synapse_scripts) script. There's been past reports of it corrupting the Synapse database. Since there hasn't been any new development on it and it doesn't seem too useful nowadays, there's no point in including it in the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2464 +msgid "If you need to clean up or compact your database, consider using the Synapse Admin APIs directly. See our [Synapse maintenance](docs/maintenance-synapse.md) and [Postgres maintenance](docs/maintenance-postgres.md) documentation pages for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2466 +msgid "Docker 20.10 is here" +msgstr "" + +#: ../../../CHANGELOG.md:2468 +msgid "(No need to do anything special in relation to this. Just something to keep in mind)" +msgstr "" + +#: ../../../CHANGELOG.md:2470 +msgid "Docker 20.10 got released recently and your server will likely get it the next time you update." +msgstr "" + +#: ../../../CHANGELOG.md:2472 +msgid "This is the first major Docker update in a long time and it packs a lot of changes. Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now." +msgstr "" + +#: ../../../CHANGELOG.md:2475 +msgid "2020-12-08" +msgstr "" + +#: ../../../CHANGELOG.md:2477 +msgid "openid APIs exposed by default on the federation port when federation disabled" +msgstr "" + +#: ../../../CHANGELOG.md:2479 +msgid "We've changed some defaults. People running with our default configuration (federation enabled), are not affected at all." +msgstr "" + +#: ../../../CHANGELOG.md:2481 +msgid "If you are running an unfederated server (`matrix_synapse_federation_enabled: false`), this may be of interest to you." +msgstr "" + +#: ../../../CHANGELOG.md:2483 +msgid "When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port. These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`." +msgstr "" + +#: ../../../CHANGELOG.md:2486 +msgid "2020-11-27" +msgstr "" + +#: ../../../CHANGELOG.md:2488 +msgid "Recent Jitsi updates may require configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:2490 +msgid "We've recently [updated from Jitsi build 4857 to build 5142](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719), which brings a lot of configuration changes." +msgstr "" + +#: ../../../CHANGELOG.md:2492 +msgid "**If you use our default Jitsi settings, you won't have to do anything.**" +msgstr "" + +#: ../../../CHANGELOG.md:2494 +msgid "People who have [fine-tuned Jitsi](docs/configuring-playbook-jitsi.md#optional-fine-tune-jitsi) may find that some options got renamed now, others are gone and yet others still need to be defined in another way." +msgstr "" + +#: ../../../CHANGELOG.md:2496 +msgid "The next time you run the playbook [installation](docs/installing.md) command, our validation logic will tell you if you're using some variables like that and will recommend a migration path for each one." +msgstr "" + +#: ../../../CHANGELOG.md:2498 +msgid "Additionally, we've recently disabled transcriptions (`jitsi_enable_transcriptions: false`) and recording (`jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working." +msgstr "" + +#: ../../../CHANGELOG.md:2501 +msgid "2020-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:2503 ../../../CHANGELOG.md:2511 +msgid "Breaking change matrix-sms-bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2505 +msgid "Because of many problems using gammu as SMS provider, matrix-sms-bridge now uses (https://github.com/RebekkaMa/android-sms-gateway-server) by default. See (the docs)[./docs/configuring-playbook-bridge-matrix-bridge-sms.md] which new vars you need to add." +msgstr "" + +#: ../../../CHANGELOG.md:2507 +msgid "If you are using this playbook to deploy matrix-sms-bridge and still really want to use gammu as SMS provider, we could possibly add support for both android-sms-gateway-server and gammu." +msgstr "" + +#: ../../../CHANGELOG.md:2509 +msgid "2020-11-13" +msgstr "" + +#: ../../../CHANGELOG.md:2513 +msgid "The new version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) changed its database from neo4j to h2. You need to sync the bridge at the first start. Note that this only will sync rooms where the @smsbot:yourServer is member. For rooms without @smsbot:yourServer you need to kick and invite the telephone number **or** invite @smsbot:yourServer." +msgstr "" + +#: ../../../CHANGELOG.md:2515 +msgid "Add the following to your `vars.yml` file: `matrix_sms_bridge_container_extra_arguments=['--env SPRING_PROFILES_ACTIVE=initialsync']`" +msgstr "" + +#: ../../../CHANGELOG.md:2516 +msgid "Login to your host shell and remove old systemd file from your host: `rm /etc/systemd/system/matrix-sms-bridge-database.service`" +msgstr "" + +#: ../../../CHANGELOG.md:2517 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-sms-bridge,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2518 +msgid "Login to your host shell and check the logs with `journalctl -u matrix-sms-bridge` until the sync finished." +msgstr "" + +#: ../../../CHANGELOG.md:2519 +msgid "Remove the var from the first step." +msgstr "" + +#: ../../../CHANGELOG.md:2520 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`." +msgstr "" + +#: ../../../CHANGELOG.md:2522 +msgid "2020-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2524 +msgid "Dynamic DNS support" +msgstr "" + +#: ../../../CHANGELOG.md:2526 +msgid "Thanks to [Scott Crossen](https://github.com/scottcrossen), the playbook can now manage Dynamic DNS for you using [ddclient](https://ddclient.net/)." +msgstr "" + +#: ../../../CHANGELOG.md:2528 +msgid "To learn more, follow our [Dynamic DNS docs page](docs/configuring-playbook-dynamic-dns.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2531 +msgid "2020-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:2533 +msgid "(Compatibility Break) https://matrix.example.com/ now redirects to https://element.example.com/" +msgstr "" + +#: ../../../CHANGELOG.md:2535 +msgid "Until now, we used to serve a static page coming from Synapse at `https://matrix.example.com/`. This page was not very useful to anyone." +msgstr "" + +#: ../../../CHANGELOG.md:2537 +msgid "Since `matrix.example.com` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to [Element Web](docs/configuring-playbook-client-element-web.md))." +msgstr "" + +#: ../../../CHANGELOG.md:2539 +msgid "If Element Web is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page." +msgstr "" + +#: ../../../CHANGELOG.md:2541 +msgid "If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable. To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: \"\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2544 +msgid "2020-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:2546 +msgid "(Compatibility Break) /_synapse/admin is no longer publicly exposed by default" +msgstr "" + +#: ../../../CHANGELOG.md:2548 +msgid "We used to expose the Synapse Admin APIs publicly (at `https://matrix.example.com/_synapse/admin`). These APIs require authentication with a valid access token, so it's not that big a deal to expose them." +msgstr "" + +#: ../../../CHANGELOG.md:2550 +msgid "However, following [official Synapse's reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints), we're no longer exposing `/_synapse/admin` by default." +msgstr "" + +#: ../../../CHANGELOG.md:2552 +msgid "If you'd like to restore restore the old behavior and expose `/_synapse/admin` publicly, you can use the following configuration (in your `vars.yml`):" +msgstr "" + +#: ../../../CHANGELOG.md:2559 +msgid "2020-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:2561 +msgid "Minimum Ansible version raised to v2.7.0" +msgstr "" + +#: ../../../CHANGELOG.md:2563 +msgid "We were claiming to support [Ansible](https://www.ansible.com/) v2.5.2 and higher, but issues like [#662](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/662) demonstrate that we need at least v2.7.0." +msgstr "" + +#: ../../../CHANGELOG.md:2565 +msgid "If you've been using the playbook without getting any errors until now, you're probably on a version higher than that already (or you're not using the `matrix-ma1sd` and `matrix-client-element` roles)." +msgstr "" + +#: ../../../CHANGELOG.md:2567 +msgid "Our [Ansible docs page](docs/ansible.md) contains information on how to run a more up-to-date version of Ansible." +msgstr "" + +#: ../../../CHANGELOG.md:2570 +msgid "2020-10-01" +msgstr "" + +#: ../../../CHANGELOG.md:2572 +msgid "Postgres 13 support" +msgstr "" + +#: ../../../CHANGELOG.md:2574 +msgid "The playbook now installs [Postgres 13](https://www.postgresql.org/about/news/postgresql-13-released-2077/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2576 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x, 11.x or 12.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2578 +msgid "2020-09-01" +msgstr "" + +#: ../../../CHANGELOG.md:2580 +msgid "matrix-registration support" +msgstr "" + +#: ../../../CHANGELOG.md:2582 +msgid "The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) — an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2584 +msgid "See our [Setting up matrix-registration](docs/configuring-playbook-matrix-registration.md) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2587 +msgid "2020-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2589 +msgid "rust-synapse-compress-state support" +msgstr "" + +#: ../../../CHANGELOG.md:2591 +msgid "The playbook can now help you use [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) to compress the state groups in your Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2593 +msgid "See our [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2596 +msgid "2020-07-22" +msgstr "" + +#: ../../../CHANGELOG.md:2598 +msgid "Synapse Admin support" +msgstr "" + +#: ../../../CHANGELOG.md:2600 +msgid "The playbook can now help you set up [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin)." +msgstr "" + +#: ../../../CHANGELOG.md:2602 +msgid "See our [Setting up Synapse Admin](docs/configuring-playbook-synapse-admin.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2605 +msgid "2020-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:2607 +msgid "matrix-reminder-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2609 +msgid "The playbook can now help you set up [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2611 +msgid "See our [Setting up matrix-reminder-bot](docs/configuring-playbook-bot-matrix-reminder-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2614 +msgid "2020-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:2616 +msgid "(Compatibility Break) Riot is now Element" +msgstr "" + +#: ../../../CHANGELOG.md:2618 +msgid "As per the official announcement, [Riot has been rebraned to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../CHANGELOG.md:2620 +msgid "The playbook follows suit. Existing installations have a few options for how to handle this." +msgstr "" + +#: ../../../CHANGELOG.md:2622 +msgid "See our [Migrating to Element Web](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2625 +msgid "2020-07-03" +msgstr "" + +#: ../../../CHANGELOG.md:2627 +msgid "Steam bridging support via mx-puppet-steam" +msgstr "" + +#: ../../../CHANGELOG.md:2629 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Steam](https://steamapp.com/) via the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge. See our [Setting up MX Puppet Steam bridging](docs/configuring-playbook-bridge-mx-puppet-steam.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2632 +msgid "2020-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:2634 +msgid "Discord bridging support via mx-puppet-discord" +msgstr "" + +#: ../../../CHANGELOG.md:2636 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mx-puppet-discord](https://github.com/Sorunome/mx-puppet-discord) bridge. See our [Setting up MX Puppet Discord bridging](docs/configuring-playbook-bridge-mx-puppet-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2638 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md). You're free too use the bridge that serves you better, or even both (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:2641 +msgid "2020-06-30" +msgstr "" + +#: ../../../CHANGELOG.md:2643 +msgid "Instagram and Twitter bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2645 +msgid "Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann)'s efforts, the playbook now supports bridging to [Instagram](https://www.instagram.com/) via the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge. See our [Setting up MX Puppet Instagram bridging](docs/configuring-playbook-bridge-mx-puppet-instagram.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2647 +msgid "Thanks to [Tulir Asokan](https://github.com/tulir)'s efforts, the playbook now supports bridging to [Twitter](https://twitter.com/) via the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge. See our [Setting up MX Puppet Twitter bridging](docs/configuring-playbook-bridge-mx-puppet-twitter.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2650 +msgid "2020-06-28" +msgstr "" + +#: ../../../CHANGELOG.md:2652 +msgid "(Post Mortem / fixed Security Issue) Re-enabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2654 ../../../CHANGELOG.md:2683 +msgid "User Directory search requests used to go to the ma1sd identity server by default, which queried its own stores and the Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2656 +msgid "ma1sd's [security issue](https://github.com/ma1uta/ma1sd/issues/44) has been fixed in version `2.4.0`, with [this commit](ma1uta/ma1sd@2bb5a734d11662b06471113cf3d6b4cee5e33a85). `ma1sd 2.4.0` is now the default version for this playbook. For more information on what happened, please check the mentioned issue." +msgstr "" + +#: ../../../CHANGELOG.md:2658 +msgid "We are re-enabling user directory search with this update. Those who would like to keep it disabled can use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:2660 +msgid "As always, re-running the playbook is enough to get the updated bits." +msgstr "" + +#: ../../../CHANGELOG.md:2662 +msgid "2020-06-11" +msgstr "" + +#: ../../../CHANGELOG.md:2664 +msgid "SMS bridging requires db reset" +msgstr "" + +#: ../../../CHANGELOG.md:2666 +msgid "The current version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) needs you to delete the database to work as expected. Just remove `/matrix/matrix-sms-bridge/database/*`. It also adds a new requried var `matrix_sms_bridge_default_region`." +msgstr "" + +#: ../../../CHANGELOG.md:2668 +msgid "To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a message. You are also able to use automated room creation with telephonenumers by writing `sms send -t 01749292923 \"Hello World\"` in a room with `@smsbot:yourServer`. See [the docs](https://github.com/benkuly/matrix-sms-bridge) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:2670 +msgid "2020-06-05" +msgstr "" + +#: ../../../CHANGELOG.md:2672 +msgid "SMS bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2674 +msgid "Thanks to [benkuly](https://github.com/benkuly)'s efforts, the playbook now supports bridging to SMS (with one telephone number only) via [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2676 +msgid "See our [Setting up Matrix SMS bridging](docs/configuring-playbook-bridge-matrix-bridge-sms.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2679 +msgid "2020-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2681 +msgid "(Compatibility Break / Security Issue) Disabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2685 +msgid "ma1sd current has [a security issue](https://github.com/ma1uta/ma1sd/issues/44), which made it leak information about all users — including users created by bridges, etc." +msgstr "" + +#: ../../../CHANGELOG.md:2687 +msgid "Until the issue gets fixed, we're making User Directory search not go to ma1sd by default. You **need to re-run the playbook and restart services to apply this workaround**." +msgstr "" + +#: ../../../CHANGELOG.md:2689 +msgid "*If you insist on restoring the old behavior* (**which has a security issue!**), you *might* use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: \"{{ matrix_ma1sd_enabled }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2692 +msgid "2020-04-28" +msgstr "" + +#: ../../../CHANGELOG.md:2694 +msgid "Newer IRC bridge (with potential breaking change)" +msgstr "" + +#: ../../../CHANGELOG.md:2696 +msgid "This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream made a change to how you define manual mappings. If you added a `mapping` to your configuration, you will need to update it accoring to the [upstream instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). If you did not include `mappings` in your configuration for IRC, no change is necessary. `mappings` is not part of the default configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2705 +msgid "2020-04-23" +msgstr "" + +#: ../../../CHANGELOG.md:2707 ../../../CHANGELOG.md:2938 +msgid "Slack bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2709 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Slack](https://slack.com) via the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2711 +msgid "See our [Setting up MX Puppet Slack bridging](docs/configuring-playbook-bridge-mx-puppet-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2714 +msgid "2020-04-09" +msgstr "" + +#: ../../../CHANGELOG.md:2716 +msgid "Skype bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2718 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Skype](https://www.skype.com) via the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2720 +msgid "See our [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2723 +msgid "2020-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2725 +msgid "Private Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2727 +msgid "The [Jitsi support](#jitsi-support) we had landed a few weeks ago was working well, but it was always open to the whole world." +msgstr "" + +#: ../../../CHANGELOG.md:2729 +msgid "Running such an open instance is not desirable to most people, so [teutat3s](https://github.com/teutat3s) has contributed support for making Jitsi use authentication." +msgstr "" + +#: ../../../CHANGELOG.md:2731 +msgid "To make your Jitsi server more private, see the [configure internal Jitsi authentication and guests mode](docs/configuring-playbook-jitsi.md#optional-configure-internal-jitsi-authentication-and-guests-mode) section in our Jitsi documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2734 +msgid "2020-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2736 +msgid "(Potential Backward Compatibility Break) ma1sd replaces mxisd" +msgstr "" + +#: ../../../CHANGELOG.md:2738 +msgid "Thanks to [Marcel Partap](https://github.com/eMPee584)'s efforts, the [mxisd](https://github.com/kamax-io/mxisd) identity server, which has been deprecated for a long time, has finally been replaced by [ma1sd](https://github.com/ma1uta/ma1sd), a compatible fork." +msgstr "" + +#: ../../../CHANGELOG.md:2740 +msgid "**If you're using the default playbook configuration**, you don't need to do anything — your mxisd installation will be replaced with ma1sd and all existing data will be migrated automatically the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2742 +msgid "**If you're doing something more special** (defining custom `matrix_mxisd_*` variables), the playbook will ask you to rename them to `matrix_ma1sd_*`. You're also encouraged to test that ma1sd works well for such a more custom setup." +msgstr "" + +#: ../../../CHANGELOG.md:2745 +msgid "2020-03-29" +msgstr "" + +#: ../../../CHANGELOG.md:2747 +msgid "Archlinux support" +msgstr "" + +#: ../../../CHANGELOG.md:2749 +msgid "Thanks to [Christian Lupus](https://github.com/christianlupus)'s efforts, the playbook now supports installing to an [Archlinux](https://www.archlinux.org/) server." +msgstr "" + +#: ../../../CHANGELOG.md:2752 +msgid "2020-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:2754 +msgid "Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2756 +msgid "The playbook can now (optionally) install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Riot](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2758 +msgid "See our [Jitsi documentation page](docs/configuring-playbook-jitsi.md) to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2761 +msgid "2020-03-15" +msgstr "" + +#: ../../../CHANGELOG.md:2763 +msgid "Raspberry Pi support" +msgstr "" + +#: ../../../CHANGELOG.md:2765 +msgid "Thanks to [Gergely Horváth](https://github.com/hooger)'s effort, the playbook supports installing to a Raspberry Pi server, for at least some of the services." +msgstr "" + +#: ../../../CHANGELOG.md:2767 +msgid "Since most ready-made container images do not support that architecture, we achieve this by building images locally on the device itself. See our [Self-building documentation page](docs/self-building.md) for how to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2770 +msgid "2020-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:2772 +msgid "Riot-web themes are here" +msgstr "" + +#: ../../../CHANGELOG.md:2774 +msgid "The playbook now makes it easy to install custom riot-web themes." +msgstr "" + +#: ../../../CHANGELOG.md:2776 +msgid "To learn more, take a look at our [riot-web documentation on Themes](docs/configuring-playbook-riot-web.md#themes)." +msgstr "" + +#: ../../../CHANGELOG.md:2779 +msgid "2020-02-24" +msgstr "" + +#: ../../../CHANGELOG.md:2781 +msgid "Customize the server name in Riot's login page" +msgstr "" + +#: ../../../CHANGELOG.md:2783 +msgid "You can now customize the server name string that Riot-web displays in its login page." +msgstr "" + +#: ../../../CHANGELOG.md:2785 +msgid "These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:2791 +msgid "The login page previously said \"Sign in to your Matrix account on matrix.example.org\" (the homeserver's domain name). It will now say \"Sign in … on example.org\" (the server name) by default, or \"Sign in … on Our Server\" if you set the variable to \"Our Server\"." +msgstr "" + +#: ../../../CHANGELOG.md:2793 +msgid "To support this, the config.json template is changed to use the configuration key `default_server_config` for setting the default HS/IS, and the new configuration key `server_name` is added in there." +msgstr "" + +#: ../../../CHANGELOG.md:2796 +msgid "2020-01-30" +msgstr "" + +#: ../../../CHANGELOG.md:2798 +msgid "Disabling TLSv1.1" +msgstr "" + +#: ../../../CHANGELOG.md:2800 +msgid "To improve security, we've removed TLSv1.1 support from our default matrix-nginx-proxy configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2802 +msgid "If you need to support old clients, you can re-enable it with the following configuration: `matrix_nginx_proxy_ssl_protocols: \"TLSv1.1 TLSv1.2 TLSv1.3\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2805 +msgid "2020-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:2807 +msgid "Postgres collation changes (action required!)" +msgstr "" + +#: ../../../CHANGELOG.md:2809 +msgid "By default, we've been using a UTF-8 collation for Postgres. This is known to cause Synapse some troubles (see the [relevant issue](https://github.com/matrix-org/synapse/issues/6722)) on systems that use [glibc](https://www.gnu.org/software/libc/). We run Postgres in an [Alpine Linux](https://alpinelinux.org/) container (which uses [musl](https://www.musl-libc.org/), and not glibc), so our users are likely not affected by the index corruption problem observed by others." +msgstr "" + +#: ../../../CHANGELOG.md:2811 +msgid "Still, we might become affected in the future. In any case, it's imminent that Synapse will complain about databases which do not use a C collation." +msgstr "" + +#: ../../../CHANGELOG.md:2813 +msgid "To avoid future problems, we recommend that you run the following command:" +msgstr "" + +#: ../../../CHANGELOG.md:2819 +msgid "It forces a [Postgres database upgrade](docs/maintenance-postgres.md#upgrading-postgresql), which would recreate your Postgres database using the proper (`C`) collation. If you are low on disk space, or run into trouble, refer to the Postgres database upgrade documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:2822 +msgid "2020-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2824 +msgid "Added support for Appservice Webhooks" +msgstr "" + +#: ../../../CHANGELOG.md:2826 +msgid "Thanks to a contribution from [Björn Marten](https://github.com/tripleawwy) from [netresearch](https://www.netresearch.de/), the playbook can now install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../CHANGELOG.md:2828 +msgid "Learn more in [Setting up Appservice Webhooks bridging](docs/configuring-playbook-bridge-appservice-webhooks.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2831 +msgid "2020-01-12" +msgstr "" + +#: ../../../CHANGELOG.md:2833 +msgid "Added support for automatic Double Puppeting for all Mautrix bridges" +msgstr "" + +#: ../../../CHANGELOG.md:2835 +msgid "Double Puppeting can now be easily enabled for all Mautrix bridges supported by the playbook (Facebook, Hangouts, Whatsapp, Telegram)." +msgstr "" + +#: ../../../CHANGELOG.md:2837 +msgid "This is possible due to those bridges' integration with [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) — yet another component that this playbook can install for you." +msgstr "" + +#: ../../../CHANGELOG.md:2839 +msgid "To get started, following the playbook's documentation for the bridge you'd like to configure." +msgstr "" + +#: ../../../CHANGELOG.md:2842 +msgid "2019-12-06" +msgstr "" + +#: ../../../CHANGELOG.md:2844 +msgid "Added support for an alternative method for using another webserver" +msgstr "" + +#: ../../../CHANGELOG.md:2846 +msgid "We have added support for making `matrix-nginx-proxy` not being so invasive, so that it would be easier to [use your own webserver](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2848 +msgid "The documentation has been updated with a **Method 2**, which might make \"own webserver\" setup easier in some cases (such as [reverse-proxying using Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/296))." +msgstr "" + +#: ../../../CHANGELOG.md:2850 +msgid "**Existing users** are not affected by this and **don't need to change anything**. The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates and doing everything for you automatically)." +msgstr "" + +#: ../../../CHANGELOG.md:2853 +msgid "2019-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2855 +msgid "Tightened security around room directory publishing" +msgstr "" + +#: ../../../CHANGELOG.md:2857 +msgid "As per this [advisory blog post](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers), we've decided to change the default publishing rules for the Matrix room directory." +msgstr "" + +#: ../../../CHANGELOG.md:2859 +msgid "Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**." +msgstr "" + +#: ../../../CHANGELOG.md:2861 +msgid "As with anything else, these new defaults can be overriden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively." +msgstr "" + +#: ../../../CHANGELOG.md:2864 +msgid "2019-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:2866 +msgid "Improved Postgres upgrading/importing" +msgstr "" + +#: ../../../CHANGELOG.md:2868 +msgid "Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) and [importing](docs/importing-postgres.md) have been improved to add support for multiple databases and roles." +msgstr "" + +#: ../../../CHANGELOG.md:2870 +msgid "Previously, the playbook would only take care of the `homeserver` database and `synapse` user. We now back up and restore all databases and users on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2872 +msgid "For now, the playbook only uses that one database (`homeserver`) and that one single user (`synapse`), so it's all the same. However, in the future, additional components besides Synapse may also make use the Postgres database server. One such example is the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge, which strongly encourages use of Postgres in its v1.0 release. We are yet to upgrade to it." +msgstr "" + +#: ../../../CHANGELOG.md:2874 +msgid "Additionally, Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) now uses gzipped dump files by default, to minimize disk space usage." +msgstr "" + +#: ../../../CHANGELOG.md:2877 +msgid "2019-10-04" +msgstr "" + +#: ../../../CHANGELOG.md:2879 +msgid "Postgres 12 support" +msgstr "" + +#: ../../../CHANGELOG.md:2881 +msgid "The playbook now installs [Postgres 12](https://www.postgresql.org/about/news/1976/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2883 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x or 11.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2886 +msgid "2019-10-03" +msgstr "" + +#: ../../../CHANGELOG.md:2888 +msgid "Synapse 1.4.0" +msgstr "" + +#: ../../../CHANGELOG.md:2890 +msgid "Synapse 1.4.0 [is out](https://matrix.org/blog/2019/10/03/synapse-1-4-0-released) with lots of changes related to privacy." +msgstr "" + +#: ../../../CHANGELOG.md:2892 +msgid "Its new defaults (which we adopt as well) mean that certain old data will automatically get purged after a certain number of days. 1.4.0 automatically garbage collects redacted messages (defaults to 7 days) and removes unused IP and user agent information stored in the user_ips table (defaults to 30 days). If you'd like to preserve this data, we encourage you to look at the `redaction_retention_period` and `user_ips_max_age` options (controllable by the `matrix_synapse_redaction_retention_period` and `matrix_synapse_user_ips_max_age` playbook variables, respectively) before doing the upgrade. If you'd like to keep data indefinitely, set these variables to `null` (e.g. `matrix_synapse_redaction_retention_period: ~`)." +msgstr "" + +#: ../../../CHANGELOG.md:2894 +msgid "From now on the `trusted_key_servers` setting for Synapse is configurable. It still defaults to `matrix.org` just like it always has, but in a more explicit way now. If you'd like to use another trusted key server, adjust the `matrix_synapse_trusted_key_servers` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:2896 +msgid "Synapse 1.4.0 also changes lots of things related to identity server integration. Because Synapse will now by default be responsible for validating email addresses for user accounts, running without an identity server looks more feasible. We still [have concerns](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/275/files#r331104117) over disabling the identity server by default, so for now it remains enabled." +msgstr "" + +#: ../../../CHANGELOG.md:2899 +msgid "2019-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:2901 +msgid "Synapse Simple Antispam support" +msgstr "" + +#: ../../../CHANGELOG.md:2903 +msgid "There have been lots of invite-spam attacks lately and [Travis](https://github.com/t2bot) has created a Synapse module ([synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam)) to let people protect themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2905 +msgid "From now on, you can easily install and configure this spam checker module through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2907 +msgid "Learn more in [Setting up Synapse Simple Antispam](docs/configuring-playbook-synapse-simple-antispam.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2910 +msgid "2019-08-25" +msgstr "" + +#: ../../../CHANGELOG.md:2912 +msgid "Extensible Riot-web configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2914 +msgid "Similarly to [Extensible Synapse configuration](#extensible-synapse-configuration) (below), Riot-web configuration is also extensible now." +msgstr "" + +#: ../../../CHANGELOG.md:2916 +msgid "From now on, you can extend/override Riot-web's configuration by making use of the `matrix_riot_web_configuration_extension_json` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2918 +msgid "If you need even more power, you can now also take full control and override `matrix_riot_web_configuration_default` (or `matrix_riot_web_configuration`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2920 +msgid "Learn more in [Configuring Riot-web](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2923 +msgid "2019-08-22" +msgstr "" + +#: ../../../CHANGELOG.md:2925 +msgid "Extensible Synapse configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2927 +msgid "Previously, we had to create custom Ansible variables for each and every Synapse setting. This lead to too much effort (and configuration ugliness) to all of Synapse's settings, so naturally, not all features of Synapse could be controlled through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2929 +msgid "From now on, you can extend/override the Synapse server's configuration by making use of the `matrix_synapse_configuration_extension_yaml` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2931 +msgid "If you need even more power, you can now also take full control and override `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2933 +msgid "Learn more here in [Configuring Synapse](docs/configuring-playbook-synapse.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2936 +msgid "2019-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2940 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/205) of [kingoftheconnors](https://github.com/kingoftheconnors) and [Stuart Mumford (Cadair)](https://github.com/Cadair), the playbook now supports bridging to [Slack](https://slack.com) via the [appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2942 +msgid "Additional details are available in [Setting up Appservice Slack bridging](docs/configuring-playbook-bridge-appservice-slack.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2944 +msgid "Google Hangouts bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2946 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/251) of [Eduardo Beltrame (Munfred)](https://github.com/Munfred) and [Robbie D (microchipster)](https://github.com/microchipster), the playbook now supports bridging to [Google Hangouts](https://hangouts.google.com/) via the [mautrix-hangouts](https://mau.dev/tulir/mautrix-hangouts) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2948 +msgid "Additional details are available in [Setting up Mautrix Hangouts bridging](docs/configuring-playbook-bridge-mautrix-hangouts.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2951 +msgid "2019-08-05" +msgstr "" + +#: ../../../CHANGELOG.md:2953 +msgid "Email2Matrix support" +msgstr "" + +#: ../../../CHANGELOG.md:2955 +msgid "Support for [Email2Matrix](https://github.com/devture/email2matrix) has been added." +msgstr "" + +#: ../../../CHANGELOG.md:2957 +msgid "It's an optional feature that you can enable via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2959 +msgid "To learn more, see the [playbook's documentation on Email2Matrix](./docs/configuring-playbook-email2matrix.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2962 +msgid "2019-08-03" +msgstr "" + +#: ../../../CHANGELOG.md:2964 +msgid "Synapse logging level has been reduced to WARNING" +msgstr "" + +#: ../../../CHANGELOG.md:2966 +msgid "After [some discussion in our support room](https://matrix.to/#/!PukFFdIcHgtaaHZflT:devture.com/$156476852524179TBeKy:matrix.org?via=devture.com&via=matrix.org&via=librem.one), we've decided to change the default logging level for Synapse from `INFO` to `WARNING`." +msgstr "" + +#: ../../../CHANGELOG.md:2968 +msgid "This greatly reduces the number of log messages that are being logged, leading to:" +msgstr "" + +#: ../../../CHANGELOG.md:2970 +msgid "much less disk space dedicated to Synapse and thus, logs kept for longer" +msgstr "" + +#: ../../../CHANGELOG.md:2971 +msgid "easier to find some important `WARNING`, `ERROR` and `CRITICAL` messages, as they're not longer buried in thousands of non-important `INFO` messages" +msgstr "" + +#: ../../../CHANGELOG.md:2973 +msgid "If you'd like to track down an issue, you [can always increase the logging level as described here](./docs/maintenance-and-troubleshooting.md#increasing-synapse-logging)." +msgstr "" + +#: ../../../CHANGELOG.md:2976 +msgid "2019-07-08" +msgstr "" + +#: ../../../CHANGELOG.md:2978 +msgid "Synapse Maintenance docs and synapse-janitor support are available" +msgstr "" + +#: ../../../CHANGELOG.md:2980 +msgid "The playbook can now help you with Synapse's maintenance." +msgstr "" + +#: ../../../CHANGELOG.md:2982 +msgid "There's a new documentation page about [Synapse maintenance](./docs/maintenance-synapse.md) and another section on [Postgres vacuuming](./docs/maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2984 +msgid "Among other things, if your Postgres database has grown significantly over time, you may wish to [ask the playbook to purge unused data with synapse-janitor](./docs/maintenance-synapse.md#purging-unused-data-with-synapse-janitor) for you." +msgstr "" + +#: ../../../CHANGELOG.md:2986 +msgid "(BC Break) Rename run control variables" +msgstr "" + +#: ../../../CHANGELOG.md:2988 +msgid "Some internal playbook control variables have been renamed." +msgstr "" + +#: ../../../CHANGELOG.md:2990 +msgid "This change **only affects people who run this playbook's roles from another playbook**. If you're using this playbook as-is, you're not affected and don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:2992 +msgid "The following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:2994 +msgid "from `run_import_postgres` to `run_postgres_import`" +msgstr "" + +#: ../../../CHANGELOG.md:2995 +msgid "from `run_import_sqlite_db` to `run_postgres_import_sqlite_db`" +msgstr "" + +#: ../../../CHANGELOG.md:2996 +msgid "from `run_upgrade_postgres` to `run_postgres_upgrade`" +msgstr "" + +#: ../../../CHANGELOG.md:2997 +msgid "from `run_import_media_store` to `run_synapse_import_media_store`" +msgstr "" + +#: ../../../CHANGELOG.md:2998 +msgid "from `run_register_user` to `run_synapse_register_user`" +msgstr "" + +#: ../../../CHANGELOG.md:2999 +msgid "from `run_update_user_password` to `run_synapse_update_user_password`" +msgstr "" + +#: ../../../CHANGELOG.md:3002 +msgid "2019-07-04" +msgstr "" + +#: ../../../CHANGELOG.md:3004 +msgid "Synapse no longer logs to text files" +msgstr "" + +#: ../../../CHANGELOG.md:3006 +msgid "Following what the official Synapse Docker image is doing ([#5565](https://github.com/matrix-org/synapse/pull/5565)) and what we've been doing for mostly everything installed by this playbook, **Synapse no longer logs to text files** (`/matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3008 +msgid "From now on, Synapse would only log to console, which goes to systemd's journald. To see Synapse's logs, execute: `journalctl -fu matrix-synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3010 +msgid "Because of this, the following variables have become obsolete and were removed:" +msgstr "" + +#: ../../../CHANGELOG.md:3012 +msgid "`matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3013 +msgid "`matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3015 +msgid "To prevent confusion, it'd be better if you delete all old files manually after you've upgraded (`rm -f /matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3017 +msgid "Because Synapse is incredibly chatty when it comes to logging (here's [one such issue](https://github.com/matrix-org/synapse/issues/4751) describing the problem), if you're running an ancient distribution (like CentOS 7.0), be advised that systemd's journald default logging restrictions may not be high enough to capture all log messages generated by Synapse. This is especially true if you've got a busy (Synapse) server. We advise that you manually add `RateLimitInterval=0` and `RateLimitBurst=0` under `[Storage]` in the `/etc/systemd/journald.conf` file, followed by restarting the logging service (`systemctl restart systemd-journald`)." +msgstr "" + +#: ../../../CHANGELOG.md:3020 +msgid "2019-06-27" +msgstr "" + +#: ../../../CHANGELOG.md:3022 +msgid "(BC Break) Discord bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3024 +msgid "Until now, the `config.yaml` file for the [Discord bridge](docs/configuring-playbook-bridge-appservice-discord.md) was managed by the playbook, but the `registration.yaml` file was not." +msgstr "" + +#: ../../../CHANGELOG.md:3026 +msgid "From now on, the playbook will keep both configuration files sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3028 +msgid "This means that if you were making manual changes to the `/matrix/appservice-discord/discord-registration.yaml` configuration file, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3030 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-discord/config`)." +msgstr "" + +#: ../../../CHANGELOG.md:3032 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/appservice-discord/data`). When you run the playbook with an existing database file (`/matrix/appservice-discord/discord.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3034 +msgid "The main directory (`/matrix/appservice-discord`) may contain some leftover files (`user-store.db`, `room-store.db`, `config.yaml`, `discord-registration.yaml`, `invite_link`). These are no longer necessary and can be deleted manually." +msgstr "" + +#: ../../../CHANGELOG.md:3036 +msgid "We're now following the default sample configuration for the Discord bridge. If you need to override some values, define them in `matrix_appservice_discord_configuration_extension_yaml`." +msgstr "" + +#: ../../../CHANGELOG.md:3039 +msgid "2019-06-24" +msgstr "" + +#: ../../../CHANGELOG.md:3041 +msgid "(BC Break) WhatsApp bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3043 +msgid "Until now, configuration files for the [WhatsApp bridge](docs/configuring-playbook-bridge-mautrix-whatsapp.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3045 ../../../CHANGELOG.md:3062 +#: ../../../CHANGELOG.md:3081 ../../../CHANGELOG.md:3120 +msgid "From now on, the playbook will keep the configuration in sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3047 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-whatsapp/config.yaml` or `/matrix/mautrix-whatsapp/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3049 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-whatsapp/config`), so your old configuration remains in the base directory (`/matrix/mautrix-whatsapp`). You need to migrate any manual changes over to the new `matrix_mautrix_whatsapp_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3051 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-whatsapp/data`). When you run the playbook with an existing database file (`/matrix/mautrix-whatsapp/mautrix-whatsapp.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3053 +msgid "We're now following the default configuration for the WhatsApp bridge." +msgstr "" + +#: ../../../CHANGELOG.md:3056 +msgid "2019-06-20" +msgstr "" + +#: ../../../CHANGELOG.md:3058 +msgid "(BC Break) IRC bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3060 +msgid "Until now, configuration files for the [IRC bridge](docs/configuring-playbook-bridge-appservice-irc.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3064 +msgid "This means that if you were making manual changes to the `/matrix/appservice-irc/config.yaml` or `/matrix/appservice-irc/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3066 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-irc/config`), so your old configuration remains in the base directory (`/matrix/appservice-irc`)." +msgstr "" + +#: ../../../CHANGELOG.md:3068 +msgid "Previously, we asked people to configure bridged IRC servers by extending the bridge configuration (`matrix_appservice_irc_configuration_extension_yaml`). While this is still possible and will continue working forever, **we now recommend defining IRC servers in the easier to use `matrix_appservice_irc_ircService_servers` variable**. See [our IRC bridge documentation page](docs/configuring-playbook-bridge-appservice-irc.md) for an example." +msgstr "" + +#: ../../../CHANGELOG.md:3070 +msgid "If you decide to continue using `matrix_appservice_irc_configuration_extension_yaml`, you might be interested to know that `ircService.databaseUri` and a few other keys now have default values in the base configuration (`matrix_appservice_irc_configuration_yaml`). You may wish to stop redefining those keys, unless you really intend to override them. You most likely only need to override `ircService.servers`." +msgstr "" + +#: ../../../CHANGELOG.md:3072 +msgid "Bridge data (`passkey.pem` and database files) is now also stored in a subdirectory (`/matrix/appservice-irc/data`). When you run the playbook with an existing `/matrix/appservice-irc/passkey.pem` file, the playbook will stop the bridge and relocate the passkey and database files (`rooms.db` and `users.db`) to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3075 +msgid "2019-06-15" +msgstr "" + +#: ../../../CHANGELOG.md:3077 +msgid "(BC Break) Telegram bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3079 +msgid "Until now, configuration files for the [Telegram bridge](docs/configuring-playbook-bridge-mautrix-telegram.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3083 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-telegram/config.yaml` or `/matrix/mautrix-telegram/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3085 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-telegram/config`), so your old configuration remains in the base directory (`/matrix/mautrix-telegram`). You need to migrate any manual changes over to the new `matrix_mautrix_telegram_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3087 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-telegram/data`). When you run the playbook with an existing database file (`/matrix/mautrix-telegram/mautrix-telegram.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3089 +msgid "Also, we're now following the default configuration for the Telegram bridge, so some default configuration values are different:" +msgstr "" + +#: ../../../CHANGELOG.md:3091 +msgid "`edits_as_replies` (used to be `false`, now `true`) — previously replies were not sent over to Matrix at all; ow they are sent over as a reply to the original message" +msgstr "" + +#: ../../../CHANGELOG.md:3092 +msgid "`inline_images` (used to be `true`, now `false`) — this has to do with captioned images. Inline-image (included caption) are said to exhibit troubles on Riot iOS. When `false`, the caption arrives on the Matrix side as a separate message." +msgstr "" + +#: ../../../CHANGELOG.md:3093 +msgid "`authless_portals` (used to be `false`, now `true`) — creating portals from the Telegram side is now possible" +msgstr "" + +#: ../../../CHANGELOG.md:3094 +msgid "`whitelist_group_admins` (used to be `false`, now `true`) — allows Telegram group admins to use the bot commands" +msgstr "" + +#: ../../../CHANGELOG.md:3096 +msgid "If the new values are not to your liking, use `matrix_mautrix_telegram_configuration_extension_yaml` to specify an override (refer to `matrix_mautrix_telegram_configuration_yaml` to figure out which variable goes where)." +msgstr "" + +#: ../../../CHANGELOG.md:3099 +msgid "2019-06-12" +msgstr "" + +#: ../../../CHANGELOG.md:3101 +msgid "Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3103 +msgid "With [Synapse v1.0 now available](https://matrix.org/blog/2019/06/11/introducing-matrix-1-0-and-the-matrix-org-foundation) and most people being on at least Synapse v0.99, it's time to remove the `_matrix._tcp` DNS SRV record that we've been keeping for compatibility with old Synapse versions (<= 0.34)." +msgstr "" + +#: ../../../CHANGELOG.md:3105 +msgid "According to the [Server Discovery specification](https://matrix.org/docs/spec/server_server/r0.1.2.html#server-discovery), it's no harm to keep the DNS SRV record. But since it's not necessary for federating with the larger Matrix network anymore, you should be safe to get rid of it." +msgstr "" + +#: ../../../CHANGELOG.md:3107 +msgid "**Note**: don't confuse the `_matrix._tcp` and `_matrix-identity._tcp` DNS SRV records. The latter, **must not** be removed." +msgstr "" + +#: ../../../CHANGELOG.md:3109 +msgid "For completeness, we must say that using a `_matrix._tcp` [SRV record for Server Delegation](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced) is still valid and useful for certain deployments. It's just that our guide recommends the [`/.well-known/matrix/server` Server Delegation method](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), due to its easier implementation when using this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3111 +msgid "Besides this optional/non-urgent DNS change, assuming you're already on Synapse v0.99, upgrading to Synapse v1.0 should be as simple as [re-running the playbook](docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3114 +msgid "2019-06-07" +msgstr "" + +#: ../../../CHANGELOG.md:3116 +msgid "(BC Break) Facebook bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3118 +msgid "Until now, configuration files for the [Facebook bridge](docs/configuring-playbook-bridge-mautrix-facebook.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3122 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-facebook/config.yaml` or `/matrix/mautrix-facebook/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3124 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-facebook/config`), so your old configuration remains in the base directory (`/matrix/mautrix-facebook`). You need to migrate any manual changes over to the new `matrix_mautrix_facebook_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3126 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-facebook/data`). When you run the playbook with an existing database file (`/matrix/mautrix-facebook/mautrix-facebook.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3129 +msgid "2019-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:3131 +msgid "Support for exposing container ports publicly (not just to the host)" +msgstr "" + +#: ../../../CHANGELOG.md:3133 +msgid "Until now, various roles supported a `matrix_*_expose_port` variable, which would expose their container's port to the host. This was mostly useful for reverse-proxying manually (in case `matrix-nginx-proxy` was disabled). It could also be used for installing some playbook services (e.g. bridges, etc.) and wiring them to a separate (manual) Matrix setup." +msgstr "" + +#: ../../../CHANGELOG.md:3135 +msgid "`matrix_*_expose_port` variables were not granular enough — sometimes they would expose one port, other times multiple. They also didn't provide control over **where** to expose (to which port number and to which network interface), because they would usually hardcode something like `127.0.0.1:8080`." +msgstr "" + +#: ../../../CHANGELOG.md:3137 +msgid "All such variables have been superseded by a better (more flexible) way to do it." +msgstr "" + +#: ../../../CHANGELOG.md:3139 +msgid "**Most** people (including those not using `matrix-nginx-proxy`), **don't need** to bother with this." +msgstr "" + +#: ../../../CHANGELOG.md:3141 +msgid "Porting examples follow for people having more customized setups:" +msgstr "" + +#: ../../../CHANGELOG.md:3143 +msgid "**from** `matrix_synapse_container_expose_client_api_port: true` **to** `matrix_synapse_container_client_api_host_bind_port: '127.0.0.1:8008'`" +msgstr "" + +#: ../../../CHANGELOG.md:3145 +msgid "**from** `matrix_synapse_container_expose_federation_api_port: true` **to** `matrix_synapse_container_federation_api_plain_host_bind_port: '127.0.0.1:8048'` and possibly `matrix_synapse_container_federation_api_tls_host_bind_port: '8448'`" +msgstr "" + +#: ../../../CHANGELOG.md:3147 +msgid "**from** `matrix_synapse_container_expose_metrics_port: true` **to** `matrix_synapse_container_metrics_api_host_bind_port: '127.0.0.1:9100'`" +msgstr "" + +#: ../../../CHANGELOG.md:3149 +msgid "**from** `matrix_riot_web_container_expose_port: true` **to** `matrix_riot_web_container_http_host_bind_port: '127.0.0.1:8765'`" +msgstr "" + +#: ../../../CHANGELOG.md:3151 +msgid "**from** `matrix_mxisd_container_expose_port: true` **to** `matrix_mxisd_container_http_host_bind_port: '127.0.0.1:8090'`" +msgstr "" + +#: ../../../CHANGELOG.md:3153 +msgid "**from** `matrix_dimension_container_expose_port: true` **to** `matrix_dimension_container_http_host_bind_port: '127.0.0.1:8184'`" +msgstr "" + +#: ../../../CHANGELOG.md:3155 +msgid "**from** `matrix_corporal_container_expose_ports: true` **to** `matrix_corporal_container_http_gateway_host_bind_port: '127.0.0.1:41080'` and possibly `matrix_corporal_container_http_api_host_bind_port: '127.0.0.1:41081'`" +msgstr "" + +#: ../../../CHANGELOG.md:3157 +msgid "**from** `matrix_appservice_irc_container_expose_client_server_api_port: true` **to** `matrix_appservice_irc_container_http_host_bind_port: '127.0.0.1:9999'`" +msgstr "" + +#: ../../../CHANGELOG.md:3159 +msgid "**from** `matrix_appservice_discord_container_expose_client_server_api_port: true` **to** `matrix_appservice_discord_container_http_host_bind_port: '127.0.0.1:9005'`" +msgstr "" + +#: ../../../CHANGELOG.md:3161 +msgid "As always, if you forget to remove usage of some outdated variable, the playbook will warn you." +msgstr "" + +#: ../../../CHANGELOG.md:3164 +msgid "2019-05-23" +msgstr "" + +#: ../../../CHANGELOG.md:3166 +msgid "(BC Break) Ansible 2.8 compatibility" +msgstr "" + +#: ../../../CHANGELOG.md:3168 +msgid "Thanks to [@danbob](https://github.com/danbob), the playbook now [supports the new Ansible 2.8](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/187)." +msgstr "" + +#: ../../../CHANGELOG.md:3170 +msgid "A manual change is required to the `inventory/hosts` file, changing the group name from `matrix-servers` to `matrix_servers` (dash to underscore)." +msgstr "" + +#: ../../../CHANGELOG.md:3172 +msgid "To avoid doing it manually, run this:" +msgstr "" + +#: ../../../CHANGELOG.md:3173 +msgid "Linux: `sed -i 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3174 +msgid "Mac: `sed -i '' 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3177 +msgid "2019-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:3179 +msgid "Synapse no longer required" +msgstr "" + +#: ../../../CHANGELOG.md:3181 +msgid "The playbook no longer insists on installing [Synapse](https://github.com/element-hq/synapse) via the `matrix-synapse` role." +msgstr "" + +#: ../../../CHANGELOG.md:3183 +msgid "If you would prefer to install Synapse another way and just use the playbook to install other services, it should be possible (`matrix_synapse_enabled: false`)." +msgstr "" + +#: ../../../CHANGELOG.md:3185 +msgid "Note that it won't necessarily be the best experience, since the playbook wires things to Synapse by default. If you're using your own Synapse instance (especially one not running in a container), you may have to override many variables to point them to the correct place." +msgstr "" + +#: ../../../CHANGELOG.md:3187 +msgid "Having Synapse not be a required component potentially opens the door for installing alternative Matrix homeservers." +msgstr "" + +#: ../../../CHANGELOG.md:3189 +msgid "Bridges are now separate from the Synapse role" +msgstr "" + +#: ../../../CHANGELOG.md:3191 +msgid "Bridges are no longer part of the `matrix-synapse` role. Each bridge now lives in its own separate role (`roles/custom/matrix-bridge-*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3193 +msgid "These bridge roles are independent of the `matrix-synapse` role, so it should be possible to use them with a Synapse instance installed another way (not through the playbook)." +msgstr "" + +#: ../../../CHANGELOG.md:3195 +msgid "Renaming inconsistently-named Synapse variables" +msgstr "" + +#: ../../../CHANGELOG.md:3197 +msgid "For better consistency, the following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3199 +msgid "`matrix_enable_room_list_search` was renamed to `matrix_synapse_enable_room_list_search`" +msgstr "" + +#: ../../../CHANGELOG.md:3200 +msgid "`matrix_alias_creation_rules` was renamed to `matrix_synapse_alias_creation_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3201 +msgid "`matrix_nginx_proxy_matrix_room_list_publication_rulesdata_path` was renamed to `matrix_synapse_room_list_publication_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3204 +msgid "2019-05-09" +msgstr "" + +#: ../../../CHANGELOG.md:3206 +msgid "Besides a myriad of bug fixes and minor improvements, here are the more notable (bigger) features we can announce today." +msgstr "" + +#: ../../../CHANGELOG.md:3208 +msgid "Mautrix Facebook/Messenger bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3210 +msgid "The playbook now supports bridging with [Facebook](https://www.facebook.com/) by installing the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3212 +msgid "Additional details are available in [Setting up Mautrix Facebook bridging](docs/configuring-playbook-bridge-mautrix-facebook.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3214 +msgid "mxisd Registration feature integration" +msgstr "" + +#: ../../../CHANGELOG.md:3216 +msgid "The playbook can now help you integrate with mxisd's [Registration](https://github.com/kamax-matrix/mxisd/blob/master/docs/features/registration.md) feature." +msgstr "" + +#: ../../../CHANGELOG.md:3218 +msgid "Learn more in [mxisd-controlled Registration](docs/configuring-playbook-mxisd.md#mxisd-controlled-registration)." +msgstr "" + +#: ../../../CHANGELOG.md:3221 +msgid "2019-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:3223 +msgid "Caddy webserver examples" +msgstr "" + +#: ../../../CHANGELOG.md:3225 +msgid "If you prefer using the [Caddy](https://caddyserver.com/) webserver instead of our own integrated nginx, we now have examples for it in the [`examples/caddy`](examples/caddy) directory" +msgstr "" + +#: ../../../CHANGELOG.md:3227 +msgid "2019-04-10" +msgstr "" + +#: ../../../CHANGELOG.md:3229 +msgid "Goofys support for other S3-compatible object stores" +msgstr "" + +#: ../../../CHANGELOG.md:3231 +msgid "Until now, you could optionally host Synapse's media repository on Amazon S3, but we now also support [using other S3-compatible object stores](docs/configuring-playbook-s3.md)," +msgstr "" + +#: ../../../CHANGELOG.md:3234 +msgid "2019-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:3236 +msgid "Ansible >= 2.5 is required" +msgstr "" + +#: ../../../CHANGELOG.md:3238 +msgid "Due to recent playbook improvements and the fact that the world keeps turning, we're bumping the [version requirement for Ansible](docs/ansible.md#supported-ansible-versions) (2.4 -> 2.5)." +msgstr "" + +#: ../../../CHANGELOG.md:3240 +msgid "We've also started building our own Docker image of Ansible ([devture/ansible](https://hub.docker.com/r/devture/ansible/)), which is useful for people who can't upgrade their local Ansible installation (see [Using Ansible via Docker](docs/ansible.md#using-ansible-via-docker))." +msgstr "" + +#: ../../../CHANGELOG.md:3243 +msgid "2019-03-19" +msgstr "" + +#: ../../../CHANGELOG.md:3245 +msgid "TLS support for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:3247 +msgid "We've added TLS support to the coturn TURN server installed by the playbook by default. The certificates from the Matrix domain will be used for the coturn server." +msgstr "" + +#: ../../../CHANGELOG.md:3249 +msgid "This feature is enabled by default for new installations. To make use of TLS support for your existing Matrix server's coturn, make sure to rebuild both coturn and Synapse:" +msgstr "" + +#: ../../../CHANGELOG.md:3255 +msgid "People who have an extra firewall (besides the iptables firewall, which Docker manages automatically), will need to open these additional firewall ports: `5349/tcp` (TURN over TCP) and `5349/udp` (TURN over UDP)." +msgstr "" + +#: ../../../CHANGELOG.md:3257 +msgid "People who build their own custom playbook from our roles should be aware that:" +msgstr "" + +#: ../../../CHANGELOG.md:3259 +msgid "the `matrix-coturn` role and actually starting coturn (e.g. `--tags=start`), requires that certificates are already put in place. For this reason, it's usually a good idea to have the `matrix-coturn` role execute after `matrix-nginx-proxy` (which retrieves the certificates)." +msgstr "" + +#: ../../../CHANGELOG.md:3261 +msgid "there are a few variables that can help you enable TLS support for coturn. See the `matrix-coturn` section in [group_vars/matrix-servers](./group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3264 +msgid "2019-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:3266 +msgid "matrix-nginx-proxy support for serving the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:3268 +msgid "If you don't have a dedicated server for your base domain and want to set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), the playbook has got you covered now." +msgstr "" + +#: ../../../CHANGELOG.md:3270 +msgid "It's now possible for the playbook to obtain an SSL certificate and serve the necessary files for Matrix Server Delegation on your base domain. Take a look at the new [Serving the base domain](docs/configuring-playbook-base-domain-serving.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3272 +msgid "(BC break) matrix-nginx-proxy data variable renamed" +msgstr "" + +#: ../../../CHANGELOG.md:3274 +msgid "`matrix_nginx_proxy_data_path` was renamed to `matrix_nginx_proxy_base_path`." +msgstr "" + +#: ../../../CHANGELOG.md:3276 +msgid "There's a new `matrix_nginx_proxy_data_path` variable, which has a different use-purpose now (it's a subdirectory of `matrix_nginx_proxy_base_path` and is meant for storing various data files)." +msgstr "" + +#: ../../../CHANGELOG.md:3279 +msgid "2019-03-10" +msgstr "" + +#: ../../../CHANGELOG.md:3281 +msgid "Dimension integration manager support" +msgstr "" + +#: ../../../CHANGELOG.md:3283 +msgid "Thanks to [NullIsNot0](https://github.com/NullIsNot0), the playbook can now (optionally) install the [Dimension](https://dimension.t2bot.io/) integration manager. To learn more, see the [Setting up Dimension](docs/configuring-playbook-dimension.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3286 +msgid "2019-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:3288 +msgid "Ability to customize mxisd's email templates" +msgstr "" + +#: ../../../CHANGELOG.md:3290 +msgid "Thanks to [Sylvia van Os](https://github.com/TheLastProject), mxisd's email templates can now be customized easily. To learn more, see the [Customizing email templates](docs/configuring-playbook-mxisd.md#customizing-email-templates) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3293 +msgid "2019-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:3295 +msgid "Discord bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3297 +msgid "[@Lionstiger](https://github.com/Lionstiger) has done some great work adding Discord bridging support via [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord). To learn more, see the [Setting up Appservice Discord bridging](docs/configuring-playbook-bridge-appservice-discord.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3300 +msgid "2019-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:3302 +msgid "Renaming variables" +msgstr "" + +#: ../../../CHANGELOG.md:3304 ../../../CHANGELOG.md:3621 +#: ../../../CHANGELOG.md:3706 ../../../CHANGELOG.md:3826 +msgid "The following playbook variables were renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3306 +msgid "from `host_specific_hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3307 +msgid "from `hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3308 +msgid "from `hostname_matrix` to `matrix_server_fqn_matrix`" +msgstr "" + +#: ../../../CHANGELOG.md:3309 +msgid "from `hostname_riot` to `matrix_server_fqn_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3310 +msgid "from `host_specific_matrix_ssl_lets_encrypt_support_email` to `matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3312 +msgid "Doing that, we've simplified things, made names less confusing (hopefully) and moved all variable names under the `matrix_` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:3315 +msgid "2019-02-16" +msgstr "" + +#: ../../../CHANGELOG.md:3317 +msgid "Riot v1.0.1 support" +msgstr "" + +#: ../../../CHANGELOG.md:3319 +msgid "You can now use the brand new and redesigned Riot." +msgstr "" + +#: ../../../CHANGELOG.md:3321 +msgid "The new version no longer has a homepage by default, so we've also removed the custom homepage that we've been installing." +msgstr "" + +#: ../../../CHANGELOG.md:3323 +msgid "However, we still provide you with hooks to install your own `home.html` file by specifying the `matrix_riot_web_embedded_pages_home_path` variable (used to be called `matrix_riot_web_homepage_template` before)." +msgstr "" + +#: ../../../CHANGELOG.md:3326 +msgid "2019-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:3328 +msgid "Synapse v0.99.1" +msgstr "" + +#: ../../../CHANGELOG.md:3330 +msgid "As we're moving toward Synapse v1.0, things are beginning to stabilize. Upgrading from v0.99.0 to v0.99.1 should be painless." +msgstr "" + +#: ../../../CHANGELOG.md:3332 +msgid "If you've been overriding the default configuration so that you can terminate TLS at the Synapse side (`matrix_synapse_no_tls: false`), you'll now have to replace this custom configuration with `matrix_synapse_tls_federation_listener_enabled: true`. The `matrix_synapse_no_tls` variable is no more." +msgstr "" + +#: ../../../CHANGELOG.md:3335 +msgid "2019-02-06" +msgstr "" + +#: ../../../CHANGELOG.md:3337 +msgid "Synapse v0.99 support and preparation for Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3339 +msgid "Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. The first step is the Synapse v0.99 transitional release, which this playbook now supports." +msgstr "" + +#: ../../../CHANGELOG.md:3341 +msgid "If you've been using this playbook successfully until now, you'd be aware that we've been doing [Server Delegation](docs/howto-server-delegation.md) using a `_matrix._tcp` DNS SRV record (as per [Configuring DNS](docs/configuring-dns.md))." +msgstr "" + +#: ../../../CHANGELOG.md:3343 +msgid "Due to changes related to certificate file requirements that will affect us at Synapse v1.0, we'll have to stop using a **`_matrix._tcp` DNS SRV record in the future** (when Synapse goes to v1.0 — around 5th of March 2019). We **still need to keep the SRV record for now**, for backward compatibility with older Synapse versions (lower than v0.99)." +msgstr "" + +#: ../../../CHANGELOG.md:3345 +msgid "**What you need to do now** is make use of this transitional Synapse v0.99 release to **prepare your federation settings for the future**. You have 2 choices to prepare yourself for compatibility with the future Synapse v1.0:" +msgstr "" + +#: ../../../CHANGELOG.md:3347 +msgid "(recommended) set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), unless you are affected by the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation). If you had previously set up the well-known `client` file, depending on how you've done it, it may be that there is nothing new required of you (besides [upgrading](docs/maintenance-upgrading-services.md)). After upgrading, you can [run a self-check](docs/maintenance-checking-services.md), which will tell you if you need to do anything extra with regard to setting up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file). After some time, when most people have upgraded to Synapse v0.99 and older releases have disappeared, be prepared to drop your `_matrix._tcp` SRV record." +msgstr "" + +#: ../../../CHANGELOG.md:3349 +msgid "(more advanced) if the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation) are not to your liking, **as an alternative**, you can set up [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced). In such a case, you get to keep using your existing `_matrix._tcp` DNS SRV record forever and need to NOT set up a `/.well-known/matrix/server` file. Don't forget that you need to do certificate changes though. Follow the guide at [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)." +msgstr "" + +#: ../../../CHANGELOG.md:3352 +msgid "2019-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:3354 +msgid "TLS v1.3 support" +msgstr "" + +#: ../../../CHANGELOG.md:3356 +msgid "Now that the [nginx Docker image](https://hub.docker.com/_/nginx) has [added support for TLS v1.3](https://github.com/nginxinc/docker-nginx/issues/190), we have enabled that protocol by default." +msgstr "" + +#: ../../../CHANGELOG.md:3358 +msgid "When using:" +msgstr "" + +#: ../../../CHANGELOG.md:3360 +msgid "the **integrated nginx server**: TLS v1.3 support might not kick in immediately, because the nginx version hasn't been bumped and you may have an older build of the nginx Docker image (currently `nginx:1.15.8-alpine`). Typically, we do not re-pull images that you already have. When the nginx version gets bumped in the future, everyone will get the update. Until then, you could manually force-pull the rebuilt Docker image by running this on the server: `docker pull nginx:1.15.8-alpine`." +msgstr "" + +#: ../../../CHANGELOG.md:3362 +msgid "**your own external nginx server**: if your external nginx server is too old, the new configuration we generate for you in `/matrix/nginx-proxy/conf.d/` might not work anymore, because it mentions `TLSv1.3` and your nginx version might not support that. You can adjust the SSL protocol list by overriding the `matrix_nginx_proxy_ssl_protocols` variable. Learn more in the documentation page for [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3364 +msgid "**another web server**: you don't need to do anything to accommodate this change" +msgstr "" + +#: ../../../CHANGELOG.md:3367 +msgid "2019-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:3369 +msgid "IRC bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3371 +msgid "[Devon Maloney (@Plailect)](https://github.com/Plailect) has done some great work bringing IRC bridging support via [matrix-appservice-irc](https://github.com/TeDomum/matrix-appservice-irc). To learn more, see the [Setting up Appservice IRC bridging](docs/configuring-playbook-bridge-appservice-irc.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3374 +msgid "2019-01-29" +msgstr "" + +#: ../../../CHANGELOG.md:3376 +msgid "Running container processes as non-root, without capabilities and read-only" +msgstr "" + +#: ../../../CHANGELOG.md:3378 +msgid "To improve security, this playbook no longer starts container processes as the `root` user. Most containers were dropping privileges anyway, but we were trusting them with `root` privileges until they would do that. Not anymore — container processes now start as a non-root user (usually `matrix`) from the get-go." +msgstr "" + +#: ../../../CHANGELOG.md:3380 +msgid "For additional security, various capabilities are also dropped (see [why it's important](https://github.com/projectatomic/atomic-site/issues/203)) for all containers." +msgstr "" + +#: ../../../CHANGELOG.md:3382 +msgid "Additionally, most containers now use a read-only filesystem (see [why it's important](https://www.projectatomic.io/blog/2015/12/making-docker-images-write-only-in-production/)). Containers are given write access only to the directories they need to write to." +msgstr "" + +#: ../../../CHANGELOG.md:3384 +msgid "A minor breaking change is the `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size` variable having being renamed to `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb` (note the `_mb` suffix). The new variable expects a number value (e.g. `25M` -> `25`). If you weren't customizing this variable, this wouldn't affect you." +msgstr "" + +#: ../../../CHANGELOG.md:3386 +msgid "matrix-mailer is now based on Exim, not Postfix" +msgstr "" + +#: ../../../CHANGELOG.md:3388 +msgid "While we would have preferred to stay with [Postfix](http://www.postfix.org/), we found out that it cannot run as a non-root user. We've had to replace it with [Exim](https://www.exim.org/) (via the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image)." +msgstr "" + +#: ../../../CHANGELOG.md:3390 +msgid "The internal `matrix-mailer` service (running in a container) now listens on port `8025` (used to be `587` before). The playbook will update your Synapse and mxisd email settings to match (`matrix-mailer:587` -> `matrix-mailer:8025`)." +msgstr "" + +#: ../../../CHANGELOG.md:3392 +msgid "Using the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image instead of [panubo/postfix](https://hub.docker.com/r/panubo/postfix/) also gives us a nice disk usage reduction (~200MB -> 8MB)." +msgstr "" + +#: ../../../CHANGELOG.md:3395 +msgid "2019-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:3397 +msgid "(BC Break) Making the playbook's roles more independent of one another" +msgstr "" + +#: ../../../CHANGELOG.md:3399 +msgid "The following change **affects people running a more non-standard setup** — external Postgres or using our roles in their own other playbook. **Most users don't need to do anything**, besides becoming aware of the new glue variables file [`group_vars/matrix-servers`](group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3402 +msgid "Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them. Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components." +msgstr "" + +#: ../../../CHANGELOG.md:3404 +msgid "With the new changes, **all roles are now only dependent on the minimal `matrix-base` role**. They are no longer dependent among themselves." +msgstr "" + +#: ../../../CHANGELOG.md:3406 +msgid "In addition, the following components can now be completely disabled (for those who want/need to):" +msgstr "" + +#: ../../../CHANGELOG.md:3407 +msgid "`matrix-coturn` by using `matrix_coturn_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3408 +msgid "`matrix-mailer` by using `matrix_mailer_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3409 +msgid "`matrix-postgres` by using `matrix_postgres_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3411 +msgid "The following changes had to be done:" +msgstr "" + +#: ../../../CHANGELOG.md:3413 +msgid "glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file." +msgstr "" + +#: ../../../CHANGELOG.md:3415 +msgid "`matrix_postgres_use_external` has been superceeded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement." +msgstr "" + +#: ../../../CHANGELOG.md:3417 +msgid "Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're not enabling the `matrix-postgres` role (`matrix_postgres_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3419 +msgid "roles, being more independent now, are more minimal and do not do so much magic for you. People that are building their own playbook using our roles will definitely need to take a look at the [`group_vars/matrix-servers`](group_vars/matrix-servers) file and adapt their playbooks with the same (or similar) wiring logic." +msgstr "" + +#: ../../../CHANGELOG.md:3422 +msgid "2019-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:3424 +msgid "Splitting the playbook into multiple roles" +msgstr "" + +#: ../../../CHANGELOG.md:3426 +msgid "For better maintainability, the playbook logic (which all used to reside in a single `matrix-server` role) has been split out into a number of different roles: `matrix-synapse`, `matrix-postgres`, `matrix-riot-web`, `matrix-mxisd`, etc. (see the `roles/` directory)." +msgstr "" + +#: ../../../CHANGELOG.md:3429 +msgid "To keep the filesystem more consistent with this separation, the **Postgres data had to be relocated**." +msgstr "" + +#: ../../../CHANGELOG.md:3431 +msgid "The default value of `matrix_postgres_data_path` was changed from `/matrix/postgres` to `/matrix/postgres/data`. The `/matrix/postgres` directory is what we consider a base path now (new variable `matrix_postgres_base_path`). **Your Postgres data files will automatically be relocated by the playbook** (`/matrix/postgres/*` -> `/matrix/postgres/data/`) when you run with `--tags=setup-all` (or `--tags=setup-postgres`). While this shouldn't cause data-loss, **it's better if you do a Postgres backup just in case**. You'd need to restart all services after this migration (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3434 +msgid "2019-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:3436 +msgid "(BC Break) mxisd configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:3438 +msgid "To be more flexible and to support the upcoming [mxisd](https://github.com/kamax-io/mxisd) 1.3.0 (when it gets released), we've had to redo how mxisd gets configured." +msgstr "" + +#: ../../../CHANGELOG.md:3441 +msgid "The following variables are no longer supported by this playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:3443 +msgid "`matrix_mxisd_ldap_enabled`" +msgstr "" + +#: ../../../CHANGELOG.md:3444 +msgid "`matrix_mxisd_ldap_connection_host`" +msgstr "" + +#: ../../../CHANGELOG.md:3445 +msgid "`matrix_mxisd_ldap_connection_tls`" +msgstr "" + +#: ../../../CHANGELOG.md:3446 +msgid "`matrix_mxisd_ldap_connection_port`" +msgstr "" + +#: ../../../CHANGELOG.md:3447 +msgid "`matrix_mxisd_ldap_connection_baseDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3448 +msgid "`matrix_mxisd_ldap_connection_baseDns`" +msgstr "" + +#: ../../../CHANGELOG.md:3449 ../../../CHANGELOG.md:3450 +msgid "`matrix_mxisd_ldap_connection_bindDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3451 ../../../CHANGELOG.md:3455 +msgid "`matrix_mxisd_ldap_connection_bindPassword`" +msgstr "" + +#: ../../../CHANGELOG.md:3452 +msgid "`matrix_mxisd_ldap_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3453 +msgid "`matrix_mxisd_ldap_attribute_uid_type`" +msgstr "" + +#: ../../../CHANGELOG.md:3454 +msgid "`matrix_mxisd_ldap_attribute_uid_value`" +msgstr "" + +#: ../../../CHANGELOG.md:3456 +msgid "`matrix_mxisd_ldap_attribute_name`" +msgstr "" + +#: ../../../CHANGELOG.md:3457 +msgid "`matrix_mxisd_ldap_attribute_threepid_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3458 +msgid "`matrix_mxisd_ldap_attribute_threepid_msisdn`" +msgstr "" + +#: ../../../CHANGELOG.md:3459 +msgid "`matrix_mxisd_ldap_identity_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3460 +msgid "`matrix_mxisd_ldap_identity_medium`" +msgstr "" + +#: ../../../CHANGELOG.md:3461 +msgid "`matrix_mxisd_ldap_auth_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3462 +msgid "`matrix_mxisd_ldap_directory_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3463 +msgid "`matrix_mxisd_template_config`" +msgstr "" + +#: ../../../CHANGELOG.md:3465 +msgid "You are encouraged to use the `matrix_mxisd_configuration_extension_yaml` variable to define your own mxisd configuration additions and overrides. Refer to the [default variables file](roles/custom/matrix-mxisd/defaults/main.yml) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:3467 +msgid "This new way of configuring mxisd is beneficial because:" +msgstr "" + +#: ../../../CHANGELOG.md:3469 +msgid "it lets us support all mxisd configuration options, as the playbook simply forwards them to mxisd without needing to care or understand them" +msgstr "" + +#: ../../../CHANGELOG.md:3470 +msgid "it lets you upgrade to newer mxisd versions and make use of their features, without us having to add support for them explicitly" +msgstr "" + +#: ../../../CHANGELOG.md:3473 +msgid "2019-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:3475 +msgid "(BC Break) Cronjob schedule no longer configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3477 +msgid "Due to the way we manage cronjobs now, you can no longer configure the schedule they're invoked at." +msgstr "" + +#: ../../../CHANGELOG.md:3479 +msgid "If you were previously using `matrix_ssl_lets_encrypt_renew_cron_time_definition` or `matrix_nginx_proxy_reload_cron_time_definition` to set a custom schedule, you should note that these variables don't affect anything anymore." +msgstr "" + +#: ../../../CHANGELOG.md:3482 +msgid "If you miss this functionality, please [open an Issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new) and let us know about your use case!" +msgstr "" + +#: ../../../CHANGELOG.md:3485 +msgid "2018-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:3487 +msgid "(BC Break) More SSL certificate retrieval methods" +msgstr "" + +#: ../../../CHANGELOG.md:3489 +msgid "The playbook now lets you decide between 3 different SSL certificate retrieval methods:" +msgstr "" + +#: ../../../CHANGELOG.md:3490 +msgid "(default) obtaining free SSL certificates from Let's Encrypt" +msgstr "" + +#: ../../../CHANGELOG.md:3491 +msgid "generating self-signed SSL certificates" +msgstr "" + +#: ../../../CHANGELOG.md:3492 +msgid "managing SSL certificates manually" +msgstr "" + +#: ../../../CHANGELOG.md:3494 +msgid "Learn more in [Adjusting SSL certificate retrieval](docs/configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3496 +msgid "For people who use Let's Encrypt (mostly everyone, since it's the default), you'll also have to rename a variable in your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:3498 +msgid "before: `host_specific_matrix_ssl_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3499 +msgid "after: `host_specific_matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3501 +msgid "(BC Break) mxisd upgrade with multiple base DN support" +msgstr "" + +#: ../../../CHANGELOG.md:3503 +msgid "mxisd has bee upgraded to [version 1.2.2](https://github.com/kamax-matrix/mxisd/releases/tag/v1.2.2), which supports [multiple base DNs](https://github.com/kamax-matrix/mxisd/blob/v1.2.2/docs/stores/ldap.md#base)." +msgstr "" + +#: ../../../CHANGELOG.md:3505 +msgid "If you were configuring this playbook's `matrix_mxisd_ldap_connection_baseDn` variable until now (a string containing a single base DN), you'll need to change to configuring the `matrix_mxisd_ldap_connection_baseDns` variable (an array containing multiple base DNs)." +msgstr "" + +#: ../../../CHANGELOG.md:3507 +msgid "Example change:" +msgstr "" + +#: ../../../CHANGELOG.md:3509 +msgid "before: `matrix_mxisd_ldap_connection_baseDn: OU=Users,DC=example,DC=org`" +msgstr "" + +#: ../../../CHANGELOG.md:3510 +msgid "after: `matrix_mxisd_ldap_connection_baseDns: ['OU=Users,DC=example,DC=org']`" +msgstr "" + +#: ../../../CHANGELOG.md:3513 +msgid "2018-12-21" +msgstr "" + +#: ../../../CHANGELOG.md:3515 +msgid "Synapse 0.34.0 and Python 3" +msgstr "" + +#: ../../../CHANGELOG.md:3517 +msgid "Synapse has been upgraded to 0.34.0 and now uses Python 3. Based on feedback from others, running Synapse on Python 3 is supposed to decrease memory usage significantly (~2x)." +msgstr "" + +#: ../../../CHANGELOG.md:3520 +msgid "2018-12-12" +msgstr "" + +#: ../../../CHANGELOG.md:3522 +msgid "Riot homepage customization" +msgstr "" + +#: ../../../CHANGELOG.md:3524 +msgid "You can now customize some parts of the Riot homepage (or even completely replace it with your own custom page). See the `matrix_riot_web_homepage_` variables in `roles/custom/matrix-riot-web/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:3527 +msgid "2018-12-04" +msgstr "" + +#: ../../../CHANGELOG.md:3529 +msgid "mxisd extensibility" +msgstr "" + +#: ../../../CHANGELOG.md:3531 +msgid "The [LDAP identity store for mxisd](https://github.com/kamax-matrix/mxisd/blob/master/docs/stores/ldap.md) can now be configured easily using playbook variables (see the `matrix_mxisd_ldap_` variables in `roles/custom/matrix-server/defaults/main.yml`)." +msgstr "" + +#: ../../../CHANGELOG.md:3534 +msgid "2018-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:3536 +msgid "More scripts" +msgstr "" + +#: ../../../CHANGELOG.md:3538 +msgid "matrix-remove-all allows to uninstall everything with a single command" +msgstr "" + +#: ../../../CHANGELOG.md:3539 +msgid "matrix-make-user-admin allows to upgrade a user's privileges" +msgstr "" + +#: ../../../CHANGELOG.md:3541 +msgid "LDAP auth support via matrix-synapse-ldap3" +msgstr "" + +#: ../../../CHANGELOG.md:3543 +msgid "The playbook can now install and configure [LDAP auth support](https://github.com/matrix-org/matrix-synapse-ldap3) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3545 +msgid "Additional details are available in [Setting up the LDAP authentication password provider module](docs/configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3548 +msgid "2018-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:3550 +msgid "Support for controlling public registration and room auto-join" +msgstr "" + +#: ../../../CHANGELOG.md:3552 +msgid "The playbook now lets you enable public registration for users (controlled via `matrix_synapse_enable_registration`). By default, public registration is forbidden." +msgstr "" + +#: ../../../CHANGELOG.md:3554 +msgid "You can also make people automatically get auto-joined to rooms (controlled via `matrix_synapse_auto_join_rooms`)." +msgstr "" + +#: ../../../CHANGELOG.md:3556 +msgid "Support for changing the welcome user ID (welcome bot)" +msgstr "" + +#: ../../../CHANGELOG.md:3558 +msgid "By default, `@riot-bot:matrix.org` is used to welcome newly registered users. This can be changed to something else (or disabled) via the new `matrix_riot_web_welcome_user_id` variable." +msgstr "" + +#: ../../../CHANGELOG.md:3561 +msgid "2018-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:3563 +msgid "Ability to set Synapse log levels" +msgstr "" + +#: ../../../CHANGELOG.md:3565 +msgid "The playbook now allows you to set the log levels used by Synapse. The default logging levels remain the same." +msgstr "" + +#: ../../../CHANGELOG.md:3567 +msgid "You can now override following variables with any of the supported log levels listed here: https://docs.python.org/3/library/logging.html#logging-levels" +msgstr "" + +#: ../../../CHANGELOG.md:3576 +msgid "2018-11-03" +msgstr "" + +#: ../../../CHANGELOG.md:3578 +msgid "Customize parts of Riot's config" +msgstr "" + +#: ../../../CHANGELOG.md:3580 +msgid "You can now customize some parts of Riot's `config.json`. These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:3591 +msgid "This now allows you use a custom integration manager like [Dimension](https://dimension.t2bot.io). For example, if you wish to use the Dimension instance hosted at dimension.t2bot.io, you can set the following in your vars.yml file:" +msgstr "" + +#: ../../../CHANGELOG.md:3600 +msgid "SSL protocols used to serve Riot and Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3602 +msgid "There's now a new `matrix_nginx_proxy_ssl_protocols` playbook variable, which controls the SSL protocols used to serve Riot and Synapse. Its default value is `TLSv1.1 TLSv1.2`. This playbook previously used `TLSv1 TLSv1.1 TLSv1.2` to serve Riot and Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:3604 +msgid "You may wish to reenable TLSv1 if you need to access Riot in older browsers." +msgstr "" + +#: ../../../CHANGELOG.md:3606 +msgid "Note: Currently the dockerized nginx doesn't support TLSv1.3. See https://github.com/nginxinc/docker-nginx/issues/190 for more details." +msgstr "" + +#: ../../../CHANGELOG.md:3609 +msgid "2018-11-01" +msgstr "" + +#: ../../../CHANGELOG.md:3611 +msgid "Postgres 11 support" +msgstr "" + +#: ../../../CHANGELOG.md:3613 +msgid "The playbook now installs [Postgres 11](https://www.postgresql.org/about/news/1894/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:3615 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x or 10.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:3617 ../../../CHANGELOG.md:3704 +#: ../../../CHANGELOG.md:3824 +msgid "(BC Break) Renaming playbook variables" +msgstr "" + +#: ../../../CHANGELOG.md:3619 +msgid "Due to the large amount of features added to this playbook lately, to keep things manageable we've had to reorganize its configuration variables a bit." +msgstr "" + +#: ../../../CHANGELOG.md:3623 +msgid "from `matrix_docker_image_mxisd` to `matrix_mxisd_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3624 +msgid "from `matrix_docker_image_mautrix_telegram` to `matrix_mautrix_telegram_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3625 +msgid "from `matrix_docker_image_mautrix_whatsapp` to `matrix_mautrix_whatsapp_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3626 +msgid "from `matrix_docker_image_mailer` to `matrix_mailer_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3627 +msgid "from `matrix_docker_image_coturn` to `matrix_coturn_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3628 +msgid "from `matrix_docker_image_goofys` to `matrix_s3_goofys_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3629 +msgid "from `matrix_docker_image_riot` to `matrix_riot_web_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3630 +msgid "from `matrix_docker_image_nginx` to `matrix_nginx_proxy_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3631 +msgid "from `matrix_docker_image_synapse` to `matrix_synapse_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3632 +msgid "from `matrix_docker_image_postgres_v9` to `matrix_postgres_docker_image_v9`" +msgstr "" + +#: ../../../CHANGELOG.md:3633 +msgid "from `matrix_docker_image_postgres_v10` to `matrix_postgres_docker_image_v10`" +msgstr "" + +#: ../../../CHANGELOG.md:3634 +msgid "from `matrix_docker_image_postgres_latest` to `matrix_postgres_docker_image_latest`" +msgstr "" + +#: ../../../CHANGELOG.md:3637 +msgid "2018-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:3639 +msgid "Mautrix Whatsapp bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3641 +msgid "The playbook now supports bridging with [Whatsapp](https://www.whatsapp.com/) by installing the [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3643 +msgid "Additional details are available in [Setting up Mautrix Whatsapp bridging](docs/configuring-playbook-bridge-mautrix-whatsapp.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3646 +msgid "2018-10-25" +msgstr "" + +#: ../../../CHANGELOG.md:3648 +msgid "Support for controlling Matrix federation" +msgstr "" + +#: ../../../CHANGELOG.md:3650 +msgid "The playbook can now help you with [Controlling Matrix federation](docs/configuring-playbook-federation), should you wish to run a more private (isolated) server." +msgstr "" + +#: ../../../CHANGELOG.md:3653 +msgid "2018-10-24" +msgstr "" + +#: ../../../CHANGELOG.md:3655 +msgid "Disabling riot-web guests" +msgstr "" + +#: ../../../CHANGELOG.md:3657 +msgid "From now on, Riot's configuration setting `disable_guests` would be set to `true`. The homeserver was rejecting guests anyway, so this is just a cosmetic change affecting Riot's UI." +msgstr "" + +#: ../../../CHANGELOG.md:3660 +msgid "2018-10-21" +msgstr "" + +#: ../../../CHANGELOG.md:3662 +msgid "Self-check maintenance command" +msgstr "" + +#: ../../../CHANGELOG.md:3664 +msgid "The playbook can now [check if services are configured correctly](docs/maintenance-checking-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3667 +msgid "2018-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:3669 +msgid "Presence tracking made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3671 +msgid "The playbook can now enable/disable user presence-status tracking in Synapse, through the playbook's `matrix_synapse_use_presence` variable (having a default value of `true` — enabled)." +msgstr "" + +#: ../../../CHANGELOG.md:3673 +msgid "If users participate in large rooms with many other servers, disabling presence will decrease server load significantly." +msgstr "" + +#: ../../../CHANGELOG.md:3676 +msgid "2018-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:3678 +msgid "Synapse Cache Factor made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3680 +msgid "The playbook now makes the Synapse cache factor configurable, through the playbook's `matrix_synapse_cache_factor` variable (having a default value of `0.5`)." +msgstr "" + +#: ../../../CHANGELOG.md:3682 +msgid "Changing that value allows you to potentially decrease RAM usage or to increase performance by caching more stuff. Some information on it is available here: https://github.com/element-hq/synapse#help-synapse-eats-all-my-ram" +msgstr "" + +#: ../../../CHANGELOG.md:3685 +msgid "2018-09-26" +msgstr "" + +#: ../../../CHANGELOG.md:3687 +msgid "Disabling Docker container logging" +msgstr "" + +#: ../../../CHANGELOG.md:3689 +msgid "`--log-driver=none` is used for all Docker containers now." +msgstr "" + +#: ../../../CHANGELOG.md:3691 +msgid "All these containers are started through systemd anyway and get logged in journald, so there's no need for Docker to be logging the same thing using the default `json-file` driver. Doing that was growing `/var/lib/docker/containers/…` infinitely until service/container restart." +msgstr "" + +#: ../../../CHANGELOG.md:3693 +msgid "As a result of this, things like `docker logs matrix-synapse` won't work anymore. `journalctl -u matrix-synapse` is how one can see the logs." +msgstr "" + +#: ../../../CHANGELOG.md:3696 +msgid "2018-09-17" +msgstr "" + +#: ../../../CHANGELOG.md:3698 +msgid "Service discovery support" +msgstr "" + +#: ../../../CHANGELOG.md:3700 +msgid "The playbook now helps you set up [service discovery](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) using a `/.well-known/matrix/client` file." +msgstr "" + +#: ../../../CHANGELOG.md:3702 +msgid "Additional details are available in [Configuring service discovery via .well-known](docs/configuring-well-known.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3708 +msgid "from `matrix_nginx_riot_web_data_path` to `matrix_riot_web_data_path`" +msgstr "" + +#: ../../../CHANGELOG.md:3709 +msgid "from `matrix_riot_web_default_identity_server_url` to `matrix_identity_server_url`" +msgstr "" + +#: ../../../CHANGELOG.md:3712 +msgid "2018-09-07" +msgstr "" + +#: ../../../CHANGELOG.md:3714 +msgid "Mautrix Telegram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3716 +msgid "The playbook now supports bridging with [Telegram](https://telegram.org/) by installing the [mautrix-telegram](https://github.com/tulir/mautrix-telegram) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3718 +msgid "Additional details are available in [Setting up Mautrix Telegram bridging](docs/configuring-playbook-bridge-mautrix-telegram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3720 +msgid "Events cache size increase and configurability for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3722 +msgid "The playbook now lets you configure Matrix Synapse's `event_cache_size` configuration via the `matrix_synapse_event_cache_size` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:3724 +msgid "Previously, this value was hardcoded to `\"10K\"`. From now on, a more reasonable default of `\"100K\"` is used." +msgstr "" + +#: ../../../CHANGELOG.md:3726 +msgid "Password-peppering support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3728 +msgid "The playbook now supports enabling password-peppering for increased security in Matrix Synapse via the `matrix_synapse_password_config_pepper` playbook variable. Using a password pepper is disabled by default (just like it used to be before this playbook variable got introduced) and is not to be enabled/disabled after initial setup, as that would invalidate all existing passwords." +msgstr "" + +#: ../../../CHANGELOG.md:3730 +msgid "Statistics-reporting support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3732 +msgid "There's now a new `matrix_synapse_report_stats` playbook variable, which controls the `report_stats` configuration option for Matrix Synapse. It defaults to `false`, so no change is required to retain your privacy." +msgstr "" + +#: ../../../CHANGELOG.md:3734 +msgid "If you'd like to start reporting statistics about your homeserver (things like number of users, number of messages sent, uptime, load, etc.) to matrix.org, you can turn on stats reporting." +msgstr "" + +#: ../../../CHANGELOG.md:3737 +msgid "2018-08-29" +msgstr "" + +#: ../../../CHANGELOG.md:3739 +msgid "Changing the way SSL certificates are retrieved" +msgstr "" + +#: ../../../CHANGELOG.md:3741 +msgid "We've been using [acmetool](https://github.com/hlandau/acme) (with the [willwill/acme-docker](https://hub.docker.com/r/willwill/acme-docker/) Docker image) until now." +msgstr "" + +#: ../../../CHANGELOG.md:3743 +msgid "Due to the Docker image being deprecated, and things looking bleak for acmetool's support of the newer ACME v2 API endpoint, we've switched to using [certbot](https://certbot.eff.org/) (with the [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) Docker image)." +msgstr "" + +#: ../../../CHANGELOG.md:3745 +msgid "Simply re-running the playbook will retrieve new certificates (via certbot) for you. To ensure you don't leave any old files behind, though, you'd better do this:" +msgstr "" + +#: ../../../CHANGELOG.md:3747 +msgid "`systemctl stop 'matrix*'`" +msgstr "" + +#: ../../../CHANGELOG.md:3748 +msgid "stop your custom webserver, if you're running one (only affects you if you've installed with `matrix_nginx_proxy_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3749 +msgid "`mv /matrix/ssl /matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3750 +msgid "re-run the playbook's [installation](docs/installing.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3751 +msgid "possibly delete `/matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3754 +msgid "2018-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:3756 +msgid "Matrix Corporal support" +msgstr "" + +#: ../../../CHANGELOG.md:3758 +msgid "The playbook can now install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3760 +msgid "Additional details are available in [Setting up Matrix Corporal](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3763 +msgid "2018-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:3765 +msgid "Matrix Synapse rate limit control variables" +msgstr "" + +#: ../../../CHANGELOG.md:3767 +msgid "The following new variables can now be configured to control Matrix Synapse's rate-limiting (default values are shown below)." +msgstr "" + +#: ../../../CHANGELOG.md:3774 +msgid "Shared Secret Auth support via matrix-synapse-shared-secret-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3776 +msgid "The playbook can now install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3778 +msgid "Additional details are available in [Setting up the Shared Secret Auth password provider module](docs/configuring-playbook-shared-secret-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3781 +msgid "2018-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:3783 +msgid "REST auth support via matrix-synapse-rest-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3785 +msgid "The playbook can now install and configure [matrix-synapse-rest-auth](https://github.com/kamax-io/matrix-synapse-rest-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3787 +msgid "Additional details are available in [Setting up the REST authentication password provider module](docs/configuring-playbook-rest-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3789 +msgid "Compression improvements" +msgstr "" + +#: ../../../CHANGELOG.md:3791 +msgid "Shifted Matrix Synapse compression from happening in the Matrix Synapse, to happening in the nginx proxy that's in front of it." +msgstr "" + +#: ../../../CHANGELOG.md:3794 +msgid "Additionally, `riot-web` also gets compressed now (in the nginx proxy), which drops the initial page load's size from 5.31MB to 1.86MB." +msgstr "" + +#: ../../../CHANGELOG.md:3797 +msgid "Disabling some unnecessary Synapse services" +msgstr "" + +#: ../../../CHANGELOG.md:3799 +msgid "The following services are not necessary, so they have been disabled:" +msgstr "" + +#: ../../../CHANGELOG.md:3800 +msgid "on the federation port (8448): the `client` service" +msgstr "" + +#: ../../../CHANGELOG.md:3801 +msgid "on the http port (8008, exposed over 443): the old Angular `webclient` and the `federation` service" +msgstr "" + +#: ../../../CHANGELOG.md:3803 +msgid "Federation runs only on the federation port (8448) now. The Client APIs run only on the http port (8008) now." +msgstr "" + +#: ../../../CHANGELOG.md:3806 +msgid "2018-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:3808 +msgid "mxisd Identity Server support" +msgstr "" + +#: ../../../CHANGELOG.md:3810 +msgid "The playbook now sets up an [mxisd](https://github.com/kamax-io/mxisd) Identity Server for you by default. Additional details are available in [Setting up ma1sd Identity Server](docs/configuring-playbook-mxisd.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3813 +msgid "2018-08-14" +msgstr "" + +#: ../../../CHANGELOG.md:3815 +msgid "Email-sending support" +msgstr "" + +#: ../../../CHANGELOG.md:3817 +msgid "The playbook now configures an email-sending service (postfix) by default. Additional details are available in [Adjusting email-sending settings](docs/configuring-playbook-email.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3819 +msgid "With this, Matrix Synapse is able to send email notifications for missed messages, etc." +msgstr "" + +#: ../../../CHANGELOG.md:3822 +msgid "2018-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:3828 +msgid "from `matrix_max_upload_size_mb` to `matrix_synapse_max_upload_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3829 +msgid "from `matrix_max_log_file_size_mb` to `matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3830 +msgid "from `matrix_max_log_files_count` to `matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3831 +msgid "from `docker_matrix_image` to `matrix_docker_image_synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3832 +msgid "from `docker_nginx_image` to `matrix_docker_image_nginx`" +msgstr "" + +#: ../../../CHANGELOG.md:3833 +msgid "from `docker_riot_image` to `matrix_docker_image_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3834 +msgid "from `docker_goofys_image` to `matrix_docker_image_goofys`" +msgstr "" + +#: ../../../CHANGELOG.md:3835 +msgid "from `docker_coturn_image` to `matrix_docker_image_coturn`" +msgstr "" + +#: ../../../CHANGELOG.md:3837 +msgid "If you're overriding any of them in your `vars.yml` file, you'd need to change to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:3839 +msgid "Renaming Ansible playbook tag" +msgstr "" + +#: ../../../CHANGELOG.md:3841 +msgid "The command for executing the whole playbook has changed. The `setup-main` tag got renamed to `setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:3843 +msgid "Docker container linking" +msgstr "" + +#: ../../../CHANGELOG.md:3845 +msgid "Changed the way the Docker containers are linked together. The ones that need to communicate with others operate in a `matrix` network now and not in the default bridge network." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/README.po b/i18n/locales/jp/LC_MESSAGES/README.po new file mode 100644 index 000000000..8faa4b11d --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/README.po @@ -0,0 +1,1181 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../README.md:1 +msgid "[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate)" +msgstr "" + +#: ../../../README.md:1 +msgid "Support room on Matrix" +msgstr "" + +#: ../../../README.md:1 +msgid "donate" +msgstr "" + +#: ../../../README.md:3 +msgid "Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker" +msgstr "" + +#: ../../../README.md:5 +msgid "🎯 Purpose" +msgstr "" + +#: ../../../README.md:7 +msgid "This [Ansible](https://www.ansible.com/) playbook is meant to help you run your own [Matrix](http://matrix.org/) homeserver, along with the [various services](#supported-services) related to that." +msgstr "この [Ansible](https://www.ansible.com/) Playbook は、独自の [Matrix](http://matrix.org/) ホームサーバーと、それに関連する [さまざまなサービス](#supported-services) を実行するのに役立つことを目的としています。" + +#: ../../../README.md:9 +msgid "That is, it lets you join the Matrix network using your own user ID like `@alice:example.com`, all hosted on your own server (see [prerequisites](docs/prerequisites.md))." +msgstr "" + +#: ../../../README.md:11 +msgid "We run all [supported services](#-supported-services) in [Docker](https://www.docker.com/) containers (see [the container images we use](docs/container-images.md)), which lets us have a predictable and up-to-date setup, across multiple supported distros (see [prerequisites](docs/prerequisites.md)) and [architectures](docs/alternative-architectures.md) (x86/amd64 being recommended)." +msgstr "" + +#: ../../../README.md:13 +msgid "Installation (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md))." +msgstr "" + +#: ../../../README.md:15 +msgid "☁ Self-hosting or Managed / SaaS" +msgstr "" + +#: ../../../README.md:17 +msgid "This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy (see [Getting started](#-getting-started)). Still, running any service smoothly requires knowledge, time and effort." +msgstr "" + +#: ../../../README.md:19 +msgid "If you like the [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also [get a managed Matrix server from etke.cc](https://etke.cc?utm_source=github&utm_medium=readme&utm_campaign=mdad) (both hosting and on-premises) - a service built on top of this Ansible playbook but with [additional components](https://etke.cc/help/extras/?utm_source=github&utm_medium=readme&utm_campaign=mdad) and [services](https://etke.cc/services/?utm_source=github&utm_medium=readme&utm_campaign=mdad) which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no \"just set up my server once and be done with it\" option." +msgstr "" + +#: ../../../README.md:21 +msgid "🚀 Getting started" +msgstr "" + +#: ../../../README.md:23 +msgid "We have detailed documentation in the [docs/](./docs) directory - see the Table of Contents in the [documentation README](./docs/README.md)." +msgstr "" + +#: ../../../README.md:25 +msgid "While the [list of supported services](#-supported-services) and documentation is very extensive, you don't need to read through everything. We recommend:" +msgstr "" + +#: ../../../README.md:27 +msgid "Starting with the basics. You can always add/remove or tweak services later on." +msgstr "" + +#: ../../../README.md:29 +msgid "Following our installation guide. There are two guides available for beginners and advanced users:" +msgstr "" + +#: ../../../README.md:31 +msgid "⚡ **[Quick start](./docs/quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../README.md:33 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](./docs/prerequisites.md)** documentation page." +msgstr "" + +#: ../../../README.md:35 +msgid "If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our [FAQ](./docs/faq.md). If you cannot find an answer to your question, feel free to ask for [help and support](#-support)." +msgstr "" + +#: ../../../README.md:37 +msgid "✔ Supported services" +msgstr "" + +#: ../../../README.md:39 +msgid "Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else." +msgstr "" + +#: ../../../README.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../README.md:43 +msgid "The list below is exhaustive. It includes optional or even some advanced components that you will most likely not need. Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation. You can always re-run the playbook later to add or remove components." +msgstr "" + +#: ../../../README.md:45 +msgid "Deprecated or unmaintained services are not listed. You can find documentations for them [here](docs/configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../README.md:47 +msgid "Homeserver" +msgstr "" + +#: ../../../README.md:49 +msgid "The homeserver is the backbone of your Matrix system. Choose one from the following list." +msgstr "" + +#: ../../../README.md +msgid "Name" +msgstr "" + +#: ../../../README.md +msgid "Default?" +msgstr "" + +#: ../../../README.md +msgid "Description" +msgstr "" + +#: ../../../README.md +msgid "Documentation" +msgstr "" + +#: ../../../README.md +msgid "[Synapse](https://github.com/element-hq/synapse)" +msgstr "" + +#: ../../../README.md +msgid "✅" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse.md)" +msgstr "" + +#: ../../../README.md +msgid "[Conduit](https://conduit.rs)" +msgstr "" + +#: ../../../README.md +msgid "❌" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-conduit.md)" +msgstr "" + +#: ../../../README.md +msgid "[conduwuit](https://conduwuit.puppyirl.gay/)" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-conduwuit.md)" +msgstr "" + +#: ../../../README.md +msgid "[Dendrite](https://github.com/element-hq/dendrite)" +msgstr "" + +#: ../../../README.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../README.md:58 +msgid "Clients" +msgstr "" + +#: ../../../README.md:60 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../README.md +msgid "[Element Web](https://github.com/element-hq/element-web)" +msgstr "" + +#: ../../../README.md +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../README.md +msgid "[Hydrogen](https://github.com/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../README.md +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../README.md +msgid "[Cinny](https://github.com/ajbura/cinny)" +msgstr "" + +#: ../../../README.md +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../README.md +msgid "[SchildiChat Web](https://schildi.chat/)" +msgstr "" + +#: ../../../README.md +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../README.md:69 +msgid "Server Components" +msgstr "" + +#: ../../../README.md:71 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../README.md +msgid "[PostgreSQL](https://www.postgresql.org/)" +msgstr "" + +#: ../../../README.md +msgid "Database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../README.md +msgid "[coturn](https://github.com/coturn/coturn)" +msgstr "" + +#: ../../../README.md +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../README.md +msgid "[Traefik](https://doc.traefik.io/traefik/)" +msgstr "" + +#: ../../../README.md +msgid "Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../README.md +msgid "[Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../README.md +msgid "Free SSL certificate, which secures the connection to all components" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../README.md +msgid "[Exim](https://www.exim.org/)" +msgstr "" + +#: ../../../README.md +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-email.md)" +msgstr "" + +#: ../../../README.md +msgid "[ma1sd](https://github.com/ma1uta/ma1sd)" +msgstr "" + +#: ../../../README.md +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../README.md +msgid "[ddclient](https://github.com/linuxserver/docker-ddclient)" +msgstr "" + +#: ../../../README.md +msgid "Dynamic DNS" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../README.md:83 +msgid "Authentication" +msgstr "" + +#: ../../../README.md:85 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "Password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ldap-auth.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-registration](https://github.com/ZerataX/matrix-registration)" +msgstr "" + +#: ../../../README.md +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (UVS)" +msgstr "" + +#: ../../../README.md +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-user-verification-service.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "A spam checker module" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)" +msgstr "" + +#: ../../../README.md:97 +msgid "File Storage" +msgstr "" + +#: ../../../README.md:99 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../README.md +msgid "[Goofys](https://github.com/kahing/goofys)" +msgstr "" + +#: ../../../README.md +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-s3.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-media-repo](https://github.com/turt2live/matrix-media-repo)" +msgstr "" + +#: ../../../README.md +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../README.md:107 +msgid "Bridges" +msgstr "" + +#: ../../../README.md:109 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../README.md +msgid "[mautrix-discord](https://github.com/mautrix/discord)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-slack](https://github.com/mautrix/slack)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-telegram](https://github.com/mautrix/telegram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-gmessages](https://github.com/mautrix/gmessages)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-whatsapp](https://github.com/mautrix/whatsapp)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-wsproxy](https://github.com/mautrix/wsproxy)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-twitter](https://github.com/mautrix/twitter)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-googlechat](https://github.com/mautrix/googlechat)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-meta](https://github.com/mautrix/instagram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../README.md +msgid "Link for [Messenger](docs/configuring-playbook-bridge-mautrix-meta-messenger.md) / [Instagram](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mautrix-signal](https://github.com/mautrix/signal)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../README.md +msgid "[beeper-linkedin](https://github.com/beeper/linkedin)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-hookshot](https://github.com/matrix-org/matrix-hookshot)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to SMS" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-wechat](https://github.com/duo/matrix-wechat)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../README.md +msgid "[Heisenbridge](https://github.com/hifi/heisenbridge)" +msgstr "" + +#: ../../../README.md +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../README.md +msgid "[go-skype-bridge](https://github.com/kelaresg/go-skype-bridge)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../README.md +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../README.md +msgid "[mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../README.md +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../README.md +msgid "[Postmoogle](https://github.com/etkecc/postmoogle)" +msgstr "" + +#: ../../../README.md +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../README.md:141 +msgid "Bots" +msgstr "" + +#: ../../../README.md:143 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../README.md +msgid "[baibot](https://github.com/etkecc/baibot)" +msgstr "" + +#: ../../../README.md +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)" +msgstr "" + +#: ../../../README.md +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../README.md +msgid "[matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot)" +msgstr "" + +#: ../../../README.md +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../README.md +msgid "[maubot](https://github.com/maubot/maubot)" +msgstr "" + +#: ../../../README.md +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../README.md +msgid "[Honoroit](https://github.com/etkecc/honoroit)" +msgstr "" + +#: ../../../README.md +msgid "A helpdesk bot" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../README.md +msgid "[Mjolnir](https://github.com/matrix-org/mjolnir)" +msgstr "" + +#: ../../../README.md +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../README.md +msgid "[Draupnir](https://github.com/the-draupnir-project/Draupnir)" +msgstr "" + +#: ../../../README.md +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-draupnir.md) (for [appservice mode](docs/configuring-playbook-appservice-draupnir-for-all.md))" +msgstr "" + +#: ../../../README.md +msgid "[Buscarron](https://github.com/etkecc/buscarron)" +msgstr "" + +#: ../../../README.md +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../README.md:156 +msgid "Administration" +msgstr "" + +#: ../../../README.md:158 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../README.md +msgid "[matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../README.md +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/)" +msgstr "" + +#: ../../../README.md +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-admin](https://github.com/etkecc/synapse-admin)" +msgstr "" + +#: ../../../README.md +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../README.md +msgid "Metrics and Graphs" +msgstr "" + +#: ../../../README.md +msgid "Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI, with [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) being available too" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-prometheus-grafana.md) (for [prometheus-nginxlog-exporter](docs/configuring-playbook-prometheus-nginxlog.md))" +msgstr "" + +#: ../../../README.md +msgid "[Borg](https://borgbackup.org)" +msgstr "" + +#: ../../../README.md +msgid "Backups" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../README.md +msgid "[rageshake](https://github.com/matrix-org/rageshake)" +msgstr "" + +#: ../../../README.md +msgid "Bug report server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter)" +msgstr "" + +#: ../../../README.md +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../README.md:170 +msgid "Misc" +msgstr "" + +#: ../../../README.md:172 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../README.md +msgid "[sliding-sync](https://github.com/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../README.md +msgid "(Superseded by Simplified Sliding Sync integrated into Synapse > `1.114` and Conduit > `0.6.0`) Sliding Sync support for clients which require it (e.g. old Element X versions before Simplified Sliding Sync was developed)" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite)" +msgstr "" + +#: ../../../README.md +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../README.md +msgid "[synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor)" +msgstr "" + +#: ../../../README.md +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../README.md +msgid "[Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced)" +msgstr "" + +#: ../../../README.md +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-matrix-corporal.md)" +msgstr "" + +#: ../../../README.md +msgid "[Etherpad](https://etherpad.org)" +msgstr "" + +#: ../../../README.md +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../README.md +msgid "[Jitsi](https://jitsi.org/)" +msgstr "" + +#: ../../../README.md +msgid "An open source video-conferencing platform" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../README.md +msgid "[Cactus Comments](https://cactus.chat)" +msgstr "" + +#: ../../../README.md +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../README.md +msgid "[Pantalaimon](https://github.com/matrix-org/pantalaimon)" +msgstr "" + +#: ../../../README.md +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../README.md +msgid "[Sygnal](https://github.com/matrix-org/sygnal)" +msgstr "" + +#: ../../../README.md +msgid "Push gateway" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../README.md +msgid "[ntfy](https://ntfy.sh)" +msgstr "" + +#: ../../../README.md +msgid "Push notifications server" +msgstr "" + +#: ../../../README.md +msgid "[Link](docs/configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../README.md:187 +msgid "🆕 Changes" +msgstr "" + +#: ../../../README.md:189 +msgid "This playbook evolves over time, sometimes with backward-incompatible changes." +msgstr "" + +#: ../../../README.md:191 +msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new." +msgstr "" + +#: ../../../README.md:193 +msgid "🆘 Support" +msgstr "" + +#: ../../../README.md:195 +msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)" +msgstr "" + +#: ../../../README.md:197 +msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)" +msgstr "" + +#: ../../../README.md:199 +msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)" +msgstr "" + +#: ../../../README.md:201 +msgid "🌐 Translation" +msgstr "" + +#: ../../../README.md:203 +msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation." +msgstr "" + +#: ../../../README.md:205 +msgid "Translations are still work in progress." +msgstr "" + +#: ../../../README.md:207 +msgid "🤝 Related" +msgstr "" + +#: ../../../README.md:209 +msgid "You may also be interested in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) - another Ansible playbook for self-hosting non-Matrix services (see its [List of supported services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md))." +msgstr "" + +#: ../../../README.md:211 +msgid "mash-playbook also makes use of [Traefik](./docs/configuring-playbook-traefik.md) as its reverse-proxy, so with minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md), you can make matrix-docker-ansible-deploy and mash-playbook co-exist and host Matrix and non-Matrix services on the same server." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/YEAR-IN-REVIEW.po b/i18n/locales/jp/LC_MESSAGES/YEAR-IN-REVIEW.po new file mode 100644 index 000000000..be33e6670 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/YEAR-IN-REVIEW.po @@ -0,0 +1,293 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../YEAR-IN-REVIEW.md:1 +msgid "2023" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:3 +msgid "2023 was a year filled with many changes for matrix-docker-ansible-deploy. In this post, we're looking backward at some of the major changes that happened this year, as well as taking a glimpse of what's ahead in 2024." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:5 +msgid "2023 is probably [the year of AI](https://journal.everypixel.com/2023-the-year-of-ai), with millions of people jumping aboard [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/chatgpt) train. matrix-docker-ansible-deploy is no stranger to this and 2023 began with a PR from [bertybuttface](https://github.com/bertybuttface) who added support for [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#chatgpt-support)). While OpenAI's chat GPT website was frequently overloaded in the past, their API was up which made using this bot both convenient and more reliable." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:7 +msgid "AI aside, with the playbook's focus being containers, we're **doubling down on being \"container native\"** and becoming more interoperable for people hosting other containers on the Matrix server. In [2022](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/YEAR-IN-REVIEW.md#2022), we've announced a few sibling Ansible playbooks, their use of [Traefik](https://doc.traefik.io/traefik/) and the possiblity of matrix-docker-ansible-deploy also switching to this reverse-proxy. This prediction materialized quickly. The **largest change** in the playbook in 2023 happened way back in February - matrix-docker-ansible-deploy [starting the switch from nginx to Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support) and then quickly [making Treafik the default reverse-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now). As noted in the changelog entries, we envisioned a quick and complete elimination of `matrix-nginx-proxy`, but at the end of 2023, it hasn't happened yet. The playbook is already using Traefik as the front-most reverse-proxy, but nginx (via `matrix-nginx-proxy`) is still around - it has taken a step back and is only used internally for new setups. Work got to a stall due to:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:9 +msgid "complexity: untangling the overly large and messy `matrix-nginx-proxy` component is difficult" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:10 +msgid "the current setup became \"good enough\" because nginx has become an internal implementation detail for those who have migrated to Traefik. Traefik is already the default public reverse-proxy and gives better possibilities to people wishing to run other web-exposed containers on their Matrix server via [Docker Compose](https://docs.docker.com/compose/), other Ansible playbooks like [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) (more about this one, below) or any other way." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:12 +msgid "`matrix-nginx-proxy` is no longer in the way of us being interoperable, but its ugly internal details are still there. It is one more proxy in the long chain of reverse-proxies we have and we'd like to cut it out. This would both make things simpler and also boost performance." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:14 +msgid "The delay in eliminating `matrix-nginx-proxy` has probably been welcome by many existing users who decided to postpone the Traefik migration a bit longer. In 2024, work on eliminating `matrix-nginx-proxy` will continue with rapid pace. People who are still using `matrix-nginx-proxy` as their front-most reverse-proxy will need to rework their setup. About a year of putting it off has been long enough." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:16 +msgid "This large Traefik reverse-proxy change was also accompanied by another internal change which began in 2022, but continued in 2023 - **moving non-Matrix-related roles from being internal to the playbook to living their own life outside of it**. Various roles were made more decoupled and moved outside of the playbook, so that other projects (like the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook or other Ansible playbooks) could benefit from them. This led to the **death of a few sibling playbooks** ([gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), [peertube-docker-ansible-deploy](https://github.com/spantaleev/peertube-docker-ansible-deploy), [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy)), but brought life to something better, which supports all these services and more." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:18 +msgid "[mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a new Ansible playbook that a few of us (matrix-docker-ansible-deploy contributors) have launched in 2023. It has quickly grown to supports [60+ services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) and aims to do the same for [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) service hosting, as matrix-docker-ansible-deploy has done for Matrix - providing a clean and secure way to run a bunch of services in containers on a regular server (that is to say, without Kubernetes, etc.). Thanks to Traefik and Ansible role reuse, it's easy to host both mash-playbook services and matrix-docker-ansible-deploy services on the same server - see mash-playbook's [interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) documentation page. If you've been looking for a holiday project or your New Year's Resolutions list contains \"self-hosting more services\", then you're welcome to give this new playbook a try and join its Matrix room ([#mash-playbook:devture.com](https://matrix.to/#/#mash-playbook:devture.com))." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:20 +msgid "Because many of the roles are now external to this playbook (defined in the [requirements.yml](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/da27655ef34999fa924bc0a5e641dbd9ba06f133/requirements.yml) file), running `make roles` (or better yet `just roles` via the [just tool](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#support-for-running-commands-via-just)) becomes a necessity each time one pulls playbook updates (`git pull`). Pulling external roles happens via the [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) command-line tool, but if available, the playbook would also use the much faster [agru](https://github.com/etkecc/agru) tool (developed by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) this year)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:22 +msgid "With the internal (but important) details out of the way, we can now talk more about **new features that landed in matrix-docker-ansible-deploy in 2023**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:24 +msgid "The following **new** **bridges** were added to the playbook in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:26 +msgid "(2023-01-11) [mautrix-slack](https://mau.dev/mautrix/slack), thanks to a PR by [Cody Neiman](https://github.com/xangelix) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-slack-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:27 +msgid "(2023-07-21) [mautrix-gmessages](https://github.com/mautrix/gmessages), thanks to a PR by [Shreyas Ajjarapu](https://github.com/shreyasajj) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-gmessages-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:28 +msgid "(2023-08-23) [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for Apple iMessage bridging (when combined with the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone), thanks to a PR by [Johan Swetzén](https://github.com/jswetzen)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:30 +msgid "This brings the total number of **[bridges that the playbook supports](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/docs/configuring-playbook.md#bridging-other-networks) up to 30**. There are alternative bridge implementations for various networks and protocols, so the number of \"unique bridged networks\" is surely much smaller." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:32 +msgid "A few other **major components and changes** landed in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:34 +msgid "(2023-02-10) The [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (successor to [Mjolnir](https://github.com/matrix-org/mjolnir)), thanks to a PR by [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#draupnir-moderation-tool-bot-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:35 +msgid "(2023-02-10) [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) to add Matrix Authentication Support to our Jitsi setup, thanks to a PR by [Jakob S.](https://github.com/jakicoll) from [zakk gGmbH](https://github.com/zakk-it) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-authentication-support-for-jitsi))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:36 +msgid "(2023-02-25) The [rageshake](https://github.com/matrix-org/rageshake) bug report server, thanks to a PR by [Benjamin Kampmann](https://github.com/gnunicorn) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#rageshake-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:37 +msgid "(2023-03-07) [Sliding Sync proxy](https://github.com/matrix-org/sliding-sync) (currently a necessary component for [Element X](https://element.io/labs/element-x) to work), thanks to: [Benjamin Kampmann](https://github.com/gnunicorn) and [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#sliding-sync-proxy-element-x-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:38 +msgid "(2023-03-12) synapse-auto-compressor to periodically and automatically run [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#synapse-auto-compressor-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:39 +msgid "(2023-07-17) [matrix-media-repo](https://github.com/turt2live/matrix-media-repo),  thanks to a PR by [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-media-repo-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:40 +msgid "(2023-08-31) [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client app (fork of [Element Web)](https://github.com/element-hq/element-web), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#schildichat-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:41 +msgid "(2023-10-18) Postgres parameters auto-tuning, thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#postgres-parameters-are-automatically-tuned-now))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:42 +msgid "(2023-10-23) Enabling federation of the room directory for Synapse (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:44 +msgid "The most recent change in the list above (Enabling federation of the room directory for Synapse) has been somewhat **controversial** as it goes against upstream defaults for Synapse. Nevertheless, we believe it **promotes the well-being of the Matrix Federation by improving room discovery**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:46 +msgid "**Matrix Federation Stats** (containing the percentage of servers publishing their room directory publicly) are posted to [TWIM](https://matrix.org/category/this-week-in-matrix/) each week by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/). The number of servers which [currently published their room directory publicly](https://matrix.org/blog/2023/12/2/this-week-in-matrix-2023-12-22/#matrix-federation-stats) stands at `26.6%`, which is:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:48 +msgid "**2.4% more** than when it was when [first published to TWIM](https://matrix.org/blog/2023/11/03/this-week-in-matrix-2023-11-03/#matrix-federation-stats) (1 month earlier, in November)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:49 +msgid "likely about **15+% more** than from before we flipped the switch (in October)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:51 +msgid "Hopefully, Synapse defaults would also change the same way and we'd see the number of servers publicly listing their room directory grow faster." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:53 +msgid "With this configuration change in place, projects like [MatrixRooms.info](https://matrixrooms.info/) (made by [etke.cc](https://etke.cc/)) and potentially others in the future, can discover, index the metadata (room address, title, topic, number of users, etc.) and make public rooms browsable & searchable across the whole Matrix Federation. It'd be great if users joining Matrix could more easily find interesting communities that match their interests!" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:55 +msgid "On the **media side of things**, besides Jitsi getting better Matrix integration (via the aforementioned Matrix User Verification Service), we've also had some [coturn security tightening](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues) as well as [performance optimizations](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#coturn-can-now-use-host-networking) for configurations exposing lots of network ports." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:57 +msgid "[Element Call](https://github.com/element-hq/element-call) seems to have become a nice and polished product lately (as proclaimed in [The Matrix Holiday Update 2023](https://matrix.org/blog/2023/12/25/the-matrix-holiday-update-2023/)), so 2024 is likely the year we'll see support for it in the playbook. Element Call depends on the [LiveKit](https://livekit.io/) streaming server (which is also useful to developers even by itself), so the first step is likely to see LiveKit support in mash-playbook via a reusable Ansible role. Such a LiveKit Ansible role could later easily land in matrix-docker-ansible-deploy and an Element Call static website could be hooked to it." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:59 +msgid "Besides these highlights, there were many other relatively large changes announced in our [CHANGELOG](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md) and hundreds of other more minor (but still important) playbook changes that didn't get a mention." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:61 +msgid "We have **hundreds of contributors to thank for their hard work** on making Matrix self-hosting better for all of us! It should be noted that **support comes in many shapes**, not only in raw code commits and financial help (via [donations](https://liberapay.com/s.pantaleev) or using the [etke.cc managed Matrix hosting service](https://etke.cc/) which is based on matrix-docker-ansible-deploy). It also comes in the shape of code reviews, helping others with [issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues), reporting new issues, participating in our support room on Matrix ([#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)), etc. To everyone who has been there to make matrix-docker-ansible-deploy better in 2023, thank you! 🙇‍♂️" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:64 +msgid "2022" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:66 +msgid "For [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy/), 2022 started with **breaking the** [**Synapse**](https://github.com/element-hq/synapse) **monopoly** by [adding support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#dendrite-support) for the [Dendrite](https://github.com/matrix-org/dendrite) Matrix homeserver in early January. This required various internal changes so that the [Ansible](https://www.ansible.com/) playbook would not be Synapse-centric anymore. This groundwork paved the way for continuing in this direction and we [added support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#conduit-support) for [Conduit](https://conduit.rs/) in August." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:68 +msgid "When it comes to the `matrix-docker-ansible-deploy` Ansible playbook, 2022 was the year of the non-Synapse homeserver implementation. In practice, none of these homeserver implementations seem ready for prime-time yet and there is no migration path when coming from Synapse. Having done our job of adding support for these alternative homeserver implementations, we can say that we're not getting in the way of future progress. It's time for the Dendrite developers to push harder (development-wise) and for the Synapse developers to take a well-deserved long (infinite) break, and we may get to see more people migrating away from Synapse in the next year(s)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:70 +msgid "Support for the following new **bridges** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:72 +msgid "[Postmoogle](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#postmoogle-email-bridge-support) for bi-directional email bridging, which supersedes my old and simplistic [Email2Matrix](https://github.com/devture/email2matrix) one-way bridge-bot" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:73 +msgid "[mautrix-discord](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#mautrix-discord-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:74 +msgid "[go-skype-bridge](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#go-skype-bridge-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:75 +msgid "[matrix-appservice-kakaotalk](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-appservice-kakaotalk-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:77 +msgid "Support for the following new **bots** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:79 +msgid "[buscarron bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#buscarron-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:80 +msgid "[Honoroit bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#honoroit-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:81 +msgid "[matrix-registration-bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-registration-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:82 +msgid "[matrix-hookshot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-hookshot-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:83 +msgid "[maubot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#maubot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:85 +msgid "Support for the following new **components and services** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:87 +msgid "[BorgBackup](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#borg-backup-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:88 +msgid "[Cactus Comments](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cactus-comments-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:89 +msgid "[Cinny](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cinny-support) client support" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:90 +msgid "[ntfy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#ntfy-push-notifications-support) notifications" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:91 +msgid "[matrix-ldap-registration-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-ldap-registration-proxy-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:92 +msgid "[matrix\\_encryption\\_disabler support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix_encryption_disabler-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:93 +msgid "[synapse-s3-storage-provider](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-s3-storage-provider-support) to stop the Synapse media store from being a scalability problem. This brought along [another feature](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-container-image-customization-support) - an easier way to customize the Synapse container image without having to fork and self-build all of it from scratch" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:95 +msgid "Besides these major user-visible changes, a lot of work also happened **under the hood**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:97 +msgid "we made [major improvements to Synapse workers](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#potential-backward-compatibility-break-major-improvements-to-synapse-workers) - adding support for stream writers and for running multiple workers of various kinds (federation senders, pushers, background task processing workers, etc.)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:98 +msgid "we [improved the compatibility of (Synapse + workers) with the rest of the playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#backward-compatibility-break-changing-how-reverse-proxying-to-synapse-works---now-via-a-matrix-synapse-reverse-proxy-companion-service) by introducing a new `matrix-synapse-reverse-proxy-companion-service` service" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:99 +msgid "we started [splitting various Ansible roles out of the Matrix playbook and into independent roles](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#the-playbook-now-uses-external-roles-for-some-things) (e.g. `matrix-postgres` -> [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres)), which could be included in other Ansible playbooks. In fact, these roles already power a few **interesting other sibling playbooks**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:100 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), for deploying a [Gitea](https://gitea.io/) (self-hosted [Git](https://git-scm.com/) service) server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:101 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), for deploying a [Nextcloud](https://nextcloud.com/) groupware server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:102 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy), for deploying a [Vaultwarden](https://github.com/dani-garcia/vaultwarden) password manager server (unofficial [Bitwarden](https://bitwarden.com/) compatible server)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:104 +msgid "These sibling playbooks co-exist nicely with one another due to using [Traefik](https://traefik.io/) for reverse-proxying, instead of trying to overtake the whole server by running their own [nginx](https://nginx.org/) reverse-proxy. Hopefully soon, the Matrix playbook will follow suit and be powered by Traefik by default." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:106 +msgid "Last, but not least, to optimize our [etke.cc managed Matrix hosting service](https://etke.cc/)'s performance (but also individual Ansible playbook runs for people self-hosting by themselves using the playbook), we've [improved playbook runtime 2-5x](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) by employing various Ansible tricks." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/README.po b/i18n/locales/jp/LC_MESSAGES/docs/README.po new file mode 100644 index 000000000..e12323e2f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/README.po @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/README.md:1 +msgid "Table of Contents" +msgstr "" + +#: ../../../docs/README.md:3 +msgid "⬇️ Installaton guides " +msgstr "" + +#: ../../../docs/README.md:5 +msgid "There are two installation guides available for beginners and advanced users." +msgstr "" + +#: ../../../docs/README.md:7 +msgid "⚡ **[Quick start](quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/README.md:9 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide." +msgstr "" + +#: ../../../docs/README.md:11 +msgid "[Prerequisites](prerequisites.md)" +msgstr "" + +#: ../../../docs/README.md:13 +msgid "[Configuring your DNS settings](configuring-dns.md)" +msgstr "" + +#: ../../../docs/README.md:15 +msgid "[Getting the playbook](getting-the-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:17 +msgid "[Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:19 +msgid "[Installing](installing.md)" +msgstr "" + +#: ../../../docs/README.md:21 +msgid "🛠️ Configuration options" +msgstr "" + +#: ../../../docs/README.md:28 +msgid "You can check useful documentation for configuring components here: [Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:30 +msgid "[Administration](configuring-playbook.md#administration) — services that help you in administrating and monitoring your Matrix installation" +msgstr "" + +#: ../../../docs/README.md:32 +msgid "[Authentication and user-related](configuring-playbook.md#authentication-and-user-related) — extend and modify how users are authenticated on your homeserver" +msgstr "" + +#: ../../../docs/README.md:34 +msgid "[Bots](configuring-playbook.md#bots) — bots provide various additional functionality to your installation" +msgstr "" + +#: ../../../docs/README.md:36 +msgid "[Bridges](configuring-playbook.md#bridging-other-networks) — bridges can be used to connect your Matrix installation with third-party communication networks" +msgstr "" + +#: ../../../docs/README.md:38 +msgid "[Clients](configuring-playbook.md#clients) — web clients for Matrix that you can host on your own domains" +msgstr "" + +#: ../../../docs/README.md:40 +msgid "[Core service adjustments](configuring-playbook.md#core-service-adjustments) — backbone of your Matrix system" +msgstr "" + +#: ../../../docs/README.md:42 +msgid "[File Storage](configuring-playbook.md#file-storage) — use alternative file storage to the default `media_store` folder" +msgstr "" + +#: ../../../docs/README.md:46 +msgid "[Other specialized services](configuring-playbook.md#other-specialized-services) — various services that don't fit any other categories" +msgstr "" + +#: ../../../docs/README.md:48 +msgid "👨‍🔧 Maintenance" +msgstr "" + +#: ../../../docs/README.md:50 +msgid "If your server and services experience issues, feel free to come to [our support room](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) and ask for help." +msgstr "" + +#: ../../../docs/README.md:54 +msgid "[Checking if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/README.md:56 +msgid "[Maintenance and Troubleshooting](maintenance-and-troubleshooting.md)" +msgstr "" + +#: ../../../docs/README.md:58 +msgid "[PostgreSQL maintenance](maintenance-postgres.md)" +msgstr "" + +#: ../../../docs/README.md:60 +msgid "[Synapse maintenance](maintenance-synapse.md)" +msgstr "" + +#: ../../../docs/README.md:62 +msgid "[Upgrading services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/README.md:64 +msgid "Other documentation pages " +msgstr "" + +#: ../../../docs/README.md:66 +msgid "ℹ️ **[FAQ](faq.md)** — various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook" +msgstr "" + +#: ../../../docs/README.md:70 +msgid "[Alternative architectures](alternative-architectures.md)" +msgstr "" + +#: ../../../docs/README.md:72 +msgid "[Container images used by the playbook](container-images.md)" +msgstr "" + +#: ../../../docs/README.md:74 +msgid "[Obtaining an Access Token](obtaining-access-tokens.md)" +msgstr "" + +#: ../../../docs/README.md:76 +msgid "[Playbook tags](playbook-tags.md)" +msgstr "" + +#: ../../../docs/README.md:78 +msgid "[Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/README.md:80 +msgid "[Running `just` commands](just.md)" +msgstr "" + +#: ../../../docs/README.md:82 +msgid "[Self-building](self-building.md)" +msgstr "" + +#: ../../../docs/README.md:84 +msgid "[Uninstalling](uninstalling.md)" +msgstr "" + +#: ../../../docs/README.md:86 +msgid "[Updating users passwords](updating-users-passwords.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/alternative-architectures.po b/i18n/locales/jp/LC_MESSAGES/docs/alternative-architectures.po new file mode 100644 index 000000000..3d849ba01 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/alternative-architectures.po @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/alternative-architectures.md:1 +msgid "Alternative architectures" +msgstr "" + +#: ../../../docs/alternative-architectures.md:3 +msgid "As stated in the [Prerequisites](prerequisites.md), currently only `amd64` (`x86_64`) is fully supported." +msgstr "" + +#: ../../../docs/alternative-architectures.md:5 +msgid "The playbook automatically determines the target server's architecture (the `matrix_architecture` variable) to be one of the following:" +msgstr "" + +#: ../../../docs/alternative-architectures.md:7 +msgid "`amd64` (`x86_64`)" +msgstr "" + +#: ../../../docs/alternative-architectures.md:8 +msgid "`arm32`" +msgstr "" + +#: ../../../docs/alternative-architectures.md:9 +msgid "`arm64`" +msgstr "" + +#: ../../../docs/alternative-architectures.md:11 +msgid "Some tools and container images can be built on the host or other measures can be used to install on that architecture." +msgstr "" + +#: ../../../docs/alternative-architectures.md:13 +msgid "Implementation details" +msgstr "" + +#: ../../../docs/alternative-architectures.md:15 +msgid "For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building)." +msgstr "" + +#: ../../../docs/alternative-architectures.md:17 +msgid "For other architecture (`arm64`, `arm32`), components which have a prebuilt image make use of it. If the component is not available for the specific architecture, [self-building](self-building.md) will be used. Not all components support self-building though, so your mileage may vary." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/ansible.po b/i18n/locales/jp/LC_MESSAGES/docs/ansible.po new file mode 100644 index 000000000..a322cda24 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/ansible.po @@ -0,0 +1,181 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/ansible.md:2 +msgid "Running this playbook" +msgstr "" + +#: ../../../docs/ansible.md:4 +msgid "This playbook is meant to be run using [Ansible](https://www.ansible.com/)." +msgstr "" + +#: ../../../docs/ansible.md:6 +msgid "Ansible typically runs on your local computer and carries out tasks on a remote server. If your local computer cannot run Ansible, you can also run Ansible on some server somewhere (including the server you wish to install to)." +msgstr "" + +#: ../../../docs/ansible.md:8 +msgid "Supported Ansible versions" +msgstr "" + +#: ../../../docs/ansible.md:10 +msgid "To manually check which version of Ansible you're on, run: `ansible --version`." +msgstr "" + +#: ../../../docs/ansible.md:12 +msgid "For the **best experience**, we recommend getting the **latest version of Ansible available**." +msgstr "" + +#: ../../../docs/ansible.md:14 +msgid "We're not sure what's the minimum version of Ansible that can run this playbook successfully. The lowest version that we've confirmed (on 2022-11-26) to be working fine is: `ansible-core` (`2.11.7`) combined with `ansible` (`4.10.0`)." +msgstr "" + +#: ../../../docs/ansible.md:16 +msgid "If your distro ships with an Ansible version older than this, you may run into issues. Consider [Upgrading Ansible](#upgrading-ansible) or [using Ansible via Docker](#using-ansible-via-docker)." +msgstr "" + +#: ../../../docs/ansible.md:18 +msgid "Upgrading Ansible" +msgstr "" + +#: ../../../docs/ansible.md:20 +msgid "Depending on your distribution, you may be able to upgrade Ansible in a few different ways:" +msgstr "" + +#: ../../../docs/ansible.md:22 +msgid "by using an additional repository (PPA, etc.), which provides newer Ansible versions. See instructions for [CentOS](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-rhel-centos-or-fedora), [Debian](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-debian), or [Ubuntu](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu) on the Ansible website." +msgstr "" + +#: ../../../docs/ansible.md:24 +msgid "by removing the Ansible package (`yum remove ansible` or `apt-get remove ansible`) and installing via [pip](https://pip.pypa.io/en/stable/installation/) (`pip install ansible`)." +msgstr "" + +#: ../../../docs/ansible.md:26 +msgid "If using the `pip` method, do note that the `ansible-playbook` binary may not be on the `$PATH` (https://linuxconfig.org/linux-path-environment-variable), but in some more special location like `/usr/local/bin/ansible-playbook`. You may need to invoke it using the full path." +msgstr "" + +#: ../../../docs/ansible.md:28 +msgid "**Note**: Both of the above methods are a bad way to run system software such as Ansible. If you find yourself needing to resort to such hacks, please consider reporting a bug to your distribution and/or switching to a sane distribution, which provides up-to-date software." +msgstr "" + +#: ../../../docs/ansible.md:30 +msgid "Using Ansible via Docker" +msgstr "" + +#: ../../../docs/ansible.md:32 +msgid "Alternatively, you can run Ansible inside a Docker container (powered by the [devture/ansible](https://hub.docker.com/r/devture/ansible/) Docker image)." +msgstr "" + +#: ../../../docs/ansible.md:34 +msgid "This ensures that you're using a very recent Ansible version, which is less likely to be incompatible with the playbook." +msgstr "" + +#: ../../../docs/ansible.md:36 +msgid "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)." +msgstr "" + +#: ../../../docs/ansible.md:38 +msgid "Running Ansible in a container on the Matrix server itself" +msgstr "" + +#: ../../../docs/ansible.md:40 +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 "" + +#: ../../../docs/ansible.md:42 +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 "" + +#: ../../../docs/ansible.md:43 +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 "" + +#: ../../../docs/ansible.md:45 +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 "" + +#: ../../../docs/ansible.md:47 +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 "" + +#: ../../../docs/ansible.md:49 +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: `ansible-playbook --connection=community.docker.nsenter …`" +msgstr "" + +#: ../../../docs/ansible.md:51 ../../../docs/ansible.md:71 +msgid "Run this from the playbook's directory:" +msgstr "" + +#: ../../../docs/ansible.md:63 ../../../docs/ansible.md:84 +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:65 ../../../docs/ansible.md:86 +msgid "First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues)." +msgstr "" + +#: ../../../docs/ansible.md:67 +msgid "Finally, you can execute `ansible-playbook …` (or `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:69 +msgid "Running Ansible in a container on another computer (not the Matrix server)" +msgstr "" + +#: ../../../docs/ansible.md:82 +msgid "The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`). If your SSH key is at a different path (not in `$HOME/.ssh/id_rsa`), adjust that part." +msgstr "" + +#: ../../../docs/ansible.md:88 +msgid "Finally, you execute `ansible-playbook …` commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:90 +msgid "If you don't use SSH keys for authentication" +msgstr "" + +#: ../../../docs/ansible.md:92 +msgid "If you don't use SSH keys for authentication, simply remove that whole line (`-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro`)." +msgstr "" + +#: ../../../docs/ansible.md:94 +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 "" + +#: ../../../docs/ansible.md:100 +msgid "Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command." +msgstr "" + +#: ../../../docs/ansible.md:102 +msgid "Resolve directory ownership issues" +msgstr "" + +#: ../../../docs/ansible.md:104 +msgid "Because you're `root` in the container running Ansible and this likely differs fom 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 "" + +#: ../../../docs/ansible.md:106 +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 "" + +#: ../../../docs/ansible.md:110 +msgid "These errors can be resolved by making `git` trust the playbook directory by running `git config --global --add safe.directory /work`" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-captcha.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-captcha.po new file mode 100644 index 000000000..b5f7221c0 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-captcha.po @@ -0,0 +1,79 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-captcha.md:1 +msgid "(Adapted from the [upstream project](https://github.com/element-hq/synapse/blob/develop/docs/CAPTCHA_SETUP.md))" +msgstr "" + +#: ../../../docs/configuring-captcha.md:3 +msgid "Overview" +msgstr "" + +#: ../../../docs/configuring-captcha.md:5 +msgid "Captcha can be enabled for this home server. This file explains how to do that." +msgstr "" + +#: ../../../docs/configuring-captcha.md:7 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-captcha.md:9 +msgid "ReCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:11 +#: ../../../docs/configuring-captcha.md:37 +msgid "Getting keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:13 +#: ../../../docs/configuring-captcha.md:39 +msgid "Requires a site/secret key pair from:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:15 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:17 +msgid "Must be a reCAPTCHA **v2** key using the \"I'm not a robot\" Checkbox option" +msgstr "" + +#: ../../../docs/configuring-captcha.md:19 +msgid "Setting ReCaptcha keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:21 +msgid "Once registered as above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:35 +msgid "hCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:41 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:43 +msgid "Setting hCaptcha keys" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-dns.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-dns.po new file mode 100644 index 000000000..7ab3e1cb9 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-dns.po @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-dns.md:1 +msgid "Configuring your DNS settings" +msgstr "" + +#: ../../../docs/configuring-dns.md:3 +msgid "[Prerequisites](prerequisites.md) > Configuring your DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-dns.md:5 +msgid "To set up Matrix on your domain, you'd need to do some DNS configuration." +msgstr "" + +#: ../../../docs/configuring-dns.md:7 +msgid "DNS settings for services enabled by default" +msgstr "" + +#: ../../../docs/configuring-dns.md:9 +msgid "To serve the base domain (`example.com`) and [Element Web](configuring-playbook-client-element-web.md) with the default subdomain, adjust DNS records as below." +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "A" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix-server-IP`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "CNAME" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`element`" +msgstr "" + +#: ../../../docs/configuring-dns.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-dns.md:16 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "" + +#: ../../../docs/configuring-dns.md:18 +msgid "The `element.example.com` subdomain is necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you by default. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record." +msgstr "" + +#: ../../../docs/configuring-dns.md:20 +msgid "Be mindful as to how long it will take for the DNS records to propagate." +msgstr "" + +#: ../../../docs/configuring-dns.md:22 +msgid "**Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\". Otherwise, fetching certificates will fail." +msgstr "" + +#: ../../../docs/configuring-dns.md:24 +msgid "DNS setting for server delegation (optional)" +msgstr "" + +#: ../../../docs/configuring-dns.md:26 +msgid "In the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-dns.md:28 +msgid "To use such an ID, you don't need to install anything on the actual `example.com` server. Instead, you need to instruct the Matrix network that Matrix services for `example.com` are redirected over to `matrix.example.com`. This redirection is also known as \"delegation\"." +msgstr "" + +#: ../../../docs/configuring-dns.md:30 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-dns.md:32 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-dns.md:33 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-dns.md:35 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file, instead of using a DNS SRV record." +msgstr "" + +#: ../../../docs/configuring-dns.md:37 +msgid "If you choose the recommended method (file-based delegation), you do not need to configure the DNS record to enable server delegation. You will need to add a necessary configuration later, when you [finalize the installation](installing.md#finalize-the-installation) after installing and starting Matrix services." +msgstr "" + +#: ../../../docs/configuring-dns.md:39 +msgid "On the other hand, if you choose this method (setting up a DNS SRV record), you need to configure the additional DNS record as well as adjust SSL certificate handling. Take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-dns.md:43 +msgid "[▶️](getting-the-playbook.md) When you're done with the DNS configuration and ready to proceed, continue with [Getting the playbook](getting-the-playbook.md)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po new file mode 100644 index 000000000..0bf38b253 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-alertmanager-receiver.po @@ -0,0 +1,201 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:1 +msgid "Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:3 +msgid "The playbook can install and configure the [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) service for you. It's a [client](https://prometheus.io/docs/alerting/latest/clients/) for Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), allowing you to deliver alerts to Matrix rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:5 +msgid "See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:7 +msgid "This service is meant to be used with an external [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) instance. It's **not** meant to be integrated with the [Prometheus & Grafana stack](./configuring-playbook-prometheus-grafana.md) installed by this playbook, because the Alertmanager component is not installed by it." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:11 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:13 +msgid "This service uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart`) for delivering messages." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:32 +msgid "Join to rooms as the bot manually" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:34 +msgid "ℹ️ **This bot does not accept room invitations automatically**. To deliver messages to rooms, the bot must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:36 +msgid "For each new room you would like the bot to deliver alerts to, invite the bot to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:38 +msgid "Then, log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account, and log out." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:40 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:42 +msgid "By default, this playbook installs matrix-alertmanager-receiver on the `matrix.` subdomain, at the `/matrix-alertmanager-receiver` path (https://matrix.example.com/matrix-alertmanager-receiver). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:44 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-alertmanager-receiver-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:48 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:69 +msgid "Adjusting the matrix-alertmanager-receiver URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:71 +msgid "By tweaking the `matrix_alertmanager_receiver_hostname` and `matrix_alertmanager_receiver_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-alertmanager-receiver.md:73 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:81 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-alertmanager-receiver domain (`alertmanager.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:83 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:85 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:87 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:89 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:91 +msgid "`roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:92 +msgid "`roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_alertmanager_receiver_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:96 +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-alertmanager-receiver.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:111 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:113 +msgid "Configure your Prometheus Alertmanager with configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:132 +msgid "where `URL_HERE` looks like `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:134 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:136 +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-alertmanager-receiver`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:138 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:140 +msgid "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:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po new file mode 100644 index 000000000..60a96e7fe --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-double-puppet.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:1 +msgid "Setting up Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:3 +msgid "The playbook can install and configure the Appservice Double Puppet service for you. It is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:5 +msgid "This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the appservice method. The service is an implementation of this approach." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:7 +msgid "Previously, bridges supported performing double-puppeting with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:11 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:19 +msgid "There are some additional things you may wish to configure about the service." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:23 +msgid "`roles/custom/matrix-appservice-double-puppet/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_double_puppet_registration_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:38 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:44 +msgid "Installing the service will automatically enable double puppeting for all bridges that support double puppeting via the appservice method." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po new file mode 100644 index 000000000..6aa8af195 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-appservice-draupnir-for-all.po @@ -0,0 +1,186 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:1 +msgid "Setting up Draupnir for All/D4A (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool for you in appservice mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:5 +msgid "Appservice mode can be used together with the regular [Draupnir bot](configuring-playbook-bot-draupnir.md) or independently. Details about the differences between the 2 modes are described below." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:7 +msgid "Draupnir Appservice mode compared to Draupnir bot mode" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:9 +msgid "The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:11 +msgid "Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All (Even though the commands do show up in help)." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:13 +msgid "Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:15 +msgid "Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:17 +msgid "Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:19 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:21 +msgid "Create a main management room" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:23 +msgid "The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:25 +msgid "Note that the room must be unencrypted." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:27 +msgid "The management room has to be given an alias, and your bot has to be invited to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:29 +msgid "This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:31 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:34 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:36 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:46 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:48 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:50 +msgid "`roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_draupnir_for_all_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:52 +msgid "For example, to change Draupnir's `protectAllJoinedRooms` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:66 +msgid "You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:68 +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:70 +msgid "The playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:72 +msgid "Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyway. It instead touches the config passed to the Draupnirs that your Appservice creates. So the example above (`protectAllJoinedRooms: true`) makes all provisioned Draupnirs protect all joined rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:76 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:91 +msgid "If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have succesfully installed Draupnir for All and can now start using it." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:93 +msgid "The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:95 +msgid "Granting Users the ability to use D4A" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:97 +msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:99 +msgid "The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:101 +msgid "To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:103 +msgid "How to provision a D4A once you are allowed to" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:105 +msgid "To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:107 +msgid "Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-backup-borg.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-backup-borg.po new file mode 100644 index 000000000..68b1beb1d --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-backup-borg.po @@ -0,0 +1,193 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-backup-borg.md:1 +msgid "Setting up BorgBackup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:3 +msgid "The playbook can install and configure [BorgBackup](https://www.borgbackup.org/) (short: Borg) with [borgmatic](https://torsion.org/borgmatic/) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:5 +msgid "BorgBackup is a deduplicating backup program with optional compression and encryption. That means your daily incremental backups can be stored in a fraction of the space and is safe whether you store it at home or on a cloud service." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:9 +msgid "Set up a remote server for storing backups" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:11 +msgid "You will need a remote server where BorgBackup will store the backups. There are hosted, BorgBackup compatible solutions available, such as [BorgBase](https://www.borgbase.com)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:13 +msgid "Check the Postgres version" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:15 +msgid "By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), backups with BorgBackup will also include dumps of your Postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:17 +msgid "Unless you disable the Postgres-backup support, make sure that the Postgres version of your homeserver's database is compatible with borgmatic. You can check the compatible versions [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:19 +msgid "An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for BorgBackup using the `backup_borg_postgresql_enabled` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:21 +msgid "Create a new SSH key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:23 +msgid "Run the command below on any machine to create a new SSH key:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:29 +msgid "You don't need to place the key in the `.ssh` folder." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:31 +msgid "Add the public key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:33 +msgid "Next, add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your BorgBackup provider/server." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:35 +msgid "If you are using a hosted solution, follow their instructions. If you have your own server, copy the key to it with the command like below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:45 +msgid "The **private** key needs to be added to `backup_borg_ssh_key_private` on your `inventory/host_vars/matrix.example.com/vars.yml` file as below." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:47 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:49 +msgid "To enable BorgBackup, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:76 +msgid "**Note**: `REPO` will be initialized on backup start, for example: `matrix`. See [Remote repositories](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls) for the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:78 +msgid "Set backup archive name (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:80 +msgid "You can specify the backup archive name format. To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:86 +msgid "Configure retention policy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:88 +msgid "It is also possible to configure a retention strategy. To configure it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:98 +msgid "Edit the backup schedule (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:100 +msgid "By default the backup will run 4 a.m. every day based on the `backup_borg_schedule` variable. It is defined in the format of systemd timer calendar." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:102 +msgid "To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:108 +msgid "**Note**: the actual job may run with a delay. See `backup_borg_schedule_randomized_delay_sec` [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/f5d5b473d48c6504be10b3d946255ef5c186c2a6/defaults/main.yml#L50) for its default value." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:110 +msgid "Set include and/or exclude directories (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:112 +msgid "`backup_borg_location_source_directories` defines the list of directories to back up. It's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:114 +msgid "You might also want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:116 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:118 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:120 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:122 +msgid "[backup_borg role](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/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 `backup_borg_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:124 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:126 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:133 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:135 +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-backup-borg.md:137 +msgid "Manually start a backup" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:139 +msgid "Sometimes it can be helpful to run the backup as you'd like, avoiding to wait until 4 a.m., like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:141 +msgid "If you want to run it immediately, log in to the server with SSH and run `systemctl start matrix-backup-borg`." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:143 +msgid "This will not return until the backup is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po new file mode 100644 index 000000000..efd13268e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-base-domain-serving.po @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:1 +msgid "Serving the base domain (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`), but has it configured so that it presents itself as the base domain (`example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:5 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation / redirection can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:7 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:8 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:10 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:12 +msgid "However, those who don't have a separate server to dedicate to the base domain have trouble arranging this." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:14 +msgid "Usually, there are 2 options:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:16 +msgid "either get a separate server for the base domain, just for serving the files necessary for [Server Delegation via a well-known file](howto-server-delegation.md#server-delegation-via-a-well-known-file)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:18 +msgid "or, arrange for the Matrix server to serve the base domain. This either involves you [using your own webserver](configuring-playbook-own-webserver.md) or making the integrated webserver serve the base domain for you." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:20 +msgid "This documentation page tells you how to do the latter. With some easy changes, we make it possible to serve the base domain from the Matrix server via the integrated webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:22 +msgid "Just [**adjust your DNS records**](configuring-dns.md), so that your base domain is pointed to the Matrix server's IP address (using a DNS `A` record) **and then add the following configuration** to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:28 +msgid "Doing this, the playbook will:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:30 +msgid "obtain an SSL certificate for the base domain, just like it does for all other domains (see [how we handle SSL certificates](configuring-playbook-ssl-certificates.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:32 +msgid "serve the `/.well-known/matrix/*` files which are necessary for [Federation Server Discovery](configuring-well-known.md#federation-server-discovery) (also see [Server Delegation](howto-server-delegation.md)) and [Client-Server discovery](configuring-well-known.md#client-server-discovery)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:34 +msgid "serve a simple homepage at `https://example.com` with content `Hello from example.com` (configurable via the `matrix_static_files_file_index_html_template` variable). You can also [serve a more complicated static website](#serving-a-static-website-at-the-base-domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:36 +msgid "Serving a static website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:38 +msgid "By default, when \"serving the base domain\" is enabled, the playbook hosts a simple `index.html` webpage at `/matrix/static-files/public/index.html`. The content of this page is taken from the `matrix_static_files_file_index_html_template` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:40 +msgid "If you'd like to host your own static website (more than a single `index.html` page) at the base domain, you can disable the creation of this default `index.html` page like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:54 +msgid "With this configuration, Ansible will no longer mess around with the `/matrix/static-files/public/index.html` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:56 +msgid "You are then free to upload any static website files to `/matrix/static-files/public` and they will get served at the base domain. You can do so manually or by using the [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role, which is part of this playbook already." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:58 +msgid "Serving a more complicated website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:60 +msgid "If you'd like to serve an even more complicated (dynamic) website from the Matrix server, relying on the playbook to serve the base domain is not the best choice." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:62 +msgid "You have 2 options." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:64 +msgid "**One way is to host your base domain elsewhere**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:65 +msgid "you stopping to serve it from the Matrix server: remove `matrix_static_files_container_labels_base_domain_enabled` from your configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:66 +msgid "[configuring Matrix Delegation via well-known](./configuring-well-known.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:68 +msgid "**Another way is to serve the base domain from another (your own) container on the Matrix server**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:69 +msgid "telling the playbook to only serve `example.com/.well-known/matrix` files by adjusting your `vars.yml` configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:70 +msgid "keep `matrix_static_files_container_labels_base_domain_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:71 +msgid "add an extra: `matrix_static_files_container_labels_base_domain_traefik_path_prefix: /.well-known/matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:72 +msgid "building and running a new container on the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:73 +msgid "it should be connected to the `traefik` network, so that Traefik can reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:74 +msgid "it should have appropriate [container labels](https://docs.docker.com/config/labels-custom-metadata/), which instruct Traefik to reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:76 +msgid "How you'll be managing building and running this container is up-to-you. You may use of the primitives from [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role to organize it yourself, or you can set it up in another way." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po new file mode 100644 index 000000000..95f72acba --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-baibot.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-baibot.md:1 +msgid "Setting up baibot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:8 +msgid "🤖 [baibot](https://github.com/etkecc/baibot) (pronounced bye-bot) is a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:10 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as many well as other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:12 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to [matrix-chatgpt-bot](./configuring-playbook-bot-chatgpt.md). See the [baibot](https://github.com/etkecc/baibot) project and its documentation for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:14 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:16 +msgid "API access to one or more LLM [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:20 +msgid "There are **a lot of configuration options** (some required, some possibly required, some optional), so they're **split into multiple sections below**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:23 +msgid "[Base configuration](#base-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:24 +msgid "[👮‍♂️ Administrator configuration](#️-administrator-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:25 +msgid "[👥 Initial users configuration](#-initial-users-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:26 +msgid "[🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:27 +msgid "[🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:29 +msgid "Depending on your current `vars.yml` file and desired configuration, **you may require more than just the [base configuration](#base-configuration)**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:31 +msgid "Base configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:33 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:71 +msgid "As mentioned above, **this may not be enough**. Continue with the configuration sections below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:73 +msgid "👮‍♂️ Administrator configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:75 +#: ../../../docs/configuring-playbook-bot-baibot.md:99 +msgid "This is an addition to the [base configuration](#base-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:77 +msgid "To specify who is considered a bot [👮‍♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:79 +msgid "If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:81 +#: ../../../docs/configuring-playbook-bot-baibot.md:110 +msgid "**If necessary**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:95 +msgid "👥 Initial users configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:97 +msgid "By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:101 +msgid "To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:103 +msgid "define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:104 +msgid "configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:106 +msgid "Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:108 +msgid "**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:122 +msgid "🤖 Configuring agents via Ansible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:124 +msgid "You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:126 +msgid "Privileged users (like the [👮‍♂️ Administrator](#️-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:128 +msgid "The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:130 +msgid "Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:132 +msgid "Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:134 +msgid "Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:136 +msgid "Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:138 +msgid "Anthropic" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:140 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:142 +#: ../../../docs/configuring-playbook-bot-baibot.md:166 +#: ../../../docs/configuring-playbook-bot-baibot.md:197 +#: ../../../docs/configuring-playbook-bot-baibot.md:225 +msgid "Here's an example **addition** to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:158 +#: ../../../docs/configuring-playbook-bot-baibot.md:189 +#: ../../../docs/configuring-playbook-bot-baibot.md:215 +#: ../../../docs/configuring-playbook-bot-baibot.md:243 +msgid "If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:160 +#: ../../../docs/configuring-playbook-bot-baibot.md:191 +#: ../../../docs/configuring-playbook-bot-baibot.md:217 +#: ../../../docs/configuring-playbook-bot-baibot.md:245 +msgid "💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:162 +msgid "Groq" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:164 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:187 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:193 +msgid "Mistral" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:195 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:213 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:219 +msgid "OpenAI" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:221 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:223 +msgid "The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:241 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:247 +msgid "OpenAI Compatible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:249 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:251 +msgid "This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:253 +msgid "Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:255 +msgid "As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:257 +msgid "Configuring additional agents (without a preset)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:259 +msgid "The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:261 +msgid "It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:263 +msgid "You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:265 +msgid "Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:304 +msgid "Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:306 +msgid "💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:308 +msgid "As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:310 +msgid "💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:312 +msgid "🤝 Configuring initial default handlers" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:314 +msgid "This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:316 +msgid "If you're not configuring agents via Ansible, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:318 +msgid "This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:320 +msgid "baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:322 +msgid "[💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:324 +msgid "[🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:326 +msgid "[🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:328 +msgid "[🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:330 +msgid "❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:332 +msgid "[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:334 +msgid "This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:336 +msgid "You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:338 +msgid "Example **additional** `vars.yml` configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:355 +msgid "**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:357 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:359 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:361 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:363 +msgid "`roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:364 +msgid "`roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:366 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:368 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:375 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:377 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:379 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:381 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:383 +msgid "If you change the bot password (`matrix_bot_baibot_config_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:385 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:387 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:389 +msgid "If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:391 +msgid "After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:393 +msgid "If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:395 +msgid "Send `!bai help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:397 +msgid "You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:399 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:401 +msgid "As with all other services, you can find service logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-baibot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:403 +msgid "The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:417 +msgid "**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po new file mode 100644 index 000000000..0d5f3364d --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-buscarron.po @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:1 +msgid "Setting up Buscarron (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:3 +msgid "The playbook can install and configure [Buscarron](https://github.com/etkecc/buscarron) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:5 +msgid "Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/buscarron/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:11 +msgid "By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to create a CNAME record for `buscarron`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:40 +msgid "Adjusting the Buscarron URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:42 +msgid "By tweaking the `matrix_bot_buscarron_hostname` and `matrix_bot_buscarron_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-bot-buscarron.md:44 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:55 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:57 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:59 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:61 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:63 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:65 +msgid "`roles/custom/matrix-bot-buscarron/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:67 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:69 +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-bot-buscarron.md:76 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:78 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:80 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:82 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:84 +msgid "If you change the bot password (`matrix_bot_buscarron_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_buscarron_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:86 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:88 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.buscarron:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:90 +msgid "After the bot joins the room, anyone can call the web form via HTTP POST method." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:92 +msgid "Here is an example for the `contact` form:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:100 +msgid "**Note**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:102 +msgid "you hit the homepage (HTTP `GET` request to `/`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:103 +msgid "you submit a form to the wrong URL (`POST` request to `/non-existing-form`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:104 +msgid "`hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:106 +msgid "If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:110 +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-bot-buscarron`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:112 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:114 +msgid "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:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po new file mode 100644 index 000000000..80a782475 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-chatgpt.po @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:1 +msgid "Setting up matrix-bot-chatgpt (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:3 +msgid "**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](https://github.com/etkecc/baibot), which can be installed using [this playbook](configuring-playbook-bot-baibot.md). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:5 +msgid "The playbook can install and configure [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:7 +msgid "Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client!" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:11 +msgid "Obtain an OpenAI API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:13 +msgid "To use the bot, you'd need to obtain an API key from [https://platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:15 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:17 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:19 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:21 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:27 +msgid "Obtain an access token and create encryption keys" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:29 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:31 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:34 +msgid "To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [Element documentation](https://element.io/help#encryption6)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:36 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:38 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `API_KEY_HERE` with the API key retrieved [here](#obtain-an-openai-api-key) and `ACCESS_TOKEN_HERE` with the access token created [here](#obtain-an-access-token-and-create-encryption-keys), respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:55 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:57 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:64 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:66 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:68 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:70 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:72 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:74 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.chatgpt:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:76 +msgid "After the bot joins the room, you can send a message to it. When you do so, use the prefix if you configured it or mention the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:78 +msgid "You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po new file mode 100644 index 000000000..ca0afde4f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-draupnir.po @@ -0,0 +1,409 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:1 +msgid "Setting up Draupnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:5 +msgid "See the project's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:7 +msgid "This documentation page is about installing Draupnir in bot mode. As an alternative, you can run a multi-instance Draupnir deployment by installing [Draupnir in appservice mode](./configuring-playbook-appservice-draupnir-for-all.md) (called Draupnir-for-all) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:9 +msgid "If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:13 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:15 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:17 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:20 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:22 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:24 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:26 +msgid "Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:28 +msgid "Refer to Draupnir's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#protecting-encrypted-rooms) for more details about why you might want to care about encryption support for protected rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:30 +msgid "Disable Pantalaimon for Draupnir (since v2.0.0; optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:32 +msgid "It is known that running Draupnir along with Pantalaimon breaks all workflows that involve answering prompts with reactions." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:34 +msgid "If you are updating Draupnir from v1.x.x and have enabled Pantalaimon for it, you can disable Pantalaimon in favor of the native E2EE support. To disable Pantalaimon, remove the configuration `matrix_bot_draupnir_pantalaimon_use: true` from your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:36 +msgid "**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:38 +msgid "Native E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:40 +msgid "To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:42 +msgid "Note that native E2EE requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. **The access token obtained via Element Web does not work with it**. Refer to the documentation on [how to obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:44 +msgid "To enable the native E2EE support, add the following configuration to your `vars.yml` file. Make sure to replace `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:55 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:57 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:76 +msgid "Create and invite the bot to the management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:78 +msgid "Before proceeding to the next step, run the playbook with the following command to create the bot user." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:84 +msgid "**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:86 +msgid "Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:88 +msgid "Make sure the account is free from rate limiting (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:90 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:92 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:94 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:96 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:98 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:100 +msgid "To expose the APIs publicly, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:106 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:108 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:110 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:113 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:115 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:117 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:118 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:119 +msgid "`@bot.draupnir:example.com` with the MXID of your Draupnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:125 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:126 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:127 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:129 +msgid "Abuse Reports" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:131 +msgid "Draupnir can receive reports in the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:133 +msgid "The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:145 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:147 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:149 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:151 +msgid "`roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:153 +msgid "For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:167 +msgid "Migrating from Mjolnir (Only required if migrating)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:169 +msgid "Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:171 +msgid "Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:173 +msgid "That is all you need to do due to that Draupnir can complete migration on its own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:184 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:186 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:188 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:190 +msgid "You can refer to the upstream [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) for additional ways to use and configure Draupnir and for a more detailed usage guide." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:192 +msgid "Below is a **non-exhaustive quick-start guide** for the impatient." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:194 +msgid "Making Draupnir join and protect a room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:196 +msgid "Draupnir can be told to self-join public rooms, but it's better to follow this flow which works well for all kinds of rooms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:198 +msgid "Invite the bot to the room manually ([inviting Draupnir to rooms](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#inviting-draupnir-to-rooms)). Before joining, the bot *may* ask for confirmation in the Management Room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:200 +msgid "[Give the bot permissions to do its job](#giving-draupnir-permissions-to-do-its-job)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:202 +msgid "Tell it to protect the room (using the [rooms command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#using-the-draupnir-rooms-command)) by sending the following command to the Management Room: `!draupnir rooms add !qporfwt:example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:204 +msgid "To have Draupnir provide useful room protection, you need do to a bit more work (at least the first time around). You may wish to [Subscribe to a public policy list](#subscribing-to-a-public-policy-list), [Create your own own policy and rules](#creating-your-own-policy-lists-and-rules) and [Enabling built-in protections](#enabling-built-in-protections)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:206 +msgid "Giving Draupnir permissions to do its job" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:208 +msgid "For Draupnir to do its job, you need to [give it permissions](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#giving-draupnir-permissions) in rooms it's protecting. This involves **giving it an Administrator power level**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:210 +msgid "**We recommend setting this power level as soon as the bot joins your room** (and before you create new rules), so that it can apply rules as soon as they are available. If the bot is under-privileged, it may fail to apply protections and may not retry for a while (or until your restart it)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:212 +msgid "Subscribing to a public policy list" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:214 +msgid "We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:216 +msgid "Polcy lists are maintained in Matrix rooms. A popular policy list is maintained in the public `#community-moderation-effort-bl:neko.dev` room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:218 +msgid "You can tell Draupnir to subscribe to it by sending the following command to the Management Room: `!draupnir watch #community-moderation-effort-bl:neko.dev`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:220 +msgid "Creating your own policy lists and rules" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:222 +msgid "We also recommend **creating your own policy lists** with the [list create](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-list-create-command-to-create-a-policy-room) command." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:224 +msgid "You can do so by sending the following command to the Management Room: `!draupnir list create my-bans my-bans-bl`. This will create a policy list having a name (shortcode) of `my-bans` and stored in a public `#my-bans-bl:example.com` room on your server. As soon as you run this command, the bot will invite you to the policy list room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:226 +msgid "A policy list does nothing by itself, so the next step is **adding some rules to your policy list**. Policies target a so-called `entity` (one of: `user`, `room` or `server`). These entities are mentioned on the [policy lists](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) documentation page and in the Matrix Spec [here](https://spec.matrix.org/v1.11/client-server-api/#mban-recommendation)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:228 +msgid "The simplest and most useful entity to target is `user`. Below are a few examples using the [ban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-ban-command) and targeting users." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:230 +msgid "To create rules, you run commands in the Management Room (**not** in the policy list room)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:232 +msgid "(ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:233 +msgid "(ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server - all users are fake`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:235 +msgid "As a result of running these commands, you may observe:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:237 +msgid "Draupnir creating `m.policy.rule.user` state events in the `#my-bans-bl:example.com` room on your server" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:238 +msgid "applying these rules against all rooms that Draupnir is an Administrator in" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:240 +msgid "You can undo bans with the [unban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-unban-command)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:242 +msgid "Enabling built-in protections" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:244 +msgid "You can also **turn on various built-in [protections](https://the-draupnir-project.github.io/draupnir-documentation/protections)** like `JoinWaveShortCircuit` (\"If X amount of users join in Y time, set the room to invite-only\")." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:246 +msgid "To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:248 +msgid "To **see the configuration options for a given protection**, send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:250 +msgid "To **set a specific option for a given protection**, send a command like this: `!draupnir config set PROTECTION_NAME.OPTION VALUE` (e.g. `!draupnir config set JoinWaveShortCircuit.timescaleMinutes 30`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:252 +msgid "To **enable a given protection**, send a command like this: `!draupnir enable PROTECTION_NAME` (e.g. `!draupnir enable JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:254 +msgid "To **disable a given protection**, send a command like this: `!draupnir disable PROTECTION_NAME` (e.g. `!draupnir disable JoinWaveShortCircuit`)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po new file mode 100644 index 000000000..a0ac374fc --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-go-neb.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:1 +msgid "Setting up Go-NEB (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:3 +msgid "**Note**: [Go-NEB](https://github.com/matrix-org/go-neb) is now an archived (**unmaintained**) project. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:5 +msgid "The playbook can install and configure [Go-NEB](https://github.com/matrix-org/go-neb) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:7 +msgid "Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/go-neb/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:13 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:32 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:34 +msgid "By default, this playbook installs Go-NEB on the `goneb.` subdomain (`goneb.example.com`) and requires you to create a CNAME record for `goneb`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:36 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:38 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:40 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_GONEB_HERE` and `ACCESS_TOKEN_FOR_ANOTHER_GONEB_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:204 +msgid "Adjusting the Go-NEB URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:206 +msgid "By tweaking the `matrix_bot_go_neb_hostname` and `matrix_bot_go_neb_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-bot-go-neb.md:208 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:219 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:221 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:223 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:225 +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-bot-go-neb.md:232 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:234 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:236 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:238 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:240 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:242 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @bot.go-neb:example.com` where `example.com` is your base domain, not the `matrix.` domain). Make sure you are granted with the sufficient permission if you are not the room owner." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:244 +msgid "Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:246 +msgid "If you enabled the github_cmd service, send `!github help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:248 +msgid "You can also refer to the upstream [Documentation](https://github.com/matrix-org/go-neb)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po new file mode 100644 index 000000000..58bc343a4 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-honoroit.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:1 +msgid "Setting up Honoroit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:3 +msgid "The playbook can install and configure [Honoroit](https://github.com/etkecc/honoroit) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:5 +msgid "It's a bot you can use to setup **your own helpdesk on matrix**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/honoroit/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:11 +msgid "By default, this playbook installs Honoroit on the `matrix.` subdomain, at the `/honoroit` path (https://matrix.example.com/honoroit). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-honoroit-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:32 +msgid "Adjusting the Honoroit URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:34 +msgid "By tweaking the `matrix_bot_honoroit_hostname` and `matrix_bot_honoroit_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-bot-honoroit.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:44 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Honoroit domain (`honoroit.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:46 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:50 +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-bot-honoroit.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:61 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:65 +msgid "If you change the bot password (`matrix_bot_honoroit_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_honoroit_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:69 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @honoroit:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:71 +msgid "After the bot joins the room, any Matrix user can send a message to it to start a new thread in that room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:73 +msgid "Send `!ho help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:75 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/honoroit#features)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po new file mode 100644 index 000000000..b3110a4dc --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-registration-bot.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-23 13:09+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:1 +msgid "Setting up matrix-registration-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:3 +msgid "The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:5 +msgid "The bot allows you to easily **create and manage registration tokens** aka. invitation codes. It can be used for an invitation-based server, where you invite someone by sending them a registration token (tokens look like this: `rbalQ0zkaDSRQCOp`). They can register as per normal but have to provide a valid registration token in the final step of the registration process." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:7 +msgid "See the project's [documentation](https://github.com/moan0s/matrix-registration-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:30 +msgid "The bot account will be created automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:45 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:49 +msgid "If you change the bot password (`matrix_bot_matrix_registration_bot_bot_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_registration_bot_bot_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:53 +msgid "To use the bot, start a chat with `@bot.matrix-registration-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:55 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:57 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:59 +msgid "If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:61 +msgid "To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po new file mode 100644 index 000000000..20f7e1e24 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-matrix-reminder-bot.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-23 13:09+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:1 +msgid "Setting up matrix-reminder-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:3 +msgid "The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:5 +msgid "It's a bot you can use to **schedule one-off & recurring reminders and alarms**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:7 +msgid "See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:39 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:43 +msgid "If you change the bot password (`matrix_bot_matrix_reminder_bot_matrix_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_reminder_bot_matrix_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:45 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:47 +msgid "To use the bot, start a chat with `@bot.matrix-reminder-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:49 +msgid "You can also add the bot to any existing Matrix room (`/invite @bot.matrix-reminder-bot:example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:51 +msgid "Basic usage is like this: `!remindme in 2 minutes; This is a test`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:53 +msgid "Send `!help reminders` to the room to see the bot's help menu for additional commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:55 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po new file mode 100644 index 000000000..59ef67301 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-maubot.po @@ -0,0 +1,166 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-maubot.md:1 +msgid "Setting up maubot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:3 +msgid "The playbook can install and configure [maubot](https://github.com/maubot/maubot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:5 +msgid "After setting up maubot, you can use the web management interface to make it do things. The default location of the management interface is `matrix.example.com/_matrix/maubot/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/maubot/usage/basic.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:11 +msgid "By default, this playbook installs maubot on the `matrix.` subdomain, at the `/_matrix/maubot/` path (https://matrix.example.com/_matrix/maubot/). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-maubot-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:32 +msgid "You can add multiple admins. The admin accounts are only used to access the maubot administration interface." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:34 +msgid "Adjusting the maubot URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:36 +msgid "By tweaking the `matrix_bot_maubot_hostname` and `matrix_bot_maubot_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-bot-maubot.md:38 +#: ../../../docs/configuring-playbook-bot-maubot.md:56 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the maubot domain (`maubot.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:50 +msgid "Customizing the maubot container image" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:52 +msgid "Certain [maubot plugins](https://plugins.mau.bot/) require additional dependencies to be installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:54 +msgid "You can customize the default maubot container image and install your own dependencies." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:67 +msgid "Consult the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/) for more information about the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:69 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:71 +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-bot-maubot.md:78 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:80 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:82 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:84 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:86 +msgid "If you change the bot password (`matrix_bot_maubot_initial_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_maubot_initial_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:88 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:90 +msgid "By default, you can visit `matrix.example.com/_matrix/maubot/` to manage your available plugins, clients and instances." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:92 +msgid "You should start in the following order" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:93 +msgid "**Create one or more clients**: A client is a Matrix account which the bot will use to message. By default, the playbook creates a `bot.maubot` account (as per the configuration above). You only need to [obtain an access token](#obtaining-an-access-token) for it" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:94 +msgid "**Upload some Plugins**: Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:95 +msgid "**Create an instance**: An instance is the actual bot. You have to specify a client which the bot instance will use and the plugin (how the bot will behave)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:97 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:99 +msgid "This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:101 +msgid "Alternatively, you can refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will causes issues to your bot in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:103 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po new file mode 100644 index 000000000..0b81d8024 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bot-mjolnir.po @@ -0,0 +1,271 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:1 +msgid "Setting up Mjolnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:3 +msgid "The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/mjolnir/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:9 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:11 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:13 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:15 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:21 +msgid "If you would like Mjolnir to be able to deactivate users, move aliases, shutdown rooms, etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:23 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:25 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:27 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:52 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:30 +msgid "Make sure the account is free from rate limiting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:32 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a required step. If you do not configure it, Mjolnir will crash.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:34 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:36 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:38 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:40 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:42 +msgid "To expose the APIs publicly, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:48 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:50 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). If you have made Mjolnir an admin, you can just use the Mjolnir token." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:55 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:57 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:59 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:60 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:61 +msgid "`@bot.mjolnir:example.com` with the MXID of your Mjolnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:67 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:184 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:68 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:69 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:71 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:73 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:75 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:78 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you MUST enable and use Pantalaimon (see [below](#configuration-with-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:80 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:82 +msgid "Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:84 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:86 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:95 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:97 +msgid "Decide whether you want Mjolnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:99 +msgid "To support E2EE, Mjolnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:101 +msgid "Configuration with E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:103 +msgid "When using Pantalaimon, Mjolnir will log in to its bot account itself through Pantalaimon, so configure its username and password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:105 +msgid "Add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:119 +msgid "The playbook's `group_vars` will configure other required settings. If using this role separately without the playbook, you also need to configure the two URLs that Mjolnir uses to reach the homeserver, one through Pantalaimon and one \"raw\". This example is taken from the playbook's `group_vars`:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:131 +msgid "Configuration without E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:133 +msgid "When NOT using Pantalaimon, Mjolnir does not log in by itself and you must give it an access token for its bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:135 +msgid "Add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:141 +msgid "Adding Mjolnir synapse antispam module (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:143 +msgid "To enable Mjolnir synapse antispam module, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:153 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:155 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:157 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:159 +msgid "`roles/custom/matrix-bot-mjolnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_mjolnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:161 +msgid "For example, to change Mjolnir's `recordIgnoredInvites` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:186 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:188 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:190 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:192 +msgid "If you change the Pantalaimon's password (`matrix_bot_mjolnir_pantalaimon_password` in your `vars.yml` file) subsequently, its credentials on the homeserver won't be updated automatically. If you'd like to change the password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_mjolnir_pantalaimon_password` to let Pantalaimon know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:194 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:196 +msgid "You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure Mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po new file mode 100644 index 000000000..97b54bae7 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-discord.po @@ -0,0 +1,170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:1 +msgid "Setting up Appservice Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:4 +msgid "For using as a Bot we are recommend the Appservice Discord bridge (the one being discussed here), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:5 +msgid "For personal use we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:7 +msgid "The playbook can install and configure [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:13 +msgid "Create a Discord Application [here](https://discordapp.com/developers/applications). Then retrieve Client ID, and create a bot from the Bot tab and retrieve the Bot token." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:17 +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-discord.md:31 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:33 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:40 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:42 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:44 +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-discord.md:46 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:48 +msgid "Self-Service Bridging (Manual)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:50 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:56 +msgid "**Note**: If self-service bridging is not enabled, `!discord help` commands will return no results." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:58 +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:82 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:60 +msgid "Once self-service is enabled, start a chat with `@_discord_bot:example.com` and say `!discord help bridge`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:62 +msgid "Then, follow the instructions in the help output message." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:64 +msgid "If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:66 +msgid "On the Discord side, send `!matrix help` to the bot to see the available commands for managing the bridge and Matrix users." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:68 +msgid "**Note**: Encrypted Matrix rooms are not supported as of writing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:70 +msgid "Portal Bridging (Automatic)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:72 +msgid "Through portal bridging, Matrix rooms will automatically be created by the bot and bridged to the relevant Discord room. This is done by simply joining a room with a specific name pattern (`#_discord__`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:74 +msgid "All Matrix rooms created this way are **listed publicly** by default, and you will not have admin permissions to change this. To get more control, [make yourself a room Administrator](#getting-administrator-access-in-a-portal-bridged-room). You can then unlist the room from the directory and change the join rules." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:76 +msgid "To disable portal bridging, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:84 +msgid "To get started with Portal Bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:87 +msgid "Room addresses follow this syntax: `#_discord__`. 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//`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:88 +msgid "Once you have figured out the appropriate room address, you can join by doing `/join #_discord__` in your Matrix client." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:90 +msgid "Getting Administrator access in a portal bridged room" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:92 +msgid "By default, you won't have Administrator access in rooms created by the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:94 +msgid "To adjust room access privileges or do various other things (change the room name subsequently, etc.), you'd wish to become an Administrator." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:96 +msgid "There's the Discord bridge's guide for [setting privileges on bridge managed rooms](https://github.com/matrix-org/matrix-appservice-discord/blob/master/docs/howto.md#set-privileges-on-bridge-managed-rooms). To do the same with our container setup, run the following command on the server:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po new file mode 100644 index 000000000..21ade5894 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-irc.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:1 +msgid "Setting up Appservice IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:5 +msgid "The playbook can install and configure the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:11 +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-irc.md:63 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:65 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:72 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:74 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:76 +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-irc.md:78 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:80 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:82 +msgid "To use the bridge, you need to start a chat with `@irc_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po new file mode 100644 index 000000000..237f73e5e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-kakaotalk.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:1 +msgid "Setting up Appservice Kakaotalk bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:3 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:5 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:7 +msgid "[!WARNING] There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:10 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:12 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:14 +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:16 +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:18 +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:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:22 +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:28 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:30 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:32 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:34 +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:35 +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:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:50 +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:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:56 +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:58 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po new file mode 100644 index 000000000..cfe628372 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-slack.po @@ -0,0 +1,267 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:1 +msgid "Setting up Appservice Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:3 +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:89 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:4 +msgid "Bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:5 +msgid "Currently (as of November, 2024) **this component is not available for new installation unless you have already created a classic Slack application** (which the bridge makes use of in order to enable bridging between Slack and Matrix), because the creation of classic Slack applications has been discontinued since June 4 2024. The author of the bridge claims [here](https://github.com/matrix-org/matrix-appservice-slack/issues/789#issuecomment-2172947787) that he plans to support the modern Slack application and until then \"the best (and only) option for new installations is to use the webhook bridging\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:7 +msgid "The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:13 +msgid "Create a Classic Slack App" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:15 +msgid "First, you need to create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:17 +msgid "Name the app \"matrixbot\" (or anything else you'll remember). Select the team/workspace this app will belong to. Click on bot users and add a new bot user. We will use this account to bridge the the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:19 +msgid "Then, click on Event Subscriptions and enable them and use the request url: `https://matrix.example.com/appservice-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:21 +msgid "Add the following events as `Bot User Events` and save:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:23 +msgid "team_domain_change" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:24 +msgid "message.channels" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:25 +msgid "message.groups (if you want to bridge private channels)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:26 +msgid "reaction_added" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:27 +msgid "reaction_removed" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:29 +msgid "Next, click on \"OAuth & Permissions\" and add the following scopes:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:31 +msgid "chat:write:bot" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:32 +msgid "users:read" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:33 +msgid "reactions:write" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:34 +msgid "files:write:user (if you want to bridge files)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:36 +msgid "**Note**: In order to make Slack files visible to Matrix users, this bridge will make Slack files visible to anyone with the url (including files in private channels). This is different than the current behavior in Slack, which only allows authenticated access to media posted in private channels. See MSC701 for details." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:38 +msgid "Click on \"Install App\" and \"Install App to Workspace\". Note the access tokens shown. You will need the Bot User OAuth Access Token and if you want to bridge files, the OAuth Access Token whenever you link a room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:40 +msgid "Create an administration control room on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:42 +msgid "Create a new Matrix room to act as the administration control room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:44 +msgid "Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing \"view source\". The room ID will be displayed near the top." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:48 +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-slack.md:64 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:66 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:68 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:70 +msgid "`roles/custom/matrix-bridge-appservice-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:71 +msgid "`roles/custom/matrix-bridge-appservice-slack/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_slack_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:73 +msgid "For example, to change the bot's username from `slackbot`, add the following configuration to your `vars.yml` file. Replace `examplebot` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:80 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:82 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:91 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:93 +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-slack.md:95 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:97 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:99 +msgid "To use the bridge, you need to send `/invite @slackbot:example.com` to invite the bridge bot user into the admin room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:101 +msgid "If Team Sync is not enabled, for each channel you would like to bridge, perform the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:103 +msgid "Create a Matrix room in the usual manner for your client. Take a note of its Matrix room ID — it will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:104 +msgid "Invite the bot user to both the Slack and Matrix channels you would like to bridge using `/invite @matrixbot` for Slack and `/invite @slackbot:example.com` for Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:105 +msgid "Determine the \"channel ID\" that Slack uses to identify the channel. You can see it when you open a given Slack channel in a browser. The URL reads like this: `https://app.slack.com/client/XXX//details/`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:106 +msgid "Issue a link command in the administration control room with these collected values as arguments:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:108 +msgid "with file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:114 +msgid "without file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:120 +msgid "These arguments can be shortened to single-letter forms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:126 +msgid "Unlinking" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:128 +msgid "Channels can be unlinked again by sending this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:134 +msgid "Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave the bridged Matrix room. So in case you want to re-link later, don't forget to re-invite the slackbot into this room again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:138 +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-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:140 +msgid "Linking: \"Room is now pending-name\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:142 +msgid "This typically means that you haven't used the correct Slack channel ID. Unlink the room and recheck 'Determine the \"channel ID\"' from above." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:144 +msgid "Messages work from Matrix to Slack, but not the other way around" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:146 +msgid "Check the logs, and if you find the message like below, unlink your room, reinvite the bot and re-link it again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:148 +#, python-format +msgid "`WARN SlackEventHandler Ignoring message from unrecognised Slack channel ID : %s (%s) `" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:150 +msgid "This may particularly hit you, if you tried to unsuccessfully link your room multiple times without unlinking it after each failed attempt." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po new file mode 100644 index 000000000..a0709fde0 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-appservice-webhooks.po @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:1 +msgid "Setting up Appservice Webhooks bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:3 +msgid "**Note**: This bridge has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:5 +msgid "The playbook can install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:7 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-appservice-webhooks/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:11 +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-webhooks.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:36 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:38 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:40 +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-webhooks.md:42 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:44 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:46 +msgid "To use the bridge, you need to invite the bridge bot user to your room in either way." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:48 +msgid "Send `/invite @_webhook:example.com` (**Note**: Make sure you have administration permissions in your room)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:49 +msgid "Add the bridge bot to a private channel (personal channels imply you being an administrator)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:51 +msgid "You then need to send a message to the bridge bot to receive a private message including the webhook link:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:57 +msgid "The JSON body for posting messages will have to look like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:68 +msgid "You can test this via curl like so:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:81 +msgid "Setting Webhooks with Dimension integration manager" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:83 +msgid "If you're using the [Dimension integration manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge with it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:85 +msgid "To configure it, open the Dimension integration manager, and go to \"Settings\" and \"Bridges\", then select edit action for \"Webhook Bridge\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:87 +msgid "On the UI, press \"Add self-hosted Bridge\" button and populate \"Provisioning URL\" and \"Shared Secret\" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po new file mode 100644 index 000000000..02223fc9e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-beeper-linkedin.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:1 +msgid "Setting up Beeper Linkedin bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:3 +msgid "The playbook can install and configure [beeper-linkedin](https://github.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:5 +msgid "See the project's [documentation](https://github.com/beeper/linkedin/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:9 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:11 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:13 +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-beeper-linkedin.md:15 +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-beeper-linkedin.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:19 +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-beeper-linkedin.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_beeper_linkedin_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:46 +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-beeper-linkedin.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:52 +msgid "To use the bridge, you need to start a chat with `@linkedinbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:54 +msgid "You then need to send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:56 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:58 +msgid "Bridge asking for 2FA even if you don't have 2FA enabled" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:60 +msgid "If you don't have 2FA enabled and are logging in from a strange IP for the first time, LinkedIn will send an email with a one-time code. You can use this code to authorize the bridge session. In my experience, once the IP is authorized, you will not be asked again." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po new file mode 100644 index 000000000..69b5722d1 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-go-skype-bridge.po @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:1 +msgid "Setting up Go Skype Bridge bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:3 +msgid "The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you, for bridging to [Skype](https://www.skype.com/). This bridge was created based on [mautrix-whatsapp](https://github.com/mautrix/whatsapp) and can be configured in a similar way to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:5 +msgid "See the project's [documentation](https://github.com/kelaresg/go-skype-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:7 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:9 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:11 +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-go-skype-bridge.md:13 +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-go-skype-bridge.md:15 +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-go-skype-bridge.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:19 +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-go-skype-bridge.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_go_skype_bridge_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:46 +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-go-skype-bridge.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:52 +msgid "To use the bridge, you need to start a chat with `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po new file mode 100644 index 000000000..7757f8e39 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-heisenbridge.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:1 +msgid "Setting up Heisenbridge bouncer-style IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:5 +msgid "The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) — the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:7 +msgid "See the project's [documentation](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:11 +msgid "By default, this playbook installs Heisenbridge on the `matrix.` subdomain, at the `/heisenbridge` path (https://matrix.example.com/heisenbridge). It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-heisenbridge-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:17 +msgid "To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:30 +msgid "Adjusting the Heisenbridge URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:32 +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 "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:34 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:42 +msgid "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`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:46 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:48 +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-bridge-heisenbridge.md:55 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:57 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:59 +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-heisenbridge.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:65 +msgid "To use the bridge, you need to start a chat with `@heisenbridge:example.com` (where `example.com` is your base domain, not the `matrix.` domain). If the bridge ignores you and a DM is not accepted then the owner setting may be wrong." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:67 +msgid "Help is available for all commands with the `-h` switch." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:69 +msgid "You can also learn the basics by watching [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:71 +msgid "If you encounter issues or feel lost you can join the project room at [#heisenbridge:vi.fi](https://matrix.to/#/#heisenbridge:vi.fi) for help." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po new file mode 100644 index 000000000..8b237cb4e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-hookshot.po @@ -0,0 +1,413 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:1 +msgid "Setting up matrix-hookshot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:3 +msgid "The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:5 +msgid "Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, Jira, and Figma, as well as generic webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:7 +msgid "See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/latest/hookshot.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:9 +msgid "**Note**: the playbook also supports [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), which however was deprecated by its author." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:13 +msgid "Download GitHub app private key (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:15 +msgid "If you're setting up the GitHub bridge, you need to create your GitHub app, and generate a private key file of it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:17 +msgid "You need to download the private key file, if you will install the file manually or with the `aux` role. For details, see [the section below](#manage-github-private-key-with-aux-role)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:21 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:35 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:37 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:39 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:41 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:43 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:45 +msgid "`roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:46 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:48 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:52 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service hookshot` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:61 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:65 +msgid "To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:67 +msgid "Make sure the bot is able to send state events (usually the Moderator power level in clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:69 +msgid "Send `!hookshot help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:71 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:73 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:75 +msgid "Reset crypto store" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:77 +msgid "Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:83 +msgid "More setup documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:85 +msgid "URLs for bridges setup" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:87 +msgid "Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Listener" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Default path" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Used as" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_webhook_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Webhook-prefix, which affects all webhook-related URLs below" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "generic" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_generic_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Generic webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "github oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_github_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "GitHub \"Callback URL\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "jira oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/jira/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_jira_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Jira OAuth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "figma endpoint" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/webhooks/figma/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_figma_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Figma" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "provisioning" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/v1/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_provisioning_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Dimension [provisioning](#provisioning-api)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "appservice" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/_matrix/app/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_appservice_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/hookshot/widgetapi/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_widgets_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`/metrics/hookshot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "`matrix_hookshot_metrics_enabled` and exposure enabled via `matrix_hookshot_metrics_proxying_enabled` or `matrix_metrics_exposure_enabled`. Read more in the [Metrics section](#metrics) below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md +msgid "Prometheus" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:101 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:103 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:105 +msgid "Manage GitHub Private Key with aux role" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:107 +msgid "The GitHub bridge requires you to install a private key file. This can be done in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:109 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:110 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:111 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:113 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:124 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:126 +msgid "Provisioning API" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:128 +msgid "The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with dimension, you will need to enter as \"Provisioning URL\": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:130 +msgid "Metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:132 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:134 +msgid "To explicitly enable metrics, use `matrix_hookshot_metrics_enabled: true`. This only exposes metrics over the container network, however." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:136 +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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:138 +msgid "either enabling metrics exposure for Hookshot via `matrix_hookshot_metrics_proxying_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:139 +msgid "or enabling metrics exposure for all services via `matrix_metrics_exposure_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:141 +msgid "Whichever one you go with, by default metrics are exposed publicly **without** password-protection. See [the Prometheus and Grafana docs](configuring-playbook-prometheus-grafana.md) for details about password-protection for metrics." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:143 +msgid "Collision with matrix-appservice-webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:145 +msgid "If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:147 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:149 +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-bridge-hookshot`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:151 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:153 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po new file mode 100644 index 000000000..cd3149443 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-matrix-bridge-sms.po @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:1 +msgid "Setting up Matrix SMS bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:3 +msgid "The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:5 +msgid "See the project's [documentation](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:9 +msgid "The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:13 +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-matrix-bridge-sms.md:36 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:38 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:45 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:47 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:49 +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-matrix-bridge-sms.md:51 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:53 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:55 +msgid "Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po new file mode 100644 index 000000000..19d1de68e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-bridges.po @@ -0,0 +1,303 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, discord, signal, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:5 +msgid "The author of the bridges maintains [the official docs](https://docs.mau.fi/bridges/index.html), whose source code is available at [mautrix/docs](https://github.com/mautrix/docs) repository on GitHub. You may as well to refer it while configuring them." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:7 +msgid "You can see each bridge's features on the `ROADMAP.md` file in its corresponding mautrix repository." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:11 +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-bridges.md:18 +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. **`matrix_mautrix_facebook_*` and `matrix_mautrix_instagram_*` variables belong to the deprecated components and do not control the new bridge** ([mautrix-meta](https://github.com/mautrix/meta)), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:20 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:22 +msgid "Configure bridge permissions (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:24 +msgid "By default any user on your homeserver will be able to use the mautrix bridges. To limit who can use them you would need to configure their permissions settings." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:26 +msgid "Different levels of permission can be granted to users. For example, to **configure a user as an administrator for all bridges**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:32 +msgid "If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @alice:example.com`), then there's no admin by default." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:34 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:43 +msgid "This will add the admin permission to the specific user, while keeping the default permissions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:45 +msgid "You could also redefine the default permissions settings completely, rather than adding extra permissions. You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` to find information on the permission settings and other options you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:47 +msgid "Enable encryption (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:49 +msgid "[Encryption (End-to-Bridge Encryption, E2BE) support](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) is off by default. If you would like to enable encryption, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:51 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:58 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:77 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:65 +msgid "Enable relay mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:67 +msgid "[Relay mode](https://docs.mau.fi/bridges/general/relay-mode.html) is off by default. Check [the table on the official documentation](https://docs.mau.fi/bridges/general/relay-mode.html#support-table) for bridges which support relay mode." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:69 +msgid "If you would like to enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:71 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:100 +msgid "If you want to activate the relaybot in a room, send `!prefix set-relay` in the rooms where you want to use the bot (replace `!prefix` with the appropriate command prefix for the bridge, like `!signal` or `!wa`). To deactivate, send `!prefix unset-relay`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:102 +msgid "Use `!prefix set-pl 100` to be able for the bot to modify room settings and invite others." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:104 +msgid "Allow anyone on the homeserver to become a relay user (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:106 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:112 +msgid "Set the bot's username (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:114 +msgid "To set the bot's username, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:120 +msgid "Configure the logging level (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:122 +msgid "To specify the logging level, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:128 +msgid "Replace `warn` with one of the following to control the verbosity of the logs generated: `trace`, `debug`, `info`, `warn`, `error` or `fatal`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:130 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging (those that appear earlier in the list, like `trace`) will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:132 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:134 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:136 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:138 +msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:139 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:141 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:143 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:150 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:190 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:152 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:154 +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-bridges.md:156 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:158 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:160 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:162 +msgid "For details about the next steps, refer to each bridge's individual documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:164 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:166 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:168 +msgid "Set up Double Puppeting (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:170 +msgid "After successfully enabling bridging, you may wish to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:172 +msgid "To set it up, you have 2 ways of going about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:174 +msgid "Method 1: automatically, by enabling Appservice Double Puppet (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:176 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html), you could enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:178 +msgid "Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:180 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:186 +msgid "When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:188 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:192 +msgid "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)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:195 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:197 +msgid "Method 2: manually, by asking each user to provide a working access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:199 +msgid "When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:201 +msgid "retrieve a Matrix access token for yourself. Refer to the documentation on [how to obtain one](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:203 +msgid "send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:205 +msgid "make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:207 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:209 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:211 +msgid "If the bridge's bot doesn't accept the invite to a chat, refer [the official troubleshooting page](https://docs.mau.fi/bridges/general/troubleshooting.html) as well." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:213 +msgid "If you found bugs in mautrix bridges, they should be reported to the upstream project, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po new file mode 100644 index 000000000..0a8b1b689 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-discord.po @@ -0,0 +1,153 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:1 +msgid "Setting up Mautrix Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:5 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:6 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:7 +msgid "For personal use with a discord account we recommend the `mautrix-discord` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:9 +msgid "The playbook can install and configure [mautrix-discord](https://github.com/mautrix/discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/discord/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:15 +msgid "There are 2 ways to login to discord using this bridge, either by [scanning a QR code](#method-1-login-using-qr-code-recommended) using the Discord mobile app **or** by using a [Discord token](#method-2-login-using-discord-token-not-recommended)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:17 +msgid "If this is a dealbreaker for you, consider using one of the other Discord bridges supported by the playbook: [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) or [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md). These come with their own complexity and limitations, however, so we recommend that you proceed with this one if possible." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:19 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:21 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:23 +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-discord.md:25 +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-mautrix-discord.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:29 +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-discord.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:40 +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-discord.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.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-mautrix-discord.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:61 +msgid "To use the bridge, you need to start a chat with `@discordbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/discord/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:65 +msgid "After logging in, the bridge will create portal rooms for some recent direct messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:67 +msgid "Bridge guilds" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:69 +msgid "If you'd like to bridge guilds, send `guilds status` to see the list of guilds, then send `guilds bridge GUILD_ID_HERE` for each guild that you'd like bridged. Make sure to replace `GUILD_ID_HERE` with the guild's ID." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:71 +msgid "After bridging, spaces will be created automatically, and rooms will be created if necessary when messages are received. You can also pass `--entire` to the bridge command to immediately create all rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:73 +msgid "If you want to manually bridge channels, invite the bot to the room you want to bridge, and run `!discord bridge CHANNEL_ID_HERE` to bridge the room. Make sure to replace `CHANNEL_ID_HERE` with the channel's ID." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po new file mode 100644 index 000000000..464579147 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-facebook.po @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:1 +msgid "Setting up Mautrix Facebook bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:7 +msgid "The playbook can install and configure [mautrix-facebook](https://github.com/mautrix/facebook) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/facebook/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:13 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:15 +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-mautrix-facebook.md:17 +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-facebook.md:19 +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-mautrix-facebook.md:21 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:23 +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-facebook.md:29 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:31 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:33 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:44 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:46 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.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-facebook.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:52 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:54 +msgid "To use the bridge, you need to start a chat with `@facebookbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:56 +msgid "You then need to send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:58 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:60 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:62 +msgid "Facebook rejecting login attempts and forcing you to change password" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:64 +msgid "If your Matrix server is in a wildly different location than where you usually use your Facebook account from, the bridge's login attempts may be outright rejected by Facebook. Along with that, Facebook may even force you to change the account's password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:66 +msgid "If you happen to run into this problem while [setting up bridging](#usage), try to first get a successful session up by logging in to Facebook through the Matrix server's IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:68 +msgid "The easiest way to do this may be to use [sshuttle](https://sshuttle.readthedocs.io/) to proxy your traffic through the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:70 +msgid "Example command for proxying your traffic through the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:76 +msgid "Once connected, you should be able to verify that you're browsing the web through the Matrix server's IP by checking [icanhazip](https://icanhazip.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:78 +msgid "Then proceed to log in to [Facebook/Messenger](https://www.facebook.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:80 +msgid "Once logged in, proceed to [set up bridging](#usage)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:82 +msgid "If that doesn't work, enable 2FA (see: [Facebook help page on enabling 2FA](https://www.facebook.com/help/148233965247823)) and try to login again with a new password, and entering the 2FA code when prompted, it may take more then one try, in between attempts, check facebook.com to see if they are requiring another password change" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po new file mode 100644 index 000000000..45dd473a0 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-gmessages.po @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:1 +msgid "Setting up Mautrix Google Messages bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:5 +msgid "The playbook can install and configure [mautrix-gmessages](https://github.com/mautrix/gmessages) for you, for bridging to [Google Messages](https://messages.google.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/gmessages/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:11 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:13 +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-gmessages.md:15 +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-gmessages.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:19 +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-gmessages.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:30 +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-gmessages.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:45 +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-gmessages.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:49 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:51 +msgid "To use the bridge, you need to start a chat with `@gmessagesbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:53 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/gmessages/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:55 +msgid "After logging in, the bridge will create portal rooms for recent chats." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po new file mode 100644 index 000000000..9bf8adeae --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-googlechat.po @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:1 +msgid "Setting up Mautrix Google Chat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:5 +msgid "The playbook can install and configure [mautrix-googlechat](https://github.com/mautrix/googlechat) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/googlechat/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:15 +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-googlechat.md:17 +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-mautrix-googlechat.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:21 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:32 +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-googlechat.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:47 +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-googlechat.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:53 +msgid "To use the bridge, you need to start a chat with `@googlechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po new file mode 100644 index 000000000..39c1b545f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-hangouts.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:1 +msgid "Setting up Mautrix Hangouts bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:5 +msgid "💡 **Note**: This bridge has been deprecated in favor of [Google Chat bridge](https://github.com/mautrix/googlechat), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-googlechat.md). Installing the mautrix-hangouts bridge is **no longer possible**. For now, this documentation page remains here for historical purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:7 +msgid "The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:11 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:13 +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-mautrix-hangouts.md:15 +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-hangouts.md:17 +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-mautrix-hangouts.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:21 +msgid "To enable the [Google Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:46 +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-hangouts.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:52 +msgid "To use the bridge, you need to start a chat with `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:54 +msgid "You then need to send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:56 +msgid "Automatic login may not work. If it does not, reload the page and select the \"Manual login\" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:58 +msgid "Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po new file mode 100644 index 000000000..08e82de7e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-instagram.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:1 +msgid "Setting up Mautrix Instagram bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-instagram.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:7 +msgid "The playbook can install and configure [mautrix-instagram](https://github.com/mautrix/instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/instagram/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:13 +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-instagram.md:19 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:21 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:23 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:38 +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-instagram.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:44 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:46 +msgid "You then need to send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po new file mode 100644 index 000000000..119c8ba65 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-instagram.po @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:1 +msgid "Setting up Instagram bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Instagram. For bridging to Facebook/Messenger, see [Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:15 +msgid "Migrating from the old mautrix-instagram bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:17 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:19 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:20 +msgid "both trying to bridge the same DMs" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:22 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:24 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:26 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:28 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:30 +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-meta-instagram.md:32 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:34 +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-meta-instagram.md:40 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:42 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:44 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:46 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:50 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:61 +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-meta-instagram.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:65 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:67 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:69 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:71 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po new file mode 100644 index 000000000..0f8262207 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-meta-messenger.po @@ -0,0 +1,181 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:1 +msgid "Setting up Messenger bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Facebook Messenger. For bridging to Instagram, see [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:15 +msgid "Migrating from the old mautrix-facebook bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:17 +msgid "If you've been using the [mautrix-facebook](./configuring-playbook-bridge-mautrix-facebook.md) bridge, it's possible to migrate the database using [instructions from the bridge documentation](https://docs.mau.fi/bridges/go/meta/facebook-migration.html) (advanced)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:19 +msgid "Then you may wish to get rid of the Facebook bridge. To do so, send a `clean-rooms` command to the management room with the old bridge bot (`@facebookbot:example.com`). It gives you a list of portals and groups of portals you may purge. Proceed with sending commands like `clean recommended`, etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:21 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:23 +msgid "**Note**: the user ID of the new bridge bot is `@messengerbot:example.com`, not `@facebookbot:example.com`. After disabling the old bridge, its bot user will stop responding to a command." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:25 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:27 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:29 +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-meta-messenger.md:31 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:33 +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-meta-messenger.md:39 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:41 +msgid "Bridge mode" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:43 +msgid "As mentioned above, the [mautrix-meta](https://github.com/mautrix/meta) bridge supports multiple modes of operation." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:45 +msgid "The bridge can pull your Messenger messages via 3 different methods:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:47 +msgid "(`facebook`) Facebook via `facebook.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:48 +msgid "(`facebook-tor`) Facebook via `facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion` ([Tor](https://www.torproject.org/)) — does not currently proxy media downloads" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:49 +msgid "(default) (`messenger`) Messenger via `messenger.com` — usable even without a Facebook account" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:51 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:53 +msgid "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.)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:55 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:57 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:59 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:61 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:63 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:70 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:72 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:74 +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-meta-messenger.md:76 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:78 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:80 +msgid "To use the bridge, you need to start a chat with `@messengerbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Note that the user ID of the bridge's bot is not `@facebookbot:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:82 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:84 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:86 +msgid "**Note**: given that the bot is configured in `messenger` [bridge mode](#bridge-mode) by default, you will need to log in to [messenger.com](https://messenger.com/) (not `facebook.com`!) and obtain the cookies from there." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po new file mode 100644 index 000000000..7a5b2802a --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-signal.po @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:1 +msgid "Setting up Mautrix Signal bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:5 +msgid "The playbook can install and configure [mautrix-signal](https://github.com/mautrix/signal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/signal/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:9 +msgid "Prerequisites (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:11 +msgid "Prepare Postgres database on external Postgres server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:13 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:15 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:17 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:19 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:21 +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-signal.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:25 +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-signal.md:31 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:33 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:35 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:50 +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-signal.md:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:56 +msgid "To use the bridge, you need to start a chat with `@signalbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:58 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/signal/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:60 +msgid "After logging in, the bridge will bridge chats as you receive messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:62 +msgid "**Note**: Signal does not support any kind of message history (even on official apps), so the bridge won't backfill any messages." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po new file mode 100644 index 000000000..f18f13ce5 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-slack.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:1 +msgid "Setting up Mautrix Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:5 +msgid "**Note**: bridging to [Slack](https://slack.com/) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:6 +msgid "For using as a Bot we recommend the [Appservice Slack](configuring-playbook-bridge-appservice-slack.md), because it supports plumbing. Note that it is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:7 +msgid "For personal use with a slack account we recommend the `mautrix-slack` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Slack bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:9 +msgid "The playbook can install and configure [mautrix-slack](https://github.com/mautrix/slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/slack/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:13 +msgid "See the [features and roadmap](https://github.com/mautrix/slack/blob/main/ROADMAP.md) for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:15 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:17 +msgid "For using this bridge, you would need to authenticate by **providing your username and password** (legacy) or by using a **token login**. See more information in the [docs](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:19 +msgid "Note that neither of these methods are officially supported by Slack. [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) uses a Slack bot account which is the only officially supported method for bridging a Slack channel." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:21 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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 [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:29 +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-slack.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:40 +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-slack.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:61 +msgid "To use the bridge, you need to start a chat with `@slackbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:65 +msgid "If you authenticated using a token, the recent chats will be bridged automatically (depending on the `conversation_count` setting). Otherwise (i.e. logging with the Discord application), the chats the bot is in will be bridged automatically." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po new file mode 100644 index 000000000..8496f9ebd --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-telegram.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:1 +msgid "Setting up Mautrix Telegram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:5 +msgid "The playbook can install and configure [mautrix-telegram](https://github.com/mautrix/telegram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:11 +msgid "Obtain a Telegram API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:13 +msgid "To use the bridge, you'd need to obtain an API key from [https://my.telegram.org/apps](https://my.telegram.org/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:15 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:17 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:19 +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-telegram.md:21 +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:81 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:23 +msgid "Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:25 +msgid "If you decided to enable Double Puppeting manually, send `login-matrix` to the bot in order to receive an instruction about how to send an access token to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:29 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:37 +msgid "Relaying" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:39 +msgid "Enable relay-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:41 +msgid "If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:51 +msgid "Configure a user as an administrator of the bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:53 +msgid "You might also want to give permissions to a user to administrate the bot. See [this section](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional) on the common guide for details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:55 +msgid "More details about permissions in this example: https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:57 +msgid "Use the bridge for direct chats only (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:59 +msgid "If you want to exclude all groups from syncing and use the Telegram-Bridge only for direct chats, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:65 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:67 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:70 +msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:72 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:74 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:83 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:91 +msgid "To use the bridge, you need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:93 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/telegram/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:95 +msgid "After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them. Note that the bridge won't automatically create rooms for private chats." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po new file mode 100644 index 000000000..929ff2e01 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-twitter.po @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:1 +msgid "Setting up Mautrix Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:5 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:7 +msgid "The playbook can install and configure [mautrix-twitter](https://github.com/mautrix/twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:13 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:15 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:17 +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-twitter.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:21 +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-twitter.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:32 +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-twitter.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:47 +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-twitter.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:53 +msgid "To use the bridge, you need to start a chat with `@twitterbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po new file mode 100644 index 000000000..b9c026ba4 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-whatsapp.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:1 +msgid "Setting up Mautrix Whatsapp bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:5 +msgid "The playbook can install and configure [mautrix-whatsapp](https://github.com/mautrix/whatsapp) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/whatsapp/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:15 +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-whatsapp.md:17 +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-mautrix-whatsapp.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:21 +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-whatsapp.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:46 +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-whatsapp.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:52 +msgid "To use the bridge, you need to start a chat with `@whatsappbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:54 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/whatsapp/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:56 +msgid "Approximately in a minute after logging in, the bridge will create portal rooms for recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:58 +msgid "**Note**: your linked devices will be logged out if you don’t use your phone for over 14 days (see the official FAQ entry [here](https://faq.whatsapp.com/general/download-and-installation/about-linked-devices)). The bridge will warn you if it doesn't receive any data from the phone over 12 days." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po new file mode 100644 index 000000000..412bef917 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mautrix-wsproxy.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:1 +msgid "Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:5 +msgid "The playbook can install and configure [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:7 +msgid "See the project's [documentation](https://github.com/mautrix/wsproxy/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:11 +msgid "By default, this playbook installs wsproxy on the `wsproxy.` subdomain (`wsproxy.example.com`) and requires you to create a CNAME record for `wsproxy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:17 +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-wsproxy.md:29 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:31 +msgid "Adjusting the wsproxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:33 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:35 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:46 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:48 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:52 +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-bridge-mautrix-wsproxy.md:59 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:61 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:63 +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-wsproxy.md:65 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:69 +msgid "Follow the [mautrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po new file mode 100644 index 000000000..fc6d17c55 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-discord.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:1 +msgid "Setting up MX Puppet Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:4 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:5 +msgid "For personal use with a discord account we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:7 +msgid "The playbook can install and configure [mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:9 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:13 +msgid "To enable the [Discord](https://discordapp.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:19 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:21 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:28 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:30 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:32 +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-mx-puppet-discord.md:34 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:36 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:38 +msgid "To use the bridge, you need to start a chat with `Discord Puppet Bridge` with the handle `@_discordpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:40 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-discord [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:42 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:44 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:46 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po new file mode 100644 index 000000000..c59253dc7 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-groupme.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:1 +msgid "Setting up MX Puppet GroupMe bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:3 +msgid "The playbook can install and configure [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:5 +msgid "See the project's [documentation](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:9 +msgid "To enable the [GroupMe](https://groupme.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:28 +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-mx-puppet-groupme.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:34 +msgid "To use the bridge, you need to start a chat with `GroupMe Puppet Bridge` with the handle `@_groupmepuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:36 +msgid "One authentication method is available." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:38 +msgid "To link your GroupMe account, go to [dev.groupme.com](https://dev.groupme.com/), sign in, and select \"Access Token\" from the top menu. Copy the token and message the bridge with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:44 +msgid "Once logged in, send `listrooms` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:46 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:48 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po new file mode 100644 index 000000000..3b479cfdc --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-instagram.po @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:1 +msgid "Setting up MX Puppet Instagram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:3 +msgid "The playbook can install and configure [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:5 +msgid "This allows you to bridge Instagram DirectMessages into Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:9 +msgid "To enable the [Instagram](https://www.instagram.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:28 +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-mx-puppet-instagram.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:34 +msgid "To use the bridge, you need to start a chat with `Instagram Puppet Bridge` with the handle `@_instagrampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:36 +msgid "Send `link ` to the bridge bot to link your instagram account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:38 +msgid "The `list` commands shows which accounts are linked and which `puppetId` is associated." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:40 +msgid "For double-puppeting, you probably want to issue these commands:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:42 +msgid "`settype $puppetId puppet` to enable puppeting for the link (instead of relaying)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:43 +msgid "`setautoinvite $puppetId 1` to automatically invite you to chats" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:44 +msgid "`setmatrixtoken $accessToken` to set the access token to enable puppeting from the other side (the \"double\" in double puppeting)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:46 +msgid "If you are linking only one Instagram account, your `$puppetId` is probably 1, but use the `list` command find out." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:48 +msgid "Send `help` to the bot to see the available commands. At the time of writing, not every command is fully implemented." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po new file mode 100644 index 000000000..7d7cd399b --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-skype.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:1 +msgid "Setting up MX Puppet Skype bridging (optional, removed)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:3 +msgid "The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:5 +msgid "Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po new file mode 100644 index 000000000..9b7f2c028 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-slack.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:1 +msgid "Setting up MX Puppet Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:3 +msgid "**Note**: bridging to [Slack](https://slack.com) can also happen via the [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook. Note that `matrix-appservice-slack` is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:5 +msgid "The playbook can install and configure [mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:7 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:11 +msgid "Follow the [OAuth credentials](https://gitlab.com/mx-puppet/slack/mx-puppet-slack#option-2-oauth) instructions to create a new Slack app, setting the redirect URL to `https://matrix.example.com/slack/oauth`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:15 +msgid "To enable the [Slack](https://slack.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:24 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:26 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:33 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:35 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:37 +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-mx-puppet-slack.md:39 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:41 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:43 +msgid "To use the bridge, you need to start a chat with `Slack Puppet Bridge` with the handle `@_slackpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:45 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-slack [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:47 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:49 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:51 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po new file mode 100644 index 000000000..9b162ca65 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-steam.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:1 +msgid "Setting up MX Puppet Steam bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:3 +msgid "The playbook can install and configure [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:5 +msgid "See the project's [documentation](https://github.com/icewind1991/mx-puppet-steam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:9 +msgid "To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:28 +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-mx-puppet-steam.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:34 +msgid "To use the bridge, you need to start a chat with `Steam Puppet Bridge` with the handle `@_steampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:36 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-steam [documentation](https://github.com/icewind1991/mx-puppet-steam) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:38 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:40 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:42 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po new file mode 100644 index 000000000..00f617467 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-mx-puppet-twitter.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 23:17+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:1 +msgid "Setting up MX Puppet Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:3 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:5 +msgid "The playbook can install and configure [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:7 +msgid "See the project's [documentation](https://github.com/Sorunome/mx-puppet-twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:11 +msgid "Make an app on [developer.twitter.com](https://developer.twitter.com/en/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:15 +msgid "To enable the [Twitter](https://twitter.com) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:39 +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-mx-puppet-twitter.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:43 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:45 +msgid "To use the bridge, you need to start a chat with `Twitter Puppet Bridge` with the handle `@_twitterpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:47 +msgid "To log in, use `link` and click the link." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:49 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:51 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:53 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po new file mode 100644 index 000000000..3d52c8a1f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-postmoogle.po @@ -0,0 +1,229 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:1 +msgid "Setting up Postmoogle email bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:3 +msgid "The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:5 +msgid "Postmoogle is a bridge you can use to have its bot user forward emails to Matrix rooms. It runs an SMTP email server and allows you to assign mailbox addresses to the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/postmoogle/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:11 +msgid "Open the following ports on your server to be able to receive incoming emails:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:13 +msgid "`25/tcp`: SMTP" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:14 +msgid "`587/tcp`: Submission (TLS-encrypted SMTP)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:16 +msgid "If you don't open these ports, you will still be able to send emails, but not receive any." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:18 +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 "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:20 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:22 +msgid "To make Postmoogle enable its email sending features, you need to configure MX and TXT (SPF, DMARC, and DKIM) records. See the table below for values which need to be specified." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "TXT" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`v=spf1 ip4:matrix-server-IP -all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`_dmarc.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`v=DMARC1; p=quarantine;`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "`postmoogle._domainkey.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md +msgid "get it from `!pm dkim`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:31 +msgid "**Note**: the DKIM record can be retrieved after configuring and installing the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:33 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:35 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:56 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:58 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:60 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:62 +msgid "`roles/custom/matrix-bridge-postmoogle/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:64 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:66 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:73 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:75 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create a user account of the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:77 +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-postmoogle.md:79 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:81 +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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:83 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:85 +msgid "To use the bridge, invite the `@postmoogle:example.com` bot user into a room you want to use as a mailbox." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:87 +msgid "Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the email address `NAME@matrix.example.com`. Emails sent to that email address will be forwarded to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:89 +msgid "Send `!pm help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:91 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/postmoogle)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:93 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:95 +msgid "As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-postmoogle`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:97 +msgid "The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po new file mode 100644 index 000000000..2e989018f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-bridge-wechat.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:1 +msgid "Setting up WeChat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:3 +msgid "The playbook can install and configure [matrix-wechat](https://github.com/duo/matrix-wechat) for you, for bridging to [WeChat](https://www.wechat.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:5 +msgid "See the project's [documentation](https://github.com/duo/matrix-wechat/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:9 +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-wechat.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:28 +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-wechat.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:34 +msgid "To use the bridge, you need to start a chat with `@wechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:36 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po new file mode 100644 index 000000000..1cf8f2205 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-cactus-comments.po @@ -0,0 +1,205 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-cactus-comments.md:1 +msgid "Setting up Cactus Comments (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:3 +msgid "The playbook can install and configure the [Cactus Comments](https://cactus.chat) system for you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:5 +msgid "Cactus Comments is a **federated comment system** built on Matrix. It respects your privacy, and puts you in control." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:7 +msgid "See the project's [documentation](https://cactus.chat/docs/getting-started/introduction/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:9 +msgid "The playbook contains 2 roles for configuring different pieces of the Cactus Comments system:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:11 +msgid "`matrix-cactus-comments` — the backend appservice integrating with the Matrix homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:13 +msgid "`matrix-cactus-comments-client` — a static website server serving the [cactus-client](https://cactus.chat/docs/client/introduction/) static assets (`cactus.js` and `styles.css`)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:15 +msgid "You can enable whichever component you need (typically both)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:19 +msgid "By default, this playbook installs Cactus Comments' client on the `matrix.` subdomain, at the `/cactus-comments` path (https://matrix.example.com/cactus-comments). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-cactus-comments-client-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:25 +msgid "To enable Cactus Comments, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:45 +msgid "Adjusting the Cactus Comments' client URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:47 +msgid "By tweaking the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_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-cactus-comments.md:49 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:58 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Cactus Comments' client domain (`cactus.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:60 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:64 +msgid "There are some additional things you may wish to configure about the components." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:66 +msgid "For `matrix-cactus-comments`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:68 +msgid "`roles/custom/matrix-cactus-comments/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:70 +msgid "For `matrix-cactus-comments-client`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:72 +msgid "`roles/custom/matrix-cactus-comments-client/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:76 +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-cactus-comments.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:85 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.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-cactus-comments.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." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:91 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:93 +msgid "To use the component, you need to start a chat with `@bot.cactusbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:95 +msgid "Then, register a site by sending `register YOUR_SITE_NAME_HERE` (where `YOUR_SITE_NAME_HERE` is a unique identifier you choose. It does not have to match your domain). You will then be invited into a moderation room." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:97 +msgid "Now you are good to go and can embed the comment section on your website!" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:99 +msgid "Embed Cactus Comments" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:101 +msgid "The official [documentation](https://cactus.chat/docs/getting-started/quick-start/) provides a useful guide to embed Cactus Comments on your website." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:103 +msgid "After including the JavaScript and CSS asset files, insert a `
` where you'd like to display the comment section:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:109 +msgid "Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `YOUR_SITE_NAME_HERE` with the one that has been registered above:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:123 +msgid "Adjust the domain name for self-hosting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:125 +msgid "To have the assets served from your homeserver (not from `cactus.chat`), you need to adjust the domain name on the official documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:127 +msgid "Make sure to replace `example.com` with your base domain before you include the following lines, instead of the one provided by the official documentation:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:134 +msgid "**Note**: if the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_path_prefix` variables are tweaked, you would need to adjust the URLs of the assets accordingly." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:138 +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-cactus-comments` for the backend appservice or `journalctl -fu matrix-cactus-comments-client` for the server serving the client assets, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:140 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:142 +msgid "It is possible to increase logging verbosity for `matrix-cactus-comments-client`. The default logging level for this component is `error`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-cinny.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-cinny.po new file mode 100644 index 000000000..952d54a06 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-cinny.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-cinny.md:1 +msgid "Setting up Cinny (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:3 +msgid "The playbook can install and configure the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:5 +msgid "Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of [Element Web](./configuring-playbook-client-element-web.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:7 +msgid "💡 **Note**: the latest version of Cinny is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:9 +msgid "[app.cinny.in](https://app.cinny.in), hosted by the [Cinny](https://cinny.in/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:13 +msgid "By default, this playbook installs Cinny on the `cinny.` subdomain (`cinny.example.com`) and requires you to create a CNAME record for `cinny`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:19 +msgid "To enable Cinny, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:25 +msgid "Adjusting the Cinny URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:27 +msgid "By tweaking the `matrix_client_cinny_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:29 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:39 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Cinny domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:41 +msgid "**Note**: while there is a `matrix_client_cinny_path_prefix` variable for changing the path where Cinny is served, overriding it is [not possible](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3701), because Cinny requires an application rebuild (with a tweaked build config) to be functional under a custom path. You'd need to serve Cinny at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:43 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:45 +msgid "After configuring the playbook and [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:52 +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-cinny.md:54 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-element-web.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-element-web.po new file mode 100644 index 000000000..cfc6b6d62 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-element-web.po @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-element-web.md:1 +msgid "Configuring Element Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:3 +msgid "By default, this playbook installs the [Element Web](https://github.com/element-hq/element-web) Matrix client for you. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:5 +msgid "If you'd like to stop the playbook installing the client, see the section [below](#disabling-element-web) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:7 +msgid "💡 **Note**: the latest version of Element Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting (by [disabling Element Web](#disabling-element-web)):" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:9 +msgid "[app.element.io](https://app.element.io/), hosted by [Element](https://element.io/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:10 +msgid "[app.etke.cc](https://app.etke.cc/), hosted by [etke.cc](https://etke.cc/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:12 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:14 +msgid "By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to create a CNAME record for `element`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:16 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:20 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:22 +msgid "You can change the look of Element Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:24 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:26 +msgid "To pull the themes from the `element-themes` project and use them for your Element Web instance, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:32 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_element_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:34 +msgid "Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:36 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:38 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:45 +msgid "If you define your own themes with it and set `matrix_client_element_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:47 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:49 +msgid "Adjusting the Element Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:51 +msgid "By tweaking the `matrix_client_element_hostname` and `matrix_client_element_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-element-web.md:53 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:64 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Element domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:66 +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-element-web.md:68 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:70 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:72 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:74 +msgid "`roles/custom/matrix-client-element/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:75 +msgid "`roles/custom/matrix-client-element/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_element_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:77 +msgid "For example, to override some Element Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:95 +msgid "Disabling Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:97 +msgid "If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:103 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:105 +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-element-web.md:112 +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-element-web.md:114 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po new file mode 100644 index 000000000..58c50b741 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-hydrogen.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:1 +msgid "Setting up Hydrogen (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:3 +msgid "The playbook can install and configure the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:5 +msgid "Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:7 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:9 +msgid "By default, this playbook installs Hydrogen on the `hydrogen.` subdomain (`hydrogen.example.com`) and requires you to create a CNAME record for `hydrogen`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:11 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:15 +msgid "To enable Hydrogen, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:21 +msgid "Adjusting the Hydrogen URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:23 +msgid "By tweaking the `matrix_client_hydrogen_hostname` and `matrix_client_hydrogen_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-hydrogen.md:25 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:36 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Hydrogen domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:38 +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-hydrogen.md:40 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:42 +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-hydrogen.md:49 +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-hydrogen.md:51 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po new file mode 100644 index 000000000..29b81d345 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-client-schildichat-web.po @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:1 +msgid "Setting up SchildiChat Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:3 +msgid "The playbook can install and configure the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:5 +msgid "SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with some extras and tweaks. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:7 +msgid "💡 **Note**: the latest version of SchildiChat Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Application, you can consider using it from there:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:9 +msgid "[app.schildi.chat](https://app.schildi.chat/), hosted by the [SchildiChat](https://schildi.chat/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:13 +msgid "By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to create a CNAME record for `schildichat`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:19 +msgid "To enable SchildiChat Web, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:25 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:27 +msgid "You can change the look of SchildiChat Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:29 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:31 +msgid "To pull the themes from the `element-themes` project and use them for your SchildiChat Web instance, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:37 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_schildichat_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:39 +msgid "Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:41 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:43 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:50 +msgid "If you define your own themes with it and set `matrix_client_schildichat_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:52 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:54 +msgid "Adjusting the SchildiChat Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:56 +msgid "By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_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-schildichat-web.md:58 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:69 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:71 +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-schildichat-web.md:73 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:75 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:77 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:79 +msgid "`roles/custom/matrix-client-schildichat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:80 +msgid "`roles/custom/matrix-client-schildichat/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_schildichat_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:82 +msgid "For example, to override some SchildiChat Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:102 +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-schildichat-web.md:109 +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-schildichat-web.md:111 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduit.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduit.po new file mode 100644 index 000000000..ce1b9fbe1 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduit.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-conduit.md:1 +msgid "Configuring Conduit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:3 +msgid "The playbook can install and configure the [Conduit](https://conduit.rs) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:5 +msgid "See the project's [documentation](https://docs.conduit.rs/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:9 +msgid "💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:19 +msgid "To use Conduit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:27 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:29 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:31 +msgid "`roles/custom/matrix-conduit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:32 +msgid "`roles/custom/matrix-conduit/templates/conduit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:34 +msgid "If you'd like to have your own different configuration, feel free to copy and paste the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) and then change the specific host's `vars.yml` file like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:40 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:42 +msgid "Since it is difficult to create the first user account on Conduit (see [famedly/conduit#276](https://gitlab.com/famedly/conduit/-/issues/276) and [famedly/conduit#354](https://gitlab.com/famedly/conduit/-/merge_requests/354)) and it does not support [registering users](registering-users.md) (via the command line or via the playbook) like Synapse and Dendrite do, we recommend the following procedure:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:44 +msgid "Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:45 +msgid "Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` — see [Installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:46 +msgid "Create your first user via Element Web or any other client which supports creating users" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:47 +msgid "Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml`" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:48 +msgid "Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:49 +msgid "You can now use your server safely. Additional users can be created by messaging the internal Conduit bot" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:51 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:53 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:55 +msgid "For Conduit, you will have to manually register appservices using the the [register-appservice](https://gitlab.com/famedly/conduit/-/blob/next/APPSERVICES.md) command." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:57 +msgid "Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`, then pass the content to Conduit:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduwuit.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduwuit.po new file mode 100644 index 000000000..bd93d6f8a --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-conduwuit.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2025. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-conduwuit.md:1 +msgid "Configuring conduwuit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:3 +msgid "The playbook can install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:5 +msgid "See the project's [documentation](https://conduwuit.puppyirl.gay/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:9 +msgid "💡 **Note**: conduwuit is a fork of [Conduit](./configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:19 +msgid "To use conduwuit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:33 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:35 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:37 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:39 +msgid "`roles/custom/matrix-conduwuit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:40 +msgid "`roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:42 +msgid "There are various Ansible variables that control settings in the `conduwuit.toml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:44 +msgid "If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://conduwuit.puppyirl.gay/configuration.html#environment-variables) using `matrix_conduwuit_environment_variables_extension`. For example:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:52 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:54 +msgid "Unlike other homeserver implementations (like Synapse and Dendrite), conduwuit does not support creating users via the command line or via the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:56 +msgid "If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:58 +msgid "This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:60 +msgid "The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:63 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:65 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:67 +msgid "For conduwuit, you will have to manually register appservices using the [`!admin appservices register` command](https://conduwuit.puppyirl.gay/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:69 +msgid "The server's bot account has a Matrix ID of `@conduit:example.com` (not `@conduwuit:example.com`!) due to conduwuit's historical legacy. Your first user account would already have been invited to an admin room with this bot." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:72 +msgid "Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:74 +msgid "Then, send its content to the existing admin room:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dendrite.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dendrite.po new file mode 100644 index 000000000..67a63aae8 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dendrite.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dendrite.md:1 +msgid "Configuring Dendrite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:3 +msgid "The playbook can install and configure the [Dendrite](https://github.com/element-hq/dendrite) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:5 +msgid "See the project's [documentation](https://element-hq.github.io/dendrite/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:9 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:11 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Dendrite). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:13 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:17 +msgid "To use Dendrite, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:23 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:25 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:27 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:29 +msgid "`roles/custom/matrix-dendrite/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:30 +msgid "`roles/custom/matrix-dendrite/templates/dendrite.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dendrite_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:32 +msgid "For example, to override some Dendrite settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:53 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:55 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:62 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:64 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dimension.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dimension.po new file mode 100644 index 000000000..00d28e025 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dimension.po @@ -0,0 +1,214 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dimension.md:1 +msgid "Setting up Dimension integration manager (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:3 +#: ../../../docs/configuring-playbook-dimension.md:109 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:4 +msgid "Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:5 +msgid "This playbook now supports running Dimension in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_homeserver_federation_enabled`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:7 +msgid "The playbook can install and configure the [Dimension](https://dimension.t2bot.io) integration manager for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:9 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-dimension/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:15 +msgid "Enabling the Dimension service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:17 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:19 +msgid "Dimension can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:23 +msgid "We recommend that you create a dedicated Matrix user for Dimension (`dimension` is a good username)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:33 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:35 +msgid "Dimension requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:37 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:40 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:42 +msgid "By default, this playbook installs Dimension on the `dimension.` subdomain (`dimension.example.com`) and requires you to create a CNAME record for `dimension`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:48 +msgid "To enable Dimension, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:56 +msgid "Define admin users" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:58 +msgid "To define admin users who can modify the integrations this Dimension supports, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:66 +msgid "The admin interface is accessible within Element Web by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element Web by the \"Add widgets, bridges, & bots\" link in the room information." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:68 +msgid "Adjusting the Dimension URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:70 +msgid "By tweaking the `matrix_dimension_hostname` and `matrix_dimension_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-dimension.md:72 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:83 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:85 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:87 +msgid "**Note**: while there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You'd need to serve Dimension at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:89 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:91 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:93 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:95 +msgid "`roles/custom/matrix-dimension/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:96 +msgid "`roles/custom/matrix-dimension/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dimension_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:98 +msgid "You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:102 +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-dimension.md:111 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:113 +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-dimension.md:115 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:117 +msgid "After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the room info button (`i`) on the top right corner, and then clicking the \"Add widgets, bridges, & bots\" link." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:119 +msgid "Set up a Jitsi widget" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:121 +msgid "By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:123 +msgid "To set up the widget, an admin user needs to configure the domain via the admin UI once Dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:125 +msgid "There is unfortunately no way to configure the widget via the playbook. See [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po new file mode 100644 index 000000000..40444b011 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-dynamic-dns.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:1 +msgid "Setting up Dynamic DNS (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:3 +msgid "The playbook can configure Dynamic DNS with [ddclient⁠](https://github.com/ddclient/ddclient) for you. It is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:5 +msgid "Most cloud providers / ISPs will charge you extra for a static IP address. If you're not hosting a highly reliable homeserver you can workaround this via dynamic DNS." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:9 +msgid "You'll need to get a username and password from your DNS provider. Please consult with the provider about how to retrieve them." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:13 +msgid "To enable dynamic DNS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:37 +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-dynamic-dns.md:39 +msgid "Additional Reading" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:41 +msgid "Additional resources:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:43 +msgid "https://matrix.org/docs/guides/free-small-matrix-server" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email.po new file mode 100644 index 000000000..dbeb7698b --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-email.md:1 +msgid "Adjusting email-sending settings (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:3 +msgid "By default, this playbook sets up an [Exim](https://www.exim.org/) email server through which all Matrix services send emails." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:5 +msgid "The email server would attempt to deliver emails directly to their final destination. This may or may not work, depending on your domain configuration (SPF settings, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:7 +msgid "By default, emails are sent from `matrix@matrix.example.com`, as specified by the `exim_relay_sender_address` playbook variable." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:9 +msgid "[!WARNING] On some cloud providers (Google Cloud, etc.), [port 25 is always blocked](https://cloud.google.com/compute/docs/tutorials/sending-mail/), so sending email directly from your server is not possible. You will need to [relay email through another SMTP server](#relaying-email-through-another-smtp-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:12 +msgid "💡 To improve deliverability, we recommend [relaying email through another SMTP server](#relaying-email-through-another-smtp-server) anyway." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:14 +msgid "Firewall settings" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:16 +msgid "No matter whether you send email directly (the default) or you relay email through another host (see how below), you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:20 +msgid "Relaying email through another SMTP server" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:22 +msgid "If you'd like to relay email through another SMTP server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:34 +msgid "**Note**: only the secure submission protocol (using `STARTTLS`, usually on port `587`) is supported. **SMTPS** (encrypted SMTP, usually on port `465`) **is not supported**." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:36 +msgid "Sending emails using Sendgrid" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:38 +msgid "An easy and free SMTP service to set up is [Sendgrid](https://sendgrid.com/). Its free tier allows for up to 100 emails per day to be sent." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:40 +msgid "To set it up, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:57 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:59 +msgid "If you're having trouble with email not being delivered, it may be useful to inspect the mailer logs." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:61 +msgid "To do so, log in to the server with SSH and run `journalctl -f -u matrix-exim-relay`." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email2matrix.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email2matrix.po new file mode 100644 index 000000000..b5a041a9c --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-email2matrix.po @@ -0,0 +1,277 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-email2matrix.md:1 +msgid "Setting up Email2Matrix (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:3 +msgid "**Note**: this component has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that component instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:5 +msgid "The playbook can install and configure [Email2Matrix](https://github.com/devture/email2matrix) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:7 +msgid "See the project's [documentation](https://github.com/devture/email2matrix/blob/master/docs/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:9 +msgid "Preparation" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:11 +msgid "Port availability" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:13 +msgid "Ensure that port 25 is available on your Matrix server and open in your firewall." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:15 +msgid "If you have `postfix` or some other email server software installed, you may need to manually remove it first (unless you need it, of course)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:17 +msgid "If you really need to run an email server on the Matrix machine for other purposes, it may be possible to run Email2Matrix on another port (with a configuration like `matrix_email2matrix_smtp_host_bind_port: \"127.0.0.01:2525\"`) and have your other email server relay messages there." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:19 +msgid "For details about using Email2Matrix alongside [Postfix](http://www.postfix.org/), see [here](https://github.com/devture/email2matrix/blob/master/docs/setup_with_postfix.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:23 +msgid "We recommend that you create a dedicated Matrix user for Email2Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:33 +msgid "Take note of the user's ID as it needs to be specified as `MatrixUserId` on your `inventory/host_vars/matrix.example.com/vars.yml` file later." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:35 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:37 +msgid "Email2Matrix requires an access token for the sender user to be able to send messages to the room. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:39 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:42 +msgid "Join to rooms as the sender user manually" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:44 +msgid "ℹ️ **Email2Matrix does not accept room invitations automatically**. To deliver messages to rooms, the sender user must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:46 +msgid "For each new room you would like the user to deliver messages to, invite the user to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:48 +msgid "Then, log in as the sender user using any Matrix client of your choosing, accept the room invitation from the user's account." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:50 +msgid "Make sure that you and the sender user are part of the same room and that the sender user has enough privileges in the room to be able to send messages there, then log out." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:52 +msgid "Take note of each room's room ID (different clients show the room ID in a different place). You'll need the room ID when [configuring the playbook](#adjusting-the-playbook-configuration) below." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:54 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:56 +msgid "To increase the chances that incoming emails reach your server, you can set up a `MX` record for `matrix.example.com` that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:62 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:64 +msgid "To enable Email2Matrix, add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_EMAIL2MATRIX1_HERE` and `ACCESS_TOKEN_FOR_EMAIL2MATRIX2_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:90 +msgid "where:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:92 +msgid "MailboxName — local-part of the email address, through which emails are bridged to the room whose ID is defined with MatrixRoomId" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:93 +msgid "MatrixRoomId — internal ID of the room, to which received emails are sent as Matrix message" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:94 +msgid "MatrixHomeserverUrl — URL of your Matrix homeserver, through which to send Matrix messages. You can also set `MatrixHomeserverUrl` to the container URL where your homeserver's Client-Server API lives by using the `{{ matrix_addons_homeserver_client_api_url }}` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:95 +msgid "MatrixUserId — the full ID of the sender user which sends bridged messages to the room. On this configuration it is `@email2matrix1:example.com` and `@email2matrix2:example.com` (where `example.com` is your base domain, not the `matrix.` domain)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:96 +msgid "MatrixAccessToken — sender user's access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:97 +msgid "IgnoreSubject — if set to \"true\", the subject is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:98 +msgid "IgnoreBody — if set to \"true\", the message body is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:99 +msgid "SkipMarkdown — if set to \"true\", emails are bridged as plain text Matrix message instead of Markdown (actually HTML)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:101 +msgid "Refer to the official documentation [here](https://github.com/devture/email2matrix/blob/master/docs/configuration.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:103 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:105 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:107 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:109 +msgid "`roles/custom/matrix-email2matrix/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:111 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:113 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:120 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:122 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service email2matrix` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:124 +msgid "`just install-service email2matrix` 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 "" + +#: ../../../docs/configuring-playbook-email2matrix.md:126 +msgid "After installation, you may wish to send a test email to the email address assigned to `mailbox1` (default: `mailbox1@matrix.example.com`) to make sure that Email2Matrix works as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:128 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:130 +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-email2matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:132 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:134 +msgid "If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-etherpad.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-etherpad.po new file mode 100644 index 000000000..8610d48fe --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-etherpad.po @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-etherpad.md:1 +msgid "Setting up Etherpad (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:3 +msgid "The playbook can install and configure [Etherpad](https://etherpad.org) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:5 +msgid "Etherpad is an open source collaborative text editor. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:7 +msgid "When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:11 +msgid "By default, this playbook installs Etherpad on the `etherpad.` subdomain (`etherpad.example.com`) and requires you to create a CNAME record for `etherpad`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:17 +msgid "To enable Etherpad, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:27 +msgid "Adjusting the Etherpad URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:29 +msgid "By tweaking the `etherpad_hostname` and `etherpad_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-etherpad.md:31 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:44 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:46 +msgid "Configure the default text (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:48 +msgid "You can also edit the default text on a new pad with the variable `etherpad_default_pad_text`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:50 +msgid "To do so, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:64 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:66 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:68 +msgid "[etherpad role](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/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 `etherpad_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:70 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:72 +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-etherpad.md:79 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:81 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the Etherpad admin user (`etherpad_admin_username`)." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:83 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:85 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:87 +msgid "If you change the Etherpad admin user's password (`etherpad_admin_password` in your `vars.yml` file) subsequently, the admin user's credentials on the homeserver won't be updated automatically. If you'd like to change the admin user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `etherpad_admin_password` to let the admin user know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:91 +msgid "The Etherpad UI should be available at `https://etherpad.example.com`, while the admin UI (if enabled) should then be available at `https://etherpad.example.com/admin`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:93 +msgid "If you've [decided on another hostname or path-prefix](#adjusting-the-etherpad-url-optional) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before using it." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:95 +msgid "Managing / Deleting old pads" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:97 +msgid "If you want to manage and remove old unused pads from Etherpad, you will first need to create the Etherpad admin user as described above." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:99 +msgid "After logging in to the admin web UI, go to the plugin manager page, and install the `adminpads2` plugin." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:101 +msgid "Once the plugin is installed, you should have a \"Manage pads\" section in the UI." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:103 +msgid "Integrating a Etherpad widget in a room" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:105 +msgid "**Note**: this is how it works in Element Web. It might work quite similar with other clients:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:107 +msgid "To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-external-postgres.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-external-postgres.po new file mode 100644 index 000000000..45c7131eb --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-external-postgres.po @@ -0,0 +1,49 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-external-postgres.md:1 +msgid "Using an external PostgreSQL server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:3 +msgid "By default, this playbook would set up a PostgreSQL database server on your machine, running in a Docker container. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:5 +msgid "**Note**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** — you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:7 +msgid "If you'd like to use an external Postgres server that you manage, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:23 +msgid "The database (as specified in `matrix_synapse_database_database`) must exist and be accessible with the given credentials. It must be empty or contain a valid Synapse database. If empty, Synapse would populate it the first time it runs." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:25 +msgid "**Note**: the external server that you specify in `matrix_synapse_database_host` must be accessible from within the `matrix-synapse` Docker container (and possibly other containers too). This means that it either needs to be a publicly accessible hostname or that it's a hostname on the same Docker network where all containers installed by this playbook run (a network called `matrix` by default). Using a local PostgreSQL instance on the host (running on the same machine, but not in a container) is not possible." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:27 +msgid "The connection to your external Postgres server **will not be SSL encrypted**, as [we don't support that yet](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/89)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-federation.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-federation.po new file mode 100644 index 000000000..994cfd58c --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-federation.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-federation.md:1 +msgid "Controlling Matrix federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:3 +msgid "By default, your server federates with the whole Matrix network. That is, people on your server can communicate with people on any other Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:5 +msgid "**Note**: in the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com` and set up [server delegation](howto-server-delegation.md) / redirection. Without a proper configuration, your server will effectively not be part of the Matrix network. If you find your server is not federated, make sure to [check whether services work](maintenance-checking-services.md) and your server is properly delegated." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:7 +msgid "Federating only with select servers" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:9 +msgid "To make your server only federate with servers of your choosing, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:17 +msgid "If you wish to disable federation, you can do that with an empty list (`[]`), or better yet by completely disabling federation (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:19 +msgid "Exposing the room directory over federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:21 +msgid "By default, your server's public rooms directory is not exposed to other servers via federation." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:23 +msgid "To expose it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:29 +msgid "Disabling federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:31 +msgid "To completely disable federation, isolating your server from the rest of the Matrix network, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:37 +msgid "With that, your server's users will only be able to talk among themselves, but not to anyone who is on another server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:39 +msgid "**Disabling federation does not necessarily disable the federation port** (`8448`). Services like [Dimension](configuring-playbook-dimension.md) and [ma1sd](configuring-playbook-ma1sd.md) normally rely on `openid` APIs exposed on that port. Even if you disable federation and only if necessary, we may still be exposing the federation port and serving the `openid` APIs there. To override this and completely disable Synapse's federation port use:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:51 +msgid "Changing the federation port from 8448 to a different port to use a CDN that only accepts 443/80 ports" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:53 +msgid "Why? This change could be useful for people running small Synapse instances on small severs/VPSes to avoid being impacted by a simple DOS/DDOS when bandwidth, RAM, an CPU resources are limited and if your hosting provider does not provide a DOS/DDOS protection." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:55 +msgid "To make it possible to proxy the federation through a CDN such as CloudFlare or any other, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:66 +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 without issues.**" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-jitsi.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-jitsi.po new file mode 100644 index 000000000..fc1cf86e6 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-jitsi.po @@ -0,0 +1,505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-jitsi.md:1 +msgid "Setting up the Jitsi video-conferencing platform (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:3 +msgid "The playbook can install and configure the [Jitsi](https://jitsi.org/) video-conferencing platform for you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:5 +msgid "Jitsi can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:7 +msgid "See the project's [documentation](https://jitsi.github.io/handbook/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:9 +msgid "**Note**: the configuration by the playbook is similar to the one by [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet). You can refer to the official documentation for Docker deployment [here](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:13 +msgid "You may need to open the following ports to your server:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:15 +msgid "`4443/tcp` — RTP media fallback over TCP" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:16 +msgid "`10000/udp` — RTP media over UDP. Depending on your firewall/NAT configuration, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`jitsi_jvb_stun_servers`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/defaults/main.yml))." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:18 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:20 +msgid "By default, this playbook installs Jitsi on the `jitsi.` subdomain (`jitsi.example.com`) and requires you to create a CNAME record for `jitsi`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:22 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:26 +msgid "To enable Jitsi, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:32 +msgid "Adjusting the Jitsi URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:34 +msgid "By tweaking the `jitsi_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:43 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Jitsi domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:45 +msgid "Configure Jitsi authentication and guests mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:47 +msgid "By default the Jitsi instance does not require for anyone to log in, and is open to use without an account. To control who is allowed to start meetings on your Jitsi instance, you'd need to enable Jitsi's authentication and optionally guests mode." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:49 +msgid "Authentication type must be one of them: `internal` (default), `jwt`, `matrix` or `ldap`. Currently, only `internal`, `matrix` and `ldap` mechanisms are supported by the [Jitsi role](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:51 +msgid "With authentication enabled, all meetings have to be started by a registered user. After the meeting is started by that user, then guests are free to join. If the registered user is not yet present, the guests are put on hold in individual waiting rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:53 +msgid "**Note**: authentication is not tested by the playbook's self-checks. We therefore recommend that you would make sure by yourself that authentication is configured properly. To test it, start a meeting at `jitsi.example.com` on your browser." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:55 +msgid "Authenticate using Jitsi accounts: Auth-Type `internal` (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:57 +msgid "The default authentication mechanism is `internal` auth, which requires a Jitsi account to have been configured. This is a recommended method, as it also works in federated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:59 +msgid "To enable authentication with a Jitsi account, add the following configuration to your `vars.yml` file. Make sure to replace `USERNAME_…` and `PASSWORD_…` with your own values." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:71 +msgid "**Note**: as Jitsi account removal function is not integrated into the playbook, these accounts will not be able to be removed from the Prosody server automatically, even if they are removed from your `vars.yml` file subsequently." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:73 +msgid "Authenticate using Matrix OpenID: Auth-Type `matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:75 +msgid "[!WARNING] This breaks the Jitsi instance on federated rooms probably and does not allow sharing conference links with guests." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:78 +msgid "This authentication method requires [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service), which can be installed using this [playbook](configuring-playbook-user-verification-service.md). It verifies against Matrix openID, and requires a user-verification-service to run." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:80 +msgid "To enable authentication with Matrix OpenID, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:88 +msgid "For more information see also [https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification](https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:90 +msgid "Authenticate using LDAP: Auth-Type `ldap`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:92 +msgid "To enable authentication with LDAP, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:112 +msgid "For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:114 +msgid "Configure `JVB_ADVERTISE_IPS` for running behind NAT or on a LAN environment (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:116 +msgid "When running Jitsi in a LAN environment, or on the public Internet via NAT, the `JVB_ADVERTISE_IPS` enviornment variable should be set." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:118 +msgid "This variable allows to control which IP addresses the JVB will advertise for WebRTC media traffic. It is necessary to set it regardless of the use of a reverse proxy, since it's the IP address that will receive the media (audio / video) and not HTTP traffic, hence it's oblivious to the reverse proxy." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:120 +msgid "If your users are coming in over the Internet (and not over LAN), this will likely be your public IP address. If this is not set up correctly, calls will crash when more than two users join a meeting." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:122 +msgid "To set the variable, add the following configuration to your `vars.yml` file. Make sure to replace `LOCAL_IP_ADDRESS_OF_THE_HOST_HERE` with a proper value." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:129 +msgid "Check [the official documentation](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/#running-behind-nat-or-on-a-lan-environment) for more details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:131 +msgid "Set a maximum number of participants on a Jitsi conference (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:133 +msgid "You can set a maximum number of participants allowed to join a Jitsi conference. By default the number is not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:135 +msgid "To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:141 +msgid "Enable Gravatar (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:143 +msgid "In the default Jisti Meet configuration, `gravatar.com` is enabled as an avatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:145 +msgid "Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our default configuration has disabled the Gravatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:147 +msgid "To enable the Gravatar service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:153 +msgid "[!WARNING] This will result in third party request leaking data to the Gravatar Service (`gravatar.com`, unless configured otherwise). Besides metadata, the Matrix user_id and possibly the room ID (via `referrer` header) will be also sent to the third party." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:156 +msgid "Fine tune Jitsi (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:158 +msgid "If you'd like to have Jitsi save up resources, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:171 +msgid "These configurations:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:173 +msgid "**limit the maximum video resolution**, to save up resources on both server and clients" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:174 +msgid "**suspend unused video layers** until they are requested again, to save up resources on both server and clients. Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:175 +msgid "**disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:176 +msgid "**limit the number of video feeds forwarded to each client**, to save up resources on both server and clients. As clients’ bandwidth and CPU may not bear the load, use this setting to avoid lag and crashes. This feature is available by default on other webconference applications such as Office 365 Teams (the number is limited to 4). Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/5ff195985edf46c9399dcf263cb07167f0a2c724/doc/allocation.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:178 +msgid "Example configurations" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:180 +msgid "Here is an example set of configurations for running a Jitsi instance with:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:182 +msgid "authentication using a Jitsi account (username: `US3RNAME`, password: `passw0rd`)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:183 +msgid "guests: allowed" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:184 +msgid "maximum participants: 6 people" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:185 +msgid "fine tuning with the configurations presented above" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:186 +msgid "other miscellaneous options (see the official Jitsi documentation [here](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-configuration) and [here](https://jitsi.github.io/handbook/docs/user-guide/user-guide-advanced))" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:206 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:208 +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-jitsi.md:215 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:217 +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-jitsi.md:219 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:221 +msgid "You can use the self-hosted Jitsi server in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:223 +msgid "**by adding a widget to a room via Element Web** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:225 +msgid "**directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:227 +msgid "Set up additional JVBs for more video-conferences (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:229 +msgid "By default, a single JVB ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)) is deployed on the same host as the Matrix server. To allow more video-conferences to happen at the same time, you'd need to provision additional JVB services on other hosts." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:231 +msgid "These settings below will allow you to provision those extra JVB instances. The instances will register themselves with the Prosody service, and be available for Jicofo to route conferences too." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:233 +msgid "Add the `jitsi_jvb_servers` section on `hosts` file" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:235 +msgid "For additional JVBs, you'd need to add the section titled `jitsi_jvb_servers` on the ansible `hosts` file with the details of the JVB hosts as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:242 +msgid "Make sure to replace `jvb-2.example.com` with your hostname for the JVB and `192.168.0.2` with your JVB's external IP address, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:244 +msgid "You could add JVB hosts as many as you would like. When doing so, add lines with the details of them." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:246 +msgid "Prepare `vars.yml` files for additional JVBs" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:248 +msgid "If the main server is `matrix.example.com` and the additional JVB instance is going to be deployed at `jvb-2.example.com`, the variables for the latter need to be specified on `vars.yml` in its directory (`inventory/host_vars/jvb-2.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:250 +msgid "Note that most (if not all) variables are common for both servers." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:252 +msgid "If you are setting up multiple JVB instances, you'd need to create `vars.yml` files for each of them too (`inventory/host_vars/jvb-3.example.com/vars.yml`, for example)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:254 +msgid "Set the server ID to each JVB" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:256 +msgid "Each JVB requires a server ID to be set, so that it will be uniquely identified. The server ID allows Jitsi to keep track of which conferences are on which JVB." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:258 +msgid "The server ID can be set with the variable `jitsi_jvb_server_id`. It will end up as the `JVB_WS_SERVER_ID` environment variables in the JVB docker container." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:260 +msgid "To set the server ID to `jvb-2`, add the following configuration to either `hosts` or `vars.yml` files (adapt to your needs)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:262 +msgid "On `hosts`:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:264 +msgid "Add `jitsi_jvb_server_id=jvb-2` after your JVB's external IP addresses as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:272 +msgid "On `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:278 +msgid "Alternatively, you can specify the variable as a parameter to [the ansible command](#run-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:280 +msgid "**Note**: the server ID `jvb-1` is reserved for the JVB instance running on the Matrix host, therefore should not be used as the ID of an additional JVB host." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:282 +msgid "Set colibri WebSocket port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:284 +msgid "The additional JVBs will need to expose the colibri WebSocket port." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:286 +msgid "To expose the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:292 +msgid "Set Prosody XMPP server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:294 +msgid "The JVB will also need to know the location of the Prosody XMPP server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:296 +msgid "Similar to the server ID (`jitsi_jvb_server_id`), this can be set with the variable for the JVB by using the variable `jitsi_xmpp_server`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:298 +msgid "Set the Matrix domain" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:300 +msgid "The Jitsi Prosody container is deployed on the Matrix server by default, so the value can be set to the Matrix domain. To set the value, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:306 +msgid "Set an IP address of the Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:308 +msgid "Alternatively, the IP address of the Matrix server can be set. This can be useful if you would like to use a private IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:310 +msgid "To set the IP address of the Matrix server, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:316 +msgid "Expose XMPP port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:318 +msgid "By default, the Matrix server does not expose the XMPP port (`5222`); only the XMPP container exposes it internally inside the host. This means that the first JVB (which runs on the Matrix server) can reach it but the additional JVBs cannot. Therefore, the XMPP server needs to expose the port, so that the additional JVBs can connect to it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:320 +msgid "To expose the port and have Docker forward the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:326 +msgid "Reverse-proxy with Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:328 +msgid "To make Traefik reverse-proxy to these additional JVBs, add the following configuration to your main `vars.yml` file (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:364 +msgid "Run the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:366 +msgid "After configuring `hosts` and `vars.yml` files, run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:372 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:374 +msgid "`Error: Account creation/modification not supported`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:376 +msgid "If you get an error like `Error: Account creation/modification not supported` with authentication enabled, it's likely that you had previously installed Jitsi without auth/guest support." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:378 +msgid "In this case, you should consider to rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:380 +msgid "Rebuilding your Jitsi installation" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:382 +msgid "If you ever run into any trouble or if you have changed configuration (`jitsi_*` variables) too much, you can rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:384 +msgid "We normally don't recommend manual intervention, but Jitsi services tend to generate a lot of configuration files, and it is often wise to start afresh setting the services up, rather than messing with the existing configuration files. Since not all of those files are managed by Ansible (at least not yet), you may sometimes need to delete them by yourself manually." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:386 +msgid "To rebuild your Jitsi configuration, follow the procedure below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:388 +msgid "run this command locally to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:389 +msgid "log in the server with SSH" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:390 +msgid "run this command remotely to remove all Jitsi configuration & data: `rm -rf /matrix/jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:391 +msgid "run this command locally to set up Jitsi anew and restart services: `just install-service jitsi`" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po new file mode 100644 index 000000000..2d335b2bf --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ldap-auth.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ldap-auth.md:1 +msgid "Setting up the LDAP authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:3 +msgid "The playbook can install and configure the [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) LDAP Auth password provider for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-synapse-ldap3/blob/main/README.rst) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:7 +msgid "If you decide that you'd like to let this playbook install it for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:24 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:26 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:32 +msgid "Using ma1sd Identity Server for authentication (not recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:34 +msgid "The playbook can instead configure [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for LDAP authentication. However, **we recommend not bothering with installing it** as ma1sd has been unmaintained for years." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:36 +msgid "If you wish to install it anyway, consult the [ma1sd Identity Server configuration](configuring-playbook-ma1sd.md#authentication)." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:38 +msgid "Handling user registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:40 +msgid "If you wish for users to also be able to make new registrations against LDAP, you may **also** wish to [set up the ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ma1sd.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ma1sd.po new file mode 100644 index 000000000..94ce2e465 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ma1sd.po @@ -0,0 +1,225 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ma1sd.md:1 +msgid "Setting up ma1sd Identity Server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:3 +msgid "**⚠️Note**: ma1sd itself has also been unmaintained for years (the latest commit and release being from 2021). The role of identity servers in the Matrix specification also has an uncertain future. **We recommend not bothering with installing it unless it's the only way you can do what you need to do**. For example, certain things like LDAP integration can also be implemented via [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:5 +msgid "The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you. It is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:7 +msgid "ma1sd is used for 3PIDs (3rd party identifiers like E-mail and phone numbers) and some [enhanced features](https://github.com/ma1uta/ma1sd/#features). It is private by default, potentially at the expense of user discoverability." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:9 +msgid "See the project's [documentation](https://github.com/ma1uta/ma1sd/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:15 +msgid "Enabling the ma1sd service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:17 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:19 +msgid "To make the ma1sd Identity Server enable its federation features, set up a SRV record that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:21 +msgid "Name: `_matrix-identity._tcp` (use this text as-is)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:22 +msgid "Content: `10 0 443 matrix.example.com` (replace `example.com` with your own)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:24 +msgid "See [ma1sd's documentation](https://github.com/ma1uta/ma1sd/wiki/mxisd-and-your-privacy#choices-are-never-easy) for information on the privacy implications of setting up this SRV record." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:26 +msgid "When setting up a SRV record, if you are asked for a service and protocol instead of a hostname split the host value from the table where the period is. For example use service as `_matrix-identity` and protocol as `_tcp`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:28 +msgid "**Note**: This `_matrix-identity._tcp` SRV record for the identity server is different from the `_matrix._tcp` that can be used for Synapse delegation. See [howto-server-delegation.md](howto-server-delegation.md) for more information about delegation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:30 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:32 +msgid "To enable ma1sd, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:38 +msgid "Matrix.org lookup forwarding" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:40 +msgid "To ensure maximum discovery, you can make your identity server also forward lookups to the central matrix.org Identity server (at the cost of potentially leaking all your contacts information)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:42 +msgid "Enabling this is discouraged and you'd better [learn more](https://github.com/ma1uta/ma1sd/blob/master/docs/features/identity.md#lookups) before proceeding." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:44 +msgid "To enable matrix.org forwarding, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:50 +msgid "Additional features" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:52 +msgid "What this playbook configures for your is some bare minimum Identity Server functionality, so that you won't need to rely on external 3rd party services." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:54 +msgid "A few variables can be toggled in this playbook to alter the ma1sd configuration that gets generated." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:56 +msgid "Still, ma1sd can do much more. You can refer to the [ma1sd website](https://github.com/ma1uta/ma1sd) for more details and configuration options." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:58 +msgid "To use a more custom configuration, you can define a `matrix_ma1sd_configuration_extension_yaml` string variable and put your configuration in it. To learn more about how to do this, refer to the information about `matrix_ma1sd_configuration_extension_yaml` in the [default variables file](../roles/custom/matrix-ma1sd/defaults/main.yml) of the ma1sd component." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:60 +msgid "Customizing email templates" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:62 +msgid "If you'd like to change the default email templates used by ma1sd, take a look at the `matrix_ma1sd_threepid_medium_email_custom_` variables (in the `roles/custom/matrix-ma1sd/defaults/main.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:64 +msgid "ma1sd-controlled Registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:66 +msgid "To use the [Registration](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) feature of ma1sd, you can make use of the following variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:68 +msgid "`matrix_synapse_enable_registration` — to enable user-initiated registration in Synapse" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:70 +msgid "`matrix_synapse_enable_registration_captcha` — to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring-captcha.md) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:72 +msgid "`matrix_synapse_registrations_require_3pid` — a list of 3pid types (among `'email'`, `'msisdn'`) required by the Synapse server for registering" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:74 +msgid "variables prefixed with `matrix_ma1sd_container_labels_` (e.g. `matrix_ma1sd_container_labels_matrix_client_3pid_registration_enabled`) — to configure the Traefik reverse-proxy to capture and send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:76 +msgid "`matrix_ma1sd_configuration_extension_yaml` — to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:78 +msgid "**Note**: For this to work, either the homeserver needs to [federate](configuring-playbook-federation.md) or the `openid` APIs need to exposed on the federation port. When federation is disabled and ma1sd is enabled, we automatically expose the `openid` APIs (only!) on the federation port. Make sure the federation port (usually `https://matrix.example.com:8448`) is whitelisted in your firewall (even if you don't actually use/need federation)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:80 +msgid "Authentication" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:82 +msgid "[Authentication](https://github.com/ma1uta/ma1sd/blob/master/docs/features/authentication.md) provides the possibility to use your own [Identity Stores](https://github.com/ma1uta/ma1sd/blob/master/docs/stores/README.md) (for example LDAP) to authenticate users on your Homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:84 +msgid "To enable authentication against an LDAP server, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:104 +msgid "Example: SMS verification" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:106 +msgid "If your use case requires mobile verification, it is quite simple to integrate ma1sd with [Twilio](https://www.twilio.com/), an online telephony services gateway. Their prices are reasonable for low-volume projects and integration can be done with the following configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:120 +msgid "Example: Open Registration for every Domain" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:122 +msgid "If you want to open registration for any domain, you have to setup the allowed domains with ma1sd's `blacklist` and `whitelist`. The default behavior when neither the `blacklist`, nor the `whitelist` match, is to allow registration. Beware: you can't block toplevel domains (aka `.xy`) because the internal architecture of ma1sd doesn't allow that." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:136 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:138 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:145 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:147 +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-ma1sd.md:149 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:151 +msgid "If email address validation emails sent by ma1sd are not reaching you, you should look into [Adjusting email-sending settings](configuring-playbook-email.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:153 +msgid "If you'd like additional logging information, temporarily enable verbose logging for ma1sd." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:155 +msgid "To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po new file mode 100644 index 000000000..776945591 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-authentication-service.po @@ -0,0 +1,622 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:1 +msgid "Setting up Matrix Authentication Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:3 +msgid "The playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) — a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:5 +msgid "Matrix Authentication Service is an implementation of [MSC3861: Next-generation auth for Matrix, based on OAuth 2.0/OIDC](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) and still work in progress, tracked at the [areweoidcyet.com](https://areweoidcyet.com/) website." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:7 +msgid "**Before going through with starting to use Matrix Authentication Service**, make sure to read:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:9 +msgid "the [Reasons to use Matrix Authentication Service](#reasons-to-use-matrix-authentication-service) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:10 +msgid "the [Expectations](#expectations) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:11 +msgid "the [FAQ section on areweoidcyet.com](https://areweoidcyet.com/#faqs)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:13 +msgid "**If you've already been using Synapse** and have user accounts in its database, you can [migrate to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:15 +msgid "Reasons to use Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:17 +msgid "You may be wondering whether you should make the switch to Matrix Authentication Service (MAS) or keep using your existing authentication flow via Synapse (password-based or [OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)-enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:19 +msgid "Matrix Authentication Service is **still an experimental service** and **not a default** for this Ansible playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:21 +msgid "The [Expectations](#expectations) section contains a list of what works and what doesn't (**some services don't work with MAS yet**), as well as the **relative irreversability** of the migration process." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:23 +msgid "Below, we'll try to **highlight some potential reasons for switching** to Matrix Authentication Service:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:25 +msgid "To use SSO in [Element X](https://element.io/blog/element-x-ignition/). The old [Synapse OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) login flow is only supported in old Element clients and will not be supported in Element X. Element X will only support the new SSO-based login flow provided by MAS, so if you want to use SSO with Element X, you will need to switch to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:27 +msgid "To help drive adoption of the \"Next-generation auth for Matrix\" by switching to what's ultimately coming anyway" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:29 +msgid "To help discover (and potentially fix) MAS integration issues with this Ansible playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:31 +msgid "To help discover (and potentially fix) MAS integration issues with various other Matrix components (bridges, bots, clients, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:33 +msgid "To reap some of the security benefits that Matrix Authentication Service offers, as outlined in the [Better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/) article." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:35 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:37 +msgid "⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:39 +msgid "⚠️ **email sending** configured (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:41 +msgid "❌ **disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:43 +msgid "Expectations" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:45 +msgid "This section details what you can expect when switching to the Matrix Authentication Service (MAS)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:47 +msgid "❌ **Synapse password providers will need to be disabled**. You can no longer use [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc. When the authentication flow is handled by MAS (not by Synapse anymore), it doesn't make sense to extend the Synapse authentication flow with additional modules. Many bridges used to rely on shared-secret-auth for doing double-puppeting (impersonating other users), but most (at least the mautrix bridges) nowadays use [Appservice Double Puppet](./configuring-playbook-appservice-double-puppet.md) as a better alternative. Older/maintained bridges may still rely on shared-secret-auth, as do other services like [matrix-corporal](./configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:49 +msgid "❌ Certain **tools like [synapse-admin](./configuring-playbook-synapse-admin.md) do not have full compatibility with MAS yet**. synapse-admin already supports [login with access token](https://github.com/etkecc/synapse-admin/pull/58), browsing users (which Synapse will internally fetch from MAS) and updating user avatars. However, editing users (passwords, etc.) now needs to happen directly against MAS using the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html), which synapse-admin cannot interact with yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:51 +msgid "❌ **Some services experience issues when authenticating via MAS**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:53 +msgid "[Postmoogle](./configuring-playbook-bridge-postmoogle.md) works the first time around, but it consistently fails after restarting:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:55 +msgid "cannot initialize matrix bot error=\"olm account is marked as shared, keys seem to have disappeared from the server\"" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:57 +msgid "[matrix-reminder-bot](./configuring-playbook-bot-matrix-reminder-bot.md) fails to start (see [element-hq/matrix-authentication-service#3439](https://github.com/element-hq/matrix-authentication-service/issues/3439))" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:58 +msgid "Other services may be similarly affected. This list is not exhaustive." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:60 +msgid "❌ **Encrypted appservices** do not work yet (related to [MSC4190](https://github.com/matrix-org/matrix-spec-proposals/pull/4190) and [PR 17705 for Synapse](https://github.com/element-hq/synapse/pull/17705)), so all bridges/bots that rely on encryption will fail to start (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3658) for Hookshot). You can use these bridges/bots only if you **keep end-to-bridge encryption disabled** (which is the default setting)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:62 +msgid "⚠️ **You will need to have email sending configured** (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:64 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) is **possible**, but requires **some playbook-assisted manual work**. Migration is **reversible with no or minor issues if done quickly enough**, but as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:66 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) does not currently seem to preserve the \"admin\" flag for users (as found in the Synapse database). All users are imported as non-admin — see [element-hq/matrix-authentication-service#3440](https://github.com/element-hq/matrix-authentication-service/issues/3440). You may need update the Matrix Authentication Service's database manually and adjust the `can_request_admin` column in the `users` table to `true` for users that need to be administrators (e.g. `UPDATE users SET can_request_admin = true WHERE username = 'someone';`)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:68 +msgid "⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependant on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:70 +msgid "⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:72 +msgid "⚠️ A [compatibility layer](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) is installed — all `/_matrix/client/*/login` (etc.) requests will be routed to MAS instead of going to the homeserver. This is done both publicly (e.g. `https://matrix.example.com/_matrix/client/*/login`) and on the internal Traefik entrypoint (e.g. `https://matrix-traefik:8008/_matrix/client/*/login`) which helps addon services reach the homeserver's Client-Server API. You typically don't need to do anything to make this work, but it's good to be aware of it, especially if you have a [custom webserver setup](./configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:74 +msgid "✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:76 +msgid "✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element Web](./configuring-playbook-client-element-web.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:78 +msgid "✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:80 +msgid "✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:82 +msgid "✅ Users that are prepared by the playbook (for bots, bridges, etc.) will continue to be registered automatically as expected. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:84 +msgid "Installation flows" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:86 +msgid "New homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:88 +msgid "For new homeservers (which don't have any users in their Synapse database yet), follow the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions and then proceed with [Installing](#installing)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:90 +msgid "Existing homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:92 +msgid "Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:94 +msgid "For existing Synapse homeservers:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:96 +msgid "when following the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions, make sure to **disable the integration between Synapse and MAS** by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line as described in the [Marking an existing homeserver for migration](#marking-an-existing-homeserver-for-migration) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:98 +msgid "then follow the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) instructions to perform the installation and migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:100 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:102 +msgid "By default, this playbook installs the Matrix Authentication Service on the `matrix.` subdomain, at the `/auth` path (https://matrix.example.com/auth). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:104 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-authentication-service-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:106 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:108 +msgid "To enable Matrix Authentication Service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:122 +msgid "In the sub-sections that follow, we'll cover some additional configuration options that you may wish to adjust." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:124 +msgid "There are many other configuration options available. Consult the [`defaults/main.yml` file](../roles/custom/matrix-authentication-service/defaults/main.yml) in the [matrix-authentication-service role](../roles/custom/matrix-authentication-service/) to discover them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:126 +msgid "Adjusting the Matrix Authentication Service URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:128 +msgid "By tweaking the `matrix_authentication_service_hostname` and `matrix_authentication_service_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-matrix-authentication-service.md:130 +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:157 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:138 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Matrix Authentication Service domain (`auth.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:140 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:142 +msgid "Marking an existing homeserver for migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:144 +msgid "The [configuration above](#adjusting-the-playbook-configuration) instructs existing users wishing to migrate to add `matrix_authentication_service_migration_in_progress: true` to their configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:146 +msgid "This is done temporarily. The migration steps are described in more detail in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:148 +msgid "Upstream OAuth2 configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:150 +msgid "To make Matrix Authentication Service delegate to an existing upstream OAuth 2.0/OIDC provider, you can use its [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:152 +msgid "The playbook exposes a `matrix_authentication_service_config_upstream_oauth2_providers` variable for controlling this setting." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:269 +msgid "💡 Refer to the [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers) for the most up-to-date schema and example for providers. The value shown above here may be out of date." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:271 +msgid "⚠️ The syntax for existing [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) is slightly different, so you will need to adjust your configuration when switching from Synapse OIDC to MAS upstream OAuth2." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:273 +msgid "⚠️ When [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) which contains OIDC-sourced users, you will need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:275 +msgid "[Configure upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:276 +msgid "go through the [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) process" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:277 +msgid "remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:279 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:281 +msgid "Now that you've [adjusted the playbook configuration](#adjusting-the-playbook-configuration) and [your DNS records](#adjusting-dns-records), you can run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:288 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:290 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:292 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:294 +msgid "If you're in the process of migrating an existing Synapse homeserver to MAS, you should now follow the rest of the steps in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:296 +msgid "💡 After installation, you should [verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:298 +msgid "Migrating an existing Synapse homeserver to Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:300 +msgid "Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:302 +msgid "Migration is done via a tool called `syn2mas`, which the playbook could run for you (in a container)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:304 +msgid "The installation + migration steps are like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:306 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) to **disable the integration between the homeserver and MAS**. This is done by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:308 +msgid "Perform the initial [installation](#installing). At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:310 +msgid "Matrix Authentication Service will be installed. Its database will be empty, so it cannot validate existing access tokens or authentication users yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:312 +msgid "The homeserver will still continue to use its local database for validating existing access tokens." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:314 +msgid "Various [compatibility layer URLs](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) are not yet installed. New login sessions will still be forwarded to the homeserver, which is capable of completing them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:316 +msgid "The `matrix-user-creator` role would be suppressed, so that it doesn't automatically attempt to create users (for bots, etc.) in the MAS database. These user accounts likely already exist in Synapse's user database and could be migrated over (via syn2mas, as per the steps below), so creating them in the MAS database would have been unnecessary and potentially problematic (conflicts during the syn2mas migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:318 +msgid "Consider taking a full [backup of your Postgres database](./maintenance-postgres.md#backing-up-postgresql). This is done just in case. The **syn2mas migration tool does not delete any data**, so it should be possible to revert to your previous setup by merely disabling MAS and re-running the playbook (no need to restore a Postgres backup). However, do note that as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:320 +msgid "[Migrate your data from Synapse to Matrix Authentication Service using syn2mas](#migrate-your-data-from-synapse-to-matrix-authentication-service-using-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:322 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) again, to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:324 +msgid "remove the `matrix_authentication_service_migration_in_progress: false` line" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:326 +msgid "if you had been using [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:328 +msgid "Perform the [installation](#installing) again. At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:330 +msgid "The homeserver will start delegating authentication to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:332 +msgid "The compatibility layer URLs will be installed. New login sessions will be completed by MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:334 +msgid "[Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:336 +msgid "Migrate your data from Synapse to Matrix Authentication Service using syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:338 +msgid "We **don't** ask you to [run the `syn2mas` migration advisor command](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#run-the-migration-advisor), because it only gives you the green light if your Synapse configuration (`homeserver.yaml`) is configured in a way that's compatible with MAS (delegating authentication to MAS; disabling Synapse's password config; etc.). Until we migrate your data with the `syn2mas` tool, we intentionally avoid doing these changes to allow existing user sessions to work." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:340 +msgid "You can invoke the `syn2mas` tool via the playbook by running the playbook's `matrix-authentication-service-syn2mas` tag. We recommend first doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:342 +msgid "Configuring syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:344 +msgid "If you're using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to [Configuring upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:346 +msgid "If you only have local (non-OIDC) users in your Synapse database, you can likely run `syn2mas` as-is (without doing additional configuration changes)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:348 +msgid "When you're done with potentially configuring `syn2mas`, proceed to doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:350 +msgid "Configuring upstream OIDC provider mapping for syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:352 +msgid "If you have existing OIDC users in your Synapse user database (which will be the case if when using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)), you may need to pass an additional `--upstreamProviderMapping` argument to the `syn2mas` tool to tell it which provider (on the Synapse side) maps to which other provider on the MAS side." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:354 +msgid "If you don't do this, `syn2mas` would report errors like this one:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:356 +msgid "[FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @alice:example.com: Error: Unknown upstream provider oidc-keycloak]" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:358 +msgid "Below is an example situation and a guide for how to solve it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:360 +msgid "If in `matrix_synapse_oidc_providers` your provider `idp_id` is (was) named `keycloak`, in the Synapse database users would be associated with the `oidc-keycloak` provider (note the `oidc-` prefix that was added automatically by Synapse to your `idp_id` value)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:362 +msgid "The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the MAS side, as defined in `matrix_authentication_service_config_upstream_oauth2_providers` (see the [Upstream OAuth2 configuration](#upstream-oauth2-configuration) section above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:364 +msgid "To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:373 +msgid "Performing a syn2mas dry-run" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:375 +msgid "Having [configured syn2mas](#configuring-syn2mas), we recommend doing a [dry-run](https://en.wikipedia.org/wiki/Dry_run_(testing)) first to verify that everything will work out as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:377 +msgid "A dry-run would not cause downtime, because it avoids stopping Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:379 +msgid "To perform a dry-run, run:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:385 +msgid "Observe the command output (especially the last line of the the syn2mas output). If you are confident that the migration will work out as expected, you can proceed with a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:387 +msgid "Performing a real syn2mas migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:389 +msgid "Before performing a real migration make sure:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:391 +msgid "you've familiarized yourself with the [expectations](#expectations)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:393 +msgid "you've performed a Postgres backup, just in case" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:395 +msgid "you're aware of the irreversibility of the migration process without disruption after users have created new login sessions via the new MAS setup" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:397 +msgid "you've [configured syn2mas](#configuring-syn2mas), especially if you've used [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:399 +msgid "you've performed a [syn2mas dry-run](#performing-a-syn2mas-dry-run) and don't see any issues in its output" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:401 +msgid "To perform a real migration, run the `matrix-authentication-service-syn2mas` tag **without** the `matrix_authentication_service_syn2mas_dry_run` variable:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:407 +msgid "Having performed a `syn2mas` migration once, trying to do it again will report errors for users that were already migrated (e.g. \"Error: Unknown upstream provider oauth-delegated\")." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:409 +msgid "Verify that Matrix Authentication Service is installed correctly" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:411 +msgid "After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:413 +msgid "You can do it:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:415 +msgid "either via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag: `just run-tags matrix-authentication-service-mas-cli-doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:417 +msgid "or by running the `mas-cli` script on the server (which invokes the `mas-cli` tool inside a container): `/matrix/matrix-authentication-service/bin/mas-cli doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:419 +msgid "If successful, you should see some output that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:431 +msgid "Management" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:433 +msgid "You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:435 +msgid "This documentation page already mentions:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:437 +msgid "the `mas-cli doctor` sub-command in the [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) section, which you can run via the CLI and via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:439 +msgid "the `mas-cli manage register-user` sub-command in the [Registering users](./registering-users.md) documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:441 +msgid "There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:443 +msgid "User registration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:445 +msgid "After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration))." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:447 +msgid "You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:449 +msgid "Working around email deliverability issues" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:451 +msgid "Because Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user, you may need to work around email deliverability issues if [your email-sending configuration](./configuring-playbook-email.md) is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:453 +msgid "Matrix Authentication Service attempts to verify email addresses by sending a verification email to the address specified by the user whenever they log in to an account without a verified email address." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:455 +msgid "If email delivery is not working, **you can retrieve the email configuration code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:457 +msgid "Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com`" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po new file mode 100644 index 000000000..0301ef979 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-corporal.po @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:1 +msgid "Setting up Matrix Corporal (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:5 +msgid "[!WARNING] This is an advanced feature! It requires prior experience with Matrix and a specific need for using [Matrix Corporal](https://github.com/devture/matrix-corporal). If you're unsure whether you have such a need, you most likely don't." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:10 +msgid "The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:12 +msgid "In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:14 +msgid "See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:16 +msgid "If you decide that you'd like to let this playbook install it for you, you'd need to also:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:17 +msgid "(required) [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:18 +msgid "(optional, but encouraged) [set up the REST authentication password provider module](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:22 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:75 +msgid "Matrix Corporal operates with a specific Matrix user on your server. By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:77 +msgid "No matter what Matrix user ID you configure to run it with, make sure that:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:79 +msgid "the Matrix Corporal user is created by [registering it](registering-users.md) **with administrator privileges**. Use a password you remember, as you'll need to log in from time to time to create or join rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:81 +msgid "the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:83 +msgid "Using a locally-stored static policy" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:85 +msgid "If you'd like to use a [static policy file](https://github.com/devture/matrix-corporal/blob/master/docs/policy-providers.md#static-file-pull-style-policy-provider), you can use a configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:117 +msgid "To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:119 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:121 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:128 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just run-tags setup-aux-files,setup-corporal,start` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:130 +msgid "`just run-tags setup-aux-files,setup-corporal,start` 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 "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:132 +msgid "Matrix Corporal files" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:134 +msgid "The following local filesystem paths are mounted in the `matrix-corporal` container and can be used in your configuration (or policy):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:136 +msgid "`/matrix/corporal/config` is mounted at `/etc/matrix-corporal` (read-only)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:138 +msgid "`/matrix/corporal/var` is mounted at `/var/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:140 +msgid "`/matrix/corporal/cache` is mounted at `/var/cache/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:142 +msgid "As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths — `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po new file mode 100644 index 000000000..8996149c8 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-ldap-registration-proxy.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:1 +msgid "Setting up matrix-ldap-registration-proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:3 +msgid "The playbook can install and configure [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:5 +msgid "This proxy handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:7 +msgid "**Note**: This does support the full Matrix specification for registrations. It only provide a very coarse implementation of a basic password registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:9 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:22 +msgid "If you already use the [synapse external password provider via LDAP](configuring-playbook-ldap-auth.md) (that is, you have `matrix_synapse_ext_password_provider_ldap_enabled: true` and other options in your configuration) you can use the following values as configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:44 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:46 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po new file mode 100644 index 000000000..82cecc0af --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-media-repo.po @@ -0,0 +1,168 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-28 10:25+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:1 +msgid "Storing Matrix media files using matrix-media-repo (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:3 +msgid "[matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) (often abbreviated \"MMR\") is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:5 +msgid "Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:7 +msgid "For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "**Table of Contents**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Quickstart](#quickstart)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Additional configuration options](#configuring-the-media-repo)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md +msgid "[Importing data from an existing media store](#importing-data-from-an-existing-media-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:15 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file and [re-run the installation process](./installing.md) for the playbook:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:26 +msgid "The repo is pre-configured for integrating with the Postgres database, Traefik proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:28 +msgid "By default, the media-repo will use the local filesystem for data storage. You can alternatively use a `s3` cloud backend as well. Access token caching is also enabled by default since the logout endpoints are proxied through the media repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:30 +msgid "Configuring the media-repo" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:32 +msgid "Additional common configuration options:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:91 +msgid "Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](../roles/custom/matrix-media-repo/defaults/main.yml)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:93 +msgid "Signing Keys" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:95 +msgid "Authenticated media endpoints ([MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)) requires MMR to have a configured signing key to authorize outbound federation requests. Additionally, the signing key must be merged with your homeserver's signing key file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:97 +msgid "The playbook default is to generate a MMR signing key when invoking the setup role and merge it with your homeserver if you are using Synapse or Dendrite. This can be disabled if desired by setting the option in your inventory:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:103 +msgid "If you wish to manually generate the signing key and merge it with your homeserver's signing key file, see https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/ for more details." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:105 +msgid "**Note that if you uninstall MMR from the playbook, it will not remove the old MMR signing key from your homeserver's signing key file. You will have to remove it manually.**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:107 +msgid "Key backup and revoking" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:109 +msgid "Since your homeserver signing key file is modified by the playbook, a backup will be created in `HOMESERVER_DIR/config/example.com.signing.key.backup`. If you need to remove/revoke old keys, you can restore from this backup or remove the MMR key ID from your `example.com.signing.key` file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:111 +msgid "Additionally, its recommended after revoking a signing key to update your homeserver config file (`old_signing_keys` field for Synapse and `old_private_keys` for Dendrite). See your homeserver config file for further documentation on how to populate the field." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:113 +msgid "Importing data from an existing media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:115 +msgid "If you want to add this repo to an existing homeserver managed by the playbook, you will need to import existing media into MMR's database or you will lose access to older media while it is active. MMR versions up to `v1.3.3` only support importing from Synapse, but newer versions (at time of writing: only `latest`) also support importing from Dendrite." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:117 +msgid "**Before importing**: ensure you have an initial matrix-media-repo deployment by following the [quickstart](#quickstart) guide above" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:119 +msgid "Depending on the homeserver implementation yu're using (Synapse, Dendrite), you'll need to use a different import tool (part of matrix-media-repo) and point it to the homeserver's database." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:121 +msgid "Importing data from the Synapse media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:123 +msgid "To import the Synapse media store, you're supposed to invoke the `import_synapse` tool which is part of the matrix-media-repo container image. Your Synapse database is called `synapse` by default, unless you've changed it by modifying `matrix_synapse_database_database`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:125 +msgid "This guide here is adapted from the [upstream documentation about the import_synapse script](https://github.com/turt2live/matrix-media-repo#importing-media-from-synapse)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:127 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:149 +msgid "Run the following command on the server (after replacing `postgres_connection_password` in it with the value found in your `vars.yml` file):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:139 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:161 +msgid "Enter `1` for the Machine ID when prompted (you are not doing any horizontal scaling) unless you know what you're doing." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:141 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:163 +msgid "This should output a `msg=\"Import completed\"` when finished successfully!" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:143 +msgid "Importing data from the Dendrite media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:145 +msgid "If you're using the [Dendrite](configuring-playbook-dendrite.md) homeserver instead of the default for this playbook (Synapse), follow this importing guide here." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:147 +msgid "To import the Dendrite media store, you're supposed to invoke the `import_dendrite` tool which is part of the matrix-media-repo container image. Your Dendrite database is called `dendrite_mediaapi` by default, unless you've changed it by modifying `matrix_dendrite_media_api_database`." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po new file mode 100644 index 000000000..d436873d7 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-matrix-registration.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-matrix-registration.md:1 +msgid "Setting up matrix-registration (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:4 +msgid "This is a poorly maintained and buggy project. It's better to avoid using it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:5 +msgid "This is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:7 +msgid "The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you. It is a simple python application to have a token based Matrix registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:9 +msgid "Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows certain people (these having a special link) to register a user account, **keeping your server's registration closed (private)**." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:11 +msgid "**matrix-registration** provides 2 things:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:13 +msgid "**an API for creating registration tokens** (unique registration links). This API can be used via `curl` or via the playbook (see [Usage](#usage) below)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:15 +msgid "**a user registration page**, where people can use these registration tokens. By default, exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:19 +msgid "By default, this playbook installs the matrix-registration on the `matrix.` subdomain, at the `/matrix-registration` path (https://matrix.example.com/matrix-registration). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-registration-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:25 +msgid "To enable matrix-registration, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:34 +msgid "Adjusting the matrix-registration URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:36 +msgid "By tweaking the `matrix_registration_hostname` and `matrix_registration_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-matrix-registration.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-registration domain (`registration.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:52 +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-matrix-registration.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:65 +msgid "**matrix-registration** gets exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:67 +msgid "It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) — for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:69 +msgid "We make the most common APIs easy to use via the playbook (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:71 +msgid "Creating registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:73 +msgid "To **create a new user registration token (link)**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:81 +msgid "The above command creates and returns a **one-time use** token, which **expires** on the 31st of December 2021. Adjust the `one_time` and `ex_date` variables as you see fit." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:83 +msgid "Share the unique registration link (generated by the command above) with users to let them register on your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:85 +msgid "Listing registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:87 +msgid "To **list the existing user registration tokens**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:94 +msgid "The shortcut command with `just` program is also available: `just run-tags list-matrix-registration-tokens`" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po new file mode 100644 index 000000000..be3cde9a5 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-mautrix-bridges.po @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, facebook, instagram, signal, hangouts, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:5 +msgid "You can see each bridge's features at in the `ROADMAP.md` file in its corresponding [mautrix](https://github.com/mautrix) repository." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:9 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:16 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:18 +msgid "To **configure a user as an administrator for all bridges**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:24 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:33 +msgid "encryption" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:35 +msgid "Encryption support is off by default. If you would like to enable encryption, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:37 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:44 +#: ../../../docs/configuring-playbook-mautrix-bridges.md:61 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:51 +msgid "relay mode" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:53 +msgid "Relay mode is off by default. If you would like to enable relay mode, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:55 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:70 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:82 +msgid "Setting the bot's username" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:88 +msgid "Can be used to set the username for the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:90 +msgid "Discovering additional configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:92 +msgid "You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` to find other things you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:96 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:111 +msgid "Set up Double Puppeting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:113 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:115 +msgid "The bridge automatically performs Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) is configured and enabled on the server for this playbook by adding" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:121 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:123 +msgid "Controlling the logging level" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:129 +msgid "to `vars.yml` to control the logging level, where you may replace WARN with one of the following to control the verbosity of the logs generated: TRACE, DEBUG, INFO, WARN, ERROR, or FATAL." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:131 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:133 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:135 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:137 +msgid "Send `login` to the bridge bot to get started. You can learn more here about authentication from the bridge's official documentation on Authentication: https://docs.mau.fi/bridges/python/SERVICENAME/authentication.html" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:139 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:141 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:143 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:145 +msgid "Reporting bridge bugs should happen upstream, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-nginx.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-nginx.po new file mode 100644 index 000000000..b5899561a --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-nginx.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-nginx.md:1 +msgid "Configure Nginx (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-nginx.md:3 +msgid "Since 2024-01, this playbook no longer uses nginx as its reverse-proxy." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ntfy.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ntfy.po new file mode 100644 index 000000000..a1b1d2551 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ntfy.po @@ -0,0 +1,237 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ntfy.md:1 +msgid "Setting up the ntfy push notifications server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:3 +msgid "The playbook can install and configure the [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:5 +msgid "Using the [UnifiedPush](https://unifiedpush.org) standard, ntfy enables self-hosted (Google-free) push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix compatible client apps running on Android and other devices." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:7 +msgid "This role is intended to support UnifiedPush notifications for use with the Matrix and Matrix-related services that this playbook installs. This role is not intended to support all of ntfy's other features." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:9 +msgid "**Note**: In contrast to push notifications using Google's FCM or Apple's APNs, the use of UnifiedPush allows each end-user to choose the push notification server that they prefer. As a consequence, deploying this ntfy server does not by itself ensure any particular user or device or client app will use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:13 +msgid "By default, this playbook installs ntfy on the `ntfy.` subdomain (`ntfy.example.com`) and requires you to create a CNAME record for `ntfy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:19 +msgid "To enable ntfy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:33 +msgid "For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/defaults/main.yml) of the ntfy Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:35 +msgid "For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:37 +msgid "Adjusting the ntfy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:39 +msgid "By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:41 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:48 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:52 +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-ntfy.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:61 +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-ntfy.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:65 +msgid "To make use of your ntfy installation, on Android for example, you need two things:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:67 +msgid "the `ntfy` app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:68 +msgid "a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:70 +msgid "You need to install the `ntfy` app on each device on which you want to receive push notifications through your ntfy server. The `ntfy` app will provide UnifiedPush notifications to any number of UnifiedPush-compatible messaging apps installed on the same device." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:72 +msgid "Setting up the `ntfy` Android app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:74 +msgid "Install the [ntfy Android app](https://ntfy.sh/docs/subscribe/phone/) from F-droid or Google Play." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:75 +msgid "In its Settings -> `General: Default server`, enter your ntfy server URL, such as `https://ntfy.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:76 +msgid "In its Settings -> `Advanced: Connection protocol`, choose `WebSockets`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:78 +msgid "That is all you need to do in the ntfy app. It has many other features, but for our purposes you can ignore them. In particular you do not need to follow any instructions about subscribing to a notification topic as UnifiedPush will do that automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:80 +msgid "Setting up a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:82 +msgid "Install any UnifiedPush-enabled Matrix app on that same device. The Matrix app will learn from the `ntfy` app that you have configured UnifiedPush on this device, and then it will tell your Matrix server to use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:84 +msgid "Steps needed for specific Matrix apps:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:86 +msgid "FluffyChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:87 +msgid "Should auto-detect and use it. No manual settings." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:89 +msgid "SchildiChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:90 +msgid "enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:91 +msgid "choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in `ntfy` app, force-close SchildiChat, re-open it.)*" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:92 +msgid "verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the \"Troubleshooting\" section." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:94 +msgid "Element-android v1.4.26+:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:95 +msgid "choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:96 +msgid "verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:98 +msgid "If the Matrix app asks, \"Choose a distributor: FCM Fallback or ntfy\", then choose \"ntfy\"." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:100 +msgid "If the Matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:102 +msgid "Web App" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:104 +msgid "ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:106 +msgid "The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: \"app\"` and re-running Ansible." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:110 +msgid "First check that the Matrix client app you are using supports UnifiedPush. There may well be different variants of the app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:112 +msgid "Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:114 +msgid "To check if UnifiedPush is correctly configured on the client device, look at \"Settings -> Notifications -> Notification Targets\" in Element Android or SchildiChat Android, or \"Settings -> Notifications -> Devices\" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:116 +msgid "In the \"Notification Targets\" screen in Element Android or SchildiChat Android, two relevant URLs are shown, \"push\\_key\" and \"Url\", and both should begin with your ntfy server's URL. If \"push\\_key\" shows your server but \"Url\" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the \"Usage\" section above." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:118 +msgid "If it is not working, useful tools are \"Settings -> Notifications -> Re-register push distributor\" and \"Settings -> Notifications -> Troubleshoot Notifications\" in SchildiChat Android (possibly also Element Android). In particular the \"Endpoint/FCM\" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:120 +msgid "The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-own-webserver.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-own-webserver.po new file mode 100644 index 000000000..1ed7a0be1 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-own-webserver.po @@ -0,0 +1,193 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-own-webserver.md:1 +msgid "Using your own webserver, instead of this playbook's Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:3 +msgid "By default, this playbook installs its own [Traefik](https://traefik.io/) reverse-proxy server (in a Docker container) which listens on ports 80 and 443. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:5 +msgid "Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:7 +msgid "[Traefik](https://traefik.io/) is the default reverse-proxy for the playbook since [2023-02-26](../CHANGELOG.md/#2023-02-26) and serves **2 purposes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:9 +msgid "serving public traffic and providing SSL-termination with certificates obtained from [Let's Encrypt](https://letsencrypt.org/). See [Adjusting SSL certificate retrieval](./configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:11 +msgid "assists internal communication between addon services (briges, bots, etc.) and the homeserver via an internal entrypoint (`matrix-internal-matrix-client-api`)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:13 +msgid "There are 2 ways to use Traefik with this playbook, as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:15 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:17 +msgid "To have the playbook install and use Traefik, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:25 +msgid "Traefik will manage SSL certificates for all services seamlessly." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:27 +msgid "Traefik managed by you" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:53 +msgid "In this mode all roles will still have Traefik labels attached. You will, however, need to configure your Traefik instance and its entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:55 +msgid "By default, the playbook configured a `default` certificate resolver and multiple entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:57 +msgid "You need to configure 4 entrypoints for your Traefik server:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:59 +msgid "`web` (TCP port `80`) — used for redirecting to HTTPS (`web-secure`)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:60 +msgid "`web-secure` (TCP port `443`) — used for exposing the Matrix Client-Server API and all other services" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:61 +msgid "`matrix-federation` (TCP port `8448`) — used for exposing the Matrix Federation API" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:62 +msgid "`matrix-internal-matrix-client-api` (TCP port `8008`) — used internally for addon services (bridges, bots) to communicate with the homserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:64 +msgid "Below is some configuration for running Traefik yourself, although we recommend using [Traefik managed by the playbook](#traefik-managed-by-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:66 +msgid "Note that this configuration on its own does **not** redirect traffic on port 80 (plain HTTP) to port 443 for HTTPS. If you are not already doing this in Traefik, it can be added to Traefik in a [file provider](https://docs.traefik.io/v2.0/providers/file/) as follows:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:86 +msgid "You can use the following `docker-compose.yml` as example to launch Traefik." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:122 +msgid "Another webserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:124 +msgid "If you don't wish to use Traefik, you can also use your own webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:126 +msgid "Doing this is possible, but requires manual work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:128 +msgid "There are 2 ways to go about it:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:130 +msgid "(recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) — using the playbook-managed reverse-proxy (Traefik), but disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:132 +msgid "(difficult) [Using no reverse-proxy on the Matrix side at all](#using-no-reverse-proxy-on-the-matrix-side-at-all) disabling the playbook-managed reverse-proxy (Traefik), exposing services one by one using `_host_bind_port` variables and forwarding traffic from your own webserver to those ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:134 +msgid "Fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:136 +msgid "This method is about leaving the integrated reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:138 +msgid "If you wish to use another webserver, the integrated reverse-proxy webserver usually gets in the way because it attempts to fetch SSL certificates and binds to ports 80, 443 and 8448 (if Matrix Federation is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:140 +msgid "You can disable such behavior and make the integrated reverse-proxy webserver only serve traffic locally on the host itself (or over a local network)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:142 +msgid "This is the recommended way for using another reverse-proxy, because the integrated one would act as a black box and wire all Matrix services correctly. You would then only need to reverse-proxy a few individual domains and ports over to it." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:144 +msgid "To front Traefik with another reverse-proxy, you would need some configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:194 +msgid "Such a configuration would expose all services on a local port `81` and Matrix Federation on a local port `8449`. Your reverse-proxy configuration needs to send traffic to these ports. [`examples/reverse-proxies`](../examples/reverse-proxies/) contains examples for various webservers such as Apache2, Caddy, HAproxy, nginx and Nginx Proxy Manager." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:196 +msgid "It's important that these webservers proxy-pass requests to the correct `ip:port` and also set the `Host` HTTP header appropriately. If you don't pass the `Host` header correctly, Traefik will return a `404 - not found` error." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:198 +msgid "To put it another way:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:199 +msgid "`curl http://127.0.0.1:81` will result in a `404 - not found` error" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:200 +msgid "but `curl -H 'Host: matrix.example.com' http://127.0.0.1:81` should work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:202 +msgid "Using no reverse-proxy on the Matrix side at all" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:204 +msgid "Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way — completely disabling the playbook-managed Traefik reverse-proxy. You would then need to reverse-proxy from your own webserver directly to each individual Matrix service." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:206 +msgid "This is more difficult, as you would need to handle the configuration for each service manually. Enabling additional services would come with extra manual work you need to do." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:208 +msgid "Also, the Traefik reverse-proxy, besides fronting everything is also serving a 2nd purpose of allowing addons services to communicate with the Matrix homeserver thanks to its `matrix-internal-matrix-client-api` entrypoint (read more about it above). Disabling Traefik completely means the playbook would wire services to directly talk to the homeserver. This can work for basic setups, but not for more complex setups involving [matrix-media-repo](./configuring-playbook-matrix-media-repo.md), [matrix-corporal](./configuring-playbook-matrix-corporal.md) or other such services that need to \"steal routes\" from the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:210 +msgid "If your webserver is on the same machine, ensure your web server user (something like `http`, `apache`, `www-data`, `nginx`) is part of the `matrix` group. You should run something like this: `usermod -a -G matrix nginx`. This allows your webserver user to access files owned by the `matrix` group, so that it can serve static files from `/matrix/static-files`." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po new file mode 100644 index 000000000..abfcbd988 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-pantalaimon.po @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-pantalaimon.md:1 +msgid "Setting up Pantalaimon (E2EE aware proxy daemon) (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:3 +msgid "The playbook can install and configure the [pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/pantalaimon/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:7 +msgid "This role exposes Pantalaimon's API only within the container network, so bots and clients installed on the same machine can use it. In particular the [Draupnir](configuring-playbook-bot-draupnir.md) and [Mjolnir](configuring-playbook-bot-mjolnir.md) roles (and possibly others) can use it." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:19 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:23 +msgid "`roles/custom/matrix-pantalaimon/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_pantalaimon_configuration` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:34 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:36 +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-pantalaimon.md:38 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:40 +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-pantalaimon`." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:42 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po new file mode 100644 index 000000000..b5aa2c366 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-postgres-backup.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-postgres-backup.md:1 +msgid "Setting up postgres backup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:3 +msgid "The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you via the [ansible-role-postgres-backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:5 +msgid "For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [BorgBackup](configuring-playbook-backup-borg.md) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:9 +msgid "To enable Postgres backup, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:15 +msgid "Refer to the table below for additional configuration variables and their default values." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Default value" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`false`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_schedule`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`'@daily'`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Cron-schedule specifying the interval between postgres backups." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_days`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`7`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of daily backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_weeks`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`4`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of weekly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_keep_months`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`12`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Number of monthly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_base_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`\"{{ matrix_base_data_path }}/postgres-backup\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Base path for postgres-backup. Also see `postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "`\"{{ postgres_backup_base_path }}/data\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md +msgid "Storage path for postgres-backup database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:38 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po new file mode 100644 index 000000000..602410466 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-grafana.po @@ -0,0 +1,345 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:1 +msgid "Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:3 +msgid "The playbook can install [Grafana](https://grafana.com/) with [Prometheus](https://prometheus.io/) and configure performance metrics of your homeserver with graphs for you." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:5 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:7 +msgid "By default, this playbook installs Grafana web user-interface on the `stats.` subdomain (`stats.example.com`) and requires you to create a CNAME record for `stats`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:9 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:13 +msgid "To enable Grafana and/or Prometheus, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:39 +msgid "The retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:41 +msgid "Adjusting the Grafana URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:43 +msgid "By tweaking the `grafana_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:45 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:52 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Grafana domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:54 +msgid "**Note**: It is possible to install Prometheus without installing Grafana. This case it is not required to create the CNAME record." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:56 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:58 +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-prometheus-grafana.md:65 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:67 +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-prometheus-grafana.md:69 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_node_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_prometheus_nginxlog_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[NGINX Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose NGINX logs to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_anonymous_access`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`grafana_default_admin_user`
`grafana_default_admin_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:81 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:83 +msgid "Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:85 +msgid "Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:87 +msgid "Collecting metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:89 +msgid "**If the integrated Prometheus server is enabled** (`prometheus_enabled: true`), metrics are collected by it from each service via communication that happens over the container network. Each service does not need to expose its metrics \"publicly\"." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:91 +msgid "When you'd like **to collect metrics from an external Prometheus server**, you need to expose service metrics outside of the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:93 +msgid "The playbook provides a single endpoint (`https://matrix.example.com/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/hookshot`, etc). To expose all services on this `/metrics/*` feature, use `matrix_metrics_exposure_enabled`. To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), see `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` below." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:95 +msgid "When using `matrix_metrics_exposure_enabled`, you don't need to expose metrics for individual services one by one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:97 +msgid "The following variables may be of interest:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to **enable metrics exposure for all services** on `https://matrix.example.com/metrics/*`. If you think this is too much, refer to the helpful (but nonexhaustive) list of individual `matrix_SERVICE_metrics_proxying_enabled` (or similar) variables below for exposing metrics on a per-service basis." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_http_basic_auth_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials). When enabled, all endpoints beneath `/metrics` will be protected with the same credentials" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_metrics_exposure_http_basic_auth_users`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_synapse_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make Synapse expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_synapse_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose Synapse's metrics on `https://matrix.example.com/metrics/synapse/main-process` and `https://matrix.example.com/metrics/synapse/worker/TYPE-ID`. Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the node (general system stats) exporter (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_node_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_sliding_sync_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_sliding_sync_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.example.com/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_bridge_hookshot_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_bridge_hookshot_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.example.com/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_SERVICE_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "`matrix_media_repo_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md +msgid "Set this to `true` to make media-repo expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:118 +msgid "Collecting Synapse worker metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:120 +msgid "If you are using workers (`matrix_synapse_workers_enabled: true`) and have enabled `matrix_synapse_metrics_proxying_enabled` as described above, the playbook will also automatically expose all Synapse worker threads' metrics to `https://matrix.example.com/metrics/synapse/worker/ID`, where `ID` corresponds to the worker `id` as exemplified in `matrix_synapse_workers_enabled_list`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:122 +msgid "The playbook also generates an exemplary config file (`/matrix/synapse/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs. Make sure to edit the specified `password_file` path and contents and path to your `synapse-v2.rules`. It will look a bit like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:150 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:152 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:153 +msgid "[Understanding Synapse Performance Issues Through Grafana Graphs](https://element-hq.github.io/synapse/latest/usage/administration/understanding_synapse_through_grafana_graphs.html) at the Synapse Github Wiki" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:154 +msgid "[The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:155 +msgid "[The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:156 +msgid "[The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po new file mode 100644 index 000000000..d6067dede --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-nginxlog.po @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:1 +msgid "Enabling metrics and graphs for NginX logs (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:3 +msgid "It can be useful to have some (visual) insight into [nginx](https://nginx.org/) logs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:5 +msgid "This adds [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) to your Matrix deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:7 +msgid "It will collect access logs from various nginx reverse-proxies which may be used internally (e.g. `matrix-synapse-reverse-proxy-companion`, if Synapse workers are enabled) and will make them available at a Prometheus-compatible `/metrics` endpoint." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:9 +msgid "**Note**: nginx is only used internally by this Ansible playbook. With Traefik being our default reverse-proxy, collecting nginx metrics is less relevant." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:11 +msgid "To make use of this, you need to install [Prometheus](./configuring-playbook-prometheus-grafana.md) either via the playbook or externally. When using an external Prometheus, configuration adjustments are necessary — see [Save metrics on an external Prometheus server](#save-metrics-on-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:13 +msgid "If your setup includes [Grafana](./configuring-playbook-prometheus-grafana.md), a dedicated `NGINX PROXY` Grafana dashboard will be created." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:23 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:25 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:32 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:34 +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-prometheus-nginxlog.md:36 +msgid "Docker Image Compatibility" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:38 +msgid "At the moment of writing only images for `amd64` and `arm64` architectures are available. The playbook currently does not support [self-building](./self-building.md) a container image on other architectures. You can however use a custom-build image by setting:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:45 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:47 +msgid "Metrics and resulting graphs can contain a lot of information. NginX logs contain information like IP address, URLs, UserAgents and more. This information can reveal usage patterns and could be considered Personally Identifiable Information (PII). Think about this before enabling (anonymous) access. Please make sure you change the default Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:49 +msgid "Save metrics on an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:51 +msgid "The playbook will automatically integrate the metrics into the [Prometheus](./configuring-playbook-prometheus-grafana.md) server provided with this playbook (if enabled). In such cases, the metrics endpoint is not exposed publicly — it's only available on the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:53 +msgid "When using an external Prometheus server, you'll need to expose metrics publicly. See [Collecting metrics to an external Prometheus server](./configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:55 +msgid "You can either use `matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled: true` to expose just this one service, or `matrix_metrics_exposure_enabled: true` to expose all services." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:57 +msgid "Whichever way you go with, this service will expose its metrics endpoint **without password-protection** at `https://matrix.example.com/metrics/nginxlog` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:59 +msgid "For password-protection, use (`matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`) or (`matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled` and `matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users`)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po new file mode 100644 index 000000000..c512d1462 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-prometheus-postgres.po @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:1 +msgid "Enabling metrics and graphs for Postgres (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:3 +msgid "Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:7 +msgid "To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:13 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:15 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:22 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:24 +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-prometheus-postgres.md:26 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_database_username`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_database_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md +msgid "If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:35 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:37 +msgid "[The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rageshake.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rageshake.po new file mode 100644 index 000000000..e3c4f49f6 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rageshake.po @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-rageshake.md:1 +msgid "Setting up the rageshake bug report server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:3 +msgid "The playbook can install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:7 +msgid "**Note**: most people don't need to install rageshake to collect bug reports. This component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:11 +msgid "By default, this playbook installs rageshake on the `rageshake.` subdomain (`rageshake.example.com`) and requires you to create a CNAME record for `rageshake`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:17 +msgid "To enable rageshake, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:23 +msgid "rageshake has various options which don't have dedicated Ansible variables. You can see the full list of options in the [`rageshake.sample.yaml` file](https://github.com/matrix-org/rageshake/blob/master/rageshake.sample.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:25 +msgid "To set these, you can make use of the `matrix_rageshake_configuration_extension_yaml` variable like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:35 +msgid "Adjusting the rageshake URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:37 +msgid "By tweaking the `matrix_rageshake_hostname` and `matrix_rageshake_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-rageshake.md:39 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:50 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the rageshake domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:52 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:54 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:56 +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-rageshake.md:63 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:65 +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-rageshake.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:69 +msgid "Refer to the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) for available APIs, etc." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rest-auth.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rest-auth.po new file mode 100644 index 000000000..770a8ef1c --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-rest-auth.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-rest-auth.md:1 +msgid "Setting up the REST authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:5 +msgid "See the project's [documentation](https://github.com/ma1uta/matrix-synapse-rest-password-provider/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:19 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:21 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:38 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-riot-web.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-riot-web.po new file mode 100644 index 000000000..7fa369a4f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-riot-web.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-riot-web.md:1 +msgid "Configuring Riot-web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:3 +msgid "By default, this playbook **used to install** the [Riot-web](https://github.com/element-hq/riot-web) Matrix client web application." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:5 +msgid "Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:7 +msgid "to learn more about Element Web and its configuration, see our dedicated [Configuring Element Web](configuring-playbook-client-element-web.md) documentation page" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:8 +msgid "to learn how to migrate from Riot to Element Web, see [Migrating to Element Web](#migrating-to-element-web) below" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:10 +msgid "Migrating to Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:12 +msgid "Migrating your custom settings" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:14 +msgid "If you have custom `matrix_riot_web_` variables in your `inventory/host_vars/matrix.example.com/vars.yml` file, you'll need to rename them (`matrix_riot_web_` -> `matrix_client_element_`)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:16 +msgid "Some other playbook variables (but not all) with `riot` in their name are also renamed. The playbook checks and warns if you are using the old name for some commonly used ones." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:18 +msgid "Domain migration" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:20 +msgid "We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element Web at `element.example.com` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:22 +msgid "There are a few options for handling this:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:24 +msgid "(**avoiding changes** — using the old `riot.example.com` domain and avoiding DNS changes) — to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: \"riot.{{ matrix_domain }}\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:26 +msgid "(**embracing changes** — using only `element.example.com`) — set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:28 +msgid "Re-running the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:30 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:37 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:39 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po new file mode 100644 index 000000000..17fd21dbe --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3-goofys.po @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-s3-goofys.md:1 +msgid "Storing Matrix media files on Amazon S3 with Goofys (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can let this playbook configure [Goofys](https://github.com/kahing/goofys) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:5 +msgid "Another (and better performing) way to use S3 storage with Synapse is [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:7 +msgid "Using a Goofys-backed media store works, but performance may not be ideal. If possible, try to use a region which is close to your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:9 +msgid "If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), we also provide some migration instructions below." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:13 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:23 +msgid "You can use any S3-compatible object store by **additionally** configuring these variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:30 +msgid "If you have local media store files and wish to migrate to Backblaze B2 subsequently, follow our [migration guide to Backblaze B2](#migrating-to-backblaze-b2) below instead of applying this configuration as-is." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:32 +msgid "Migrating from local filesystem storage to S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:34 +msgid "It's a good idea to [make a complete server backup](faq.md#how-do-i-back-up-the-data-on-my-server) before migrating your local media store to an S3-backed one." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:36 +msgid "After making the backup, follow one of the guides below for a migration path from a locally-stored media store to one stored on S3-compatible storage:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:38 +msgid "[Migrating to any S3-compatible storage (universal, but likely slow)](#migrating-to-any-s3-compatible-storage-universal-but-likely-slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:39 +msgid "[Migrating to Backblaze B2](#migrating-to-backblaze-b2)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:41 +msgid "Migrating to any S3-compatible storage (universal, but likely slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:43 +msgid "Proceed with the steps below without stopping Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:45 +msgid "Start by adding the base S3 configuration in your `vars.yml` file (seen above, may be different depending on the S3 provider of your choice)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:47 +msgid "In addition to the base configuration you see above, add this to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:53 +msgid "This enables S3 support, but mounts the S3 storage bucket to `/matrix/s3-media-store` without hooking it to your homeserver yet. Your homeserver will still continue using your local filesystem for its media store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:55 +msgid "Run the playbook to apply the changes: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:57 +msgid "Do an **initial sync of your files** by running this **on the server** (it may take a very long time):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:63 +msgid "You may need to install `rsync` manually." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:65 +#: ../../../docs/configuring-playbook-s3-goofys.md:106 +msgid "Stop all Matrix services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:67 +msgid "Start the S3 service by running this **on the server**: `systemctl start matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:69 +msgid "Sync the files again by re-running the `rsync` command you see in step #5" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:71 +msgid "Stop the S3 service by running this **on the server**: `systemctl stop matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:73 +#: ../../../docs/configuring-playbook-s3-goofys.md:114 +msgid "Get the old media store out of the way by running this command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:79 +msgid "Remove the `matrix_s3_media_store_path` configuration from your `vars.yml` file (undoing step #3 above)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:81 +#: ../../../docs/configuring-playbook-s3-goofys.md:122 +msgid "Run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:83 +#: ../../../docs/configuring-playbook-s3-goofys.md:124 +msgid "You're done! Verify that loading existing (old) media files works and that you can upload new ones." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:85 +#: ../../../docs/configuring-playbook-s3-goofys.md:126 +msgid "When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:87 +msgid "Migrating to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:89 +msgid "While all Matrix services are running, run the following command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:91 +msgid "(you need to adjust the 3 `--env` line below with your own data)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:104 +msgid "This is some initial file sync, which may take a very long time." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:108 +msgid "Run the command from step #1 again." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:110 +msgid "Doing this will sync any new files that may have been created locally in the meantime." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:112 +msgid "Now that Matrix services aren't running, we're sure to get Backblaze B2 and your local media store fully in sync." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:120 +msgid "Put the [Backblaze B2 settings](configuring-playbook-s3.md#backblaze-b2) in your `vars.yml` file" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3.po new file mode 100644 index 000000000..cb165f737 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-s3.po @@ -0,0 +1,217 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-s3.md:1 +msgid "Storing Synapse media files on Amazon S3 or another compatible Object Storage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:3 +msgid "By default, this playbook configures your server to store Synapse's content repository (`media_store`) files on the local filesystem. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:5 +msgid "As an alternative to storing media files on the local filesystem, you can store them on [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:7 +msgid "You can do this either by sticking to Synapse's media repository and making that use S3 (read below for this method), or by switching to an external media storage implementation like [matrix-media-repo](configuring-playbook-matrix-media-repo.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:9 +msgid "First, [choose an Object Storage provider](#choosing-an-object-storage-provider)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:11 +msgid "Then, [create the S3 bucket](#bucket-creation-and-security-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:13 +msgid "Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md), [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md), or use s3 datastore with the [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:15 +msgid "Choosing an Object Storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:17 +msgid "You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Storj](https://storj.io), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:19 +msgid "Amazon S3, Backblaze B2, and Storj are pay-as-you with no minimum charges for storing too little data." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:21 +msgid "All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:23 +msgid "Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:25 +msgid "Here are some of the important aspects of choosing the right provider:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:27 +msgid "if a provider is a company you like and trust (or dislike less than the others)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:28 +msgid "if a provider implements end-to-end encryption of your data" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:29 +msgid "if a provider has a data region close to your Matrix server (if it's farther away, high latency may cause slowdowns)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:30 +msgid "if a provider's infrastructure such as data center is centralized or distributed" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:31 +msgid "if a provider's price model is transparent (whether it includes hidden costs like minimum charge, minimum storage term, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:32 +msgid "if a provider has free or cheap egress fee (in case you need to get the data out often, for some reason) — likely not too important for the common use-case" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:34 +msgid "Bucket creation and Security Configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:36 +msgid "Now that you've [chosen an Object Storage provider](#choosing-an-object-storage-provider), you need to create a storage bucket." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:38 +msgid "How you do this varies from provider to provider, with Amazon S3 being the most complicated due to its vast number of services and complicated security policies." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:40 +msgid "Below, we provider some guides for common providers. If you don't see yours, look at the others for inspiration or read some guides online about how to create a bucket. Feel free to contribute to this documentation with an update!" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:42 +msgid "Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:44 +msgid "You'll need an Amazon S3 bucket and some IAM user credentials (access key + secret key) with full write access to the bucket. Example IAM security policy:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:65 +msgid "**Note**: This policy needs to be attached to an IAM user created from the **Security Credentials** menu. This is not a **Bucket Policy**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:67 +msgid "Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:69 +msgid "To use [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html) you first need to sign up." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:71 +msgid "You [can't easily change which region (US, Europe) your Backblaze account stores files in](https://old.reddit.com/r/backblaze/comments/hi1v90/make_the_choice_for_the_b2_data_center_region/), so make sure to carefully choose the region when signing up (hint: it's a hard to see dropdown below the username/password fields in the signup form)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:73 +msgid "After logging in to Backblaze:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:75 +msgid "create a new **private** bucket through its user interface (you can call it something like `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:76 +msgid "note the **Endpoint** for your bucket (something like `s3.us-west-002.backblazeb2.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:77 +msgid "adjust its Lifecycle Rules to: Keep only the last version of the file" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:78 +msgid "go to [App Keys](https://secure.backblaze.com/app_keys.htm) and use the **Add a New Application Key** to create a new one" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:79 +msgid "restrict it to the previously created bucket (e.g. `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:80 +msgid "give it *Read & Write* access" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:82 +msgid "The `keyID` value is your **Access Key** and `applicationKey` is your **Secret Key**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:84 +msgid "For configuring [Goofys](configuring-playbook-s3-goofys.md) or [s3-synapse-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) you will need:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:86 +msgid "**Endpoint URL** — this is the **Endpoint** value you saw above, but prefixed with `https://`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:88 +msgid "**Region** — use the value you see in the Endpoint (e.g. `us-west-002`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:90 +msgid "**Storage Class** — use `STANDARD`. Backblaze B2 does not have different storage classes, so it doesn't make sense to use any other value." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:92 +msgid "Other providers" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:94 +msgid "For other S3-compatible providers, you may not need to configure security policies, etc. (just like for [Backblaze B2](#backblaze-b2))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:96 +msgid "You most likely just need to create an S3 bucket and get some credentials (access key and secret key) for accessing the bucket in a read/write manner." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:98 +msgid "Setting up" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:100 +msgid "To set up Synapse to store files in S3, follow the instructions for the method of your choice:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:102 +msgid "using [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:103 +msgid "using [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:104 +msgid "using [matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po new file mode 100644 index 000000000..05095e33e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-shared-secret-auth.po @@ -0,0 +1,65 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:1 +msgid "Setting up the Shared Secret Auth password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:5 +msgid "See the project's [documentation](https://github.com/devture/matrix-synapse-shared-secret-auth/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:18 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:20 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:37 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po new file mode 100644 index 000000000..b78bbaae1 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sliding-sync-proxy.po @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:1 +msgid "Setting up the Sliding Sync proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:3 +msgid "**Note**: The sliding-sync proxy is **not required** anymore as it's been replaced with a different method (called Simplified Sliding Sync) which is integrated into newer homeservers by default (**Conduit** homeserver from version `0.6.0` or **Synapse** from version `1.114`). This component and documentation remain here for historical purposes, but **installing this old sliding-sync proxy is generally not recommended anymore**." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:5 +msgid "The playbook can install and configure [sliding-sync](https://github.com/matrix-org/sliding-sync) proxy for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:7 +msgid "Sliding Sync is an implementation of [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md) and a prerequisite for running Element X clients ([Element X iOS](https://github.com/element-hq/element-x-ios) and [Element X Android](https://github.com/element-hq/element-x-android)). See the project's [documentation](https://github.com/matrix-org/sliding-sync) to learn more." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:11 +msgid "By default, this playbook installs the Sliding Sync proxy on the `matrix.` subdomain, at the `/sliding-sync` path (https://matrix.example.com/sliding-sync). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-sliding-sync-proxy-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:17 +msgid "To enable Sliding Sync proxy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:23 +msgid "Adjusting the Sliding Sync proxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:25 +msgid "By tweaking the `matrix_sliding_sync_hostname` and `matrix_sliding_sync_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-sliding-sync-proxy.md:27 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:35 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Sliding Sync proxy domain (`ss.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:37 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:39 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:41 +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-sliding-sync-proxy.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-sliding-sync-proxy.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-sliding-sync-proxy.md:52 +msgid "External databases" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:54 +msgid "Please note that, if your setup utilizes an external database, you must also establish configuration for the sliding sync proxy. Alter the defaults below to suit your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:64 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:66 +msgid "You **don't need to do anything special** to make use of the Sliding Sync proxy. Simply open your client which supports Sliding Sync (like Element X) and log in." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:68 +msgid "When the Sliding Sync proxy is [installed](#installing), your `/.well-known/matrix/client` file is also updated. A new `org.matrix.msc3575.proxy` section and `url` property are added there and made to point to your Sliding Sync proxy's base URL (e.g. `https://matrix.example.com/sliding-sync`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:70 +msgid "This allows clients which support Sliding Sync to detect the Sliding Sync proxy's URL and make use of it." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po new file mode 100644 index 000000000..9602f8e4f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-ssl-certificates.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:1 +msgid "Adjusting SSL certificate retrieval (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:3 +msgid "By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:5 +msgid "This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:7 +msgid "Using staging Let's Encrypt certificates instead of real ones" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:9 +msgid "For testing purposes, you may wish to use staging certificates provide by Let's Encrypt." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:17 +msgid "Disabling SSL termination" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:19 +msgid "For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:21 +msgid "Add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:27 +msgid "Using self-signed SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:29 +msgid "If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)):" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:31 +msgid "generate your self-signed certificate files" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:32 +msgid "follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:34 +msgid "Using your own SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:36 +msgid "To use your own SSL certificates with Traefik, you need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:38 +msgid "disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:39 +msgid "put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:40 +msgid "register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:41 +msgid "put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:89 +msgid "Using a DNS-01 ACME challenge type, instead of HTTP-01" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:91 +msgid "You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but it can be helpful to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:93 +msgid "hide your public IP from Let's Encrypt logs" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:94 +msgid "allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:96 +msgid "This is an example for how to edit the `vars.yml` file if you're using Cloudflare:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:111 +msgid "Make sure to change the value of \"provider\" to your particular DNS solution, and provide the appropriate environment variables. The full list of supported providers is available [here](https://doc.traefik.io/traefik/https/acme/#providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:113 +msgid "This example assumes you're using Cloudflare to manage your DNS zone. Note that it requires the use of two tokens: one for reading all zones (`CF_ZONE_API_TOKEN`) and another that must be able to edit the particular domain you're using (`CF_DNS_API_TOKEN`). For security, it's recommended that you create two fine-grained tokens for this purpose, but you might choose to use the same token for both." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sygnal.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sygnal.po new file mode 100644 index 000000000..7c9f6c6ac --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-sygnal.po @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-sygnal.md:1 +msgid "Setting up the Sygnal push gateway (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:3 +msgid "The playbook can install and configure the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/sygnal/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:7 +msgid "**Note**: most people don't need to install their own gateway. As Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) documentation says:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:9 +msgid "It is not feasible to allow end-users to configure their own Sygnal instance, because the Sygnal instance needs the appropriate FCM or APNs secrets that belong to the application." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:11 +msgid "This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:13 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:15 +msgid "By default, this playbook installs Sygnal on the `sygnal.` subdomain (`sygnal.example.com`) and requires you to create a CNAME record for `sygnal`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:17 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:21 +msgid "To enable Sygnal, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:49 +msgid "Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:51 +msgid "To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files. To do that, the above example configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:53 +msgid "makes use of the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) (and its `aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml) of the `aux` role for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `aux`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:55 +msgid "references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/…` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:57 +msgid "Adjusting the Sygnal URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:59 +msgid "By tweaking the `matrix_sygnal_hostname` and `matrix_sygnal_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-sygnal.md:61 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:72 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:74 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:76 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:78 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:80 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:82 +msgid "`roles/custom/matrix-sygnal/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:83 +msgid "`roles/custom/matrix-sygnal/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_sygnal_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:87 +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-sygnal.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:96 +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-sygnal.md:98 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:100 +msgid "To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is to your Sygnal URL endpoint (e.g. `https://sygnal.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:102 +msgid "Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po new file mode 100644 index 000000000..36e8426b0 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-admin.po @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-admin.md:1 +msgid "Setting up Synapse Admin (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:3 +msgid "The playbook can install and configure [etkecc/synapse-admin](https://github.com/etkecc/synapse-admin) (a [feature-rich](https://github.com/etkecc/synapse-admin#fork-differences) fork of [Awesome-Technologies/synapse-admin](https://github.com/Awesome-Technologies/synapse-admin), community room: [#synapse-admin:etke.cc](https://matrix.to/#/#synapse-admin:etke.cc)) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:5 +msgid "synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation and WON'T work with Dendrite because [Dendrite Admin API](https://element-hq.github.io/dendrite/administration/adminapi) differs from [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:7 +msgid "💡 **Note**: the latest version of synapse-admin is hosted by [etke.cc](https://etke.cc/) at [admin.etke.cc](https://admin.etke.cc/). If you only need this service occasionally and trust giving your admin credentials to a 3rd party Single Page Application, you can consider using it from there and avoiding the (small) overhead of self-hosting." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:11 +msgid "By default, this playbook installs Synapse Admin on the `matrix.` subdomain, at the `/synapse-admin` path (https://matrix.example.com/synapse-admin). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-admin-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:17 +msgid "To enable Synapse Admin, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:23 +msgid "**Note**: Synapse Admin requires Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, the playbook **automatically** exposes the Synapse Admin API publicly for you. Depending on the homeserver implementation you're using (Synapse, Dendrite), this is equivalent to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:25 +msgid "for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:26 +msgid "for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:28 +msgid "By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) — the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:30 +msgid "[!WARNING] If you're using [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS) for authentication, you will be able to [log into synapse-admin with an access token](https://github.com/etkecc/synapse-admin/pull/58), but certain synapse-admin features (especially those around user management) will be limited or not work at all." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:33 +msgid "Adjusting the Synapse Admin URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:35 +msgid "By tweaking the `matrix_synapse_admin_hostname` and `matrix_synapse_admin_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-synapse-admin.md:37 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:45 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Synapse Admin domain (`admin.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:47 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:49 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:51 +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-synapse-admin.md:58 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:60 +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-synapse-admin.md:62 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:64 +msgid "After installation, Synapse Admin will be accessible at: `https://matrix.example.com/synapse-admin/`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:66 +msgid "To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po new file mode 100644 index 000000000..4157b151a --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-accept-invite.po @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:1 +msgid "Setting up Synapse Auto Invite Accept (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:3 +msgid "The playbook can install and configure [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:5 +msgid "In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:9 +msgid "**Note**: Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the same feature [has been merged](https://github.com/element-hq/synapse/pull/17147) into Synapse (see the [Native alternative](#native-alternative) section below). You'd better use the native feature, instead of the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:13 +msgid "If you decide that you'd like to let this playbook install the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite module for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:21 +msgid "Synapse worker deployments" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:23 +msgid "In a [workerized Synapse deployment](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/c9a842147e09647c355799ca024d65a5de66b099/docs/configuring-playbook-synapse.md#load-balancing-with-workers) it is possible to run this module on a worker to reduce the load on the main process (Default is `null`). For example, add this to your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:29 +msgid "There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:31 +msgid "Native alternative" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:33 +msgid "Since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the functionality provided by the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module [has been made](https://github.com/element-hq/synapse/pull/17147) part of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:35 +msgid "Here's example configuration for using the **native** Synapse feature:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po new file mode 100644 index 000000000..345f28d0f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-auto-compressor.po @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:1 +msgid "Setting up synapse-auto-compressor (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:3 +msgid "The playbook can install and configure [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:5 +msgid "It's a CLI tool that automatically compresses Synapse's `state_groups` database table in the background." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/blob/master/README.md#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:17 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:19 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:26 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:28 +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-synapse-auto-compressor.md:30 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:32 +msgid "After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_calendar` by default)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:34 +msgid "Manually execute compression" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:36 +msgid "Sometimes it can be helpful to execute compression as you'd like, avoiding to wait until 00:00, like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:38 +msgid "If you want to execute it immediately, log in to the server with SSH and run `systemctl start matrix-synapse-auto-compressor`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:40 +msgid "This will not return until the compression is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po new file mode 100644 index 000000000..0407996b6 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-s3-storage-provider.po @@ -0,0 +1,277 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:1 +msgid "Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can use the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) media provider module for Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:5 +msgid "An alternative (which has worse performance) is to use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:7 +msgid "How it works?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:9 +msgid "Summarized writings here are inspired by [this article](https://quentin.dufour.io/blog/2021-09-14/matrix-synapse-s3-storage/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:11 +msgid "The way media storage providers in Synapse work has some caveats:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:13 +msgid "Synapse still continues to use locally-stored files (for creating thumbnails, serving files, etc)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:14 +msgid "the media storage provider is just an extra storage mechanism (in addition to the local filesystem)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:15 +msgid "all files are stored locally at first, and then copied to the media storage provider (either synchronously or asynchronously)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:16 +msgid "if a file is not available on the local filesystem, it's pulled from a media storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:18 +msgid "You may be thinking **if all files are stored locally as well, what's the point**?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:20 +msgid "You can run some scripts to delete the local files once in a while (which we do automatically by default — see [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem)), thus freeing up local disk space. If these files are needed in the future (for serving them to users, etc.), Synapse will pull them from the media storage provider on demand." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:22 +msgid "While you will need some local disk space around, it's only to accommodate usage, etc., and won't grow as large as your S3 store." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:26 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:48 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:50 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:52 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:54 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:56 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:58 +msgid "If you have existing files in Synapse's media repository (`/matrix/synapse/storage/media-store/…`):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:60 +msgid "new files will start being stored both locally and on the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:61 +msgid "the existing files will remain on the local filesystem only until [migrating them to the S3 store](#migrating-your-existing-media-files-to-the-s3-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:62 +msgid "at some point (and periodically in the future), you can delete local files which have been uploaded to the S3 store already" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:64 +msgid "Regardless of whether you need to [Migrate your existing files to the S3 store](#migrating-your-existing-media-files-to-the-s3-store) or not, make sure you've familiarized yourself with [How it works?](#how-it-works) above and [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem) below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:66 +msgid "Migrating your existing media files to the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:68 +msgid "Migrating your existing data can happen in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:70 +msgid "[using the `s3_media_upload` script from `synapse-s3-storage-provider`](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (very slow when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:71 +msgid "[using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload) (quicker when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:73 +msgid "💡 **Note**: instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:75 +msgid "Using the `s3_media_upload` script from `synapse-s3-storage-provider`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:77 +msgid "To copy your existing files, SSH into the server and run `/matrix/synapse/ext/s3-storage-provider/bin/shell`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:79 +msgid "This launches a Synapse container, which has access to the local media store, Postgres database, S3 store and has some convenient environment variables configured for you to use (`MEDIA_PATH`, `BUCKET`, `ENDPOINT`, `UPDATE_DB_DAYS`, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:81 +msgid "Then use the following commands (`$` values come from environment variables — they're **not placeholders** that you need to substitute):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:83 +msgid "`s3_media_upload update-db $UPDATE_DB_DURATION` — create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:84 +msgid "`$UPDATE_DB_DURATION` is influenced by the `matrix_synapse_ext_synapse_s3_storage_provider_update_db_day_count` variable (defaults to `0`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:85 +msgid "`$UPDATE_DB_DURATION` defaults to `0d` (0 days), which means **include files which haven't been accessed for more than 0 days** (that is, **all files will be included**)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:86 +msgid "`s3_media_upload check-deleted $MEDIA_PATH` — check whether files in the local cache still exist in the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:87 +msgid "`s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` — uploads locally-stored files to S3 and deletes them from the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:89 +msgid "The `s3_media_upload upload` command may take a lot of time to complete." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:91 +msgid "Instead of running the above commands manually in the shell, you can also run the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script which will run the same commands automatically. We demonstrate how to do it manually, because:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:93 +msgid "it's what the upstream project demonstrates and it teaches you how to use the `s3_media_upload` tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:94 +msgid "allows you to check and verify the output of each command, to catch mistakes" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:95 +msgid "includes progress bars and detailed output for each command" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:96 +msgid "allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill …`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:98 +msgid "Using another tool in combination with `s3_media_upload`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:100 +msgid "To migrate your existing local data to S3, we recommend to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:102 +msgid "**first** use another tool ([`aws s3`](#copying-data-to-amazon-s3) or [`b2 sync`](#copying-data-to-backblaze-b2), etc.) to copy the local files to the S3 bucket" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:104 +msgid "**only then** [use the `s3_media_upload` tool to finish the migration](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (this checks to ensure all files are uploaded and then deletes the local files)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:106 +msgid "Copying data to Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:108 +msgid "To copy to AWS S3, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:120 +msgid "Copying data to an S3 alternative using the aws-s3 tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:122 +msgid "To copy to a provider other than AWS S3 (e.g. Storj, Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:124 +msgid "Add this argument to the command **as-is** (`$ENDPOINT` is an environment variable corresponding to `matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url`, so you don't need to touch it). Make sure to add the argument **before** the final quote (`'`) of the command." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:126 +msgid "Copying data to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:128 +msgid "You can copy files to Backblaze B2 either by following the [Copying data to an S3 alternative using the aws-s3 tool](#copying-data-to-an-s3-alternative-using-the-aws-s3-tool) or by using the B2-specific [b2 command-line tool](https://www.backblaze.com/b2/docs/quick_command_line.html) as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:130 +msgid "To copy the data using the `b2` tool, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:144 +msgid "Periodically cleaning up the local filesystem" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:146 +msgid "As described in [How it works?](#how-it-works) above, when new media is uploaded to the Synapse homeserver, it's first stored locally and then also stored on the remote S3 storage." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:148 +msgid "By default, we periodically ensure that all local files are uploaded to S3 and are then removed from the local filesystem. This is done automatically using:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:150 +msgid "the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:151 +msgid "… invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:152 +msgid "… triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:154 +msgid "So… you don't need to perform any maintenance yourself." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po new file mode 100644 index 000000000..32fbdb473 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-simple-antispam.po @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 09:53+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:1 +msgid "Setting up Synapse Simple Antispam (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:3 +msgid "The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:5 +msgid "It lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:7 +msgid "See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po new file mode 100644 index 000000000..024aaf248 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse-usage-exporter.po @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:1 +msgid "Enabling synapse-usage-exporter for Synapse usage statistics (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:3 +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:5 +msgid "Synapse does not include usage statistics in its Prometheus metrics. They can be reported to an HTTP `PUT` endpoint 5 minutes after startup and from then on at a fixed interval of once every three hours. This role integrates a simple [Flask](https://flask.palletsprojects.com) project that offers an HTTP `PUT` endpoint and holds the most recent received record available to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:7 +msgid "Enabling this service will automatically:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:9 +msgid "install the synapse-usage-exporter service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:10 +msgid "re-configure Synapse to push (via HTTP `PUT`) usage statistics information to synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:11 +msgid "re-configure [Prometheus](./configuring-playbook-prometheus-grafana.md) (if Prometheus is enabled), to periodically scrape metrics from synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:12 +msgid "add a new [Grafana](./configuring-playbook-prometheus-grafana.md) dashboard (if Grafana is enabled) containing Synapse usage statistics" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:14 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:16 +msgid "By default, this playbook installs synapse-usage-exporter on the `matrix.` subdomain, at the `/report-usage-stats/push` path (https://matrix.example.com/report-usage-stats/push). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:18 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-usage-exporter-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:22 +msgid "To enable synapse-usage-exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:34 +msgid "Adjusting the synapse-usage-exporter URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:36 +msgid "By tweaking the `matrix_synapse_usage_exporter_hostname` and `matrix_synapse_usage_exporter_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-synapse-usage-exporter.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:47 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the synapse-usage-exporter domain (`sue.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:49 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:51 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:53 +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-synapse-usage-exporter.md:60 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:62 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse.po new file mode 100644 index 000000000..c2a063525 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-synapse.po @@ -0,0 +1,278 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-synapse.md:1 +msgid "Configuring Synapse (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:3 +msgid "By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, so that it works for the general case. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:7 +msgid "Load balancing with workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:9 +msgid "To have Synapse gracefully handle thousands of users, worker support should be enabled. It factors out some homeserver tasks and spreads the load of incoming client and server-to-server traffic between multiple processes. More information can be found in the [official Synapse workers documentation](https://github.com/element-hq/synapse/blob/master/docs/workers.md) and [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:11 +msgid "To enable Synapse worker support, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:19 +msgid "By default, this enables the `one-of-each` [worker preset](#worker-presets), but you may wish to use another preset or [control the number of worker instances](#controlling-the-number-of-worker-instances)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:21 +msgid "Worker presets" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:23 +msgid "We support a few configuration presets (`matrix_synapse_workers_preset: one-of-each` being the default configuration right now):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:25 +msgid "(federation-only) `little-federation-helper` — a very minimal worker configuration to improve federation performance" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:26 +msgid "(generic) `one-of-each` — defaults to one worker of each supported type — no smart routing, just generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:27 +msgid "(specialized) `specialized-workers` — defaults to one worker of each supported type, but disables generic workers and uses [specialized workers](#specialized-workers) instead" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:29 +msgid "These presets represent a few common configurations. There are many worker types which can be mixed and matched based on your needs." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:31 +msgid "Generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:33 +msgid "Previously, the playbook only supported the most basic type of load-balancing. We call it **generic load-balancing** below, because incoming HTTP requests are sent to a generic worker. Load-balancing was done based on the requestor's IP address. This is simple, but not necessarily optimal. If you're accessing your account from multiple IP addresses (e.g. your mobile phone being on a different network than your PC), these separate requests may potentially be routed to different workers, each of which would need to cache roughly the same data." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:35 +msgid "This is **still the default load-balancing method (preset) used by the playbook**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:37 +msgid "To use generic load-balancing, do not specify `matrix_synapse_workers_preset` to make it use the default value (`one-of-each`), or better yet — explicitly set it as `one-of-each`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:39 +msgid "You may also consider [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:41 +msgid "Specialized workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:43 +msgid "The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requestor and/or on the resource (room, etc.) being requested." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:45 +msgid "The playbook supports these **4 types** of specialized workers:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:47 +msgid "Room workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) & [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs dedicated to handling specific rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:48 +msgid "Sync workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs related to synchronization (most notably [the `/sync` endpoint](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv3sync))" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:49 +msgid "Client readers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs which are not for specific rooms (handled by **room workers**) or for synchronization (handled by **sync workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:50 +msgid "Federation readers — handles various [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs which are not for specific rooms (handled by **room workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:52 +msgid "To use specialized load-balancing, consider enabling the `specialized-workers` [worker preset](#worker-presets) and potentially [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:54 +msgid "Controlling the number of worker instances" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:56 +msgid "If you'd like more customization power, you can start with one of the [worker presets](#worker-presets) and then tweak various `matrix_synapse_workers_*_count` variables manually." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:58 +msgid "To find what variables are available for you to override in your own `vars.yml` configuration file, see the [`defaults/main.yml` file for the `matrix-synapse` Ansible role](../roles/custom/matrix-synapse/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:60 +msgid "The only thing you **cannot** do is mix [generic workers](#generic-workers) and [specialized workers](#specialized-workers)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:62 +msgid "Effect of enabling workers on the rest of your server" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:64 +msgid "When Synapse workers are enabled, the integrated [Postgres database is tuned](maintenance-postgres.md#tuning-postgresql), so that the maximum number of Postgres connections are increased from `200` to `500`. If you need to decrease or increase the number of maximum Postgres connections further, use the `postgres_max_connections` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:66 +msgid "A separate Ansible role (`matrix-synapse-reverse-proxy-companion`) and component handles load-balancing for workers. This role/component is automatically enabled when you enable workers. Make sure to use the `setup-all` tag (not `install-all`!) during the playbook's [installation](./installing.md) process, especially if you're disabling workers, so that components may be installed/uninstalled correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:68 +msgid "In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/element-hq/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:70 +msgid "Synapse + OpenID Connect for Single-Sign-On" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:72 +msgid "💡 An alternative to setting up OIDC in Synapse is to use [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS). Newer clients (like Element X) only support SSO-based authentication via MAS and not via the legacy Synapse OIDC setup described below. That said, MAS is still a new experimental service which comes with its own downsides. Consult its documentation to learn if it will be a good fit for your deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:74 +msgid "If you'd like to use OpenID Connect authentication with Synapse, you'll need some additional configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:76 +msgid "This example configuration is for [keycloak](https://www.keycloak.org/), an opensource Identity Provider maintained by Red Hat." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:78 +msgid "For more detailed documentation on available options and how to setup keycloak, see the [Synapse documentation on OpenID Connect with keycloak](https://github.com/element-hq/synapse/blob/develop/docs/openid.md#keycloak)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:80 +#, python-format +msgid "In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ;" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:101 +msgid "Customizing templates" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:103 +msgid "[Templates](https://github.com/element-hq/synapse/blob/develop/docs/templates.md) are used by Synapse for showing **certain web pages** handled by the server, as well as for **email notifications**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:105 +msgid "This playbook allows you to customize the default templates (see the [`synapse/res/templates` directory](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates))." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:107 +msgid "If template customization is enabled, the playbook will build a custom container image based on the official one." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:109 +msgid "Your custom templates need to live in a public or private git repository. This repository will be cloned during Synapse image customization (during the playbook run)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:111 +msgid "To enable template customizations, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:137 +msgid "As mentioned in Synapse's Templates documentation, Synapse will fall back to its own templates if a template is not found in that directory. Due to this, it's recommended to only store and maintain template files in your repository if you need to make custom changes. Other files (which you don't need to change), should not be duplicated, so that you don't need to worry about getting out-of-sync with the original Synapse templates." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:139 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:141 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:143 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:145 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:146 +msgid "`roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_synapse_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:148 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:150 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:157 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:159 +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-synapse.md:161 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:163 +msgid "Synapse Admin" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:165 +msgid "With [Synapse Admin](configuring-playbook-synapse-admin.md), certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:167 +msgid "The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:169 +msgid "Monitoring Synapse Metrics with Prometheus and Grafana" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:171 +msgid "This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:173 +msgid "To enable Synapse runtime metrics see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:175 +msgid "To enable Synapse usage metrics, see: [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-telemetry.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-telemetry.po new file mode 100644 index 000000000..536a20ece --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-telemetry.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-telemetry.md:1 +msgid "Enabling Telemetry for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:3 +msgid "By default, this playbook configures your Matrix homeserver to not send any telemetry data anywhere." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:5 +msgid "The [matrix.org](https://matrix.org) team would really appreciate it if you could help the project out by reporting usage statistics from your homeserver. Enabling usage statistics helps track the growth of the Matrix community, and helps to make Matrix a success." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:9 +msgid "If you'd like to **help by enabling submission of general usage statistics** for your homeserver, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:17 +msgid "Usage statistics being submitted" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:19 +msgid "When enabled, your homeserver will regularly upload a few dozen statistics about your server. This data includes your homeserver's domain, the total number of users, the number of active users, the total number of rooms, and the number of messages sent per day on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:21 +msgid "See [Synapse's documentation](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md#available-statistics) or [Dendrite's documentation](https://github.com/element-hq/dendrite/blob/main/docs/FAQ.md#what-is-being-reported-when-enabling-phone-home-statistics) for the full list of statistics that are reported." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-traefik.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-traefik.po new file mode 100644 index 000000000..5fbbcbac9 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-traefik.po @@ -0,0 +1,138 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-traefik.md:1 +msgid "Configuring the Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:3 +msgid "By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [ansible-role-traefik](https://github.com/mother-of-all-self-hosting/ansible-role-traefik) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:5 +msgid "This Ansible role support various configuration options. Feel free to consult its `default/main.yml` variables file." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:7 +msgid "Adjusting SSL certificate retrieval" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:9 +msgid "See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:11 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:17 +msgid "Disable access logs" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:19 +msgid "This will disable access logging." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:25 +msgid "Enable Traefik Dashboard" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:27 +msgid "This will enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:37 +msgid "[!WARNING] Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:40 +msgid "Additional configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:42 +msgid "Use the `traefik_configuration_extension_yaml` variable provided by the Traefik Ansible role to override or inject additional settings, even when no dedicated variable exists." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:52 +msgid "Reverse-proxying another service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:54 +msgid "The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:56 +msgid "However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:58 +msgid "Reverse-proxying a remote HTTP/HTTPS service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:60 +msgid "If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://:` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:62 +msgid "Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:64 +msgid "First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:78 +msgid "If you are using a self-signed certificate on your webserver, you can tell Traefik to trust your own backend servers by adding more configuration to the static configuration file. If you do so, bear in mind the security implications of disabling the certificate validity checks towards your back end." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:92 +msgid "Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:111 +#: ../../../docs/configuring-playbook-traefik.md:134 +msgid "Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:113 +msgid "Reverse-proxying another service behind Traefik without terminating SSL" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:115 +msgid "If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:136 +msgid "With these changes, all TCP traffic will be reverse-proxied to the target system." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:138 +msgid "[!WARNING] This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:141 +msgid "Traefik behind a `proxy_protocol` reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:143 +msgid "If you run a reverse-proxy which speaks `proxy_protocol`, add the following to your configuration file:" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-turn.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-turn.po new file mode 100644 index 000000000..71519811d --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-turn.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-turn.md:1 +msgid "Configuring a TURN server (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:3 +msgid "By default, this playbook installs and configures the [coturn](https://github.com/coturn/coturn) as a TURN server, through which clients can make audio/video calls even from [NAT](https://en.wikipedia.org/wiki/Network_address_translation)-ed networks. It also configures the Synapse chat server by default, so that it points to the coturn TURN server installed by the playbook. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:5 +msgid "If you'd like to stop the playbook installing the server, see the section [below](#disabling-coturn) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:9 +msgid "Define public IP manually (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:11 +msgid "In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:13 +msgid "If you'd rather use a local IP for `ansible_host`, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_PUBLIC_IP` with the pubic IP used by the server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:19 +msgid "If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:21 +msgid "If your server has multiple external IP addresses, the coturn role offers a different variable for specifying them:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:28 +msgid "Change the authentication mechanism (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:30 +msgid "The playbook uses the [`auth-secret` authentication method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L186-L199) by default, but you may switch to the [`lt-cred-mech` method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L178) which [some report](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3191) to be working better." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:32 +msgid "To do so, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:38 +msgid "Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:40 +msgid "If [Jitsi](configuring-playbook-jitsi.md) is installed, note that switching to `lt-cred-mech` will disable the integration between Jitsi and your coturn server, as Jitsi seems to support the `auth-secret` authentication method only." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:42 +msgid "Use your own external coturn server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:44 +msgid "If you'd like to use another TURN server (be it coturn or some other one), add the following configuration to your `vars.yml` file. Make sure to replace `HOSTNAME_OR_IP` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:58 +msgid "If you have or want to enable Jitsi, you might want to enable the TURN server there too. If you do not do it, Jitsi will fall back to an upstream service." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:65 +msgid "You can put multiple host/port combinations if you'd like to." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:67 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:69 +msgid "There are some additional things you may wish to configure about the TURN server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:71 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:73 +msgid "`roles/custom/matrix-coturn/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:75 +msgid "Disabling coturn" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:77 +msgid "If, for some reason, you'd like for the playbook to not install coturn (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:83 +msgid "In that case, Synapse would not point to any coturn servers and audio/video call functionality may fail." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:87 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:96 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po new file mode 100644 index 000000000..34b2e3b49 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook-user-verification-service.po @@ -0,0 +1,233 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook-user-verification-service.md:1 +msgid "Setting up Matrix User Verification Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:3 +msgid "The playbook can install and configure [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-user-verification-service/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:7 +msgid "Currently, the main purpose of this role is to allow Jitsi to authenticate Matrix users and check if they are authorized to join a conference. If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:9 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:11 +msgid "UVS can be used to verify two claims:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:13 +msgid "(A) Whether a given OpenID token is valid for a given server and" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:14 +msgid "(B) whether a user is member of a given room and the corresponding PowerLevel" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:16 +msgid "Verifying an OpenID token ID done by finding the corresponding Homeserver via `/.well-known/matrix/server` for the given domain. The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this. By default, this playbook only checks against `matrix_server_fqn_matrix`. Therefore, the request will be made against the public `openid` API for `matrix_server_fqn_matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:18 +msgid "Verifying RoomMembership and PowerLevel is done against `matrix_user_verification_service_uvs_homeserver_url` which is by default done via the docker network. UVS will verify the validity of the token beforehand though." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:20 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:22 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:24 +msgid "Enabling the UVS service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:26 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:28 +msgid "UVS can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:30 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:32 +msgid "We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username). **Because UVS requires an access token as an admin user, that user needs to be an admin.**" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:34 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:36 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:42 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:44 +msgid "UVS requires an access token as an admin user to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:46 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:49 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:51 +msgid "To enable UVS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:59 +msgid "In the default configuration, the UVS Server is only reachable via the docker network, which is fine if e.g. Jitsi is also running in a container on the host. However, it is possible to expose UVS via setting `matrix_user_verification_service_container_http_host_bind_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:61 +msgid "Custom Auth Token (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:63 +msgid "It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header `Authorization: Bearer YOUR_TOKEN_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:65 +msgid "By default, the token (`YOUR_TOKEN_HERE`) will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:67 +msgid "To set your own token, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_TOKEN_HERE` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:73 +msgid "If a Jitsi instance is also managed by this playbook and [`matrix` authentication](configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix) is enabled there, this collection will automatically configure Jitsi to use the configured auth token." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:75 +msgid "Disable Authorization (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:77 +msgid "Authorization is enabled by default. To disable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:83 +msgid "Federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:85 +msgid "In theory (however currently untested), UVS can handle federation. To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:91 +msgid "This will instruct UVS to verify the OpenID token against any domain given in a request. Homeserver discovery is done via `.well-known/matrix/server` of the given domain." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:93 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:95 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:97 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:99 +msgid "`roles/custom/matrix-user-verification-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:101 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:103 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:110 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service matrix-user-verification-service` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:112 +msgid "`just install-service matrix-user-verification-service` 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 "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:114 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:116 +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-user-verification-service`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:118 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:120 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:127 +msgid "TLS Certificate Checking" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:129 +msgid "If the Matrix Homeserver does not provide a valid TLS certificate, UVS will fail with the following error message:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:131 +msgid "message: 'No response received: [object Object]'," +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:133 +msgid "This also applies to self-signed and Let's Encrypt staging certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:135 +msgid "To disable certificate validation altogether (INSECURE! Not suitable for production use!) set: `NODE_TLS_REJECT_UNAUTHORIZED=0`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:137 +msgid "Alternatively, it is possible to inject your own CA certificates into the container by mounting a PEM file with additional trusted CAs into the container and pointing the `NODE_EXTRA_CA_CERTS` environment variable to it." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook.po new file mode 100644 index 000000000..2e19c7b85 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-playbook.po @@ -0,0 +1,545 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-playbook.md:1 +msgid "Configuring the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > Configuring the playbook > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:5 +msgid "If you've configured your DNS records and retrieved the playbook's source code to your computer, you can start configuring the playbook. To do so, follow these steps inside the playbook directory:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:7 +msgid "create a directory to hold your configuration (`mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\")" +msgstr "" + +#: ../../../docs/configuring-playbook.md:9 +msgid "copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:11 +msgid "edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file." +msgstr "" + +#: ../../../docs/configuring-playbook.md:13 +msgid "copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:15 +msgid "edit the inventory hosts file (`inventory/hosts`) to your liking" +msgstr "" + +#: ../../../docs/configuring-playbook.md:17 +msgid "(optional, advanced) you may wish to keep your `inventory` directory under version control with [git](https://git-scm.com/) or any other version-control system." +msgstr "" + +#: ../../../docs/configuring-playbook.md:19 +msgid "(optional, advanced) to run Ansible against multiple servers with different `sudo` credentials, you can copy the sample inventory hosts yaml file for each of your hosts: (`cp examples/host.yml inventory/my_host1.yml` …) and use the [`ansible-all-hosts.sh`](../bin/ansible-all-hosts.sh) script [in the installation step](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:21 +msgid "For a basic Matrix installation, that's all you need." +msgstr "" + +#: ../../../docs/configuring-playbook.md:23 +msgid "For a more custom setup, see the [Other configuration options](#other-configuration-options) below." +msgstr "" + +#: ../../../docs/configuring-playbook.md:25 +msgid "[▶️](installing.md) When you're done with all the configuration you'd like to do, continue with [Installing](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:27 +msgid "Other configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook.md:29 +msgid "**Note**: some of the roles like one for integrating Etherpad or Jitsi are managed by their own repositories, and the configuration files for them cannot be found locally (in `roles/galaxy`) until those roles are fetched from the upstream projects. Check [requirements.yml](../requirements.yml) for the URLs of those roles." +msgstr "" + +#: ../../../docs/configuring-playbook.md:31 +msgid "Core service adjustments" +msgstr "" + +#: ../../../docs/configuring-playbook.md:33 +msgid "Homeserver configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:34 +msgid "[Configuring Synapse](configuring-playbook-synapse.md), if you're going with the default/recommended homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:36 +msgid "[Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:38 +msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:40 +msgid "[Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:42 +msgid "Server components:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:43 +msgid "[Using an external PostgreSQL server](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:45 +msgid "[Configuring a TURN server](configuring-playbook-turn.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:47 +msgid "[Configuring the Traefik reverse-proxy](configuring-playbook-traefik.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:49 +msgid "[Using your own webserver, instead of this playbook's Traefik reverse-proxy](configuring-playbook-own-webserver.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:51 +msgid "[Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:53 +msgid "[Adjusting email-sending settings](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:55 +msgid "[Setting up ma1sd Identity Server](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:57 +msgid "[Setting up Dynamic DNS](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:59 +msgid "Server connectivity:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:60 +msgid "[Enabling Telemetry for your Matrix server](configuring-playbook-telemetry.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:62 +msgid "[Controlling Matrix federation](configuring-playbook-federation.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:64 +msgid "Clients" +msgstr "" + +#: ../../../docs/configuring-playbook.md:66 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/configuring-playbook.md:68 +msgid "[Configuring Element Web](configuring-playbook-client-element-web.md), if you're going with the default/recommended client" +msgstr "" + +#: ../../../docs/configuring-playbook.md:70 +msgid "[Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/configuring-playbook.md:72 +msgid "[Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface" +msgstr "" + +#: ../../../docs/configuring-playbook.md:74 +msgid "[Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:76 +msgid "Authentication and user-related" +msgstr "" + +#: ../../../docs/configuring-playbook.md:78 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook.md:80 +msgid "[Setting up Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (Next-generation auth for Matrix, based on OAuth 2.0/OIDC)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:82 +msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:84 +msgid "[Setting up Synapse Admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:86 +msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:88 +msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:90 +msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:92 +msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:94 +msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:96 +msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:98 +msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:100 +msgid "File Storage" +msgstr "" + +#: ../../../docs/configuring-playbook.md:102 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/configuring-playbook.md:104 +msgid "[Storing Matrix media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:106 +msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:108 +msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:110 +msgid "Bridging other networks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:112 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/configuring-playbook.md:114 +msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges" +msgstr "" + +#: ../../../docs/configuring-playbook.md:116 +msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:118 +msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:120 +msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:122 +msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:124 +msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:126 +msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:128 +msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:130 +msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:132 +msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:134 +msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:136 +msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:138 +msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:140 +msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:142 +msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:144 +msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:146 +msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:148 +msgid "[Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:150 +msgid "[Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:152 +msgid "[Setting up MX Puppet Instagram bridging](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:154 +msgid "[Setting up MX Puppet Twitter bridging](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:156 +msgid "[Setting up MX Puppet Discord bridging](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:158 +msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:160 +msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:162 +msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:164 +msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:166 +msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:168 +msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:170 +msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:172 +msgid "Bots" +msgstr "" + +#: ../../../docs/configuring-playbook.md:174 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:176 +msgid "[Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:178 +msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff" +msgstr "" + +#: ../../../docs/configuring-playbook.md:180 +msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users" +msgstr "" + +#: ../../../docs/configuring-playbook.md:182 +msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/configuring-playbook.md:184 +msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:186 +msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:188 +msgid "[Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer" +msgstr "" + +#: ../../../docs/configuring-playbook.md:190 +msgid "[Setting up Draupnir for all/D4A](configuring-playbook-appservice-draupnir-for-all.md) — like the [Draupnir bot](configuring-playbook-bot-draupnir.md) mentioned above, but running in appservice mode and supporting multiple instances" +msgstr "" + +#: ../../../docs/configuring-playbook.md:192 +msgid "[Setting up Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../docs/configuring-playbook.md:194 +msgid "Administration" +msgstr "" + +#: ../../../docs/configuring-playbook.md:196 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:198 +msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:200 +msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:202 +msgid "[Enabling metrics and graphs for NginX logs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:204 +msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:206 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:208 +msgid "Backups:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:209 +msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database" +msgstr "" + +#: ../../../docs/configuring-playbook.md:211 +msgid "[Setting up postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:213 +msgid "Other specialized services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:215 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/configuring-playbook.md:217 +msgid "[Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:219 +msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers" +msgstr "" + +#: ../../../docs/configuring-playbook.md:221 +msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:223 +msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:225 +msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:227 +msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook.md:229 +msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:231 +msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:233 +msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:235 +msgid "Deprecated / unmaintained / removed services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:237 +msgid "**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless." +msgstr "" + +#: ../../../docs/configuring-playbook.md:239 +msgid "[Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:241 +msgid "[Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:243 +msgid "[Setting up the Dimension integration manager](configuring-playbook-dimension.md) ([unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299); after [installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:245 +msgid "[Setting up Email2Matrix](configuring-playbook-email2matrix.md) (unmaintained; the author suggests taking a look at [Postmoogle](https://github.com/etkecc/postmoogle) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-postmoogle.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:247 +msgid "[Setting up Go-NEB](configuring-playbook-bot-go-neb.md) (unmaintained; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:249 +msgid "[Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) (unmaintained; the bridge's author suggests taking a look at [baibot](https://github.com/etkecc/baibot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bot-baibot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:251 +msgid "[Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:253 +msgid "[Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (deprecated in favor of the Google Chat bridge with [mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:255 +msgid "[Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:257 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/configuring-well-known.po b/i18n/locales/jp/LC_MESSAGES/docs/configuring-well-known.po new file mode 100644 index 000000000..5645eafca --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/configuring-well-known.po @@ -0,0 +1,257 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/configuring-well-known.md:1 +msgid "Configuring Service Discovery via .well-known" +msgstr "" + +#: ../../../docs/configuring-well-known.md:3 +msgid "This documentation page explains how to configure Service discovery via `/.well-known/` files. Service discovery is a way for the Matrix network to discover where a Matrix server is." +msgstr "" + +#: ../../../docs/configuring-well-known.md:5 +msgid "Types of well-known service discovery mechanism" +msgstr "" + +#: ../../../docs/configuring-well-known.md:7 +msgid "There are 3 types of well-known service discovery mechanism that Matrix makes use of:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:9 +msgid "(important) **Federation Server discovery** (`/.well-known/matrix/server`) — assists other servers in the Matrix network with finding your server. With the default playbook configuration specified on the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), this is necessary for federation to work. Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/configuring-well-known.md:11 +msgid "(less important) **Client Server discovery** (`/.well-known/matrix/client`) — assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the \"Homeserver URL\" and \"Identity Server URL\" addresses." +msgstr "" + +#: ../../../docs/configuring-well-known.md:13 +msgid "(optional) **Support service discovery** (`/.well-known/matrix/support`) — returns server admin contact and support page of the domain." +msgstr "" + +#: ../../../docs/configuring-well-known.md:15 +msgid "Federation Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:17 +msgid "All services created by this playbook are meant to be installed on their own server (such as `matrix.example.com`), instead of the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:19 +msgid "As [per the Server-Server specification](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), in order to use a short Matrix user ID like `@alice:example.com` instead of `@alice:matrix.example.com` while hosting services on a subdomain such as `matrix.example.com`, the Matrix network needs to be instructed of [server delegation](howto-server-delegation.md) / redirection." +msgstr "" + +#: ../../../docs/configuring-well-known.md:21 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:23 +msgid "If you set up the DNS SRV record for server delegation instead, take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:25 +msgid "Client Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:27 +msgid "Client Server Service discovery lets various client programs which support it, to receive a full user ID (e.g. `@alice:example.com`) and determine where the Matrix server is automatically (e.g. `https://matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:29 +msgid "This lets you (and your users) easily connect to your Matrix server without having to customize connection URLs. When using client programs that support it, you won't need to point them to `https://matrix.example.com` in Custom Server options manually anymore. The connection URL would be discovered automatically from your full username." +msgstr "" + +#: ../../../docs/configuring-well-known.md:31 +msgid "Without /.well-known/matrix/client, the client will make the wrong \"homeserver URL\" assumption (it will default to using https://example.com, and users will need to notice and adjust it manually (changing it to https://matrix.example.com)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:33 +msgid "As [per the Client-Server specification](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) Matrix does Client Server service discovery using a `/.well-known/matrix/client` file hosted on the base domain (e.g. `example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:35 +msgid "However, this playbook installs your Matrix server on another domain (e.g. `matrix.example.com`) and not on the base domain (e.g. `example.com`), so it takes a little extra manual effort to set up the file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:37 +msgid "Support Service Discovery (optional)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:39 +msgid "[MSC 1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929), which was added to [Matrix Specification version v1.10](https://spec.matrix.org/v1.10/client-server-api/#getwell-knownmatrixsupport), specifies a way to add contact details of admins, as well as a link to a support page for users who are having issues with the service. Automated services may also index this information and use it for abuse reports, etc." +msgstr "" + +#: ../../../docs/configuring-well-known.md:41 +msgid "To enable it, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:62 +msgid "Installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:64 +msgid "To implement the service discovery mechanisms, your base domain's server (e.g. `example.com`) needs to run an HTTPS-capable webserver." +msgstr "" + +#: ../../../docs/configuring-well-known.md:66 +msgid "Serving the base domain from the Matrix server via the playbook" +msgstr "" + +#: ../../../docs/configuring-well-known.md:68 +msgid "If you don't have a server for your base domain at all, you can use the Matrix server for this. If you don't need the base domain (e.g. `example.com`) for anything else (hosting a website, etc.), you can point it to the Matrix server's IP address and tell the playbook to configure it." +msgstr "" + +#: ../../../docs/configuring-well-known.md:70 +msgid "**This is the easiest way to set up well-known serving** — letting the playbook handle the whole base domain for you (including SSL certificates, etc.) and take care to serve the appropriate well-known files automatically." +msgstr "" + +#: ../../../docs/configuring-well-known.md:72 +msgid "If you decide to go this route, you don't need to read ahead in this document. Instead, go to [Serving the base domain](configuring-playbook-base-domain-serving.md) to learn how the playbook can help you set it up." +msgstr "" + +#: ../../../docs/configuring-well-known.md:74 +msgid "However, if you need to use the base domain for other things, this method is less suitable than the one explained below." +msgstr "" + +#: ../../../docs/configuring-well-known.md:76 +msgid "Manually installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:78 +msgid "If you're managing the base domain by yourself somehow, you'll need to set up serving of some `/.well-known/matrix/*` files from it via HTTPS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:80 +msgid "To make things easy for you to set up, this playbook generates and hosts a few well-known files on the Matrix domain's server. The files are generated at the `/matrix/static-files/public/.well-known/matrix/` path on the server and hosted at URLs like `https://matrix.example.com/.well-known/matrix/server` and `https://matrix.example.com/.well-known/matrix/client`, even though this is the wrong place to host them." +msgstr "" + +#: ../../../docs/configuring-well-known.md:82 +msgid "You have two options when it comes to installing the files on the base domain's server:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:84 +msgid "(Option 1): **Copying the files manually** to your base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:86 +msgid "**Hint**: Option 2 is generally a better way to do this. Make sure to go with it, if possible." +msgstr "" + +#: ../../../docs/configuring-well-known.md:88 +msgid "All you need to do is:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:90 +msgid "copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:92 +msgid "set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element Web) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:94 +msgid "This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server. It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again." +msgstr "" + +#: ../../../docs/configuring-well-known.md:96 +msgid "(Option 2): **Setting up reverse-proxying** of the well-known files from the base domain's server to the Matrix server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:98 +msgid "This option is less fragile and generally better." +msgstr "" + +#: ../../../docs/configuring-well-known.md:100 +msgid "On the base domain's server (e.g. `example.com`), you can set up reverse-proxying, so that any access for the `/.well-known/matrix` location prefix is forwarded to the Matrix domain's server (e.g. `matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:102 +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 "" + +#: ../../../docs/configuring-well-known.md:104 +msgid "**For nginx**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:121 +msgid "**For Apache2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:135 +msgid "**For Caddy 2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:145 +msgid "**For HAProxy**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:164 +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 "" + +#: ../../../docs/configuring-well-known.md:170 +msgid "**For AWS CloudFront**" +msgstr "" + +#: ../../../docs/configuring-well-known.md:172 +msgid "Add a custom origin with matrix.example.com to your distribution" +msgstr "" + +#: ../../../docs/configuring-well-known.md:173 +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 "" + +#: ../../../docs/configuring-well-known.md:175 +msgid "Make sure to:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:177 +msgid "**replace `example.com`** in the server configuration with your actual domain name" +msgstr "" + +#: ../../../docs/configuring-well-known.md:178 +msgid "and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be" +msgstr "" + +#: ../../../docs/configuring-well-known.md:180 +msgid "Confirming it works" +msgstr "" + +#: ../../../docs/configuring-well-known.md:182 +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 "" + +#: ../../../docs/configuring-well-known.md:184 +msgid "`https://example.com/.well-known/matrix/server`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:185 +msgid "`https://example.com/.well-known/matrix/client`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:186 +msgid "`https://example.com/.well-known/matrix/support`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:188 +msgid "You can also check if everything is configured correctly, by [checking if services work](maintenance-checking-services.md)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/container-images.po b/i18n/locales/jp/LC_MESSAGES/docs/container-images.po new file mode 100644 index 000000000..02bcdb812 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/container-images.po @@ -0,0 +1,1169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/container-images.md:1 +msgid "Container images used by the playbook" +msgstr "" + +#: ../../../docs/container-images.md:3 +msgid "This page summarizes the container ([Docker](https://www.docker.com/)) images used by the playbook when setting up your server." +msgstr "" + +#: ../../../docs/container-images.md:5 +msgid "We try to stick to official images (provided by their respective projects) as much as possible." +msgstr "" + +#: ../../../docs/container-images.md:7 +msgid "Homeserver" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Service" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Container image" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Default?" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Description" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Synapse](configuring-playbook-synapse.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/synapse](https://ghcr.io/element-hq/synapse)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "✅" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Conduit](configuring-playbook-conduit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "❌" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[conduwuit](configuring-playbook-conduwuit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Dendrite](configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../docs/container-images.md:16 +msgid "Clients" +msgstr "" + +#: ../../../docs/container-images.md:18 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Element Web](configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Hydrogen](configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/hydrogen-web](https://ghcr.io/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Cinny](configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ajbura/cinny](https://hub.docker.com/r/ajbura/cinny)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[SchildiChat Web](configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/schildichat-web](https://ghcr.io/etkecc/schildichat-web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../docs/container-images.md:27 +msgid "Server Components" +msgstr "" + +#: ../../../docs/container-images.md:29 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[PostgreSQL](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[postgres](https://hub.docker.com/_/postgres/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Database for Synapse. [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[coturn](configuring-playbook-turn.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[coturn/coturn](https://hub.docker.com/r/coturn/coturn/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Traefik](configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Traefik](https://hub.docker.com/_/traefik/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Web server, listening on ports 80, 443 and 8448 — standing in front of all the other services. Using your own webserver [is possible](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Let's Encrypt](configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[certbot/certbot](https://hub.docker.com/r/certbot/certbot/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "The [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Exim](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ma1sd](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ddclient](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider" +msgstr "" + +#: ../../../docs/container-images.md:41 +msgid "Authentication" +msgstr "" + +#: ../../../docs/container-images.md:43 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-rest-auth](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "(N/A)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-shared-secret-auth](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-synapse-ldap3](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[activism.international/matrix_ldap_registration_proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix User Verification Service](configuring-playbook-user-verification-service.md) (UVS)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-user-verification-service](https://hub.docker.com/r/atrixdotorg/matrix-user-verification-service)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-simple-antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A spam checker module" +msgstr "" + +#: ../../../docs/container-images.md:55 +msgid "File Storage" +msgstr "" + +#: ../../../docs/container-images.md:57 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-s3-storage-provider](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[t2bot/matrix-media-repo](https://ghcr.io/t2bot/matrix-media-repo)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/container-images.md:65 +msgid "Bridges" +msgstr "" + +#: ../../../docs/container-images.md:67 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-discord](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/discord](https://mau.dev/mautrix/discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-slack](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/slack](https://mau.dev/mautrix/slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-telegram](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-gmessages](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/wsproxy](https://mau.dev/mautrix/wsproxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/googlechat](https://mau.dev/mautrix/googlechat/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "mautrix-meta (for [Messenger](configuring-playbook-bridge-mautrix-meta-messenger.md) and [Instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/meta](https://mau.dev/mautrix/meta/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-signal](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/signal](https://mau.dev/mautrix/signal/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[beeper/linkedin](https://ghcr.io/beeper/linkedin)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Self-building" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/matrix-appservice-slack](https://hub.docker.com/r/matrixdotorg/matrix-appservice-slack)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-hookshot](configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to SMS" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-wechat](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[lxduo/matrix-wechat](https://hub.docker.com/r/lxduo/matrix-wechat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Heisenbridge](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[hif1/heisenbridge](https://hub.docker.com/r/hif1/heisenbridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[nodefyme/go-skype-bridge](https://hub.docker.com/r/nodefyme/go-skype-bridge)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet/slack/mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-instagram](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sorunome/mx-puppet-instagram](https://hub.docker.com/r/sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sorunome/mx-puppet-twitter](https://hub.docker.com/r/sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet/discord/mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-groupme](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[xangelix/mx-puppet-groupme](https://hub.docker.com/r/xangelix/mx-puppet-groupme)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mx-puppet-steam](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[icewind1991/mx-puppet-steam](https://hub.docker.com/r/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Postmoogle](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/postmoogle](https://github.com/etkecc/postmoogle/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../docs/container-images.md:99 +msgid "Bots" +msgstr "" + +#: ../../../docs/container-images.md:101 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[baibot](configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/baibot](https://ghcr.io/etkecc/baibot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[anoa/matrix-reminder-bot](https://hub.docker.com/r/anoa/matrix-reminder-bot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[moanos/matrix-registration-bot](https://hub.docker.com/r/moanos/matrix-registration-bot/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[maubot](configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Honoroit](configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A helpdesk bot" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Mjolnir](configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Draupnir](configuring-playbook-bot-draupnir.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[gnuxie/draupnir](https://hub.docker.com/r/gnuxie/draupnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Buscarron](configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/buscarron](https://ghcr.io/etkecc/buscarron)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../docs/container-images.md:114 +msgid "Administration" +msgstr "" + +#: ../../../docs/container-images.md:116 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[metio/matrix-alertmanager-receiver](https://hub.docker.com/r/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[element-hq/matrix-authentication-service](https://ghcr.io/element-hq/matrix-authentication-service)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/synapse-admin](https://ghcr.io/etkecc/synapse-admin)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Metrics and Graphs](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[prom/prometheus](https://hub.docker.com/r/prom/prometheus/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Prometheus](https://prometheus.io) time-series database server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[prom/node-exporter](https://hub.docker.com/r/prom/node-exporter/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[grafana/grafana](https://hub.docker.com/r/grafana/grafana/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Graphing tool that works well with the above two images. Our playbook also adds two dashboards for [Synapse](https://github.com/element-hq/synapse/tree/master/contrib/grafana) and [Node Exporter](https://github.com/rfrail3/grafana-dashboards)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Metrics and Graphs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[martin-helmich/prometheus-nginxlog-exporter/exporter](https://ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Addon for Prometheus that gathers access logs from various nginx reverse-proxies" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Borg](configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Backups" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[rageshake](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/rageshake](https://ghcr.io/matrix-org/rageshake)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bug report server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/container-images.md:131 +msgid "Misc" +msgstr "" + +#: ../../../docs/container-images.md:133 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[sliding-sync](configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-org/sliding-sync](https://ghcr.io/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Sliding Sync support for clients which require it (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse_auto_accept_invite](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[synapse_auto_compressor](configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etke.cc/rust-synapse-compress-state](https://gitlab.com/etke.cc/rust-synapse-compress-state/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Jitsi](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/web](https://hub.docker.com/r/jitsi/web)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) web UI" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Focus component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/prosody](https://hub.docker.com/r/jitsi/prosody)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Prosody XMPP server component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[jitsi/jvb](https://hub.docker.com/r/jitsi/jvb)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "the [Jitsi](https://jitsi.org/) Video Bridge component" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Cactus Comments](configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[cactuscomments/cactus-appservice](https://hub.docker.com/r/cactuscomments/cactus-appservice/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[joseluisq/static-web-server](https://hub.docker.com/r/joseluisq/static-web-server)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Pantalaimon](configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Sygnal](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Reference Push Gateway for Matrix" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[ntfy](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Self-hosted, UnifiedPush-compatible push notifications server" +msgstr "" + +#: ../../../docs/container-images.md:152 +msgid "Container images of deprecated / unmaintained services" +msgstr "" + +#: ../../../docs/container-images.md:154 +msgid "The list of the deprecated or unmaintained services is available [here](configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Dimension](configuring-playbook-dimension.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "An open source integration manager for Matrix clients" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Email2Matrix](configuring-playbook-email2matrix.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge for relaying emails to Matrix rooms" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[Go-NEB](configuring-playbook-bot-go-neb.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "A multi functional bot written in Go" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Accessing ChatGPT via your favourite Matrix client" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Facebook](https://facebook.com/)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-hangouts](configuring-playbook-bridge-mautrix-hangouts.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "[mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md +msgid "Bridge to [Instagram](https://instagram.com/)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/faq.po b/i18n/locales/jp/LC_MESSAGES/docs/faq.po new file mode 100644 index 000000000..838d20149 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/faq.po @@ -0,0 +1,893 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/faq.md:1 +msgid "Frequently Asked Questions" +msgstr "" + +#: ../../../docs/faq.md:3 +msgid "This documentation page tries to answer various Frequently Asked Questions about all things [Matrix](https://matrix.org/), with a focus on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work))." +msgstr "" + +#: ../../../docs/faq.md:5 +msgid "This FAQ page does not intend to replace the [matrix.org FAQ](https://matrix.org/faq/) (please see that one too)." +msgstr "" + +#: ../../../docs/faq.md:7 +msgid "We've only started this FAQ recently, so it's still somewhat empty." +msgstr "" + +#: ../../../docs/faq.md:9 +msgid "Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to installation. To get started, see [below](#how-do-i-run-the-installation) about our installation guides." +msgstr "" + +#: ../../../docs/faq.md:11 +msgid "Introductory" +msgstr "" + +#: ../../../docs/faq.md:13 +msgid "Where do I find more questions and answers about Matrix?" +msgstr "" + +#: ../../../docs/faq.md:15 +msgid "This is a Frequently Asked Questions page focused on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)) for deploying a [Matrix](https://matrix.org/) server." +msgstr "" + +#: ../../../docs/faq.md:17 +msgid "For a lot more generic questions and answers, see the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:19 +msgid "What is Matrix? What is Element? What is Synapse? Why are you confusing me with so many terms?" +msgstr "" + +#: ../../../docs/faq.md:21 +msgid "[Matrix](https://matrix.org/) is a new type of realtime communication (chat) network, the closest analogy to which is probably \"email\"." +msgstr "" + +#: ../../../docs/faq.md:23 +msgid "You don't just use the \"email\" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these \"email\" protocols via some *client* program (Outlook, Thunderbird, some website, etc)." +msgstr "" + +#: ../../../docs/faq.md:25 +msgid "In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element Desktop on your desktop, but Fluffychat on your phone, etc)." +msgstr "" + +#: ../../../docs/faq.md:27 +msgid "Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`)." +msgstr "" + +#: ../../../docs/faq.md:29 +msgid "If someone else is hosting your Matrix server (you being `@alice:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android." +msgstr "" + +#: ../../../docs/faq.md:31 +msgid "If you'd like to host your own server (you being `@alice:example.com`), you'd need to set up a Matrix server program, like Synapse." +msgstr "" + +#: ../../../docs/faq.md:33 +msgid "In short:" +msgstr "" + +#: ../../../docs/faq.md:35 +msgid "Matrix is the protocol — a set of rules about how the chat network operates" +msgstr "" + +#: ../../../docs/faq.md:36 +msgid "Element is a client program you can use to participate on the Matrix chat network via some server (yours or someone else's). There are also [many other client programs](https://matrix.org/clients/)." +msgstr "" + +#: ../../../docs/faq.md:37 +msgid "Synapse is a server program you can use to host your very own Matrix server." +msgstr "" + +#: ../../../docs/faq.md:39 +msgid "This FAQ here mostly focuses on installing various Matrix services using the Ansible automation tool. You can learn much more about Matrix in the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:41 +msgid "People I wish to talk to are not on Matrix. Can I talk to them?" +msgstr "" + +#: ../../../docs/faq.md:43 +msgid "You most likely can. Besides Matrix-native chats, Matrix also supports the concept of \"bridging\", which allows you to plug other networks into it." +msgstr "" + +#: ../../../docs/faq.md:45 +msgid "This Ansible playbook can help you install [tens of bridges for various networks](configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../docs/faq.md:47 +msgid "Besides setting up your own bridges (preferable), you can also use some [public bridges hosted by others](https://publiclist.anchel.nl/#bridges)." +msgstr "" + +#: ../../../docs/faq.md:49 +msgid "How do I get started with Matrix?" +msgstr "" + +#: ../../../docs/faq.md:51 +msgid "One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people — one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`)." +msgstr "" + +#: ../../../docs/faq.md:53 +msgid "There are 3 ways to get into Matrix, depending on your technical ability and needs:" +msgstr "" + +#: ../../../docs/faq.md:55 +msgid "**using the existing default server** — the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting." +msgstr "" + +#: ../../../docs/faq.md:57 +msgid "**using some other server** — instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login." +msgstr "" + +#: ../../../docs/faq.md:59 +msgid "**using your own server** — running your own server puts you in ultimate control of your data. It also lets you have your own user IDs (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server)." +msgstr "" + +#: ../../../docs/faq.md:61 +msgid "How do I set up my own Matrix server?" +msgstr "" + +#: ../../../docs/faq.md:63 +msgid "Normally, you'd first choose the [Matrix](https://matrix.org/) server software you'd like to run. At the time of this writing (January/2021), there's only one fully-featured server program, so there's only one reasonable choice. That's [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:65 +msgid "There are [many guides about installing Synapse](https://matrix.org/docs/guides/#installing-synapse). Using this Ansible playbook is just one way of doing it." +msgstr "" + +#: ../../../docs/faq.md:67 +msgid "Naturally, we're biased, so our usual recommendation is to go with this [Ansible](https://www.ansible.com/) playbook, instead of installing Synapse (and many many other things around it) manually." +msgstr "" + +#: ../../../docs/faq.md:69 +msgid "To get started with the playbook, check out the [Quick start](quick-start.md) or full installation guide (starting at the [Prerequisites](prerequisites.md) page)." +msgstr "" + +#: ../../../docs/faq.md:71 +msgid "What is Ansible? How does it work?" +msgstr "" + +#: ../../../docs/faq.md:73 +msgid "[Ansible](https://www.ansible.com/) is an automation program. This \"playbook\" is a collection of tasks/scripts that will set up a [Matrix](https://matrix.org/) server for you, so you don't have to perform these tasks manually." +msgstr "" + +#: ../../../docs/faq.md:75 +msgid "We have written these automated tasks for you and all you need to do is execute them using the Ansible program." +msgstr "" + +#: ../../../docs/faq.md:77 +msgid "You can install Ansible and this playbook code repository on your own computer and tell it to install Matrix services at the server living at `matrix.example.com`. We recommend installing Ansible on your own computer." +msgstr "" + +#: ../../../docs/faq.md:79 +msgid "Alternatively, you can download Ansible and the playbook itself directly on the `matrix.example.com` server." +msgstr "" + +#: ../../../docs/faq.md:81 +msgid "To learn more, see our [dedicated Ansible documentation page](ansible.md)." +msgstr "" + +#: ../../../docs/faq.md:83 +msgid "What is `just`?" +msgstr "" + +#: ../../../docs/faq.md:85 +msgid "[`just`](https://github.com/casey/just) is a modern command-runner alternative to [make](https://www.gnu.org/software/make/). It can be used to invoke commands with less typing." +msgstr "" + +#: ../../../docs/faq.md:87 +msgid "The `just` utility executes shortcut commands (called \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile)." +msgstr "" + +#: ../../../docs/faq.md:89 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/faq.md:91 +msgid "The playbook also contains a `Makefile` for the `make` tool, but most of the just recipes are not available as targets in the `Makefile`." +msgstr "" + +#: ../../../docs/faq.md:93 +msgid "Why use this playbook and not install Synapse and other things manually?" +msgstr "" + +#: ../../../docs/faq.md:95 +msgid "There are various guides telling you how easy it is to install [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:97 +msgid "Reading the documentation of this Ansible playbook, you may also be thinking:" +msgstr "" + +#: ../../../docs/faq.md:99 +msgid "I don't know what [Ansible](https://www.ansible.com/) is. I don't know what [Docker](https://www.docker.com/) is. This looks more complicated." +msgstr "" + +#: ../../../docs/faq.md:101 +msgid "… so you may be leaning toward [installing Synapse manually](https://github.com/element-hq/synapse/blob/master/INSTALL.md)." +msgstr "" + +#: ../../../docs/faq.md:103 +msgid "The problem with a manual installation is:" +msgstr "" + +#: ../../../docs/faq.md:105 +msgid "Synapse is written in Python. If not packaged for your distribution, you'd need to install various Python modules, etc., and keep them updated." +msgstr "" + +#: ../../../docs/faq.md:106 +msgid "Synapse requires a [Postgres](https://www.postgresql.org/) database (it can run on SQLite, but that's very much discouraged). So you'd need to install Postgres as well." +msgstr "" + +#: ../../../docs/faq.md:107 +msgid "you may also need a reverse-proxy server in front of it (nginx, Apache), so you'd need to be familiar with that" +msgstr "" + +#: ../../../docs/faq.md:108 +msgid "SSL is required, so you'd need to obtain Let's Encrypt (or other free or non-free) certificates for one or more domain names. You'd need to be familiar with [certbot](https://certbot.eff.org/) (when using Let's Encrypt) or similar software." +msgstr "" + +#: ../../../docs/faq.md:109 +msgid "for each additional component you'd like to add (client like [Element](https://element.io), bridge to some other chat network, integration manager (stickers, other services, Identity Manager, etc.), you'll need to spend extra time installing and wiring it with the rest of the system in a way that works." +msgstr "" + +#: ../../../docs/faq.md:110 +msgid "you'll likely get slower updates for all of these components, depending on your distro packaging or your own time and ability" +msgstr "" + +#: ../../../docs/faq.md:112 +msgid "The playbook, on the other hand, installs a bunch of components for you by default, obtains SSL certificates for you, etc. If you'd like, you can enable various bridges and other services with very little effort. All the components are wired to work together." +msgstr "" + +#: ../../../docs/faq.md:114 +msgid "All services run in Docker containers (most being officially provided by each component's developers), so we're not at the mercy of distro packaging." +msgstr "" + +#: ../../../docs/faq.md:116 +msgid "Why use this playbook and not just use the Docker image directly?" +msgstr "" + +#: ../../../docs/faq.md:118 +msgid "Reasons are similar to the reasons for not installing manually." +msgstr "" + +#: ../../../docs/faq.md:120 +msgid "Besides Synapse, you'd need other things — a Postgres database, likely the [Element](https://element.io) client, etc., etc." +msgstr "" + +#: ../../../docs/faq.md:122 +msgid "Using the playbook, you get all these components in a way that works well together out of the box." +msgstr "" + +#: ../../../docs/faq.md:124 +msgid "Occasionally I see some people are talking about \"MDAD\". What is it?" +msgstr "" + +#: ../../../docs/faq.md:126 +msgid "It is the acronym of us: **m**atrix-**d**ocker-**a**nsible-**d**eploy." +msgstr "" + +#: ../../../docs/faq.md:128 +msgid "What's different about this Ansible playbook compared to [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy)?" +msgstr "" + +#: ../../../docs/faq.md:130 +msgid "This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but:" +msgstr "" + +#: ../../../docs/faq.md:132 +msgid "this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** — especially for folks not familiar with Ansible" +msgstr "" + +#: ../../../docs/faq.md:134 +msgid "this one installs and hooks together **a lot more Matrix-related services** for you (see above)" +msgstr "" + +#: ../../../docs/faq.md:136 +msgid "this one **can be executed more than once** without causing trouble" +msgstr "" + +#: ../../../docs/faq.md:138 +msgid "works on various distros: **CentOS** (7.0+), Debian-based distributions (**Debian** 10/Buster+, **Ubuntu** 18.04+), **Archlinux**" +msgstr "" + +#: ../../../docs/faq.md:140 +msgid "this one installs everything in a single directory (`/matrix` by default) and **doesn't \"contaminate\" your server** with files all over the place" +msgstr "" + +#: ../../../docs/faq.md:142 +msgid "this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up [Traefik](https://doc.traefik.io/traefik/) for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/faq.md:144 +msgid "this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](container-images.md))" +msgstr "" + +#: ../../../docs/faq.md:146 +msgid "this one retrieves and automatically renews free [Let's Encrypt](https://letsencrypt.org/) **SSL certificates** for you" +msgstr "" + +#: ../../../docs/faq.md:148 +msgid "this one optionally can store the `media_store` content repository files on [Amazon S3](https://aws.amazon.com/s3/) (but defaults to storing files on the server's filesystem)" +msgstr "" + +#: ../../../docs/faq.md:150 +msgid "this one optionally **allows you to use an external PostgreSQL server** for Synapse's database (but defaults to running one in a container)" +msgstr "" + +#: ../../../docs/faq.md:152 +msgid "helps you **import data from a previous installation** (so you can migrate your manual virtualenv/Docker setup to a more managed one)" +msgstr "" + +#: ../../../docs/faq.md:154 +msgid "this one is actually **maintained**" +msgstr "" + +#: ../../../docs/faq.md:156 +msgid "Server-related" +msgstr "" + +#: ../../../docs/faq.md:158 +msgid "What kind of server do I need to install Matrix using this Ansible playbook?" +msgstr "" + +#: ../../../docs/faq.md:160 +msgid "We list our server requirements in [Prerequisites](prerequisites.md)." +msgstr "" + +#: ../../../docs/faq.md:162 +msgid "Why not run Matrix on Kubernetes?" +msgstr "" + +#: ../../../docs/faq.md:164 +msgid "There's no reason not to run Matrix on [Kubernetes](https://kubernetes.io/)." +msgstr "" + +#: ../../../docs/faq.md:166 +msgid "However, that's overly complicated for thousands of us who just want to run a single small (and sometimes not so small) Matrix server, either using \"cloud\" servers or even a [Raspberry Pi](https://www.raspberrypi.org/) at home." +msgstr "" + +#: ../../../docs/faq.md:168 +msgid "For us, a Kubernetes-based setup which requires a cluster of multiple computers and is more technically-involved is a no-go." +msgstr "" + +#: ../../../docs/faq.md:170 +msgid "There are others working on automating a Matrix-on-Kubernetes setup, such as this [Helm](https://helm.sh/) chart: https://github.com/dacruz21/matrix-chart." +msgstr "" + +#: ../../../docs/faq.md:172 +msgid "Why don't you use Podman instead of Docker?" +msgstr "" + +#: ../../../docs/faq.md:174 +msgid "We like the philosophy of a daemonless container runtime, but [Podman](https://podman.io) is just not ready for our use case yet." +msgstr "" + +#: ../../../docs/faq.md:176 +msgid "Learn more about our past experiences/attempts to give Podman a chance, by reading [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/520)." +msgstr "" + +#: ../../../docs/faq.md:178 +msgid "In short, `alias podman=docker` is a lie (for us)." +msgstr "" + +#: ../../../docs/faq.md:180 +msgid "Why use Docker?" +msgstr "" + +#: ../../../docs/faq.md:182 +msgid "[Docker](https://www.docker.com/) is one of our 2 hard dependencies (the other one being [systemd](https://systemd.io/))." +msgstr "" + +#: ../../../docs/faq.md:184 +msgid "It lets us run services in an isolated manner and independently of the (usually old) packages available for distributions." +msgstr "" + +#: ../../../docs/faq.md:186 +msgid "It also lets us have a unified setup which runs the same across various supported distros (see them on [Prerequisites](prerequisites.md))." +msgstr "" + +#: ../../../docs/faq.md:188 +msgid "Is Docker a hard requirement?" +msgstr "" + +#: ../../../docs/faq.md:190 +msgid "Yes. See [Why don't you use Podman instead of Docker?](#why-dont-you-use-podman-instead-of-docker) for why we're not using another container runtime." +msgstr "" + +#: ../../../docs/faq.md:192 +msgid "All of our services run in containers. It's how we achieve predictability and also how we support tens of different services across lots of distros." +msgstr "" + +#: ../../../docs/faq.md:194 +msgid "The only thing we need on the distro is systemd and Python (we install Docker ourselves, unless you ask us not to)." +msgstr "" + +#: ../../../docs/faq.md:196 +msgid "Why don't you use docker-compose?" +msgstr "" + +#: ../../../docs/faq.md:198 +msgid "Instead of using [docker-compose](https://docs.docker.com/compose/), we prefer installing systemd services and scheduling those independently." +msgstr "" + +#: ../../../docs/faq.md:200 +msgid "There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625). There is also a demo project ([element-docker-demo](https://github.com/element-hq/element-docker-demo)) by Element." +msgstr "" + +#: ../../../docs/faq.md:202 +msgid "Can I run this on a distro without systemd?" +msgstr "" + +#: ../../../docs/faq.md:204 +msgid "No. [systemd](https://systemd.io/) is one of our 2 hard dependencies (the other one being [Docker](https://www.docker.com/))." +msgstr "" + +#: ../../../docs/faq.md:206 +msgid "Can I install this on a Raspberry Pi?" +msgstr "" + +#: ../../../docs/faq.md:208 +msgid "Yes, you can. See our [Alternative Architectures](alternative-architectures.md) documentation page." +msgstr "" + +#: ../../../docs/faq.md:210 +msgid "Whether a Raspberry Pi has enough power to give you a good experience is another question. It depends on your use case." +msgstr "" + +#: ../../../docs/faq.md:212 +msgid "Also see: [What kind of server specs do I need?](#what-kind-of-server-specs-do-i-need)." +msgstr "" + +#: ../../../docs/faq.md:214 +msgid "What kind of server specs do I need?" +msgstr "" + +#: ../../../docs/faq.md:216 +msgid "This largely depends on your use case. It's not so much the number of users that you plan to host, but rather the number of large rooms they will join." +msgstr "" + +#: ../../../docs/faq.md:218 +msgid "Federated rooms with lots of history and containing hundreds of other servers are very heavy CPU-wise and memory-wise." +msgstr "" + +#: ../../../docs/faq.md:220 +msgid "You can probably use a 1 CPU + 1GB memory server to host hundreds of local users just fine, but as soon as one of them joins a federated room like `#matrix:matrix.org` (Matrix HQ) or some IRC-bridged room (say `##linux`), your server will get the need for a lot more power (at least 2GB RAM, etc)." +msgstr "" + +#: ../../../docs/faq.md:222 +msgid "Running Matrix on a server with 1GB of memory is possible (especially if you disable some not-so-important services). See [How do I optimize this setup for a low-power server?](#how-do-i-optimize-this-setup-for-a-low-power-server)." +msgstr "" + +#: ../../../docs/faq.md:224 +msgid "**We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea." +msgstr "" + +#: ../../../docs/faq.md:226 +msgid "Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferrably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage." +msgstr "" + +#: ../../../docs/faq.md:228 +msgid "Can I run this in an LXC container?" +msgstr "" + +#: ../../../docs/faq.md:230 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/faq.md:232 +msgid "Configuration" +msgstr "" + +#: ../../../docs/faq.md:234 +msgid "Why install my server at matrix.example.com and not at the base domain?" +msgstr "" + +#: ../../../docs/faq.md:236 +msgid "It's the same with email servers. Your email address is likely `name@company.com`, not `name@mail.company.com`, even though it's `mail.company.com` that is really handling your data for `@company.com` email to work." +msgstr "" + +#: ../../../docs/faq.md:238 +msgid "Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc. Therefore, this playbook sets up services on your Matrix server (`matrix.example.com`) by default." +msgstr "" + +#: ../../../docs/faq.md:240 +msgid "I don't control anything on the base domain and can't set up delegation to matrix.example.com. What do I do?" +msgstr "" + +#: ../../../docs/faq.md:242 +msgid "If you're not in control of your base domain (or the server handling it) at all, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:244 +msgid "I can't set up HTTPS on the base domain. How will I get Matrix federating?" +msgstr "" + +#: ../../../docs/faq.md:246 +msgid "If you really can't obtain an HTTPS certificate for your base domain, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:248 +msgid "How do I install on matrix.example.com without involving the base domain?" +msgstr "" + +#: ../../../docs/faq.md:250 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:271 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/faq.md:278 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/faq.md:280 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/faq.md:282 +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/faq.md:284 +msgid "Without setting up [server delegation](howto-server-delegation.md) to `matrix.example.com`, your user IDs will be like `@alice:matrix.example.com`. This is equivalent to having an email address like `bob@mail.company.com`, instead of just `bob@company.com`." +msgstr "" + +#: ../../../docs/faq.md:286 +msgid "I don't use the base domain for anything. How am I supposed to set up Server Delegation for Matrix services?" +msgstr "" + +#: ../../../docs/faq.md:288 +msgid "If you don't use your base domain for anything, then it's hard for you to \"serve files over HTTPS\" on it — something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md))." +msgstr "" + +#: ../../../docs/faq.md:290 +msgid "Luckily, the playbook can set up your Matrix server (at `matrix.example.com`) to also handle traffic for the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/faq.md:292 +msgid "See [Serving the base domain](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/faq.md:294 +msgid "How do I optimize this setup for a low-power server?" +msgstr "" + +#: ../../../docs/faq.md:296 +msgid "You can disable some not-so-important services to save on memory." +msgstr "" + +#: ../../../docs/faq.md:318 +msgid "You can also consider implementing a restriction on room complexity, in order to prevent users from joining very heavy rooms:" +msgstr "" + +#: ../../../docs/faq.md:328 +msgid "If you've installed [Jitsi](configuring-playbook-jitsi.md) (not installed by default), there are additional optimizations listed on its documentation page that you can perform." +msgstr "" + +#: ../../../docs/faq.md:330 +msgid "I already have Docker on my server. Can you stop installing Docker via the playbook?" +msgstr "" + +#: ../../../docs/faq.md:332 +msgid "Yes, we can stop installing Docker ourselves. Just use this in your `vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:338 +msgid "I run another webserver on the same server where I wish to install Matrix. What now?" +msgstr "" + +#: ../../../docs/faq.md:340 +msgid "By default, we install a webserver for you ([Traefik](https://doc.traefik.io/traefik/)), but you can also use [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/faq.md:342 +msgid "How is the effective configuration determined?" +msgstr "" + +#: ../../../docs/faq.md:344 +msgid "Configuration variables are defined in multiple places in this playbook and are considered in this order:" +msgstr "" + +#: ../../../docs/faq.md:346 +msgid "there are defaults coming from each role's defaults file (`role/matrix*/defaults/main.yml`). These variable values aim to be good defaults for when the role is used standalone (outside of this collection of roles, also called playbook)." +msgstr "" + +#: ../../../docs/faq.md:348 +msgid "then, there are overrides in `group_vars/matrix_servers`, which aim to adjust these \"standalone role defaults\" to something which better fits the playbook in its entirety." +msgstr "" + +#: ../../../docs/faq.md:350 +msgid "finally, there's your `inventory/host_vars/matrix.example.com/vars.yml` file, which is the ultimate override" +msgstr "" + +#: ../../../docs/faq.md:352 +msgid "What configuration variables are available?" +msgstr "" + +#: ../../../docs/faq.md:354 +msgid "You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`)." +msgstr "" + +#: ../../../docs/faq.md:356 +msgid "As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/faq.md:358 +msgid "Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.example.com/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features)." +msgstr "" + +#: ../../../docs/faq.md:360 ../../../docs/faq.md:372 +msgid "**Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`)." +msgstr "" + +#: ../../../docs/faq.md:362 +msgid "I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?" +msgstr "" + +#: ../../../docs/faq.md:364 +msgid "The playbook doesn't aim to expose all configuration settings for all services using variables. Doing so would amount to hundreds of variables that we have to create and maintain." +msgstr "" + +#: ../../../docs/faq.md:366 +msgid "Instead, we only try to make some important basics configurable using dedicated variables you can see in each role. See [What configuration variables are available?](#what-configuration-variables-are-available)." +msgstr "" + +#: ../../../docs/faq.md:368 +msgid "Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_configuration_extension_yaml` (or `matrix_SOME_COMPONENT_configuration_extension_json`) variable, which can be used to override the configuration." +msgstr "" + +#: ../../../docs/faq.md:370 +msgid "Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable and an example for how use it." +msgstr "" + +#: ../../../docs/faq.md:374 +msgid "Installation" +msgstr "" + +#: ../../../docs/faq.md:376 +msgid "How do I run the installation?" +msgstr "" + +#: ../../../docs/faq.md:378 +msgid "See [Installing](installing.md) to learn how to use Ansible to install Matrix services." +msgstr "" + +#: ../../../docs/faq.md:380 +msgid "However, we recommend you to follow our installation guide, instead of jumping straight to installing." +msgstr "" + +#: ../../../docs/faq.md:382 +msgid "There are two guides available:" +msgstr "" + +#: ../../../docs/faq.md:384 +msgid "⚡ **[Quick start](quick-start.md)** (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/faq.md:386 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](prerequisites.md)** documentation page." +msgstr "" + +#: ../../../docs/faq.md:388 +msgid "I installed Synapse some other way. Can I migrate such a setup to the playbook?" +msgstr "" + +#: ../../../docs/faq.md:390 +msgid "Yes, you can." +msgstr "" + +#: ../../../docs/faq.md:392 +msgid "You generally need to do a playbook installation. It's recommended to follow the full installation guide (starting at the [Prerequisites](prerequisites.md) page), not the [Quick start](quick-start.md) guide. The full installation guide will tell you when it's time to import your existing data into the newly-prepared server." +msgstr "" + +#: ../../../docs/faq.md:394 +msgid "This Ansible playbook guides you into installing a server for `example.com` (user IDs are like this: `@alice:example.com`), while the server is at `matrix.example.com`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `example.com`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup — [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:396 +msgid "After configuring the playbook and installing and **before starting** services (done with `ansible-playbook … --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md)." +msgstr "" + +#: ../../../docs/faq.md:398 +msgid "I've downloaded Ansible and the playbook on the server. It can't connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:400 +msgid "If you're using the playbook directly on the server, then Ansible doesn't need to connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:402 +msgid "It can perform a local connection instead. Just set `ansible_connection=local` at the end of the server line in `inventory/hosts` and re-run the playbook." +msgstr "" + +#: ../../../docs/faq.md:404 +msgid "If you're running Ansible from within a container (one of the possibilities we list on our [dedicated Ansible documentation page](ansible.md)), then using `ansible_connection=local` is not possible." +msgstr "" + +#: ../../../docs/faq.md:406 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/faq.md:408 +msgid "I get \"Error response from daemon: configured logging driver does not support reading\" when I do `docker logs matrix-synapse`." +msgstr "" + +#: ../../../docs/faq.md:410 +msgid "See [How can I see the logs?](#how-can-i-see-the-logs)." +msgstr "" + +#: ../../../docs/faq.md:412 +msgid "How can I see the logs?" +msgstr "" + +#: ../../../docs/faq.md:414 +msgid "We utilize [systemd/journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Description) for logging." +msgstr "" + +#: ../../../docs/faq.md:416 +msgid "To see logs for Synapse, run `journalctl -fu matrix-synapse.service`. You may wish to see the [manual page for journalctl](https://www.commandlinux.com/man-page/man1/journalctl.1.html)." +msgstr "" + +#: ../../../docs/faq.md:418 +msgid "Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server." +msgstr "" + +#: ../../../docs/faq.md:420 +msgid "Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that." +msgstr "" + +#: ../../../docs/faq.md:422 +msgid "We also disable Docker logging, so you can't use `docker logs matrix-*` either. We do this to prevent useless double (or even triple) logging and to avoid having to rotate log files." +msgstr "" + +#: ../../../docs/faq.md:424 +msgid "We just simply delegate logging to journald and it takes care of persistence and expiring old data." +msgstr "" + +#: ../../../docs/faq.md:426 +msgid "Also see: [How long do systemd/journald logs persist for?](#how-long-do-systemdjournald-logs-persist-for)" +msgstr "" + +#: ../../../docs/faq.md:428 +msgid "How long do systemd/journald logs persist for?" +msgstr "" + +#: ../../../docs/faq.md:430 +msgid "On some distros, the journald logs are just in-memory and not persisted to disk." +msgstr "" + +#: ../../../docs/faq.md:432 +msgid "Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`." +msgstr "" + +#: ../../../docs/faq.md:434 +msgid "To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this:" +msgstr "" + +#: ../../../docs/faq.md:445 +msgid "Maintenance" +msgstr "" + +#: ../../../docs/faq.md:447 +msgid "Do I need to do anything to keep my Matrix server updated?" +msgstr "" + +#: ../../../docs/faq.md:449 +msgid "Yes. We don't update anything for you automatically." +msgstr "" + +#: ../../../docs/faq.md:451 +msgid "See our [documentation page about upgrading services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/faq.md:453 +msgid "How do I move my existing installation to another (VM) server?" +msgstr "" + +#: ../../../docs/faq.md:455 +msgid "If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server using [our dedicated server migration guide](maintenance-migrating.md)." +msgstr "" + +#: ../../../docs/faq.md:457 +msgid "If your previous installation is done in some other way (not using this Ansible playbook), see [I installed Synapse some other way. Can I migrate such a setup to the playbook?](#i-installed-synapse-some-other-way-can-i-migrate-such-a-setup-to-the-playbook)." +msgstr "" + +#: ../../../docs/faq.md:459 +msgid "How do I back up the data on my server?" +msgstr "" + +#: ../../../docs/faq.md:461 +msgid "We haven't documented this properly yet, but the general advice is to:" +msgstr "" + +#: ../../../docs/faq.md:463 +msgid "back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql)" +msgstr "" + +#: ../../../docs/faq.md:465 +msgid "back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql))." +msgstr "" + +#: ../../../docs/faq.md:467 +msgid "You can later restore these by:" +msgstr "" + +#: ../../../docs/faq.md:469 +msgid "Restoring the `/matrix` directory and files on the new server manually" +msgstr "" + +#: ../../../docs/faq.md:470 +msgid "Following the instruction described on [Installing a server into which you'll import old data](installing.md#installing-a-server-into-which-youll-import-old-data)" +msgstr "" + +#: ../../../docs/faq.md:472 +msgid "If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again." +msgstr "" + +#: ../../../docs/faq.md:474 +msgid "What is this `/matrix/postgres/data-auto-upgrade-backup` directory that is taking up so much space?" +msgstr "" + +#: ../../../docs/faq.md:476 +msgid "When you [perform a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql), we save the the old data files in `/matrix/postgres/data-auto-upgrade-backup`, just so you could easily restore them should something have gone wrong." +msgstr "" + +#: ../../../docs/faq.md:478 +msgid "After verifying that everything still works after the Postgres upgrade, you can safely delete `/matrix/postgres/data-auto-upgrade-backup`" +msgstr "" + +#: ../../../docs/faq.md:480 +msgid "How do I debug or force SSL certificate renewal?" +msgstr "" + +#: ../../../docs/faq.md:482 +msgid "SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server." +msgstr "" + +#: ../../../docs/faq.md:484 +msgid "If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`)." +msgstr "" + +#: ../../../docs/faq.md:486 +msgid "If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way." +msgstr "" + +#: ../../../docs/faq.md:488 +msgid "Miscellaneous" +msgstr "" + +#: ../../../docs/faq.md:490 +msgid "I would like to see this favorite service of mine integrated and become available on my Matrix server. How can I request it?" +msgstr "" + +#: ../../../docs/faq.md:492 +msgid "You can freely create an issue for feature request on the repository at GitHub [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new). Note this is a community project with no financial backing, and there is not assurance that your request would be eventually picked up by others and the requested feature would become available. The easiest way to get a feature into this project is to just develop it yourself." +msgstr "" + +#: ../../../docs/faq.md:494 +msgid "Also, please note that this playbook intends to focus solely on Matrix and Matrix-related services. If your request is not specific to Matrix, you may as well to consider to submit it to the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), maintained by the members behind this matrix-docker-ansible-deploy project. [This document on the interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) describes how to deploy services along with the Matrix services easily." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/getting-the-playbook.po b/i18n/locales/jp/LC_MESSAGES/docs/getting-the-playbook.po new file mode 100644 index 000000000..4a6bfe641 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/getting-the-playbook.po @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/getting-the-playbook.md:1 +msgid "Getting the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > Getting the playbook > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:5 +msgid "This Ansible playbook is meant to be executed on your own computer (not the Matrix server)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:7 +msgid "In special cases (if your computer cannot run Ansible, etc.) you may put the playbook on the server as well." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:9 +msgid "You can retrieve the playbook's source code by:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:11 +msgid "[Using git to get the playbook](#using-git-to-get-the-playbook) (recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:13 +msgid "[Downloading the playbook as a ZIP archive](#downloading-the-playbook-as-a-zip-archive) (not recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:15 +msgid "Using git to get the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:17 +msgid "We recommend using the [git](https://git-scm.com/) tool to get the playbook's source code, because it lets you easily keep up to date in the future when [Maintaining services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:19 +msgid "Once you've installed git on your computer, you can go to any directory of your choosing and run the following command to retrieve the playbook's source code:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:25 +msgid "This will create a new `matrix-docker-ansible-deploy` directory. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:27 +msgid "Downloading the playbook as a ZIP archive" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:29 +msgid "Alternatively, you can download the playbook as a ZIP archive. This is not recommended, as it's not easy to keep up to date with future updates. We suggest you [use git](#using-git-to-get-the-playbook) instead." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:31 +msgid "The latest version is always at the following URL: https://github.com/spantaleev/matrix-docker-ansible-deploy/archive/master.zip" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:33 +msgid "You can extract this archive anywhere. You'll get a directory called `matrix-docker-ansible-deploy-master`. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:37 +msgid "[▶️](configuring-playbook.md) No matter which method you've used to download the playbook, you can proceed by [Configuring the playbook](configuring-playbook.md)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/howto-server-delegation.po b/i18n/locales/jp/LC_MESSAGES/docs/howto-server-delegation.po new file mode 100644 index 000000000..be09f9d78 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/howto-server-delegation.po @@ -0,0 +1,189 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/howto-server-delegation.md:1 +msgid "Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:5 +msgid "Server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:7 +msgid "[Setting up a `/.well-known/matrix/server` file](#server-delegation-via-a-well-known-file) on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:8 +msgid "[Setting up a `_matrix._tcp` DNS SRV record](#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:10 +msgid "Both methods have their place and will continue to do so. You only need to use just one of these delegation methods." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:12 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file. However, that method may have some downsides that are not to your liking. Hence this guide about alternative ways to set up Server Delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:14 +msgid "**Note**: as an alternative, it is possible to install the server such that it uses only the `matrix.example.com` domain (instead of identifying as the shorter base domain — `example.com`). This should be helpful if you are not in control of anything on the base domain (`example.com`). In this case, you would not need to configure server delegation, but you would need to add other configuration. 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 "" + +#: ../../../docs/howto-server-delegation.md:16 +msgid "Server Delegation via a well-known file" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:18 +msgid "This playbook recommends you to set up server delegation by means of a `/.well-known/matrix/server` file served from the base domain (`example.com`), as this is the most straightforward way to set up the delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:20 +msgid "To configure server delegation with the well-known file, check this section on [Configuring Service Discovery via .well-known](configuring-well-known.md): [Installing well-known files on the base domain's server](configuring-well-known.md#installing-well-known-files-on-the-base-domain-s-server)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:22 +msgid "Downsides of well-known-based Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:24 +msgid "Server Delegation by means of a `/.well-known/matrix/server` file is the most straightforward, but suffers from the following downsides:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:26 +msgid "you need to have a working HTTPS server for the base domain (`example.com`). If you don't have any server for the base domain at all, you can easily solve it by making the playbook [serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:28 +msgid "any downtime on the base domain (`example.com`) or network trouble between the Matrix subdomain (`matrix.example.com`) and the base `example.com` may cause Matrix Federation outages. As the [Server-Server spec says](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery):" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:30 +msgid "Errors are recommended to be cached for up to an hour, and servers are encouraged to exponentially back off for repeated failures." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:32 +msgid "**For most people, this is a reasonable tradeoff** given that it's easy and straightforward to set up. We recommend you stay on this path." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:34 +msgid "Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced) (much more complicated)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:36 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:38 +msgid "**Note**: doing Server Delegation via a DNS SRV record is a more **advanced** way to do it and is not the default for this playbook. This is usually **much more complicated** to set up, so **we don't recommend it**. If you're not an experienced sysadmin, you'd better stay away from this." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:40 +msgid "As per the [Server-Server spec](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), it's possible to do Server Delegation using only a SRV record (without a `/.well-known/matrix/server` file)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:42 +msgid "This prevents you from suffering the [Downsides of well-known-based Server Delegation](#downsides-of-well-known-based-server-delegation)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:44 +msgid "To use DNS SRV record validation, you need to:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:46 +msgid "ensure that `/.well-known/matrix/server` is **not served** from the base domain, as that would interfere with DNS SRV record Server Delegation. To make the playbook **not** generate and serve the file, use the following configuration: `matrix_static_files_file_matrix_server_enabled: false`." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:48 +msgid "ensure that you have a `_matrix._tcp` DNS SRV record for your base domain (`example.com`) with a value of `10 0 8448 matrix.example.com`" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:50 +msgid "ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `example.com` (not `matrix.example.com`!). Getting this certificate to the `matrix.example.com` server may be complicated. The playbook's automatic SSL obtaining/renewal flow will likely not work and you'll need to copy certificates around manually. See below." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:52 +msgid "For more details on how to configure the playbook to work with SRV delegation, take a look at this documentation: [Server Delegation via a DNS SRV record (advanced)](howto-srv-server-delegation.md)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:54 +msgid "Obtain certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:56 +msgid "How you can obtain a valid certificate for `example.com` on the `matrix.example.com` server is up to you." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:58 +msgid "If `example.com` and `matrix.example.com` are hosted on the same machine, you can let the playbook obtain the certificate for you, by following our [Obtaining SSL certificates for additional domains](configuring-playbook-ssl-certificates.md#obtaining-ssl-certificates-for-additional-domains) guide." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:60 +msgid "If `example.com` and `matrix.example.com` are not hosted on the same machine, you can copy over the certificate files manually. Don't forget that they may get renewed once in a while, so you may also have to transfer them periodically. How often you do that is up to you, as long as the certificate files don't expire." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:62 +msgid "Serving the Federation API with your certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:64 +msgid "Regardless of which method for obtaining certificates you've used, once you've managed to get certificates for your base domain onto the `matrix.example.com` machine you can put them to use." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:66 +msgid "Based on your setup, you have different ways to go about it:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:68 +msgid "Serving the Federation API with your certificates and Synapse handling Federation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:70 +msgid "You can let Synapse handle Federation by itself." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:72 +msgid "To do that, make sure the certificate files are mounted into the Synapse container:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:79 +msgid "You can then tell Synapse to serve Federation traffic over TLS on `tcp/8448`:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:87 +msgid "Make sure to reload Synapse once in a while (`systemctl reload matrix-synapse`), so that newer certificates can kick in. Reloading doesn't cause any downtime." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:89 +msgid "Serving the Federation API with your certificates and another webserver" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:91 +msgid "**Alternatively**, if you are using another webserver, you can set up reverse-proxying for the `tcp/8448` port by yourself. Make sure to use the proper certificates for `example.com` (not for `matrix.example.com`) when serving the `tcp/8448` port." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:93 +msgid "As recommended in our [Fronting the integrated reverse-proxy webserver with another reverse-proxy](./configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section, we recommend you to expose the Matrix Federation entrypoint from traffic at a local port (e.g. `127.0.0.1:8449`), so your reverese-proxy should send traffic there." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/howto-srv-server-delegation.po b/i18n/locales/jp/LC_MESSAGES/docs/howto-srv-server-delegation.po new file mode 100644 index 000000000..0c04fada6 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/howto-srv-server-delegation.po @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/howto-srv-server-delegation.md:1 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:3 +msgid "**Reminder** : unless you are affected by the [Downsides of well-known-based Server Delegation](howto-server-delegation.md#downsides-of-well-known-based-server-delegation), we suggest you **stay on the simple/default path**: [Server Delegation](howto-server-delegation.md) by [configuring well-known files](configuring-well-known.md) at the base domain." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:5 +msgid "This guide is about configuring Server Delegation using DNS SRV records (for the [Traefik](https://doc.traefik.io/traefik/) webserver). This method has special requirements when it comes to SSL certificates, so various changes are required." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:9 +msgid "SRV delegation while still using the playbook provided Traefik to get / renew the certificate requires a wildcard certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:11 +msgid "To obtain / renew one from [Let's Encrypt](https://letsencrypt.org/), one needs to use a [DNS-01 challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) method instead of the default [HTTP-01](https://letsencrypt.org/docs/challenge-types/#http-01-challenge)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:13 +msgid "This means that this is **limited to the list of DNS providers supported by Traefik**, unless you bring in your own certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:15 +msgid "The up-to-date list can be accessed on [traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:19 +msgid "**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:21 +msgid "if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md) or [Dendrite](./configuring-playbook-dendrite.md))" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:22 +msgid "if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:24 +msgid "Also, all instructions below are from an older version of the playbook and may not work anymore." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:26 +msgid "Federation Endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:33 +msgid "This is because with SRV federation, some servers / tools (one of which being the federation tester) try to access the federation API using the resolved IP address instead of the domain name (or they are not using SNI). This change will make Traefik route all traffic for which the path match this rule go to the federation endpoint." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:35 +msgid "Tell Traefik which certificate to serve for the federation endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:37 +msgid "Now that the federation endpoint is not bound to a domain anymore we need to explicitely tell Traefik to use a wildcard certificate in addition to one containing the base name." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:39 +msgid "This is because the Matrix specification expects the federation endpoint to be served using a certificate compatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:48 +msgid "Configure the DNS-01 challenge for let's encrypt" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:50 +msgid "Since we're now requesting a wildcard certificate, we need to change the ACME challenge method. To request a wildcard certificate from Let's Encrypt we are required to use the DNS-01 challenge." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:52 +msgid "This will need 3 changes:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:53 +msgid "Add a new certificate resolver that works with DNS-01" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:54 +msgid "Configure the resolver to allow access to the DNS zone to configure the records to answer the challenge (refer to [Traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers) to know which environment variables to set)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:55 +msgid "Tell the playbook to use the new resolver as default" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:57 +msgid "We cannot just disable the default resolver as that would disable SSL in quite a few places in the playbook." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:86 +msgid "Adjust coturn's configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:88 +msgid "The last step is to alter the generated coturn configuration." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:90 +msgid "By default, coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent coturn from starting." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:92 +msgid "We also need to indicate to coturn where the wildcard certificate is." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:94 +msgid "⚠️ **Warning** : On first start of the services, coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the coturn service (`just start-group coturn`)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:96 +msgid "This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the coturn service is setup to restart periodically." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:122 +msgid "Full example of a working configuration" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/importing-postgres.po b/i18n/locales/jp/LC_MESSAGES/docs/importing-postgres.po new file mode 100644 index 000000000..d7d4df196 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/importing-postgres.po @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-postgres.md:1 +msgid "Importing an existing Postgres database from another installation (optional)" +msgstr "" + +#: ../../../docs/importing-postgres.md:3 +msgid "Run this if you'd like to import your database from a previous installation. (don't forget to import your Synapse `media_store` files as well — see [the importing-synape-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-postgres.md:6 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-postgres.md:8 +msgid "For this to work, **the database name in Postgres must match** what this playbook uses. This playbook uses a Postgres database name of `synapse` by default (controlled by the `matrix_synapse_database_database` variable). If your database name differs, be sure to change `matrix_synapse_database_database` to your desired name and to re-run the playbook before proceeding." +msgstr "" + +#: ../../../docs/importing-postgres.md:10 +msgid "The playbook supports importing Postgres dump files in **text** (e.g. `pg_dump > dump.sql`) or **gzipped** formats (e.g. `pg_dump | gzip -c > dump.sql.gz`). Importing multiple databases (as dumped by `pg_dumpall`) is also supported." +msgstr "" + +#: ../../../docs/importing-postgres.md:12 +msgid "The migration might be a good moment, to \"reset\" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new rooms, …)" +msgstr "" + +#: ../../../docs/importing-postgres.md:14 +msgid "Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-postgres.md:16 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-postgres.md:18 +msgid "To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-postgres.md:26 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-postgres.md:28 +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 "" + +#: ../../../docs/importing-postgres.md:29 +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 "" + +#: ../../../docs/importing-postgres.md:30 +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 "" + +#: ../../../docs/importing-postgres.md:32 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/importing-postgres.md:34 +msgid "Table Ownership" +msgstr "" + +#: ../../../docs/importing-postgres.md:36 +msgid "A table ownership issue can occur if you are importing from a Synapse installation which was both:" +msgstr "" + +#: ../../../docs/importing-postgres.md:38 +msgid "migrated from SQLite to Postgres, and" +msgstr "" + +#: ../../../docs/importing-postgres.md:39 +msgid "used a username other than 'synapse'" +msgstr "" + +#: ../../../docs/importing-postgres.md:41 +msgid "In this case you may run into the following error during the import task:" +msgstr "" + +#: ../../../docs/importing-postgres.md:47 +msgid "where `synapse_user` is the database username from the previous Synapse installation." +msgstr "" + +#: ../../../docs/importing-postgres.md:49 +msgid "This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:" +msgstr "" + +#: ../../../docs/importing-postgres.md:61 +msgid "It can be worked around by changing the username to `synapse`, for example by using `sed`:" +msgstr "" + +#: ../../../docs/importing-postgres.md:67 +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 "" + +#: ../../../docs/importing-postgres.md:69 +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 "" + +#: ../../../docs/importing-postgres.md:75 +msgid "Repeat import" +msgstr "" + +#: ../../../docs/importing-postgres.md:77 +msgid "In this case you can use the command suggested in the import task to clear the database before retrying the import:" +msgstr "" + +#: ../../../docs/importing-postgres.md:85 +msgid "Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc." +msgstr "" + +#: ../../../docs/importing-postgres.md:87 +msgid "If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database." +msgstr "" + +#: ../../../docs/importing-postgres.md:93 +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 "" + +#: ../../../docs/importing-postgres.md:95 +msgid "Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)" +msgstr "" + +#: ../../../docs/importing-postgres.md:101 +msgid "Hints" +msgstr "" + +#: ../../../docs/importing-postgres.md:103 +msgid "To open psql terminal run `/matrix/postgres/bin/cli`" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-media-store.po b/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-media-store.po new file mode 100644 index 000000000..e267284e4 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-media-store.po @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-synapse-media-store.md:1 +msgid "Importing `media_store` data files from an existing Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:3 +msgid "Run this if you'd like to import your `media_store` files from a previous installation of Synapse." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:5 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:7 +msgid "Before doing the actual data restore, **you need to upload your media store directory to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:9 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:11 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:13 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:15 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:17 +msgid "Run this command (make sure to replace `` with a path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:23 +msgid "**Note**: `` must be a file path to a `media_store` directory on the server (not on your local machine!)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-sqlite.po b/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-sqlite.po new file mode 100644 index 000000000..cbb95955c --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/importing-synapse-sqlite.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/importing-synapse-sqlite.md:1 +msgid "Importing an existing SQLite database from another Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:3 +msgid "Run this if you'd like to import your database from a previous default installation of Synapse (don't forget to import your `media_store` files as well — see [the importing-synapse-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:5 +msgid "While this playbook only supports running Synapse in combination with PostgreSQL, a Synapse instance installed manually usually defaults to using an SQLite database." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:7 +msgid "If you have such a Synapse setup and wish to migrate it to one managed by the playbook (and over to PostgreSQL), this documentation page is for you." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:11 +msgid "Before doing the actual import:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:13 +msgid "**ensure you have NOT started Synapse yet**. That is, make sure you have followed the [Installing step](installing.md), but haven't run the playbook's `start` tag yet. If you had started your new Synapse instance, it may have already initialized your Postgres database and importing onto it may not work. In such cases, you may need to clean up the `synapse` database first." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:14 +msgid "**ensure you have uploaded your SQLite database file to the server** (any path is okay)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:15 +msgid "if you're using the integrated Postgres server (**by default, you are** using it, unless you've explicitly switched to [Using an external PostgreSQL server](configuring-playbook-external-postgres.md)), **make sure Postgres is started** by running `just start-group postgres`" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:17 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:19 +msgid "Run this command (make sure to replace `` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:25 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:27 +msgid "`` must be replaced with a file path to a `homeserver.db` **file on the server** (not on your local machine!)." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:28 +msgid "if the SQLite database is from an older version of Synapse, the **importing procedure may run migrations on it to bring it up to date**. That is, your SQLite database file may get modified and become unusable with your older Synapse version. Keeping a copy of the original is probably wise." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/installing.po b/i18n/locales/jp/LC_MESSAGES/docs/installing.po new file mode 100644 index 000000000..db20df55f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/installing.po @@ -0,0 +1,305 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/installing.md:1 +msgid "Installing" +msgstr "" + +#: ../../../docs/installing.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > Installing" +msgstr "" + +#: ../../../docs/installing.md:5 +msgid "If you've configured your DNS records and the playbook, you can start the installation procedure." +msgstr "" + +#: ../../../docs/installing.md:7 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/installing.md:9 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/installing.md:11 +msgid "To update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file), run:" +msgstr "" + +#: ../../../docs/installing.md:13 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/installing.md:14 +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 "" + +#: ../../../docs/installing.md:16 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/installing.md:18 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/installing.md:20 +msgid "Install Matrix server and services" +msgstr "" + +#: ../../../docs/installing.md:22 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/installing.md:24 +msgid "The general command syntax for installation (and also maintenance) is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`. It is recommended to get yourself familiar with the [playbook tags](playbook-tags.md) before proceeding." +msgstr "" + +#: ../../../docs/installing.md:26 +msgid "If you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:28 +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 all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:30 +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 "" + +#: ../../../docs/installing.md:32 +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 "" + +#: ../../../docs/installing.md:34 +msgid "Installing a brand new server (without importing data)" +msgstr "" + +#: ../../../docs/installing.md:36 +msgid "If this is **a brand new** Matrix server and you **won't be importing old data into it**, run all these tags:" +msgstr "" + +#: ../../../docs/installing.md:42 +msgid "This will do a full installation and start all Matrix services." +msgstr "" + +#: ../../../docs/installing.md:44 +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 "" + +#: ../../../docs/installing.md:46 +msgid "Installing a server into which you'll import old data" +msgstr "" + +#: ../../../docs/installing.md:48 +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 "" + +#: ../../../docs/installing.md:50 +msgid "To do the installation **without** starting services, run `ansible-playbook` with the `install-all` tag only:" +msgstr "" + +#: ../../../docs/installing.md:56 +msgid "[!WARNING] 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 "" + +#: ../../../docs/installing.md:59 +msgid "When this command completes, services won't be running yet." +msgstr "" + +#: ../../../docs/installing.md:61 +msgid "You can now:" +msgstr "" + +#: ../../../docs/installing.md:63 +msgid "[Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:65 +msgid "[Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:67 +msgid "[Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:69 +msgid "… and then proceed to starting all services:" +msgstr "" + +#: ../../../docs/installing.md:75 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/installing.md:77 +msgid "ℹ️ *You can skip this step if you have installed a server and imported old data to it.*" +msgstr "" + +#: ../../../docs/installing.md:79 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/installing.md:81 +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 "" + +#: ../../../docs/installing.md:83 +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 "" + +#: ../../../docs/installing.md:85 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/installing.md:86 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/installing.md:87 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/installing.md:88 +msgid "Use `admin=yes` to make your user account an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/installing.md:96 +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 "" + +#: ../../../docs/installing.md:98 +msgid "For more information, see the documentation for [registering users](registering-users.md)." +msgstr "" + +#: ../../../docs/installing.md:100 +msgid "Finalize the installation" +msgstr "" + +#: ../../../docs/installing.md:102 +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 "" + +#: ../../../docs/installing.md:104 +msgid "This is required for federation to work! Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/installing.md:106 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/installing.md:108 +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 "" + +#: ../../../docs/installing.md:109 +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 "" + +#: ../../../docs/installing.md:111 +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 "" + +#: ../../../docs/installing.md:117 +msgid "After configuring the playbook, run the command below:" +msgstr "" + +#: ../../../docs/installing.md:123 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/installing.md:125 +msgid "After finilizing the installation, you can:" +msgstr "" + +#: ../../../docs/installing.md:127 +msgid "[check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/installing.md:128 +msgid "or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)" +msgstr "" + +#: ../../../docs/installing.md:129 +msgid "or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:130 +msgid "or learn how to [maintain your server](faq.md#maintenance)" +msgstr "" + +#: ../../../docs/installing.md:131 +msgid "or join some Matrix rooms:" +msgstr "" + +#: ../../../docs/installing.md:132 +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." +msgstr "" + +#: ../../../docs/installing.md:133 +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 "" + +#: ../../../docs/installing.md:134 +msgid "or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))" +msgstr "" + +#: ../../../docs/installing.md:136 +msgid "Maintaining your setup in the future" +msgstr "" + +#: ../../../docs/installing.md:138 +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 "" + +#: ../../../docs/installing.md:140 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities." +msgstr "" + +#: ../../../docs/installing.md:142 +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 "" + +#: ../../../docs/installing.md:144 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:146 +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 "" + +#: ../../../docs/installing.md:152 +msgid "**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/installing.md:154 +msgid "Make full use of `just` shortcut commands" +msgstr "" + +#: ../../../docs/installing.md:156 +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 "" + +#: ../../../docs/installing.md:158 +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 "" + +#: ../../../docs/installing.md:160 +msgid "You can learn about the shortcut commands on this page: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/just.po b/i18n/locales/jp/LC_MESSAGES/docs/just.po new file mode 100644 index 000000000..19d13143e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/just.po @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/just.md:1 +msgid "Running `just` commands" +msgstr "" + +#: ../../../docs/just.md:3 +msgid "We have previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers [`ansible-galaxy`](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html)). Our [`Makefile`](../Makefile) is still around, and you can still run these commands." +msgstr "" + +#: ../../../docs/just.md:5 +msgid "In addition, we have added support for running commands via [`just`](https://github.com/casey/just) — a more modern command-runner alternative to `make`. It can be used to invoke `ansible-playbook` commands with less typing." +msgstr "" + +#: ../../../docs/just.md:7 +msgid "The `just` utility executes shortcut commands (called as \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile). Most of the just recipes have no corresponding `Makefile` targets." +msgstr "" + +#: ../../../docs/just.md:9 +msgid "For some recipes such as `just update`, our `justfile` recommends installing [`agru`](https://github.com/etkecc/agru) (a faster alternative to `ansible-galaxy`) to speed up the process." +msgstr "" + +#: ../../../docs/just.md:11 +msgid "Here are some examples of shortcuts:" +msgstr "" + +#: ../../../docs/just.md +msgid "Shortcut" +msgstr "" + +#: ../../../docs/just.md +msgid "Result" +msgstr "" + +#: ../../../docs/just.md +msgid "`just roles`" +msgstr "" + +#: ../../../docs/just.md +msgid "Install the necessary Ansible roles pinned in [`requirements.yml`](../requirements.yml)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just update`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `git pull` (to update the playbook) and install the Ansible roles" +msgstr "" + +#: ../../../docs/just.md ../../../docs/just.md:33 +msgid "`just install-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "`just setup-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "`just install-all --ask-vault-pass`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run commands with additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just run-tags install-mautrix-slack,start`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run specific playbook tags (here `install-mautrix-slack` and `start`)" +msgstr "" + +#: ../../../docs/just.md +msgid "`just install-service mautrix-slack`" +msgstr "" + +#: ../../../docs/just.md +msgid "Run `just run-tags install-mautrix-slack,start` with even less typing" +msgstr "" + +#: ../../../docs/just.md +msgid "`just start-all`" +msgstr "" + +#: ../../../docs/just.md +msgid "(Re-)starts all services" +msgstr "" + +#: ../../../docs/just.md +msgid "`just stop-group postgres`" +msgstr "" + +#: ../../../docs/just.md +msgid "Stop only the Postgres service" +msgstr "" + +#: ../../../docs/just.md +msgid "`just register-user alice secret-password yes`" +msgstr "" + +#: ../../../docs/just.md +msgid "Registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../docs/just.md:26 +msgid "While [our documentation on prerequisites](prerequisites.md) lists `just` as one of the requirements for installation, using `just` is optional. If you find it difficult to install it, do not find it useful, or want to prefer raw `ansible-playbook` commands for some reason, feel free to run all commands manually. For example, you can run `ansible-galaxy` directly to install the Ansible roles: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`." +msgstr "" + +#: ../../../docs/just.md:28 +msgid "Difference between playbook tags and shortcuts" +msgstr "" + +#: ../../../docs/just.md:30 +msgid "It is worth noting that `just` \"recipes\" are different from [playbook tags](playbook-tags.md). The recipes are shortcuts of commands defined in `justfile` and can be executed by the `just` program only, while the playbook tags are available for the raw `ansible-playbook` commands as well. Please be careful not to confuse them." +msgstr "" + +#: ../../../docs/just.md:32 +msgid "For example, these two commands are different:" +msgstr "" + +#: ../../../docs/just.md:34 +msgid "`ansible-playbook -i inventory/hosts setup.yml --tags=install-all`" +msgstr "" + +#: ../../../docs/just.md:36 +msgid "The just recipe runs `ensure-matrix-users-created` and `start` tags after `install-all`, while the latter runs only `install-all` tag. The correct shortcut of the latter is `just run-tags install-all`." +msgstr "" + +#: ../../../docs/just.md:38 +msgid "Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components which may prevent your from importing old data." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-and-troubleshooting.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-and-troubleshooting.po new file mode 100644 index 000000000..50827aa93 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-and-troubleshooting.po @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-and-troubleshooting.md:1 +msgid "Maintenance and Troubleshooting" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:3 +msgid "How to see the current status of your services" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:5 +msgid "You can check the status of your services by using `systemctl status`. Example:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:15 +msgid "Docker containers that the playbook configures are supervised by [systemd](https://wiki.archlinux.org/title/Systemd) and their logs are configured to go to [systemd-journald](https://wiki.archlinux.org/title/Systemd/Journal)." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:17 +msgid "To prevent double-logging, Docker logging is disabled by explicitly passing `--log-driver=none` to all containers. Due to this, you **cannot** view logs using `docker logs`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:19 +msgid "To view systemd-journald logs using [journalctl](https://man.archlinux.org/man/journalctl.1), run a command like this:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:25 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:27 +msgid "Because the [Synapse](https://github.com/element-hq/synapse) Matrix server is originally very chatty when it comes to logging, we intentionally reduce its [logging level](https://docs.python.org/3/library/logging.html#logging-levels) from `INFO` to `WARNING`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:29 +msgid "If you'd like to debug an issue or [report a Synapse bug](https://github.com/element-hq/synapse/issues/new/choose) to the developers, it'd be better if you temporarily increasing the logging level to `INFO`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:31 +msgid "Example configuration (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:39 +msgid "Re-run the playbook after making these configuration changes." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:41 +msgid "Remove unused Docker data" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:43 +msgid "You can free some disk space from Docker, see [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags run-docker-prune`" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:51 +msgid "Postgres" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:53 +msgid "See the dedicated [PostgreSQL Maintenance](maintenance-postgres.md) documentation page." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-checking-services.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-checking-services.po new file mode 100644 index 000000000..93f690c51 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-checking-services.po @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-checking-services.md:1 +msgid "Checking if services work" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:3 +msgid "The playbook can perform a check to ensure that you've configured things correctly and that services are running." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:5 +msgid "To perform the check, run:" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:11 +msgid "The shortcut command with `just` program is also available: `just run-tags self-check`" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:13 +msgid "If it's all green, everything is probably running correctly." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:15 +msgid "Besides this self-check, 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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-migrating.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-migrating.po new file mode 100644 index 000000000..77987e292 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-migrating.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-migrating.md:1 +msgid "Migrating to new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:3 +msgid "This documentation explains how to migrate your Matrix services (server, client, bridges, etc.) and data **from an old server to a new server**." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:6 +msgid "This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`)." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:8 +msgid "If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is **not** possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:9 +msgid "If you have any questions about migration or encountered an issue during migration, do not hesitate to ask for help on [our Matrix room](https://matrix.to/#/%23matrix-docker-ansible-deploy:devture.com). You probably might want to prepare a temporary/sub account on another Matrix server in case it becomes impossible to use your server due to migration failure by any chance." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:11 +msgid "You can't change the domain (specified in the `matrix_domain` variable) after the initial deployment." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:13 +msgid "Lower DNS TTL" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:15 +msgid "Prepare by lowering DNS TTL for your domains (`matrix.example.com`, etc.), so that DNS record changes would happen faster, leading to less downtime." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:17 +msgid "Stop services on the old server completely" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:19 +msgid "Before migrating, you need to stop all services on the old server and make sure they won't be starting again." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:21 +msgid "To do so, it is recommended to run the `systemctl` command on the server. Running the playbook's `stop` tag also stops the services, but just once; they will start again if you reboot the server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:23 +msgid "Log in to the old server and run the command as `root` (or a user that can run it with `sudo`):" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:29 +msgid "Copy data directory to the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:31 +msgid "After you've confirmed that all services were stopped, copy the `/matrix` directory from the old server to the new server. When copying, make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)!" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:33 +msgid "Adjust DNS records" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:35 +msgid "Make sure your DNS records are adjusted to point to the new server's IP address." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:37 +msgid "Update `inventory/hosts` file" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:39 +msgid "Having adjusted DNS records, replace the old server's external IP address on the `inventory/hosts` file with that of the new server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:41 +msgid "Create `matrix` user and group on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:43 +msgid "Then, run the command below on your local computer to create the `matrix` user and group on the new server:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags setup-system-user`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:51 +msgid "**Note**: because the `matrix` user and group are created dynamically on each server, the user/group ID may differ between the old and new server. We suggest that you adjust ownership of `/matrix` files. To adjust the ownership, log in to the new server and run the command:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:57 +msgid "Install and start all services on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:59 +msgid "Finally, run the command below on your local computer to finish the installation and start all services:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:65 +msgid "The shortcut command with `just` program is also available: `just run-tags install-all,start`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:67 +msgid "Check if services work" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:69 +msgid "After starting the services, you probably might want to ensure that you've migrated things correctly and that services are running. For instructions, see: [check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:71 +msgid "Having make sure that both services and federation work as expected, you can safely shutdown the old server." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-postgres.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-postgres.po new file mode 100644 index 000000000..adde96128 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-postgres.po @@ -0,0 +1,221 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-postgres.md:1 +msgid "PostgreSQL maintenance" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Postgres database server used by Matrix." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:7 +msgid "[Getting a database terminal](#getting-a-database-terminal), for when you wish to execute SQL queries" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:9 +msgid "[Vacuuming PostgreSQL](#vacuuming-postgresql), for when you wish to run a Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) (optimizing disk space)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:11 +msgid "[Backing up PostgreSQL](#backing-up-postgresql), for when you wish to make a backup" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:13 +msgid "[Upgrading PostgreSQL](#upgrading-postgresql), for upgrading to new major versions of PostgreSQL. Such **manual upgrades are sometimes required**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:15 +msgid "[Tuning PostgreSQL](#tuning-postgresql) to make it run faster" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:17 +msgid "Getting a database terminal" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:19 +msgid "You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:21 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:23 +msgid "By default, this tool puts you in the `matrix` database, which contains nothing." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:25 +msgid "To see the available databases, run `\\list` (or just `\\l`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:27 +msgid "To change to another database (for example `synapse`), run `\\connect synapse` (or just `\\c synapse`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:29 +msgid "You can then proceed to write queries. Example: `SELECT COUNT(*) FROM users;`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:31 +msgid "**Be careful**. Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption. When in doubt, consider [making a backup](#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:33 +msgid "Vacuuming PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:35 +msgid "Deleting lots data from Postgres does not make it release disk space, until you perform a [`VACUUM` operation](https://www.postgresql.org/docs/current/sql-vacuum.html)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:37 +msgid "You can run different `VACUUM` operations via the playbook, with the default preset being `vacuum-complete`:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:39 +msgid "(default) `vacuum-complete`: stops all services temporarily and runs `VACUUM FULL VERBOSE ANALYZE`." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:40 +msgid "`vacuum-full`: stops all services temporarily and runs `VACUUM FULL VERBOSE`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:41 +msgid "`vacuum`: runs `VACUUM VERBOSE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:42 +msgid "`vacuum-analyze` runs `VACUUM VERBOSE ANALYZE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:43 +msgid "`analyze` runs `ANALYZE VERBOSE` without stopping any services (this is just [ANALYZE](https://www.postgresql.org/docs/current/sql-analyze.html) without doing a vacuum, so it's faster)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:45 +msgid "**Note**: for the `vacuum-complete` and `vacuum-full` presets, you'll need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`). These presets also stop all services (e.g. Synapse, etc.) while the vacuum operation is running." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:47 +msgid "Example playbook invocations:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:49 +msgid "`just run-tags run-postgres-vacuum`: runs the default `vacuum-complete` preset and restarts all services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:50 +msgid "`just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze`: runs the `analyze` preset with all services remaining operational at all times" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:52 +msgid "Backing up PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:54 +msgid "To automatically make Postgres database backups on a fixed schedule, see [Setting up postgres backup](configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:56 +msgid "To make a one off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:67 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because neither the credentials file (`/matrix/postgres/env-postgres-psql`), nor the `matrix-postgres` container is available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:69 +msgid "Restoring a backup made this way can be done by [importing it](importing-postgres.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:71 +msgid "Upgrading PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:73 +msgid "Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:75 +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 "" + +#: ../../../docs/maintenance-postgres.md:77 +msgid "Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:79 +msgid "The playbook can upgrade your existing Postgres setup with the following command:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:85 +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 "" + +#: ../../../docs/maintenance-postgres.md:87 +msgid "The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:89 +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 "" + +#: ../../../docs/maintenance-postgres.md:91 +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 "" + +#: ../../../docs/maintenance-postgres.md:93 +msgid "**All databases, roles, etc. on the Postgres server are migrated**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:95 +msgid "Tuning PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:97 +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 "" + +#: ../../../docs/maintenance-postgres.md:99 +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_auto` variable." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:101 +msgid "Most users should be fine with the automatically-done tuning. However, you may wish to:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:103 +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_auto` variable" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:105 +msgid "**turn automatically-performed tuning off**: override it like this: `postgres_postgres_process_extra_arguments_auto: []`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:107 +msgid "**add additional tuning parameters**: define your additional Postgres configuration parameters in `postgres_postgres_process_extra_arguments_custom`. See `postgres_postgres_process_extra_arguments_auto` 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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-synapse.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-synapse.po new file mode 100644 index 000000000..ce45f3f8f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-synapse.po @@ -0,0 +1,201 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-synapse.md:1 +msgid "Synapse maintenance" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Synapse chat server." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:7 +msgid "[Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api), for when you wish to delete in-use (but old) data from the Synapse database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:9 +msgid "[Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:11 +msgid "[Browse and manipulate the database](#browse-and-manipulate-the-database), for when you really need to take matters into your own hands" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:13 +msgid "[Make Synapse faster](#make-synapse-faster)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:15 +msgid "Purging old data with the Purge History API" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:17 +msgid "You can use the **[Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md)** to delete old messages on a per-room basis. **This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:19 +msgid "To make use of this Synapse Admin API, **you'll need an admin access token** first. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:21 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:24 +msgid "Synapse's Admin API is not exposed to the internet by default, following [official Synapse reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). To expose it you will need to add `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:26 +msgid "Follow the [Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md) documentation page for the actual purging instructions." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:28 +msgid "After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:30 +msgid "Compressing state with rust-synapse-compress-state" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:32 +msgid "[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:34 +msgid "**Note**: besides running the `rust-synapse-compress-state` tool manually, you can also enable its `synapse-auto-compressor` tool by [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md). The automatic tool will run on a schedule every day and you won't have to compress state manually ever again." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:36 +msgid "`rust-synapse-compress-state` should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:38 +msgid "To ask the playbook to run rust-synapse-compress-state, execute:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:44 +msgid "The shortcut command with `just` program is also available: `just run-tags rust-synapse-compress-state`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:46 +msgid "By default, all rooms with more than `100000` state group rows will be compressed. If you need to adjust this, pass: `--extra-vars='matrix_synapse_rust_synapse_compress_state_min_state_groups_required=SOME_NUMBER_HERE'` to the command above." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:48 +msgid "After state compression, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:50 +msgid "Browse and manipulate the database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:52 +msgid "When the [Synapse Admin API](https://github.com/element-hq/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:54 +msgid "Editing the database manually is not recommended or supported by the Synapse developers. If you are going to do so you should [make a database backup](./maintenance-postgres.md#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:56 +msgid "First, set up an SSH tunnel to your Matrix server (skip if it is your local machine):" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:63 +msgid "Then start up an ephemeral [adminer](https://www.adminer.org/) container on the Matrix server, connecting it to the `matrix` network and linking the postgresql container:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:69 +msgid "You should then be able to browse the adminer database administration GUI at http://localhost:1799/ after entering your DB credentials (found in the `host_vars` or on the server in `{{matrix_synapse_config_dir_path}}/homeserver.yaml` under `database.args`)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:71 +msgid "⚠️️ Be **very careful** with this, there is **no undo** for impromptu DB operations." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:73 +msgid "Make Synapse faster" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:75 +msgid "Synapse's presence feature which tracks which users are online and which are offline can use a lot of processing power. You can disable presence by adding `matrix_synapse_presence_enabled: false` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:77 +msgid "If you have enough compute resources (CPU & RAM), you can make Synapse better use of them by [enabling load-balancing with workers](configuring-playbook-synapse.md#load-balancing-with-workers)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:79 +msgid "[Tuning your PostgreSQL database](maintenance-postgres.md#tuning-postgresql) could also improve Synapse performance. The playbook tunes the integrated Postgres database automatically, but based on your needs you may wish to adjust tuning variables manually. If you're using an [external Postgres database](configuring-playbook-external-postgres.md), you will also need to tune Postgres manually." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:81 +msgid "Tuning caches and cache autotuning" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:83 +msgid "Tuning Synapse's cache factor is useful for performance increases but also as part of controlling Synapse's memory use. Use the variable `matrix_synapse_caches_global_factor` to set the cache factor as part of this process." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:85 +msgid "**The playbook defaults the global cache factor to a large value** (e.g. `10`). A smaller value (e.g. `0.5`) will decrease the amount used for caches, but will [not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:87 +msgid "Tuning the cache factor is useful only to a limited degree (as its crude to do in isolation) and therefore users who are tuning their cache factor should likely look into tuning autotune variables as well (see below)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:89 +msgid "Cache autotuning is **enabled by default** and controlled via the following variables:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:91 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:92 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:93 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:95 +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 "" + +#: ../../../docs/maintenance-synapse.md:97 +msgid "To **disable cache auto-tuning**, unset all values:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:105 +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 "" + +#: ../../../docs/maintenance-synapse.md:107 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/maintenance-upgrading-services.po b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-upgrading-services.po new file mode 100644 index 000000000..e73b0da3e --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/maintenance-upgrading-services.po @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/maintenance-upgrading-services.md:1 +msgid "Upgrading the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:3 +msgid "This playbook not only installs the various Matrix services for you, but can also upgrade them as new versions are made available." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:5 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:7 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities (for example, see [here](https://github.com/element-hq/element-web/security) for known ones on Element Web)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:9 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:11 +msgid "The developers of this playbook strive to maintain the playbook updated, so that you can re-run the playbook to address such vulnerabilities. It is **your responsibility** to keep your server and the services on it up-to-date." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:13 +msgid "If you want to be notified when new versions of Synapse are released, you should join the Synapse Homeowners room: [#homeowners:matrix.org](https://matrix.to/#/#homeowners:matrix.org)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:15 +msgid "Steps to upgrade the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:17 +msgid "Check the changelog" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:19 +msgid "Before updating the playbook and the Ansible roles in the playbook, take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:21 +msgid "Update the playbook and the Ansible roles" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:23 +msgid "If it looks good to you, go to the `matrix-docker-ansible-deploy` directory, update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) by running:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:25 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:26 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:28 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:30 +msgid "**Note**: for details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:32 +msgid "Re-run the playbook setup" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:34 +msgid "After updating the Ansible roles, then re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:40 +msgid "If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:50 +msgid "Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:52 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:54 +msgid "See [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:56 +msgid "PostgreSQL major version upgrade" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:58 +msgid "Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:60 +msgid "For details about upgrading it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/obtaining-access-tokens.po b/i18n/locales/jp/LC_MESSAGES/docs/obtaining-access-tokens.po new file mode 100644 index 000000000..77130e1c2 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/obtaining-access-tokens.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/obtaining-access-tokens.md:1 +msgid "Obtaining an Access Token" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:3 +msgid "When setting up some optional features like bots and bridges you will need to provide an access token for some user. This document provides documentation on how to obtain such an access token." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:5 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:8 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:10 +msgid "The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:12 +msgid "Below, we describe 2 ways to generate an access token for a user — using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:14 +msgid "Obtain an access token via Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:16 +msgid "In a private browsing session (incognito window), open Element Web." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:17 +msgid "Log in with the user's credentials." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:18 +msgid "In the settings page, choose \"Help & About\", scroll down to the bottom and expand the `Access Token` section (see screenshot below)." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:19 +msgid "Copy the access token to your configuration." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:20 +msgid "Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "![Obtaining an access token with Element Web](assets/obtain_admin_access_token_element_web.png)" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "Obtaining an access token with Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:24 +msgid "Obtain an access token via curl" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:26 +msgid "You can use the following command to get an access token for your user directly from the [Matrix Client-Server API](https://www.matrix.org/docs/guides/client-server-api#login):" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:36 +msgid "Change `USERNAME`, `PASSWORD`, and `example.com` accordingly." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:38 +msgid "`YOURDEVICEID` is optional and can be used to more easily identify the session later. When omitted (mind the commas in the JSON payload if you'll be omitting it), a random device ID will be generated." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:40 +msgid "Your response will look like this (prettified):" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/playbook-tags.po b/i18n/locales/jp/LC_MESSAGES/docs/playbook-tags.po new file mode 100644 index 000000000..13642e626 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/playbook-tags.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/playbook-tags.md:1 +msgid "Playbook tags" +msgstr "" + +#: ../../../docs/playbook-tags.md:3 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/playbook-tags.md:5 +msgid "The general command syntax is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`" +msgstr "" + +#: ../../../docs/playbook-tags.md:7 +msgid "Here are some playbook tags that you should be familiar with:" +msgstr "" + +#: ../../../docs/playbook-tags.md:9 +msgid "`setup-all` — runs all setup tasks (installation and uninstallation) for all components, but does not start/restart services" +msgstr "" + +#: ../../../docs/playbook-tags.md:11 +msgid "`install-all` — like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed" +msgstr "" + +#: ../../../docs/playbook-tags.md:13 +msgid "`setup-SERVICE` (e.g. `setup-postmoogle`) — runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag)." +msgstr "" + +#: ../../../docs/playbook-tags.md:15 +msgid "`install-SERVICE` (e.g. `install-postmoogle`) — like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information." +msgstr "" + +#: ../../../docs/playbook-tags.md:17 +msgid "`start` — starts all systemd services and makes them start automatically in the future" +msgstr "" + +#: ../../../docs/playbook-tags.md:19 +msgid "`stop` — stops all systemd services" +msgstr "" + +#: ../../../docs/playbook-tags.md:21 +msgid "`ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created" +msgstr "" + +#: ../../../docs/playbook-tags.md:23 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/playbook-tags.md:24 +msgid "`setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc." +msgstr "" + +#: ../../../docs/playbook-tags.md:25 +msgid "Please be careful not to confuse the playbook tags with the `just` shortcut commands (\"recipes\"). For details about `just` commands, see: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/prerequisites.po b/i18n/locales/jp/LC_MESSAGES/docs/prerequisites.po new file mode 100644 index 000000000..37a069f73 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/prerequisites.po @@ -0,0 +1,165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/prerequisites.md:1 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/prerequisites.md:3 +msgid "Prerequisites > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/prerequisites.md:5 +msgid "To install Matrix services using this Ansible playbook, you need to prepare several requirements both on your local computer (where you will run the playbook to configure the server) and the server (where the playbook will install the Matrix services for you). **These requirements need to be set up manually** before proceeding to the next step." +msgstr "" + +#: ../../../docs/prerequisites.md:7 +msgid "We will be using `example.com` as the domain in the following instruction. Please remember to replace it with your own domain before running any commands." +msgstr "" + +#: ../../../docs/prerequisites.md:9 +msgid "**Note**: if you do not have an existing Matrix server and want to start quickly with \"opinionated defaults\", we suggest you to follow ⚡ **[Quick start](quick-start.md)** installation guide." +msgstr "" + +#: ../../../docs/prerequisites.md:11 +msgid "Your local computer" +msgstr "" + +#: ../../../docs/prerequisites.md:13 +msgid "[Ansible](http://ansible.com/) program. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible." +msgstr "" + +#: ../../../docs/prerequisites.md:15 +msgid "[passlib](https://passlib.readthedocs.io/en/stable/index.html) Python library. See [this official documentation](https://passlib.readthedocs.io/en/stable/install.html#installation-instructions) for an instruction to install it. On most distros, you need to install some `python-passlib` or `py3-passlib` package, etc." +msgstr "" + +#: ../../../docs/prerequisites.md:17 +msgid "[`git`](https://git-scm.com/) as the recommended way to download the playbook. `git` may also be required on the server if you will be [self-building](self-building.md) components." +msgstr "" + +#: ../../../docs/prerequisites.md:19 +msgid "[`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually. Take at look at this documentation for more information: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:21 +msgid "Strong password (random strings) generator. The playbook often requires you to create a strong password and use it for settings on `vars.yml`, components, etc. As any tools should be fine, this playbook has adopted [`pwgen`](https://linux.die.net/man/1/pwgen) (running `pwgen -s 64 1`). [Password Tech](https://pwgen-win.sourceforge.io/), formerly known as \"PWGen for Windows\", is available as free and open source password generator for Windows. Generally, using a random generator available on the internet is not recommended." +msgstr "" + +#: ../../../docs/prerequisites.md:23 +msgid "Server" +msgstr "" + +#: ../../../docs/prerequisites.md:25 +msgid "(Recommended) An **x86** server ([What kind of server specs do I need?](faq.md#what-kind-of-server-specs-do-i-need)) running one of these operating systems that make use of [systemd](https://systemd.io/):" +msgstr "" + +#: ../../../docs/prerequisites.md:26 +msgid "**Archlinux**" +msgstr "" + +#: ../../../docs/prerequisites.md:27 +msgid "**CentOS**, **Rocky Linux**, **AlmaLinux**, or possibly other RHEL alternatives (although your mileage may vary)" +msgstr "" + +#: ../../../docs/prerequisites.md:28 +msgid "**Debian** (10/Buster or newer)" +msgstr "" + +#: ../../../docs/prerequisites.md:29 +msgid "**Ubuntu** (18.04 or newer, although [20.04 may be problematic](ansible.md#supported-ansible-versions) if you run the Ansible playbook on it)" +msgstr "" + +#: ../../../docs/prerequisites.md:31 +msgid "Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. The playbook can take over your whole server or co-exist with other services that you have there." +msgstr "" + +#: ../../../docs/prerequisites.md:33 +msgid "This playbook somewhat supports running on non-`amd64` architectures like ARM. See [Alternative Architectures](alternative-architectures.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:35 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/prerequisites.md:37 +msgid "`root` access to your server (or a user capable of elevating to `root` via `sudo`)." +msgstr "" + +#: ../../../docs/prerequisites.md:39 +msgid "[Python](https://www.python.org/). Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`)" +msgstr "" + +#: ../../../docs/prerequisites.md:41 +msgid "[sudo](https://www.sudo.ws/), even when you've configured Ansible to log in as `root`. Some distributions, like a minimal Debian net install, do not include the `sudo` package by default." +msgstr "" + +#: ../../../docs/prerequisites.md:43 +msgid "An HTTPS-capable web server at the base domain name (`example.com`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:45 +msgid "Properly configured DNS records for `example.com` (details in [Configuring DNS](configuring-dns.md))." +msgstr "" + +#: ../../../docs/prerequisites.md:47 +msgid "Some TCP/UDP ports open. This playbook (actually [Docker itself](https://docs.docker.com/network/iptables/)) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports:" +msgstr "" + +#: ../../../docs/prerequisites.md:49 +msgid "`80/tcp`: HTTP webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:50 +msgid "`443/tcp` and `443/udp`: HTTPS webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:51 +msgid "`3478/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:52 +msgid "`3478/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:53 +msgid "`5349/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:54 +msgid "`5349/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:55 +msgid "`8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**." +msgstr "" + +#: ../../../docs/prerequisites.md:56 +msgid "the range `49152-49172/udp`: TURN over UDP" +msgstr "" + +#: ../../../docs/prerequisites.md:57 +msgid "potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that." +msgstr "" + +#: ../../../docs/prerequisites.md:61 +msgid "[▶️](configuring-dns.md) When ready to proceed, continue with [Configuring DNS](configuring-dns.md)." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/quick-start.po b/i18n/locales/jp/LC_MESSAGES/docs/quick-start.po new file mode 100644 index 000000000..f582e5454 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/quick-start.po @@ -0,0 +1,433 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/quick-start.md:1 +msgid "Quick start" +msgstr "" + +#: ../../../docs/quick-start.md:9 +msgid "This page explains how to use this Ansible playbook to install Matrix services on your server with a minimal set of core services." +msgstr "" + +#: ../../../docs/quick-start.md:11 +msgid "We will be using `example.com` as the \"base domain\" in the following instruction." +msgstr "" + +#: ../../../docs/quick-start.md:13 +msgid "By following the instruction on this page, you will set up:" +msgstr "" + +#: ../../../docs/quick-start.md:15 +msgid "**your own Matrix server** on a `matrix.example.com` server, which is configured to present itself as `example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:16 +msgid "**your user account** like `@alice:example.com` on the server" +msgstr "" + +#: ../../../docs/quick-start.md:17 +msgid "a **self-hosted Matrix client**, [Element Web](configuring-playbook-client-element-web.md) with the default subdomain at `element.example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:18 +msgid "Matrix delegation, so that your `matrix.example.com` server (presenting itself as `example.com`) can join the Matrix Federation and communicate with any other server in the Matrix network" +msgstr "" + +#: ../../../docs/quick-start.md:20 +msgid "Please remember to replace `example.com` with your own domain before running any commands." +msgstr "" + +#: ../../../docs/quick-start.md:22 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/quick-start.md:24 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Prerequisites](prerequisites.md)" +msgstr "" + +#: ../../../docs/quick-start.md:26 +msgid "At first, **check prerequisites** and prepare for installation by setting up programs [on your own computer](prerequisites.md#your-local-computer) and [your server](prerequisites.md#server). You also need `root` access on your server (a user that could elevate to `root` via `sudo` also works)." +msgstr "" + +#: ../../../docs/quick-start.md:28 +msgid "When preparing your server, make sure to check [the server specs you need](faq.md#what-kind-of-server-specs-do-i-need). We recommend starting with a server having at least 2GB of memory." +msgstr "" + +#: ../../../docs/quick-start.md:34 +msgid "If you encounter an error during installation, please make sure that you have installed and configured programs correctly." +msgstr "" + +#: ../../../docs/quick-start.md:36 +msgid "One of the main reasons of basic errors is using an incompatible version of required software such as Ansible. Take a look at [our guide about Ansible](ansible.md) for more information. In short: installing the latest available version is recommended." +msgstr "" + +#: ../../../docs/quick-start.md:38 +msgid "Configure your DNS settings" +msgstr "" + +#: ../../../docs/quick-start.md:40 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring your DNS settings](configuring-dns.md)" +msgstr "" + +#: ../../../docs/quick-start.md:42 +msgid "After installing and configuring prerequisites, you will need to **configure DNS records**." +msgstr "" + +#: ../../../docs/quick-start.md:44 +msgid "To configure Matrix services in the default settings, go to your DNS service provider, and adjust DNS records as below." +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Type" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Host" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Priority" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Weight" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Port" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "Target" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "A" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "`matrix`" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "-" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "`matrix-server-IP`" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "CNAME" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "`element`" +msgstr "" + +#: ../../../docs/quick-start.md +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:51 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "" + +#: ../../../docs/quick-start.md:53 +msgid "It might take some time for the DNS records to propagate after creation." +msgstr "" + +#: ../../../docs/quick-start.md:55 +msgid "**💡 Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\"" +msgstr "" + +#: ../../../docs/quick-start.md:57 +msgid "Get the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:59 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Getting the playbook](getting-the-playbook.md)" +msgstr "" + +#: ../../../docs/quick-start.md:61 +msgid "Next, let's **get the playbook's source code**." +msgstr "" + +#: ../../../docs/quick-start.md:63 +msgid "We recommend to do so with [git](https://git-scm.com/) as it enables you to keep it up to date with the latest source code. While it is possible to download the playbook as a ZIP archive, it is not recommended." +msgstr "" + +#: ../../../docs/quick-start.md:65 +msgid "To get the playbook with git, install git on your computer, go to a directory, and run the command:" +msgstr "" + +#: ../../../docs/quick-start.md:71 +msgid "It will fetch the playbook to a new `matrix-docker-ansible-deploy` directory underneath the directory you are currently in." +msgstr "" + +#: ../../../docs/quick-start.md:73 +msgid "Configure the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:75 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/quick-start.md:77 +msgid "Now that the playbook was fetched, it is time to **configure** it per your needs." +msgstr "" + +#: ../../../docs/quick-start.md:79 +msgid "To install Matrix services with this playbook, you would at least need 2 configuration files." +msgstr "" + +#: ../../../docs/quick-start.md:81 +msgid "For your convenience, we have prepared example files of them ([`vars.yml`](../examples/vars.yml) and [`hosts`](../examples/hosts))." +msgstr "" + +#: ../../../docs/quick-start.md:83 +msgid "To start quickly based on these example files, go into the `matrix-docker-ansible-deploy` directory and follow the instructions below:" +msgstr "" + +#: ../../../docs/quick-start.md:85 +msgid "Create a directory to hold your configuration: `mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\"" +msgstr "" + +#: ../../../docs/quick-start.md:86 +msgid "Copy the sample configuration file: `cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`" +msgstr "" + +#: ../../../docs/quick-start.md:87 +msgid "Copy the sample inventory hosts file: `cp examples/hosts inventory/hosts`" +msgstr "" + +#: ../../../docs/quick-start.md:88 +msgid "Edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/quick-start.md:89 +msgid "Edit the inventory hosts file (`inventory/hosts`)" +msgstr "" + +#: ../../../docs/quick-start.md:91 +msgid "Before editing these 2 files, make sure to read explanations on them to understand what needs to be configured." +msgstr "" + +#: ../../../docs/quick-start.md:93 +msgid "**💡 Notes:**" +msgstr "" + +#: ../../../docs/quick-start.md:94 +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 "" + +#: ../../../docs/quick-start.md:95 +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 "" + +#: ../../../docs/quick-start.md:96 +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 "" + +#: ../../../docs/quick-start.md:98 +msgid "Install" +msgstr "" + +#: ../../../docs/quick-start.md:100 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Installing](installing.md)" +msgstr "" + +#: ../../../docs/quick-start.md:102 +msgid "After editing `vars.yml` and `hosts` files, let's start the **installation** procedure." +msgstr "" + +#: ../../../docs/quick-start.md:104 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/quick-start.md:106 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/quick-start.md:108 +msgid "To update your playbook directory and all upstream Ansible roles, run:" +msgstr "" + +#: ../../../docs/quick-start.md:110 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/quick-start.md:111 +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 "" + +#: ../../../docs/quick-start.md:113 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/quick-start.md:115 +msgid "Run installation command" +msgstr "" + +#: ../../../docs/quick-start.md:117 +msgid "Then, run the command below to start installation:" +msgstr "" + +#: ../../../docs/quick-start.md:123 +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 "" + +#: ../../../docs/quick-start.md:125 +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 "" + +#: ../../../docs/quick-start.md:127 +msgid "Wait until the command completes. If it's all green, everything should be running properly." +msgstr "" + +#: ../../../docs/quick-start.md:129 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/quick-start.md:131 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/quick-start.md:133 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/quick-start.md:135 +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 "" + +#: ../../../docs/quick-start.md:137 +msgid "**💡 Notes**:" +msgstr "" + +#: ../../../docs/quick-start.md:138 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/quick-start.md:139 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/quick-start.md:151 +msgid "Finalize server installation" +msgstr "" + +#: ../../../docs/quick-start.md:153 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Server Delegation](howto-server-delegation.md)" +msgstr "" + +#: ../../../docs/quick-start.md:155 +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 "" + +#: ../../../docs/quick-start.md:157 +msgid "**This is required for federation to work!** Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/quick-start.md:159 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/quick-start.md:161 +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 "" + +#: ../../../docs/quick-start.md:162 +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 "" + +#: ../../../docs/quick-start.md:164 +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 "" + +#: ../../../docs/quick-start.md:170 +msgid "After configuring the playbook, run the command below and wait until it finishes:" +msgstr "" + +#: ../../../docs/quick-start.md:176 +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 "" + +#: ../../../docs/quick-start.md:178 +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 "" + +#: ../../../docs/quick-start.md:180 +msgid "Re-run the full setup command any time" +msgstr "" + +#: ../../../docs/quick-start.md:182 +msgid "If you think something is wrong with the server configuration, feel free to re-run the setup command any time:" +msgstr "" + +#: ../../../docs/quick-start.md:188 +msgid "Log in to your user account" +msgstr "" + +#: ../../../docs/quick-start.md:190 +msgid "Finally, let's make sure that you can log in to the created account with the specified password." +msgstr "" + +#: ../../../docs/quick-start.md:192 +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 "" + +#: ../../../docs/quick-start.md:194 +msgid "**If you successfully logged in to your account, installing and configuring is complete**🎉" +msgstr "" + +#: ../../../docs/quick-start.md:196 +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 "" + +#: ../../../docs/quick-start.md:198 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/quick-start.md:200 +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 "" + +#: ../../../docs/quick-start.md:202 +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 "" + +#: ../../../docs/quick-start.md:204 +msgid "⚠️Keep the playbook and services up-to-date" +msgstr "" + +#: ../../../docs/quick-start.md:206 +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 "" + +#: ../../../docs/quick-start.md:208 +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 "" + +#: ../../../docs/quick-start.md:210 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/registering-users.po b/i18n/locales/jp/LC_MESSAGES/docs/registering-users.po new file mode 100644 index 000000000..7e203701f --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/registering-users.po @@ -0,0 +1,245 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/registering-users.md:1 +msgid "Registering users" +msgstr "" + +#: ../../../docs/registering-users.md:3 +msgid "This documentation page tells you how to create user accounts on your Matrix server." +msgstr "" + +#: ../../../docs/registering-users.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/registering-users.md:7 +msgid "[Registering users](#registering-users)" +msgstr "" + +#: ../../../docs/registering-users.md:8 +msgid "[Registering users manually](#registering-users-manually)" +msgstr "" + +#: ../../../docs/registering-users.md:9 +msgid "[Managing users via a Web UI](#managing-users-via-a-web-ui)" +msgstr "" + +#: ../../../docs/registering-users.md:10 +msgid "[Letting certain users register on your private server](#letting-certain-users-register-on-your-private-server)" +msgstr "" + +#: ../../../docs/registering-users.md:11 +msgid "[Enabling public user registration](#enabling-public-user-registration)" +msgstr "" + +#: ../../../docs/registering-users.md:12 +msgid "[Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user)" +msgstr "" + +#: ../../../docs/registering-users.md:14 +msgid "Registering users manually" +msgstr "" + +#: ../../../docs/registering-users.md:16 ../../../docs/registering-users.md:121 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/registering-users.md:17 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/registering-users.md:18 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/registering-users.md:19 +msgid "Use `admin=yes` or `admin=no` depending on whether you wish to make the user an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/registering-users.md:21 +msgid "After registering a user (using one of the methods below), **you can log in with that user** via the [Element Web](configuring-playbook-client-element-web.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/registering-users.md:23 +msgid "Registering users via the Ansible playbook" +msgstr "" + +#: ../../../docs/registering-users.md:25 +msgid "It's best to register users via the Ansible playbook, because it works regardless of homeserver implementation (Synapse, Dendrite, etc) or usage of [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../docs/registering-users.md:27 +msgid "To register a user via this Ansible playbook:" +msgstr "" + +#: ../../../docs/registering-users.md:35 +msgid "**or** by invoking `ansible-playbook` manually:" +msgstr "" + +#: ../../../docs/registering-users.md:43 +msgid "Feel free to register as many users (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your user account only (with `admin=yes`), and others should be created with `admin=no`." +msgstr "" + +#: ../../../docs/registering-users.md:45 +msgid "[!WARNING] If you're registering users against Matrix Authentication Service, do note that it [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:48 +msgid "Registering users manually for Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:50 +msgid "If you're using the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default), you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:58 +msgid "Registering users manually for Dendrite" +msgstr "" + +#: ../../../docs/registering-users.md:60 +msgid "If you're using the [Dendrite](./configuring-playbook-dendrite.md) homeserver implementation, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:68 +msgid "Registering users manually for Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:70 +msgid "If you're using the [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) and your existing homeserver (most likely [Synapse](./configuring-playbook-synapse.md)) is delegating authentication to it, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:78 +msgid "This `register-user` script actually invokes the `mas-cli manage register-user` command under the hood. If you'd like more control over the registration process, consider invoking the `mas-cli` command directly:" +msgstr "" + +#: ../../../docs/registering-users.md:84 +msgid "[!WARNING] Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:87 +msgid "Managing users via a Web UI" +msgstr "" + +#: ../../../docs/registering-users.md:89 +msgid "To manage users more easily (via a web user-interace), you can install [Synapse Admin](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/registering-users.md:91 +msgid "[!WARNING] If you're using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), note that user management via synapse-admin is not fully working yet. See the [Expectations](configuring-playbook-matrix-authentication-service.md#expectations) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:94 +msgid "Letting certain users register on your private server" +msgstr "" + +#: ../../../docs/registering-users.md:96 +msgid "If you'd rather **keep your server private** (public registration closed, as is the default), and **let certain people create accounts by themselves** (instead of creating user accounts manually like this), consider installing and making use of [matrix-registration](configuring-playbook-matrix-registration.md)." +msgstr "" + +#: ../../../docs/registering-users.md:98 +msgid "Enabling public user registration" +msgstr "" + +#: ../../../docs/registering-users.md:100 +msgid "To **open up user registration publicly** (usually **not recommended**), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/registering-users.md:102 +msgid "For Synapse:" +msgstr "" + +#: ../../../docs/registering-users.md:108 +msgid "For Dendrite:" +msgstr "" + +#: ../../../docs/registering-users.md:114 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/registering-users.md:123 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/registering-users.md:125 +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/registering-users.md:127 +msgid "If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md)." +msgstr "" + +#: ../../../docs/registering-users.md:129 +msgid "Adding/Removing Administrator privileges to an existing user" +msgstr "" + +#: ../../../docs/registering-users.md:131 +msgid "Adding/Removing Administrator privileges to an existing user in Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:133 +msgid "To change the admin privileges for a user in Synapse's local database, you need to run an SQL query like this against the `synapse` database:" +msgstr "" + +#: ../../../docs/registering-users.md:139 +msgid "where:" +msgstr "" + +#: ../../../docs/registering-users.md:141 +msgid "`ADMIN_VALUE` being either `0` (regular user) or `1` (admin)" +msgstr "" + +#: ../../../docs/registering-users.md:142 +msgid "`USER` and `example.com` pointing to a valid user on your server" +msgstr "" + +#: ../../../docs/registering-users.md:144 +msgid "If you're using the integrated Postgres server and not an [external Postgres server](configuring-playbook-external-postgres.md), you can launch a Postgres into the `synapse` database by:" +msgstr "" + +#: ../../../docs/registering-users.md:146 +msgid "running `/matrix/postgres/bin/cli` — to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html)" +msgstr "" + +#: ../../../docs/registering-users.md:147 +msgid "running `\\c synapse` — to change to the `synapse` database" +msgstr "" + +#: ../../../docs/registering-users.md:149 +msgid "You can then proceed to run the query above." +msgstr "" + +#: ../../../docs/registering-users.md:151 +msgid "**Note**: directly modifying the raw data of Synapse (or any other software) could cause the software to break. You've been warned!" +msgstr "" + +#: ../../../docs/registering-users.md:153 +msgid "Adding/Removing Administrator privileges to an existing user in Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:155 +msgid "Promoting/demoting a user in Matrix Authentication Service cannot currently (2024-10-19) be done via the [`mas-cli` Management tool](./configuring-playbook-matrix-authentication-service.md#management)." +msgstr "" + +#: ../../../docs/registering-users.md:157 +msgid "You can do it via the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html)'s `POST /api/admin/v1/users/{id}/set-admin` endpoint." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/self-building.po b/i18n/locales/jp/LC_MESSAGES/docs/self-building.po new file mode 100644 index 000000000..1da0b78a1 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/self-building.po @@ -0,0 +1,177 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-16 12:05+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/self-building.md:1 +msgid "Self-building" +msgstr "" + +#: ../../../docs/self-building.md:3 +msgid "**Caution: self-building does not have to be used on its own. See the [Alternative Architectures](alternative-architectures.md) page.**" +msgstr "" + +#: ../../../docs/self-building.md:5 +msgid "The playbook supports self-building of various components, which don't have a container image for your architecture (see the [container images we use](container-images.md)). For `amd64`, self-building is not required." +msgstr "" + +#: ../../../docs/self-building.md:7 +msgid "For other architectures (e.g. `arm32`, `arm64`), ready-made container images are used when available. If there's no ready-made image for a specific component and said component supports self-building, an image will be built on the host. Building images like this takes more time and resources (some build tools need to get installed by the playbook to assist building)." +msgstr "" + +#: ../../../docs/self-building.md:9 +msgid "To make use of self-building, you don't need to do anything. If a component has an image for the specified architecture, the playbook will use it directly. If not, it will build the image on the server itself." +msgstr "" + +#: ../../../docs/self-building.md:11 +msgid "Note that **not all components support self-building yet**." +msgstr "" + +#: ../../../docs/self-building.md:13 +msgid "Possibly outdated list of roles where self-building the Docker image is currently possible:" +msgstr "" + +#: ../../../docs/self-building.md:14 +msgid "`matrix-synapse`" +msgstr "" + +#: ../../../docs/self-building.md:15 +msgid "`matrix-synapse-admin`" +msgstr "" + +#: ../../../docs/self-building.md:16 +msgid "`matrix-client-element`" +msgstr "" + +#: ../../../docs/self-building.md:17 +msgid "`matrix-client-hydrogen`" +msgstr "" + +#: ../../../docs/self-building.md:18 +msgid "`matrix-client-cinny`" +msgstr "" + +#: ../../../docs/self-building.md:19 +msgid "`matrix-registration`" +msgstr "" + +#: ../../../docs/self-building.md:20 +msgid "`matrix-coturn`" +msgstr "" + +#: ../../../docs/self-building.md:21 +msgid "`matrix-corporal`" +msgstr "" + +#: ../../../docs/self-building.md:22 +msgid "`matrix-dimension`" +msgstr "" + +#: ../../../docs/self-building.md:23 +msgid "`matrix-ma1sd`" +msgstr "" + +#: ../../../docs/self-building.md:24 +msgid "`exim-relay`" +msgstr "" + +#: ../../../docs/self-building.md:25 +msgid "`matrix-bridge-hookshot`" +msgstr "" + +#: ../../../docs/self-building.md:26 +msgid "`matrix-bridge-appservice-irc`" +msgstr "" + +#: ../../../docs/self-building.md:27 +msgid "`matrix-bridge-appservice-slack`" +msgstr "" + +#: ../../../docs/self-building.md:28 +msgid "`matrix-bridge-appservice-webhooks`" +msgstr "" + +#: ../../../docs/self-building.md:29 +msgid "`matrix-bridge-beeper-linkedin`" +msgstr "" + +#: ../../../docs/self-building.md:30 +msgid "`matrix-bridge-mautrix-facebook`" +msgstr "" + +#: ../../../docs/self-building.md:31 +msgid "`matrix-bridge-mautrix-hangouts`" +msgstr "" + +#: ../../../docs/self-building.md:32 +msgid "`matrix-bridge-mautrix-googlechat`" +msgstr "" + +#: ../../../docs/self-building.md:33 +msgid "`matrix-bridge-mautrix-telegram`" +msgstr "" + +#: ../../../docs/self-building.md:34 +msgid "`matrix-bridge-mautrix-signal`" +msgstr "" + +#: ../../../docs/self-building.md:35 +msgid "`matrix-bridge-mautrix-gmessages`" +msgstr "" + +#: ../../../docs/self-building.md:36 +msgid "`matrix-bridge-mautrix-whatsapp`" +msgstr "" + +#: ../../../docs/self-building.md:37 +msgid "`matrix-bridge-mx-puppet-steam`" +msgstr "" + +#: ../../../docs/self-building.md:38 +msgid "`matrix-bot-mjolnir`" +msgstr "" + +#: ../../../docs/self-building.md:39 +msgid "`matrix-bot-honoroit`" +msgstr "" + +#: ../../../docs/self-building.md:40 +msgid "`matrix-bot-matrix-reminder-bot`" +msgstr "" + +#: ../../../docs/self-building.md:41 +msgid "`matrix-bot-maubot`" +msgstr "" + +#: ../../../docs/self-building.md:42 +msgid "`matrix-email2matrix`" +msgstr "" + +#: ../../../docs/self-building.md:43 +msgid "`matrix-pantalaimon`" +msgstr "" + +#: ../../../docs/self-building.md:45 +msgid "Adding self-building support to other roles is welcome. Feel free to contribute!" +msgstr "" + +#: ../../../docs/self-building.md:47 +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 "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/uninstalling.po b/i18n/locales/jp/LC_MESSAGES/docs/uninstalling.po new file mode 100644 index 000000000..2c11b3a87 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/uninstalling.po @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/uninstalling.md:1 +msgid "Uninstalling" +msgstr "" + +#: ../../../docs/uninstalling.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/uninstalling.md:4 +msgid "If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating." +msgstr "" + +#: ../../../docs/uninstalling.md:5 +msgid "If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**." +msgstr "" + +#: ../../../docs/uninstalling.md:9 +msgid "Uninstalling using a script" +msgstr "" + +#: ../../../docs/uninstalling.md:11 +msgid "Installing places a `/matrix/bin/remove-all` script on the server." +msgstr "" + +#: ../../../docs/uninstalling.md:13 +msgid "You can run it to to have it uninstall things for you automatically (see below). **Use with caution!**" +msgstr "" + +#: ../../../docs/uninstalling.md:15 +msgid "Uninstalling manually" +msgstr "" + +#: ../../../docs/uninstalling.md:17 +msgid "If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself):" +msgstr "" + +#: ../../../docs/uninstalling.md:19 +msgid "ensure all Matrix services are stopped: `ansible-playbook -i inventory/hosts setup.yml --tags=stop` (if you can't get Ansible working to run this command, you can run `systemctl stop 'matrix*'` manually on the server)" +msgstr "" + +#: ../../../docs/uninstalling.md:21 +msgid "delete the Matrix-related systemd `.service` and `.timer` files (`rm -f /etc/systemd/system/matrix*.{service,timer}`) and reload systemd (`systemctl daemon-reload`)" +msgstr "" + +#: ../../../docs/uninstalling.md:23 +msgid "delete some cached Docker images (`docker system prune -a`) or just delete them all (`docker rmi $(docker images -aq)`)" +msgstr "" + +#: ../../../docs/uninstalling.md:25 +msgid "delete the Docker networks: `docker network rm matrix matrix-coturn` (might have been deleted already if you ran the `docker system prune` command)" +msgstr "" + +#: ../../../docs/uninstalling.md:27 +msgid "uninstall Docker itself, if necessary" +msgstr "" + +#: ../../../docs/uninstalling.md:29 +msgid "delete the `/matrix` directory (`rm -rf /matrix`)" +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/docs/updating-users-passwords.po b/i18n/locales/jp/LC_MESSAGES/docs/updating-users-passwords.po new file mode 100644 index 000000000..a55d876e4 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/docs/updating-users-passwords.po @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../../docs/updating-users-passwords.md:1 +msgid "Updating users passwords" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:3 +msgid "Option 1 (if you are using the integrated Postgres database):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:6 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:7 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:9 +msgid "You can reset a user's password via the Ansible playbook:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:15 +msgid "**You can then log in with that user** via Element Web that this playbook has created for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:17 +msgid "Option 2 (if you are using an external Postgres server):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:19 +msgid "You can manually generate the password hash by using the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#finalize-the-installation):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:25 +msgid "and then connecting to the postgres server and executing:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:31 +msgid "where `` is the hash returned by the docker command above." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:33 +msgid "Option 3:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:35 +msgid "Use the Synapse User Admin API as described here: https://github.com/element-hq/synapse/blob/master/docs/admin_api/user_admin_api.rst#reset-password" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:37 +msgid "This requires an [access token](obtaining-access-tokens.md) from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:39 +msgid "If you didn't make your account a server admin when you created it, you can learn how to switch it now by reading about it in [Adding/Removing Administrator privileges to an existing user in Synapse](registering-users.md#addingremoving-administrator-privileges-to-an-existing-user-in-synapse)." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:41 +msgid "Example:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:43 +msgid "To set @alice:example.com's password to `correct_horse_battery_staple` you could use this curl command:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:49 +msgid "Make sure to replace `ACCESS_TOKEN_HERE` with the access token of the server admin account." +msgstr "" diff --git a/i18n/locales/jp/LC_MESSAGES/i18n/README.po b/i18n/locales/jp/LC_MESSAGES/i18n/README.po new file mode 100644 index 000000000..f93ab6c11 --- /dev/null +++ b/i18n/locales/jp/LC_MESSAGES/i18n/README.po @@ -0,0 +1,213 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community +# members +# This file is distributed under the same license as the +# matrix-docker-ansible-deploy package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 15:27+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: jp\n" +"Language-Team: jp \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../../README.md:8 +msgid "Internationalization" +msgstr "" + +#: ../../README.md:10 +msgid "Translated documentation files are published and maintained in [`translations/`](translations/) directory." +msgstr "" + +#: ../../README.md:12 +msgid "Currently, we support translation of:" +msgstr "" + +#: ../../README.md:14 +msgid "Markdown files found at the top level project directory" +msgstr "" + +#: ../../README.md:15 +msgid "Markdown files found in the [`docs`](../docs/) directory (this is where the bulk of the documentation is)" +msgstr "" + +#: ../../README.md:16 +msgid "this current document in the `i18n` directory" +msgstr "" + +#: ../../README.md:18 +msgid "💡 For readers' sake, we only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold (requiring that at least the project README and core installation guides are translated)." +msgstr "" + +#: ../../README.md:20 +msgid "Organization of this `i18n` directory is as follows:" +msgstr "" + +#: ../../README.md:22 +msgid "[PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory)" +msgstr "" + +#: ../../README.md:23 +msgid "[.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionaly ignore translated results (`translations/` directories) for languages taht are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold." +msgstr "" + +#: ../../README.md:24 +msgid "[justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner" +msgstr "" + +#: ../../README.md:25 +msgid "[requirements.txt](requirements.txt): a list of Python packages required to work with translations" +msgstr "" + +#: ../../README.md:26 +msgid "[translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files" +msgstr "" + +#: ../../README.md:27 +msgid "[locales/](locales/): localization files for languages" +msgstr "" + +#: ../../README.md:28 +msgid "[translations/](translations/): translated documents for published languages (see [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) and [publish translations in a new language](#publish-translations-in-a-new-language))" +msgstr "" + +#: ../../README.md:30 +msgid "Guide for translators" +msgstr "" + +#: ../../README.md:32 +msgid "This project uses [Sphinx](https://www.sphinx-doc.org/) to generate translated documents." +msgstr "" + +#: ../../README.md:34 +msgid "For details about using Sphinx for translation, refer [this official document](https://www.sphinx-doc.org/en/master/usage/advanced/intl.html) as well." +msgstr "" + +#: ../../README.md:36 +msgid "For now, translations are handled manually by editing `.po` files in the `locales/` directory. In the future, we plan on integrating with [Weblate](https://weblate.org/) to allow for translating from a web interface." +msgstr "" + +#: ../../README.md:38 +msgid "(Recommended) Using the uv package manager and just command runner" +msgstr "" + +#: ../../README.md:40 +msgid "If you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed, you can use our [justfile](justfile) recipes to easily manage translation files and build translated documents." +msgstr "" + +#: ../../README.md:42 +msgid "The recipes will use [uv](https://github.com/astral-sh/uv) to auto-create [a Python virtual environment](https://docs.astral.sh/uv/pip/environments/) in the `.venv` directory and install the required Python packages (as per [requirements.txt](requirements.txt)) to it." +msgstr "" + +#: ../../README.md:44 ../../README.md:71 +msgid "Preparation" +msgstr "" + +#: ../../README.md:46 +msgid "Make sure you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed." +msgstr "" + +#: ../../README.md:48 ../../README.md:79 +msgid "Translation" +msgstr "" + +#: ../../README.md:50 ../../README.md:81 +msgid "Recommended flow when working on a new language (replace `` with the language code, e.g. `bg`):" +msgstr "" + +#: ../../README.md:52 +msgid "Update the locale files for your language: `just sync-for-language ` (internally, this automatically runs `just extract-translation-templates` to make sure the translation templates are up-to-date)" +msgstr "" + +#: ../../README.md:54 ../../README.md:87 +msgid "Use an editor to translate the files in the `locales/` directory" +msgstr "" + +#: ../../README.md:56 +msgid "Build translated documents: `just build-for-language `" +msgstr "" + +#: ../../README.md:58 ../../README.md:91 +msgid "Preview the result in the `translations/` directory" +msgstr "" + +#: ../../README.md:60 ../../README.md:93 +msgid "Commit your changes done to the `locales/` directory" +msgstr "" + +#: ../../README.md:62 ../../README.md:95 +msgid "If you have progressed with the translation beyond a certain threshold, consider [Publishing translations in a new language](#publish-translations-in-a-new-language)" +msgstr "" + +#: ../../README.md:64 +msgid "Using any other package manager and manual scripts" +msgstr "" + +#: ../../README.md:66 +msgid "If you cannot use [uv](https://docs.astral.sh/uv/) and/or [just](https://github.com/casey/just), you can:" +msgstr "" + +#: ../../README.md:68 +msgid "manage Python packages in another way ([pip](https://pip.pypa.io/en/stable/), [Poetry](https://python-poetry.org/), etc.)" +msgstr "" + +#: ../../README.md:69 +msgid "manage translation strings and build translated documents manually by invoking scripts from the [bin](bin/) directory" +msgstr "" + +#: ../../README.md:73 +msgid "virtualenv and pip" +msgstr "" + +#: ../../README.md:75 +msgid "Create a Python virtual environment in the `.venv` directory: `virtualenv .venv`" +msgstr "" + +#: ../../README.md:76 +msgid "Activate the virtual environment: `source .venv/bin/activate`" +msgstr "" + +#: ../../README.md:77 +msgid "Install the required Python packages using [pip](https://pip.pypa.io/en/stable/): `pip install -r requirements.txt`" +msgstr "" + +#: ../../README.md:83 +msgid "Ensure the English translation templates ([translation-templates/](translation-templates/)) are extracted: `./bin/extract-translation-templates.sh`" +msgstr "" + +#: ../../README.md:85 +msgid "Update the locale files for your language: `./bin/sync-translation-templates-to-locales.sh `" +msgstr "" + +#: ../../README.md:89 +msgid "Build translated documents: `./bin/build-translated-result.sh `" +msgstr "" + +#: ../../README.md:97 +msgid "Publish translations in a new language" +msgstr "" + +#: ../../README.md:99 +msgid "To publish prebuilt documents translated in a new language to the `translations/` directory:" +msgstr "" + +#: ../../README.md:101 +msgid "add its language code to the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file" +msgstr "" + +#: ../../README.md:102 +msgid "whitelist its `translations/` directory by adding a `!translations/` rule to the [.gitignore](.gitignore) file" +msgstr "" + +#: ../../README.md:104 +msgid "💡 Leave a trailing new line at the end of the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file." +msgstr "" diff --git a/i18n/requirements.txt b/i18n/requirements.txt new file mode 100644 index 000000000..35addfe1e --- /dev/null +++ b/i18n/requirements.txt @@ -0,0 +1,33 @@ +alabaster==1.0.0 +babel==2.17.0 +certifi==2025.1.31 +charset-normalizer==3.4.1 +click==8.1.8 +docutils==0.21.2 +idna==3.10 +imagesize==1.4.1 +Jinja2==3.1.6 +linkify-it-py==2.0.3 +markdown-it-py==3.0.0 +MarkupSafe==3.0.2 +mdit-py-plugins==0.4.2 +mdurl==0.1.2 +myst-parser==4.0.1 +packaging==24.2 +Pygments==2.19.1 +PyYAML==6.0.2 +requests==2.32.3 +setuptools==76.0.0 +snowballstemmer==2.2.0 +Sphinx==8.2.3 +sphinx-intl==2.3.1 +sphinx-markdown-builder==0.6.8 +sphinxcontrib-applehelp==2.0.0 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +tabulate==0.9.0 +uc-micro-py==1.0.3 +urllib3==2.3.0 diff --git a/i18n/translation-templates/CHANGELOG.pot b/i18n/translation-templates/CHANGELOG.pot new file mode 100644 index 000000000..471062749 --- /dev/null +++ b/i18n/translation-templates/CHANGELOG.pot @@ -0,0 +1,7079 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../CHANGELOG.md:1 +msgid "2025-01-27" +msgstr "" + +#: ../../../CHANGELOG.md:3 +msgid "Redis and KeyDB are no longer part of the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:5 +msgid "**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead." +msgstr "" + +#: ../../../CHANGELOG.md:7 +msgid "The playbook has gone through several iterations of memorystore implementations:" +msgstr "" + +#: ../../../CHANGELOG.md:9 +msgid "It initially used Redis, auto-installing it when needed by features/services" +msgstr "" + +#: ../../../CHANGELOG.md:10 +msgid "[Switched to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis) as the default, while keeping Redis support for those who wished to remain on Redis" +msgstr "" + +#: ../../../CHANGELOG.md:11 +msgid "[Switched to Valkey](#backward-compatibility-break-the-playbook-now-defaults-to-valkey-instead-of-keydb) due to [KeyDB issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), while keeping Redis and KeyDB support, for those who wished to remain on them" +msgstr "" + +#: ../../../CHANGELOG.md:13 +msgid "To reduce configuration complexity and maintenance overhead, we are now:" +msgstr "" + +#: ../../../CHANGELOG.md:15 +msgid "removing Redis and KeyDB support entirely" +msgstr "" + +#: ../../../CHANGELOG.md:16 +msgid "using Valkey as the sole Redis-compatible memorystore implementation" +msgstr "" + +#: ../../../CHANGELOG.md:18 +msgid "To update your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:20 +msgid "**Most users** don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:21 +msgid "**Users that were explicitly sticking to Redis/KeyDB** need to update their `vars.yml` to use `valkey_*` variables instead" +msgstr "" + +#: ../../../CHANGELOG.md:24 +msgid "2025-01-19" +msgstr "" + +#: ../../../CHANGELOG.md:26 +msgid "conduwuit support" +msgstr "" + +#: ../../../CHANGELOG.md:28 +msgid "Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [conduwuit](https://conduwuit.puppyirl.gay/) homeserver support for new installations." +msgstr "" + +#: ../../../CHANGELOG.md:30 +msgid "conduwuit is a fork of [Conduit](./docs/configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../CHANGELOG.md:32 +msgid "Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:34 +msgid "To try out conduwuit, we recommend that you **use a new server**. Refer to our [Configuring conduwuit](./docs/configuring-playbook-conduwuit.md) guide for details." +msgstr "" + +#: ../../../CHANGELOG.md:36 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to conduwuit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:39 +msgid "2025-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:41 +msgid "(Backward Compatibility Break) Synapse v1.122.0 requires Postgres v13" +msgstr "" + +#: ../../../CHANGELOG.md:43 +msgid "The Synapse homeserver [requires Postgres v13 or newer](https://github.com/element-hq/synapse/issues/18034)." +msgstr "" + +#: ../../../CHANGELOG.md:45 +msgid "If you've been maintaining your setup for a while and you haven't been doing [Postgres upgrades](docs/maintenance-postgres.md#upgrading-postgresql), you may be on an old version of Postgres. The easiest way to check is to see the contents of the `/matrix/postgres/data/PG_VERSION` file." +msgstr "" + +#: ../../../CHANGELOG.md:47 +msgid "If you're on a Postgres version older than v13, you need to [upgrade your Postgres setup](docs/maintenance-postgres.md#upgrading-postgresql) or Synapse will produce an error on startup." +msgstr "" + +#: ../../../CHANGELOG.md:49 +msgid "If you're using an external Postgres server (not installed by this playbook), you'll need to figure out how to upgrade it yourself." +msgstr "" + +#: ../../../CHANGELOG.md:51 +msgid "If you're not ready to upgrade your Postgres setup yet, you can temporarily remain on an old Synapse version by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:59 +msgid "2024-11-26" +msgstr "" + +#: ../../../CHANGELOG.md:61 +msgid "(Backward Compatibility Break) Synapse now defaults to enabling authenticated media" +msgstr "" + +#: ../../../CHANGELOG.md:63 +msgid "**TLDR**: with this update, your Synapse homeserver will start requiring authentication for newly-uploaded media files. While the majority of the ecosystem (clients, bots, etc.) should support this, certain software may lack support for it (and you may wish to turn it off, if it's causing issues)." +msgstr "" + +#: ../../../CHANGELOG.md:65 +msgid "The default configuration for the Synapse homeserver now [enforces Authenticated media by default](https://element-hq.github.io/synapse/v1.120/upgrade.html#authenticated-media-is-now-enforced-by-default)." +msgstr "" + +#: ../../../CHANGELOG.md:67 +msgid "Servers like `matrix.org` have already [sunset unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) months ago." +msgstr "" + +#: ../../../CHANGELOG.md:69 +msgid "Now that **various clients, bots, bridges and extra services have caught up with authenticated media support**, Synapse developers seem confident that it's time to enable authenticated media by default." +msgstr "" + +#: ../../../CHANGELOG.md:71 +msgid "We're changing the playbook configuration for authenticated media to keep up with upstream defaults changing." +msgstr "" + +#: ../../../CHANGELOG.md:73 +msgid "Old and unmaintained bridges (like all mx-puppet bridges, etc.) do not support authenticated media. Other software may be similarly affected. If you experience issues with some Matrix-related software, you may wish to disable authenticated media and contact the software maintainers to let them know." +msgstr "" + +#: ../../../CHANGELOG.md:75 +msgid "You can disable authenticated media at any time by setting `matrix_synapse_enable_authenticated_media: false` in your `vars.yml` configuration file and re-running the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:78 +msgid "2024-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:80 +msgid "(Backward Compatibility Break) The playbook now defaults to Valkey, instead of KeyDB" +msgstr "" + +#: ../../../CHANGELOG.md:82 +msgid "**TLDR**: if the playbook installed KeyDB (or Redis) as a dependency for you before, it will now replace it with [Valkey](https://valkey.io/) (a drop-in alternative). We [previously switched from Redis to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis), but Valkey is a better alternative, so we're switching again." +msgstr "" + +#: ../../../CHANGELOG.md:84 +msgid "The playbook used to install Redis or KeyDB if services have a need for a Redis-compatible implementation ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.)." +msgstr "" + +#: ../../../CHANGELOG.md:86 +msgid "Earlier this year, we switched from Redis to KeyDB — see [(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis)." +msgstr "" + +#: ../../../CHANGELOG.md:88 +msgid "Because Valkey seems to be a better successor to Redis (than KeyDB) and likely doesn't suffer from [issues like this one](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), we now replace KeyDB with Valkey." +msgstr "" + +#: ../../../CHANGELOG.md:90 +msgid "Valkey (like KeyDB and Redis in the past) is an implicitly enabled dependency — you don't need custom configuration in `vars.yml` to enable it." +msgstr "" + +#: ../../../CHANGELOG.md:92 +msgid "Next time your run the playbook (via the `setup-all` tag), **KeyDB will be automatically uninstalled and replaced with Valkey**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:94 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for Valkey**, nor the Valkey role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of Valkey (or Redis/KeyDB). If Redis is necessary in an `arm32` deployment, disabling Valkey and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:96 +#: ../../../CHANGELOG.md:436 +msgid "**The playbook still supports Redis** and you can keep using Redis (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:107 +msgid "**The playbook still supports KeyDB** and you can keep using KeyDB (for now) if you'd like, by adding this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:117 +msgid "At some point in time in the future, we'll remove both KeyDB and Redis from the playbook, so we recommend that you migrate to Valkey earlier anyway." +msgstr "" + +#: ../../../CHANGELOG.md:120 +msgid "2024-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:122 +msgid "HTTP-compression support for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:124 +msgid "The playbook now **automatically enables HTTP-compression support** for major services powered by the playbook, like [Cinny](./docs/configuring-playbook-client-cinny.md), [Element Web](./docs/configuring-playbook-client-element-web.md), [Hydrogen](./docs/configuring-playbook-client-hydrogen.md), as well as for Matrix Client-Server and Federation APIs (`matrix.example.com`)." +msgstr "" + +#: ../../../CHANGELOG.md:126 +msgid "Other services installed by the playbook are currently not compression-enabled, but may become so over time. This change is rolled out on a per-service basis (as opposed to doing it globally, at the Traefik entrypoint level) to allow certain services or route endpoints which do not behave well when compressed (e.g. [issue 3749](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3749)) to be excluded from compression." +msgstr "" + +#: ../../../CHANGELOG.md:128 +msgid "A long time ago, various services were operating with `gzip`-compression enabled at the nginx level. Since the switch to Traefik (see [Goodbye, `matrix-nginx-proxy` 🪦](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/57c5271d9d6265a34a9d9cceb93365f685074f96/CHANGELOG.md#goodbye-matrix-nginx-proxy-)), all services (with the exception of Matrix APIs for Synapse worker-enabled setups which are powered by `nginx` via `synapse-reverse-proxy-companion`) have been operating without HTTP-compression support." +msgstr "" + +#: ../../../CHANGELOG.md:130 +msgid "HTTP-compression is now done via Traefik's [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware. We use the default configuration for this middleware, which enables `zstd`, `br` and `gzip` support (in this order). This middleware's configuration can be configured via variables in the Traefik role (see `traefik_config_http_middlewares_compression_middleware_options`)." +msgstr "" + +#: ../../../CHANGELOG.md:132 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you can benefit from the same by:" +msgstr "" + +#: ../../../CHANGELOG.md:134 +msgid "defining a [compress](https://doc.traefik.io/traefik/middlewares/http/compress/) middleware (via the [file](https://doc.traefik.io/traefik/providers/file/) or [Docker](https://doc.traefik.io/traefik/providers/docker/) providers)" +msgstr "" + +#: ../../../CHANGELOG.md:135 +msgid "setting `matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled` to `true`" +msgstr "" + +#: ../../../CHANGELOG.md:136 +msgid "specifying the middleware's name in `matrix_playbook_reverse_proxy_traefik_middleware_compression_name` (e.g. `matrix_playbook_reverse_proxy_traefik_middleware_compression_name: my-compression-middleware@file`)" +msgstr "" + +#: ../../../CHANGELOG.md:138 +msgid "Timeout adjustments for Traefik-based setups" +msgstr "" + +#: ../../../CHANGELOG.md:140 +msgid "The playbook now supports configuring various [transport.respondingTimeouts](https://doc.traefik.io/traefik/routing/entrypoints/#respondingtimeouts) timeout values (`readTimeout`, `writeTimeout`, `idleTimeout`) for the `web`, `web-secure` and `matrix-federation` entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:142 +msgid "If you're using your own Traefik reverse-proxy server ([Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)) instead of the playbook's integrated Traefik service, you may wish to do similar configuration changes to your setup manually." +msgstr "" + +#: ../../../CHANGELOG.md:144 +msgid "The most interesting of these is the `readTimeout` configuration value (the maximum duration for reading the entire request, including the body), which used to default to `60s`. For large and slowly progressing file uploads, `60s` would often not be enough for the transfer to finish and uploads would end up being interrupted. The playbook now raises the `readTimeout` value to 5 minutes (`300s`) to improve this use-case." +msgstr "" + +#: ../../../CHANGELOG.md:146 +msgid "The `traefik_config_entrypoint_web_transport_respondingTimeouts_*` variables (for the `web` entrypoint) cascade to affecting the timeout values for the `web-secure` and `matrix-federation` entrypoints, so you can easily adjust all timeout values using them." +msgstr "" + +#: ../../../CHANGELOG.md:148 +msgid "Example of the default timeout values used by the playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:159 +msgid "Alternatively, you may adjust the timeout values for specific entrypoints (like `web-secure` and `matrix-federation`) using dedicated variables (like `traefik_config_entrypoint_web_secure_transport_respondingTimeouts_readTimeout` and `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_transport_respondingTimeouts_readTimeout`)." +msgstr "" + +#: ../../../CHANGELOG.md:162 +msgid "2024-11-08" +msgstr "" + +#: ../../../CHANGELOG.md:164 +msgid "Support for synapse-admin auto-configuration via /.well-known/matrix/client" +msgstr "" + +#: ../../../CHANGELOG.md:166 +msgid "You can administrate your Synapse-powered homeserver using synapse-admin hosted externally (e.g. [admin.etke.cc](https://admin.etke.cc/)) and the synapse-admin instance would still auto-configure itself correctly for your server by [reading its `/.well-known/matrix/client` file](https://github.com/etkecc/synapse-admin/pull/126)." +msgstr "" + +#: ../../../CHANGELOG.md:168 +msgid "The playbook now configures the `/.well-known/matrix/client` file for this by default, injecting into it a `cc.etke.synapse-admin` section that contains the full synapse-admin configuration. This is done even if you don't enable the synapse-admin service in your configuration. The reason for always doing it is to allow users to skip the (small) overhead of self-hosting the non-core synapse-admin service, yet still be able to use it from elsewhere when needed." +msgstr "" + +#: ../../../CHANGELOG.md:170 +msgid "If you don't ever plan on using synapse-admin from other servers (besides your own due to [self-hosting synapse-admin](./docs/configuring-playbook-synapse-admin.md)), you **can disable this** `/.well-known/matrix/client` configuration via `matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:173 +msgid "2024-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:175 +msgid "(BC Break) Postmoogle's variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:177 +msgid "Due to the recategorization of [Postmoogle](./docs/configuring-playbook-bridge-postmoogle.md) from the bot to the bridge, its variables were renamed (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`). You need to adjust your `vars.yml` configuration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:179 +msgid "2024-10-19" +msgstr "" + +#: ../../../CHANGELOG.md:181 +msgid "Support for Matrix Authentication Service" +msgstr "" + +#: ../../../CHANGELOG.md:183 +msgid "The playbook now supports installing and configuring [Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../CHANGELOG.md:185 +msgid "Huge thanks to [Quentin Gliech](https://github.com/sandhose) from the [Element](https://element.io/) / [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service) team for answering our numerous questions about MAS." +msgstr "" + +#: ../../../CHANGELOG.md:187 +msgid "This is an **experimental service** and there are **still certain issues with it** (see [Expectations](./docs/configuring-playbook-matrix-authentication-service.md#expectations)). Matrix server administrators should only consider switching if they identify with one or more [reasons to use Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md#reasons-to-use-matrix-authentication-service). As MAS adoption improves and more services are adjusted to support it, we expect that using MAS will become the norm." +msgstr "" + +#: ../../../CHANGELOG.md:189 +msgid "Our [Setting up Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) documentation page has more details about this new service, what you might expect from the switch and how you can migrate your existing (Synapse) homeserver setup to MAS." +msgstr "" + +#: ../../../CHANGELOG.md:192 +msgid "2024-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:194 +msgid "(BC Break) Postgres & Traefik roles have been relocated and variable names need adjustments" +msgstr "" + +#: ../../../CHANGELOG.md:196 +msgid "Various roles have been relocated from the [devture](https://github.com/devture) organization to the [mother-of-all-self-hosting](https://github.com/mother-of-all-self-hosting) organization." +msgstr "" + +#: ../../../CHANGELOG.md:198 +msgid "Along with the relocation, the `devture_` prefix was dropped from their variable names, so you need to adjust your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:200 +msgid "You need to do the following replacements:" +msgstr "" + +#: ../../../CHANGELOG.md:202 +msgid "`devture_postgres_` -> `postgres_`" +msgstr "" + +#: ../../../CHANGELOG.md:203 +msgid "`devture_traefik_` -> `traefik_`" +msgstr "" + +#: ../../../CHANGELOG.md:205 +msgid "As always, the playbook would let you know about this and point out any variables you may have missed." +msgstr "" + +#: ../../../CHANGELOG.md:208 +msgid "2024-09-12" +msgstr "" + +#: ../../../CHANGELOG.md:210 +msgid "Support for baibot" +msgstr "" + +#: ../../../CHANGELOG.md:212 +msgid "The playbook now supports installing [baibot](./docs/configuring-playbook-bot-baibot.md) (pronounced bye-bot) — a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../CHANGELOG.md:214 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as well as many other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../CHANGELOG.md:216 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to the now-unmaintained [matrix-chatgpt-bot](./docs/configuring-playbook-bot-chatgpt.md)." +msgstr "" + +#: ../../../CHANGELOG.md:218 +msgid "To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baibot.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:220 +msgid "Switching synapse-admin to etke.cc's fork" +msgstr "" + +#: ../../../CHANGELOG.md:222 +msgid "The playbook now installs [etke.cc](https://etke.cc/)'s [fork](https://github.com/etkecc/synapse-admin) of [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) (originally developed by [Awesome-Technologies](https://github.com/Awesome-Technologies)). This fork is a drop-in replacement for the original software." +msgstr "" + +#: ../../../CHANGELOG.md:224 +msgid "The creation of the fork has been provoked by users frequently encountering issues with the original synapse-admin software, such as unintentionally deleting their one-and-only admin user account (fixed [here](https://github.com/etkecc/synapse-admin/pull/1) and also contributed upstream [here](https://github.com/Awesome-Technologies/synapse-admin/pull/608) — to no avail for now). Since its inception, [a bunch of other quality-of-life improvements](https://github.com/etkecc/synapse-admin?tab=readme-ov-file#changes) have been made to the fork." +msgstr "" + +#: ../../../CHANGELOG.md:226 +msgid "If upstream synapse-admin picks up the pace and improves, the etke.cc fork may disappear and the playbook may switch to the original software again. Until that time comes, we believe that etke.cc's fork is the better software to use right now." +msgstr "" + +#: ../../../CHANGELOG.md:228 +msgid "If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:241 +msgid "2024-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:243 +msgid "New appservice-double-puppet service for better double-puppeting" +msgstr "" + +#: ../../../CHANGELOG.md:245 +msgid "Mautrix bridges are undergoing large changes as announced in the [August 2024 releases & progress](https://mau.fi/blog/2024-08-mautrix-release/) blog post." +msgstr "" + +#: ../../../CHANGELOG.md:247 +msgid "The playbook has already upgraded to the rewritten mautrix-slack ([v0.1.0](https://github.com/mautrix/slack/releases/tag/v0.1.0)) and mautrix-signal ([v0.7.0](https://github.com/mautrix/signal/releases/tag/v0.7.0)) bridges." +msgstr "" + +#: ../../../CHANGELOG.md:249 +msgid "The newly rewritten bridges do not support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) anymore, which has prompted us to switch to the new & better [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new) for double-puppeting. The playbook automates this double-puppeting setup for you if you enable the new [Appservice Double Puppet](./docs/configuring-playbook-appservice-double-puppet.md) service." +msgstr "" + +#: ../../../CHANGELOG.md:251 +msgid "All non-deprecated mautrix bridges in the playbook have been reworked to support double-puppeting via an Appservice. Most bridges still support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md), so the playbook supports it too. If only Shared Secret Auth is enabled, double-puppeting will be configured using that method (for the bridges that support it). That said, **Shared Secret Auth double-puppeting is being phased out and we recommend replacing it with the new Appservice method**." +msgstr "" + +#: ../../../CHANGELOG.md:253 +msgid "We recommend **enabling double-puppeting via the new Appservice method** by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:259 +msgid "You can still **keep** [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) enabled. Non-mautrix bridges and other services (e.g. [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) may still require it." +msgstr "" + +#: ../../../CHANGELOG.md:261 +msgid "When both double-puppeting methods are enabled, the playbook will automatically choose the new and better Appservice method for bridges that support it." +msgstr "" + +#: ../../../CHANGELOG.md:264 +msgid "2024-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:266 +msgid "matrix-media-repo now configured for Authenticated Media" +msgstr "" + +#: ../../../CHANGELOG.md:268 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), our matrix-media-repo implementation now automatically [sets up signing keys](https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/) for Authenticated Media (as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916))." +msgstr "" + +#: ../../../CHANGELOG.md:270 +msgid "If you had never heard of Authenticated Media before, the [Sunsetting unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) article on [matrix.org](https://matrix.org/) is a good introduction." +msgstr "" + +#: ../../../CHANGELOG.md:272 +msgid "This feature is enabled for matrix-media-repo installations by default and will append an additional (matrix-media-repo-generated signing key) to your homeserver's (Synapse or Dendrite) signing key. See the [Signing keys](./docs/configuring-playbook-matrix-media-repo.md#signing-keys) and [Key backup and revoking](./docs/configuring-playbook-matrix-media-repo.md#key-backup-and-revoking) sections of the matrix-media-repo documentation for more details." +msgstr "" + +#: ../../../CHANGELOG.md:274 +msgid "If you'd like to avoid this new feature, you can disable it by setting `matrix_media_repo_generate_signing_key: false` in your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:277 +msgid "2024-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:279 +msgid "(Backward Compatibility Break) matrix-corporal has been upgraded to v3" +msgstr "" + +#: ../../../CHANGELOG.md:281 +msgid "The playbook now installs [matrix-corporal](https://github.com/devture/matrix-corporal) v3.0.0, which brings support for **power-level management** (thanks to [this PR](https://github.com/devture/matrix-corporal/pull/32))." +msgstr "" + +#: ../../../CHANGELOG.md:283 +msgid "This upgrade necessitates configuration policy changes as described in [matrix-corporal's changelog entry](https://github.com/devture/matrix-corporal/blob/5287cb81c82cd3b951c2a099b4697c3e0b384559/CHANGELOG.md#version-300-2024-08-08)." +msgstr "" + +#: ../../../CHANGELOG.md:285 +msgid "If you'd like to remain on the old (v2) version of matrix-corporal, you can do so by adding the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:291 +msgid "2024-07-25" +msgstr "" + +#: ../../../CHANGELOG.md:293 +msgid "synapse-usage-exporter support" +msgstr "" + +#: ../../../CHANGELOG.md:295 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) — a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape." +msgstr "" + +#: ../../../CHANGELOG.md:297 +msgid "To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](docs/configuring-playbook-synapse-usage-exporter.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:300 +msgid "2024-07-06" +msgstr "" + +#: ../../../CHANGELOG.md:302 +msgid "matrix-alertmanager-receiver support" +msgstr "" + +#: ../../../CHANGELOG.md:304 +msgid "For those wishing to more easily integrate [Prometheus](https://prometheus.io/)' alerting service ([Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)) with Matrix, the playbook can now set up [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)." +msgstr "" + +#: ../../../CHANGELOG.md:306 +msgid "See [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](./docs/configuring-playbook-alertmanager-receiver.md) for more details." +msgstr "" + +#: ../../../CHANGELOG.md:308 +msgid "Traefik v3 and HTTP/3 are here now" +msgstr "" + +#: ../../../CHANGELOG.md:310 +msgid "**TLDR**: Traefik was migrated from v2 to v3. Minor changes were done to the playbook. Mostly everything else worked out of the box. Most people will not have to do any tweaks to their configuration. In addition, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is now auto-enabled for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. If you have a firewall in front of your server and you wish to benefit from `HTTP3`, you will need to open the `443` and `8448` UDP ports in it." +msgstr "" + +#: ../../../CHANGELOG.md:312 +msgid "Traefik v3" +msgstr "" + +#: ../../../CHANGELOG.md:314 +msgid "The reverse-proxy that the playbook uses by default (Traefik) has recently been upgraded to v3 (see [this blog post](https://traefik.io/blog/announcing-traefik-proxy-v3-rc/) to learn about its new features). Version 3 includes some small breaking configuration changes requiring a [migration](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:316 +msgid "We have **updated the playbook to Traefik v3** (make sure to run `just roles` / `make roles` to get it)." +msgstr "" + +#: ../../../CHANGELOG.md:318 +msgid "There were **only minor playbook changes required** to adapt to Traefik v3, and only to the Ansible role for [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) where we changed a few [`PathPrefix` instances to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp), because these instances were using a regular expression instead of a fixed path. For fixed-path values, `PathPrefix` is still the preferred matcher function to use." +msgstr "" + +#: ../../../CHANGELOG.md:320 +msgid "**Most people using the playbook should not have to do any changes**." +msgstr "" + +#: ../../../CHANGELOG.md:322 +msgid "If you're using the playbook's Traefik instance to reverse-proxy to some other services of your own (not managed by the playbook), you may wish to review their Traefik labels and make sure they're in line with the [Traefik v2 to v3 migration guide](https://doc.traefik.io/traefik/migration/v2-to-v3/)." +msgstr "" + +#: ../../../CHANGELOG.md:324 +msgid "If you've tweaked any of this playbook's `_path_prefix` variables and made them use a regular expression, you will now need to make additional adjustments. The playbook makes extensive use of `PathPrefix()` matchers in Traefik rules and `PathPrefix` does not support regular expressions anymore. To work around it, you may now need to override a whole `_traefik_rule` variable and switch it from [`PathPrefix` to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp)." +msgstr "" + +#: ../../../CHANGELOG.md:326 +msgid "If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` — a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand." +msgstr "" + +#: ../../../CHANGELOG.md:328 +msgid "HTTP/3 is enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:330 +msgid "In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now. Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints." +msgstr "" + +#: ../../../CHANGELOG.md:332 +msgid "HTTP3 uses the UDP protocol and **the playbook (together with Docker) will make sure that the appropriate ports** (`443` over UDP & `8448` over UDP) **are exposed and whitelisted in your server's firewall**. However, **if you have another firewall in front of your server** (as is the case for many cloud providers), **you will need to manually open these UDP ports**." +msgstr "" + +#: ../../../CHANGELOG.md:334 +msgid "If you do not open the UDP ports correctly or there is some other issue, clients (browsers, mostly) will fall-back to [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2) or even [HTTP/1.1](https://en.wikipedia.org/wiki/HTTP)." +msgstr "" + +#: ../../../CHANGELOG.md:336 +msgid "Still, if HTTP/3 cannot function correctly in your setup, it's best to disable advertising support for it (and misleading clients into trying to use HTTP/3)." +msgstr "" + +#: ../../../CHANGELOG.md:338 +msgid "To **disable HTTP/3**, you can use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:352 +msgid "If you are using [your own webserver](./docs/configuring-playbook-own-webserver.md) (in front of Traefik), port binding on UDP port `8448` by default due to HTTP/3 is either unnecessary or [may get in the way](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402). If it does, you can disable it:" +msgstr "" + +#: ../../../CHANGELOG.md:365 +msgid "2024-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:367 +msgid "synapse-admin is now restricted to your homeserver's URL by default" +msgstr "" + +#: ../../../CHANGELOG.md:369 +msgid "A new feature introduced in synapse-admin [v0.10.0](https://github.com/Awesome-Technologies/synapse-admin/releases/tag/0.10.0) (released and supported by the playbook since a a few months ago) provides the ability to [restrict its usage to a specific homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) (or multiple homeservers)." +msgstr "" + +#: ../../../CHANGELOG.md:371 +msgid "The playbook has just started making use of this feature. **From now on, your synapse-admin instance will be restricted to the homeserver you're managing via the playbook**. When configured like this, the *Homeserver URL* field in synapse-admin's web UI changes from a text field to a dropdown having a single value (the URL of your homeserver). This makes usage simpler for most people, as they won't need to manually enter a *Homeserver URL* anymore." +msgstr "" + +#: ../../../CHANGELOG.md:373 +msgid "If you'd like **to go back to the old unrestricted behavior**, use the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:381 +msgid "2024-06-25" +msgstr "" + +#: ../../../CHANGELOG.md:383 +msgid "The URL-prefix for Hookshot generic webhooks has changed" +msgstr "" + +#: ../../../CHANGELOG.md:385 +msgid "Until now, generic Hookshot webhook URLs looked like this: `https://matrix.example.com/hookshot/webhooks/:hookId`." +msgstr "" + +#: ../../../CHANGELOG.md:387 +msgid "The `/hookshot/webhooks` common prefix gets stripped by Traefik automatically, so Hookshot only sees the part that comes after (`/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:389 +msgid "[A few years ago](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681), Hookshot started to prefer to handle webhooks at a `/webhook/:hookId` path (instead of directly at `/:hookId`)." +msgstr "" + +#: ../../../CHANGELOG.md:391 +msgid "To avoid future problems, we've [reconfigured](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/4704a60718946fd469aeee7fc3ae8127c633bb6b) our Hookshot configuration to use webhook URLs that include `/webhook` in the URL suffix (e.g. `/hookshot/webhooks/webhook/:hookId`, instead of `/hookshot/webhooks/:hookId`). This means that when we strip the common prefi (`/hookshot/webhooks`), we'll end up sending `/webhook/:hookId` to Hookshot, just like recommended." +msgstr "" + +#: ../../../CHANGELOG.md:393 +msgid "When generating new webhooks, you should start seeing the new URLs being used." +msgstr "" + +#: ../../../CHANGELOG.md:395 +msgid "**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work**, so your webhooks will not break just yet." +msgstr "" + +#: ../../../CHANGELOG.md:397 +msgid "However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side — you merely need to reconfigure the remote systems that use your webhook URLs." +msgstr "" + +#: ../../../CHANGELOG.md:400 +msgid "2024-06-22" +msgstr "" + +#: ../../../CHANGELOG.md:402 +msgid "The maubot user is now managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:404 +msgid "To make things easier and to be consistent with other roles, the [maubot](./docs/configuring-playbook-bot-maubot.md) user (`bot.maubot` by default) is [now](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3376) automatically created be the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:406 +msgid "If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined. Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable." +msgstr "" + +#: ../../../CHANGELOG.md:408 +msgid "If you've registered another username for the bot (other than the recommended default of `bot.maubot`), consider adjusting the `matrix_bot_maubot_login` variable (e.g. `matrix_bot_maubot_login: my.maubot.username`)." +msgstr "" + +#: ../../../CHANGELOG.md:411 +msgid "2024-06-03" +msgstr "" + +#: ../../../CHANGELOG.md:413 +msgid "WeChat bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:415 +msgid "Thanks to [Tobias Diez](https://github.com/tobiasdiez)'s [efforts](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3241), the playbook now supports bridging to [WeChat](https://www.wechat.com/) via the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:417 +msgid "See our [Setting up WeChat bridging](docs/configuring-playbook-bridge-wechat.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:420 +msgid "2024-03-26" +msgstr "" + +#: ../../../CHANGELOG.md:422 +msgid "(Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis" +msgstr "" + +#: ../../../CHANGELOG.md:424 +msgid "**TLDR**: if the playbook used installed Redis as a dependency for you before, it will now replace it with [KeyDB](https://docs.keydb.dev/) (a drop-in alternative) due to [Redis having changed its license](https://redis.com/blog/redis-adopts-dual-source-available-licensing/)." +msgstr "" + +#: ../../../CHANGELOG.md:426 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now uses [KeyDB](https://docs.keydb.dev/) (a drop-in alternative for Redis), instead of [Redis](https://redis.io/)." +msgstr "" + +#: ../../../CHANGELOG.md:428 +msgid "The playbook used to install Redis (and now installs KeyDB in its place) if services have a need for it ([enabling worker support for Synapse](docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.) or if you explicitly enabled the service (`redis_enabled: true` or `keydb_enabled: true`)." +msgstr "" + +#: ../../../CHANGELOG.md:430 +msgid "This change is provoked by the fact that [Redis is now \"source available\"](https://redis.com/blog/redis-adopts-dual-source-available-licensing/). According to the Limitations of [the new license](https://redis.com/legal/rsalv2-agreement/) (as best as we understand them, given that we're not lawyers), using Redis in the playbook (even in a commercial FOSS service like [etke.cc](https://etke.cc/)) does not violate the new Redis license. That said, we'd rather neither risk it, nor endorse shady licenses and products that pretend to be free-software. Another high-quality alternative to Redis seems to be [Dragonfly](https://www.dragonflydb.io/), but the [Dragonfly license](https://github.com/dragonflydb/dragonfly?tab=License-1-ov-file#readme) is no better than Redis's." +msgstr "" + +#: ../../../CHANGELOG.md:432 +msgid "Next time your run the playbook (via the `setup-all` tag), **Redis will be automatically uninstalled and replaced with KeyDB**. Some Synapse downtime may occur while the switch happens." +msgstr "" + +#: ../../../CHANGELOG.md:434 +msgid "Users on `arm32` should be aware that there's **neither a prebuilt `arm32` container image for KeyDB**, nor the KeyDB role supports self-building yet. Users on this architecture likely don't run Synapse with workers, etc., so they're likely in no need of KeyDB (or Redis). If Redis is necessary in an `arm32` deployment, disabling KeyDB and making the playbook fall back to Redis is possible (see below)." +msgstr "" + +#: ../../../CHANGELOG.md:445 +msgid "2024-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:447 +msgid "Initial work on IPv6 support" +msgstr "" + +#: ../../../CHANGELOG.md:449 +msgid "Thanks to [Tilo Spannagel](https://github.com/tilosp), the playbook can now enable IPv6 for container networks for various components (roles) via [the `devture_systemd_docker_base_ipv6_enabled` variable](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L14-L31)." +msgstr "" + +#: ../../../CHANGELOG.md:451 +msgid "It should be noted that:" +msgstr "" + +#: ../../../CHANGELOG.md:453 +msgid "Matrix roles (`roles/custom/matrix-*`) respect this variable, but external roles (those defined in `requirements.yml` and installed via `just roles`) do not respect it yet. Additional work is necessary" +msgstr "" + +#: ../../../CHANGELOG.md:454 +msgid "changing the variable subsequently may not change existing container networks. Refer to [these instructions](https://github.com/devture/com.devture.ansible.role.systemd_docker_base/blob/c11a526bb8e318b42eb52055056377bb31154f13/defaults/main.yml#L26-L30)" +msgstr "" + +#: ../../../CHANGELOG.md:455 +msgid "this is all very new and untested" +msgstr "" + +#: ../../../CHANGELOG.md:457 +msgid "Pantalaimon support" +msgstr "" + +#: ../../../CHANGELOG.md:459 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms — see our Draupnir docs for details." +msgstr "" + +#: ../../../CHANGELOG.md:461 +msgid "See our [Setting up Pantalaimon](docs/configuring-playbook-pantalaimon.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:464 +msgid "2024-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:466 +msgid "Support for Draupnir-for-all" +msgstr "" + +#: ../../../CHANGELOG.md:468 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) (aka multi-instance Draupnir running in appservice mode)." +msgstr "" + +#: ../../../CHANGELOG.md:470 +msgid "This is an alternative to [running Draupnir in bot mode](./docs/configuring-playbook-bot-draupnir.md), which is still supported by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:472 +msgid "The documentation page for [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) contains more information on how to install it." +msgstr "" + +#: ../../../CHANGELOG.md:475 +msgid "2024-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:477 +msgid "Support for bridging to Facebook/Messenger via the new mautrix-meta bridge" +msgstr "" + +#: ../../../CHANGELOG.md:479 +msgid "The [mautrix-facebook](./docs/configuring-playbook-bridge-mautrix-facebook.md) and [mautrix-instagram](./docs/configuring-playbook-bridge-mautrix-instagram.md) bridges are being [superseded by a new bridge](https://github.com/mautrix/facebook/issues/332) — the [mautrix-meta](https://github.com/mautrix/meta) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:481 +msgid "The playbook now supports the new mautrix-meta bridge — a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time." +msgstr "" + +#: ../../../CHANGELOG.md:483 +msgid "If you're using mautrix-facebook or mautrix-instagram right now, **you can still continue using the old bridges, but may wish to change to the new bridge implementations**. See:" +msgstr "" + +#: ../../../CHANGELOG.md:485 +msgid "[Setting up Instagram bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../CHANGELOG.md:487 +msgid "[Setting up Messenger bridging via Mautrix Meta](docs/configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../CHANGELOG.md:489 +msgid "The documentation pages contain more information on how to migrate." +msgstr "" + +#: ../../../CHANGELOG.md:492 +msgid "2024-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:494 +msgid "Much larger Synapse caches and cache auto-tuning enabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:496 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). This work and the default values used by the playbook are inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/deployment/synapse.html)." +msgstr "" + +#: ../../../CHANGELOG.md:498 +msgid "The playbook has always used a very conservative cache factor (`matrix_synapse_caches_global_factor`) value of `0.5`, which may be OK for small and underactive deployments, but is not ideal for larger servers. Paradoxically, a small global cache factor value [does not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../CHANGELOG.md:500 +msgid "The playbook now uses **a 20x larger cache factor** (currently `10`), adjusts a few other cache-related variables, and **enables cache auto-tuning** via the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:502 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:503 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../CHANGELOG.md:504 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../CHANGELOG.md:506 +msgid "These values should be good defaults for most servers, but may change over time as we experiment further." +msgstr "" + +#: ../../../CHANGELOG.md:508 +msgid "Refer to our new [Tuning caches and cache autotuning](docs/maintenance-synapse.md#tuning-caches-and-cache-autotuning) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:511 +msgid "2024-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:513 +msgid "(Backward-compatibility break) Minor changes necessary for some people serving a static website at the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:515 +msgid "This only affects people who are [Serving a static website at the base domain](./docs/configuring-playbook-base-domain-serving.md#serving-a-static-website-at-the-base-domain), but not managing its `index.html` through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:517 +msgid "That is, for people who have `matrix_static_files_file_index_html_enabled: false` in their `vars.yml` configuration, the playbook has a new default behavior. Since the playbook is not managing the `index.html` file, it will default to a more sensible way of handling the base domain — redirecting `https://example.com/` to `https://matrix.example.com/`, instead of serving a 404 page." +msgstr "" + +#: ../../../CHANGELOG.md:519 +msgid "If you are managing your static website by yourself (by dropping files into `/matrix/static-files/public` somehow), then you probably don't wish for such redirection to happen. You can disable it by adding `matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:522 +msgid "2024-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:524 +msgid "Support for more efficient (specialized) Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:526 +msgid "Thanks to [Charles Wright](https://github.com/cvwright) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook has [received support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3100) for load-balancing the Synapse workload via [specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) which are supposed to work better than our old [generic workers](./docs/configuring-playbook-synapse.md#generic-workers) implementation." +msgstr "" + +#: ../../../CHANGELOG.md:528 +msgid "For now, playbook defaults remain unchanged and the `one-of-each` [workers preset](./docs/configuring-playbook-synapse.md#worker-presets) continues being the default. However, the default may change in the future. If you'd like to remain on this preset even if/when the defaults change, consider explicitly adding `matrix_synapse_workers_preset: one-of-each` to your `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:530 +msgid "Our specialized workers setup is based on recommendations found in [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). What's special about our new setup is that we try to parse information out of the request (who the user is; which room is being operated on) and try to forward similar requests to the same worker. As an example, this means that once a worker caches some room information, subsequent requests for the same room will be routed to the same worker (which supposedly still has the room's state cached)." +msgstr "" + +#: ../../../CHANGELOG.md:532 +msgid "To get started, refer to our [Specialized workers](./docs/configuring-playbook-synapse.md#specialized-workers) documentation section." +msgstr "" + +#: ../../../CHANGELOG.md:535 +msgid "2024-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:537 +msgid "Switching to Element's AGPLv3-licensed Synapse release" +msgstr "" + +#: ../../../CHANGELOG.md:539 +msgid "A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under:" +msgstr "" + +#: ../../../CHANGELOG.md:541 +msgid "the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license — the same license that this Ansible playbook has always used" +msgstr "" + +#: ../../../CHANGELOG.md:542 +msgid "a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license" +msgstr "" + +#: ../../../CHANGELOG.md:544 +msgid "You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation." +msgstr "" + +#: ../../../CHANGELOG.md:546 +msgid "The change has [already happened](https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/) and the first Synapse release under the new license is here: [v1.99.0](https://github.com/element-hq/synapse/releases/tag/v1.99.0)." +msgstr "" + +#: ../../../CHANGELOG.md:548 +msgid "There is no up-to-date alternative Synapse fork right now and this free-software (AGPLv3-licensed) playbook is definitely not against free-software licenses, so we are now switching to the Element-maintained Synapse release." +msgstr "" + +#: ../../../CHANGELOG.md:550 +msgid "**What does this mean to you?**" +msgstr "" + +#: ../../../CHANGELOG.md:552 +msgid "For most home users, it doesn't mean anything. Your installation will continue working as it should and you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:554 +msgid "For people building commercial products on top of Synapse, they may have to either buy a license exception from Element (from what we hear, the fee depends on the number of monthly-active users on your instance) or they may need to release all related code as free-software (which is what we've been doing at [etke.cc](https://etke.cc/) ([here](https://gitlab.com/etke.cc)) all along)." +msgstr "" + +#: ../../../CHANGELOG.md:556 +msgid "We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own!" +msgstr "" + +#: ../../../CHANGELOG.md:558 +msgid "If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this:" +msgstr "" + +#: ../../../CHANGELOG.md:570 +msgid "Notes:" +msgstr "" + +#: ../../../CHANGELOG.md:572 +msgid "if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` — see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version" +msgstr "" + +#: ../../../CHANGELOG.md:574 +msgid "running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution." +msgstr "" + +#: ../../../CHANGELOG.md:576 +msgid "2024-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:578 +msgid "`Draupnir` has been relicensed to AFL-3.0" +msgstr "" + +#: ../../../CHANGELOG.md:580 +msgid "As of [#204](https://github.com/the-draupnir-project/Draupnir/pull/204) Draupnir changed its licence to AFL-3.0 from the CSL licence. This change affects playbook users who could not run Draupnir under the old license restrictions. The new license is considerably less restrictive and is OSI approved. Draupnir version v1.86.0 and later are covered by this license change." +msgstr "" + +#: ../../../CHANGELOG.md:582 +msgid "2024-01-15" +msgstr "" + +#: ../../../CHANGELOG.md:584 +msgid "Goodbye, `matrix-nginx-proxy` 🪦" +msgstr "" + +#: ../../../CHANGELOG.md:586 +msgid "**TLDR**: All traces of the `matrix-nginx-proxy` reverse-proxy component are now gone. This brought about many other internal changes (and security improvements), so setups may need minor adjustments or suffer some (temporary) breakage. People who have been on the Traefik-native setup may upgrade without much issues. Those running their own Traefik instance may need minor changes. People who have been postponing the migration away from `matrix-nginx-proxy` (for more than a year already!) will now finally need to do something about it." +msgstr "" + +#: ../../../CHANGELOG.md:588 +msgid "Backstory on `matrix-nginx-proxy`" +msgstr "" + +#: ../../../CHANGELOG.md:590 +msgid "We gather here today to celebrate the loss of a once-beloved component in our stack — `matrix-nginx-proxy`. It's been our [nginx](https://nginx.org/)-based reverse-proxy of choice since the [first commit](https://github.com/spantaleev/matrix-docker-ansible-deploy/tree/87f5883f2455fb115457b65f267f17de305c053c) of this playbook, 7 years ago." +msgstr "" + +#: ../../../CHANGELOG.md:592 +msgid "For 6 years, `matrix-nginx-proxy` has been the front-most reverse-proxy in our setup (doing SSL termination, etc.). After [transitioning to Traefik last year](#traefik-is-the-default-reverse-proxy-now), `matrix-nginx-proxy` took a step back. Nevertheless, since it was so ingrained into the playbook, it still remained in use — even if only internally. Despite our warnings of its imminent death, many of you have indubitably continued to use it instead of Traefik. Its suffering continued for too long, because it served many different purposes and massive effort was required to transition them to others." +msgstr "" + +#: ../../../CHANGELOG.md:594 +msgid "To us, `matrix-nginx-proxy` was:" +msgstr "" + +#: ../../../CHANGELOG.md:596 +msgid "an [nginx](https://nginx.org/)-based reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:597 +msgid "an Ansible role organizing the work of [certbot](https://certbot.eff.org/) — retrieving free [Let's Encrypt](https://letsencrypt.org/) SSL certificates for `matrix-nginx-proxy` and for the [coturn TURN server](./docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../CHANGELOG.md:598 +msgid "a central component for reverse-proxying to the [long list of services](./docs/configuring-playbook.md) supported by the playbook. As such, it became a dependency that all these services had to inject themselves into during runtime" +msgstr "" + +#: ../../../CHANGELOG.md:599 +msgid "an intermediary through which addons (bridges, bots) communicated with the homeserver. Going through an intermediary (instead of directly talking to the homeserver) is useful when certain components (like [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) are enabled, because it lets these services \"steal routes\" from the homeserver" +msgstr "" + +#: ../../../CHANGELOG.md:600 +msgid "a webserver for serving the `/.well-known/matrix` static files (generated by the `matrix-base` role until now)" +msgstr "" + +#: ../../../CHANGELOG.md:601 +msgid "a webserver [serving your base domain](./docs/configuring-playbook-base-domain-serving.md) (and also generating the `index.html` page for it)" +msgstr "" + +#: ../../../CHANGELOG.md:602 +msgid "a central component providing global [HTTP Basic Auth](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) password-protection for all `/metrics` endpoints when metrics were exposed publicly for consumption from a remote Prometheus server" +msgstr "" + +#: ../../../CHANGELOG.md:604 +msgid "Talk about a jack of all trades! The [UNIX philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) (and Docker container philosophy) of \"do one thing and do it well\" had been severely violated for too long." +msgstr "" + +#: ../../../CHANGELOG.md:606 +msgid "On a related note, we also had a large chain of reverse-proxies in the mix. In the worst case, it was something like this: (Traefik -> `matrix-nginx-proxy:8080` -> `matrix-nginx-proxy:12080` -> `matrix-synapse-reverse-proxy-companion:8008` -> `matrix-synapse:8008`)." +msgstr "" + +#: ../../../CHANGELOG.md:608 +msgid "Due to complexity and the playbook's flexibility (trying to accommodate a mix of tens of components), many layers of indirection were necessary. We do like reverse-proxies, but… not quite enough to enjoy going through a chain of ~4 of them before reaching the target service." +msgstr "" + +#: ../../../CHANGELOG.md:610 +msgid "After **a ton of work** in the last weeks (200+ commits, which changed 467 files - 8684 insertions and 8913 deletions), **we're finally saying goodbye** to `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:612 +msgid "Going Traefik-native and cutting out all middlemen" +msgstr "" + +#: ../../../CHANGELOG.md:614 +msgid "In our new setup, you'll see the bare minimum number of reverse-proxies." +msgstr "" + +#: ../../../CHANGELOG.md:616 +msgid "In most cases, there's only Traefik and all services being registered directly with it. When [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) are enabled, `matrix-synapse-reverse-proxy-companion` remains as an extra reverse-proxy that requests go through (for load-balancing to the correct Synapse worker), but in all other cases services are exposed directly." +msgstr "" + +#: ../../../CHANGELOG.md:618 +msgid "This reduces \"network\" hops (improving performance) and also decreases the number of components (containers). Each Ansible role in our setup is now independent and doesn't need to interact with other roles during runtime." +msgstr "" + +#: ../../../CHANGELOG.md:620 +msgid "Traefik now has an extra job" +msgstr "" + +#: ../../../CHANGELOG.md:622 +msgid "Previously, **Traefik had a single purpose** — being the main reverse-proxy. It was either front-most (terminating SSL, etc.) or you were [fronting Traefik with your own other reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy). In any case — it had this central (yet decentralized) job." +msgstr "" + +#: ../../../CHANGELOG.md:624 +msgid "Now, **Traefik has one more role** — it serves as an intermediary which allows addon services (bridges, bots, etc.) to communicate with the homeserver. As mentioned above, such an intermediary service is not strictly necessary in all kinds of setups, but more complex setups (including [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) or [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) benefit from it." +msgstr "" + +#: ../../../CHANGELOG.md:626 +msgid "To perform this new role, Traefik now has a new internal [entrypoint](https://doc.traefik.io/traefik/routing/entrypoints/) called `matrix-internal-matrix-client-api`. All homeservers (Conduit, Dendrite, Synapse and even `matrix-synapse-reverse-proxy-companion`) and homeserver-related core services ([matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md), [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md) and potentially others) register their routes (using [container labels](https://docs.docker.com/config/labels-custom-metadata/)) not only on the public entrypoints (`web-secure`, `matrix-federation`), but also on this new internal entrypoint." +msgstr "" + +#: ../../../CHANGELOG.md:628 +msgid "Doing so, services can contact Traefik on this entrypoint's dedicated port (the URL defaults to `http://matrix-traefik:8008`) and reach the homeserver Client-Server API as they expect. Internally, Traefik takes care of the routing to the correct service." +msgstr "" + +#: ../../../CHANGELOG.md:630 +msgid "We've also considered keeping it simple and having services talk to the homeserver over the public internet (e.g. `https://matrix.example.com`) thus reusing all existing Traefik routing labels. In this scenario, performance was incredibly poor (e.g. 70 rps, instead of 1400 rps) due to TLS and networking overhead. The need for fast internal communication (via the new internal non-TLS-enabled Traefik entrypoint) is definitely there. In our benchmarks, Traefik even proved more efficient than nginx at doing this: ~1200 rps for Traefik compared to ~900 rps for nginx (out of ~1400 rps when talking to the Synapse homeserver directly)." +msgstr "" + +#: ../../../CHANGELOG.md:632 +msgid "Traefik serving this second purpose has a few downsides:" +msgstr "" + +#: ../../../CHANGELOG.md:634 +msgid "Traefik becomes a runtime dependency for all homeserver-dependant container services" +msgstr "" + +#: ../../../CHANGELOG.md:635 +msgid "all homeserver-dependant services now need to be connected to the `traefik` container network, even if they don't need public internet exposure" +msgstr "" + +#: ../../../CHANGELOG.md:637 +msgid "Despite these downsides (which the playbook manages automatically), we believe it's still a good compromise given the amount of complexity it eliminates and the performance benefits it yields. One alternative we've [considered](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3045#issuecomment-1867327001) was adding a new intermediary service (e.g. `matrix-homeserver-proxy` powered by nginx), but this both had much higher complexity (one more component in the mix; duplication of effort to produce nginx-compatible route definitions for it) and slightly worse performance (see above)." +msgstr "" + +#: ../../../CHANGELOG.md:639 +msgid "People running the default Traefik setup do not need to do anything to make Traefik take on this extra job. Your Traefik configuration will be updated automatically." +msgstr "" + +#: ../../../CHANGELOG.md:641 +msgid "**People runnning their own Traefik reverse-proxy need to do [minor adjustments](#people-managing-their-own-traefik-instance-need-to-do-minor-changes)**, as described in the section below." +msgstr "" + +#: ../../../CHANGELOG.md:643 +msgid "You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a \"simpler\" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended." +msgstr "" + +#: ../../../CHANGELOG.md:645 +msgid "People managing their own Traefik instance need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:647 +msgid "This section is for people [managing their own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you). Those [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) don't need to do any changes." +msgstr "" + +#: ../../../CHANGELOG.md:649 +msgid "Because [Traefik has an extra job now](#traefik-now-has-an-extra-job), you need to adapt your configuration to add the additional `matrix-internal-matrix-client-api` entrypoint and potentially configure the `matrix_playbook_reverse_proxy_container_network` variable. See the [Traefik managed by you](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you) documentation section for more details." +msgstr "" + +#: ../../../CHANGELOG.md:651 +msgid "People fronting Traefik with another reverse proxy need to do minor changes" +msgstr "" + +#: ../../../CHANGELOG.md:653 +msgid "We've already previously mentioned that you need to do some minor [configuration changes related to `traefik_additional_entrypoints_auto`](#backward-compatibility-configuration-changes-required-for-people-fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:655 +msgid "If you don't do these changes (switching from `traefik_additional_entrypoints_auto` to multiple other variables), your Traefik setup will not automatically receive the new `matrix-internal-matrix-client-api` Traefik entrypoint and Traefik would not be able to perform [its new duty of connecting addons with the homeserver](#traefik-now-has-an-extra-job)." +msgstr "" + +#: ../../../CHANGELOG.md:657 +msgid "Supported reverse proxy types are now fewer" +msgstr "" + +#: ../../../CHANGELOG.md:659 +msgid "This section is for people using a more custom reverse-proxy setup — those having `matrix_playbook_reverse_proxy_type` set to a value different than the default (`playbook-managed-traefik`)." +msgstr "" + +#: ../../../CHANGELOG.md:661 +msgid "Previously, we allowed you to set `matrix_playbook_reverse_proxy_type` to 7 different values to accommodate various reverse-proxy setups." +msgstr "" + +#: ../../../CHANGELOG.md:663 +msgid "The complexity of this is too high, so we only support 3 values right now:" +msgstr "" + +#: ../../../CHANGELOG.md:665 +msgid "(the default) `playbook-managed-traefik`, when you're [using Traefik managed by the playbook](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:666 +msgid "`other-traefik-container`, when you're [managing your own Traefik instance on the Matrix server](./docs/configuring-playbook-own-webserver.md#traefik-managed-by-you)" +msgstr "" + +#: ../../../CHANGELOG.md:667 +msgid "`none`, when you wish for [no reverse-proxy integration to be done at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all)" +msgstr "" + +#: ../../../CHANGELOG.md:669 +msgid "The `none` value is not recommended and may not work adequately, due to lack of testing and [Traefik's new responsibilities](#traefik-now-has-an-extra-job) in our setup." +msgstr "" + +#: ../../../CHANGELOG.md:671 +msgid "**Previous values that are now gone** (and the playbook would report them as such) are: `playbook-managed-nginx`, `other-nginx-non-container`, `other-on-same-host` and `other-on-another-host`." +msgstr "" + +#: ../../../CHANGELOG.md:673 +msgid "If you were using these values as a way to stay away from Traefik, you now have 2 options:" +msgstr "" + +#: ../../../CHANGELOG.md:675 +msgid "(recommended) [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)" +msgstr "" + +#: ../../../CHANGELOG.md:676 +msgid "(not recommended) [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all) and reverse-proxying to each and every service manually" +msgstr "" + +#: ../../../CHANGELOG.md:678 +msgid "Container networking changes" +msgstr "" + +#: ../../../CHANGELOG.md:680 +msgid "Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out some other long-overdue technical debt." +msgstr "" + +#: ../../../CHANGELOG.md:682 +msgid "Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network." +msgstr "" + +#: ../../../CHANGELOG.md:684 +msgid "Moving components (especially the database) into other container networks was difficult — it required changes to many other components to ensure correct connectivity." +msgstr "" + +#: ../../../CHANGELOG.md:686 +msgid "All the hard work has been done now. We've added much more isolation between services by splitting them up into separate networks (`matrix-homeserver`, `matrix-addons`, `matrix-monitoring`, `matrix-exim-relay`, etc). Components are only joined to the networks they need and should (for the most part) not be able to access unrelated things." +msgstr "" + +#: ../../../CHANGELOG.md:688 +msgid "Carrying out these container networking changes necessitated modifying many components, so **we're hoping not too many bugs were introduced in the process**." +msgstr "" + +#: ../../../CHANGELOG.md:690 +msgid "We've refrained from creating too many container networks (e.g. one for each component), to avoid exhausting Docker's default network pool and contaminating the container networks list too much." +msgstr "" + +#: ../../../CHANGELOG.md:692 +msgid "Metrics exposure changes" +msgstr "" + +#: ../../../CHANGELOG.md:694 +msgid "This section is for people who are exposing monitoring metrics publicly, to be consumed by an external Prometheus server." +msgstr "" + +#: ../../../CHANGELOG.md:696 +msgid "Previously, `matrix-nginx-proxy` was potentially password-protecting all `/metrics/*` endpoints with the same username and password (specified as plain-text in your `vars.yml` configuration file)." +msgstr "" + +#: ../../../CHANGELOG.md:698 +msgid "From now on, there are new variables for doing roughly the same — `matrix_metrics_exposure_enabled`, `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`. See the [Prometheus & Grafana](./docs/configuring-playbook-prometheus-grafana.md) docs page for details." +msgstr "" + +#: ../../../CHANGELOG.md:700 +msgid "`matrix-nginx-proxy` is not acting as a \"global guardian\" anymore. Now, each role provides its own metrics exposure and protection by registering with Traefik. Nevertheless, all roles are wired (via playbook configuration in `group_vars/matrix_servers`) to obey these new `matrix_metrics_exposure_*` variables. We've eliminated the centralization, but have kept the ease of use. Now, you can also do per-service password-protection (with different credentials), should you need to do that for some reason." +msgstr "" + +#: ../../../CHANGELOG.md:702 +msgid "The playbook will tell you about all variables that you need to migrate during runtime, so rest assured — you shouldn't be able to miss anything!" +msgstr "" + +#: ../../../CHANGELOG.md:704 +msgid "Matrix static files" +msgstr "" + +#: ../../../CHANGELOG.md:706 +msgid "As mentioned above, static files like `/.well-known/matrix/*` or your base domain's `index.html` file (when [serving the base domain via the Matrix server](./docs/configuring-playbook-base-domain-serving.md) was enabled) were generated by the `matrix-base` or `matrix-nginx-proxy` roles and put into a `/matrix/static-files` directory on the server. Then `matrix-nginx-proxy` was serving all these static files." +msgstr "" + +#: ../../../CHANGELOG.md:708 +msgid "All of this has been extracted into a new `matrix-static-files` Ansible role that's part of the playbook. The static files generated by this new role still live at roughly the same place (`/matrix/static-files/public` directory, instead of `/matrix/static-files`)." +msgstr "" + +#: ../../../CHANGELOG.md:710 +msgid "The playbook will migrate and update the `/.well-known/matrix/*` files automatically but not your own files in `nginx-proxy/data/matrix-domain/` you will need to back these up yourself otherwise they will be lost. It will also warn you about usage of old variable names, so you can adapt to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:712 +msgid "A note on performance" +msgstr "" + +#: ../../../CHANGELOG.md:714 +msgid "Some of you have been voicing their concerns (for a long time) about Traefik being too slow and nginx being better." +msgstr "" + +#: ../../../CHANGELOG.md:716 +msgid "Some online benchmarks support this by demonstrating slightly higher SSL-termination performance in favor of nginx. The upcoming Traefik v3 release is [said to](https://medium.com/beyn-technology/is-nginx-dead-is-traefik-v3-20-faster-than-traefik-v2-f28ffb7eed3e) improve Traefik's SSL performance by some 20%, but that still ends up being somewhat slower than nginx." +msgstr "" + +#: ../../../CHANGELOG.md:718 +msgid "We believe that using Traefik provides way too many benefits to worry about this minor performance impairment." +msgstr "" + +#: ../../../CHANGELOG.md:720 +msgid "The heaviest part of running a Matrix homeserver is all the slow and potentially inefficient things the homeserver (e.g. Synapse) is doing. These things affect performance much more than whatever reverse-proxy is in front. Your server will die the same way by joining the famously large **Matrix HQ** room, no matter which reverse-proxy you put in front." +msgstr "" + +#: ../../../CHANGELOG.md:722 +msgid "Even our previously mentioned benchmarks (yielding ~1300 rps) are synthetic — hitting a useless `/_matrix/client/versions` endpoint. Real-use does much more than this." +msgstr "" + +#: ../../../CHANGELOG.md:724 +msgid "If this is still not convincing enough for you and you want the best possible performance, consider [Fronting Traefik with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (thus having the slowest part — SSL termination — happen elsewhere) or [Using no reverse-proxy on the Matrix side at all](./docs/configuring-playbook-own-webserver.md#using-no-reverse-proxy-on-the-matrix-side-at-all). The playbook will not get in your way of doing that, but these options may make your life much harder. Performance comes at a cost, after all." +msgstr "" + +#: ../../../CHANGELOG.md:726 +msgid "Migration procedure" +msgstr "" + +#: ../../../CHANGELOG.md:728 +msgid "The updated playbook will automatically perform some migration tasks for you:" +msgstr "" + +#: ../../../CHANGELOG.md:730 +msgid "It will stop and remove the `matrix-nginx-proxy` systemd service and container for you. This behavior cannot be disabled. It's essential that this service gets stopped, because it remaining running (and having container labels) may confuse Traefik as to where to route HTTP requests." +msgstr "" + +#: ../../../CHANGELOG.md:732 +msgid "It will delete the `/matrix/nginx-proxy` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_uninstallation_enabled: false` to your `vars.yml` configuration file. Doing so will leave its data around." +msgstr "" + +#: ../../../CHANGELOG.md:734 +msgid "It will delete the `/matrix/ssl` directory and all files within it. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_uninstallation_enabled: false` to your `vars.yml` configuration file. If you have some important certificates there for some reason, take them out or temporarily disable removal of these files until you do." +msgstr "" + +#: ../../../CHANGELOG.md:736 +msgid "It will tell you about all variables (`matrix_nginx_proxy_*` and many others — even from other roles) that have changed during this large nginx-elimination upgrade. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:738 +msgid "It will tell you about any leftover `matrix_nginx_proxy_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_nginx_proxy_leftover_variable_validation_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:740 +msgid "It will tell you about any leftover `matrix_ssl_*` variables in your `vars.yml` file. You can disable this behavior by adding `matrix_playbook_migration_matrix_ssl_leftover_variable_checks_enabled: false` to your `vars.yml` configuration file." +msgstr "" + +#: ../../../CHANGELOG.md:742 +msgid "We don't recommend changing these variables and suppressing warnings, unless you know what you're doing." +msgstr "" + +#: ../../../CHANGELOG.md:744 +msgid "**Most people should just upgrade as per-normal**, bearing in mind that a lot has changed and some issues may arise. The playbook would guide you through renamed variables automatically." +msgstr "" + +#: ../../../CHANGELOG.md:746 +msgid "Conclusion" +msgstr "" + +#: ../../../CHANGELOG.md:748 +msgid "Thousands of lines of code were changed across hundreds of files. All addons (bridges, bots) were rewired in terms of container networking and in terms of how they reach the homeserver." +msgstr "" + +#: ../../../CHANGELOG.md:750 +msgid "I don't actively use all the ~100 components offered by the playbook (no one does), nor do I operate servers exercising all edge-cases. As such, issues may arise. Please have patience and report (or try to fix) these issues!" +msgstr "" + +#: ../../../CHANGELOG.md:753 +msgid "2024-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:755 +msgid "(Backward Compatibility) Configuration changes required for people fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:757 +msgid "If you're on the default setup (using the Traefik reverse-proxy as installed by the playbook), you don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:759 +msgid "People who are [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), as per our previous instructions are redefining `traefik_additional_entrypoints_auto` in their `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:761 +msgid "Such a full variable redefinion is intrustive, because it prevents the playbook from injecting additional entrypoints into the Traefik webserver. In the future, the playbook may have a need to do so." +msgstr "" + +#: ../../../CHANGELOG.md:763 +msgid "For this reason, we no longer recommend completely redefining `traefik_additional_entrypoints_auto`. The playbook now defines [various `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_*` variables in the `defaults/main.yml` file](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-base/defaults/main.yml) of the `matrix-base` role which can be used as a safer alternative to `traefik_additional_entrypoints_auto`." +msgstr "" + +#: ../../../CHANGELOG.md:765 +msgid "Adapt your configuration as seen below:" +msgstr "" + +#: ../../../CHANGELOG.md:798 +msgid "Also, feel free to read the [Fronting the integrated Traefik reverse-proxy webserver with another reverse-proxy](./docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section again for additional details." +msgstr "" + +#: ../../../CHANGELOG.md:801 +msgid "2024-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:803 +msgid "matrix-reminder-bot update with more secure (backward-incompatible) default settings" +msgstr "" + +#: ../../../CHANGELOG.md:805 +msgid "**TLDR**: your updated (to [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0)) [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) is now more secure. By default, like other bridges/bots managed by the playbook, it will only provide its services to users of your own server (not to anyone, even across the Matrix Federation). If that's fine, there's nothing you need to do." +msgstr "" + +#: ../../../CHANGELOG.md:807 +msgid "Maintenance of [matrix-reminder-bot](./docs/configuring-playbook-bot-matrix-reminder-bot.md) has been picked up by [Kim Brose](https://github.com/HarHarLinks) and [@svierne](https://github.com/svierne)." +msgstr "" + +#: ../../../CHANGELOG.md:809 +msgid "Thanks to them, a new [v0.3.0](https://github.com/anoadragon453/matrix-reminder-bot/releases/tag/v0.3.0) release is out. The new version is now available for the ARM64 architecture, so playbook users on this architecture will no longer need to wait for [self-building](./docs/self-building.md) to happen." +msgstr "" + +#: ../../../CHANGELOG.md:811 +msgid "The new version also comes with new `allowlist` and `blocklist` settings, which make it possible to restrict who can use the bot. Previously anyone, even across the Matrix Federation could talk to it and schedule reminders." +msgstr "" + +#: ../../../CHANGELOG.md:813 +msgid "The playbook defaults all bridges and bots (where possible) to only be exposed to users of the current homeserver, not users across federation. Thanks to the new version of this bot making such a restriction possible, we're now making use of it. The playbook (via its `group_vars/matrix_servers` file) automatically enables the `allowlist` (`matrix_bot_matrix_reminder_bot_allowlist_enabled: true`) and configures it in such a way (`matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) so as to restrict the bot to your homeserver's users." +msgstr "" + +#: ../../../CHANGELOG.md:815 +msgid "If you need **to undo or tweak these security improvements**, you can change your `vars.yml` file to:" +msgstr "" + +#: ../../../CHANGELOG.md:817 +msgid "disable the allowlist (`matrix_bot_matrix_reminder_bot_allowlist_enabled: false`), making the bot allow usage by anyone, anywhere" +msgstr "" + +#: ../../../CHANGELOG.md:819 +msgid "inject additional allowed servers or users by adding **additional** (on top of the default allowlist in `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`) custom regexes in the `matrix_bot_matrix_reminder_bot_allowlist_regexes_custom` list variable (see the [syntax reference](https://github.com/anoadragon453/matrix-reminder-bot/blob/1e910c0aa3469d280d93ee7e6c6d577227a3460c/sample.config.yaml#L43-L49))" +msgstr "" + +#: ../../../CHANGELOG.md:821 +msgid "override the default allowlist (in the `group_vars/matrix_servers` file) by redefining `matrix_bot_matrix_reminder_bot_allowlist_regexes_auto`" +msgstr "" + +#: ../../../CHANGELOG.md:824 +msgid "2024-01-05" +msgstr "" + +#: ../../../CHANGELOG.md:826 +msgid "matrix-mailer has been replaced by the exim-relay external role" +msgstr "" + +#: ../../../CHANGELOG.md:828 +#: ../../../CHANGELOG.md:1468 +msgid "We're continuing our effort to make [the playbook use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things), so as to avoid doing everything ourselves and to facilitate code re-use." +msgstr "" + +#: ../../../CHANGELOG.md:830 +msgid "The `matrix-mailer` role has been moved to its own repository ([ansible-role-exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay)) that this playbook now includes." +msgstr "" + +#: ../../../CHANGELOG.md:832 +msgid "To migrate:" +msgstr "" + +#: ../../../CHANGELOG.md:834 +msgid "pull the playbook changes, as usual" +msgstr "" + +#: ../../../CHANGELOG.md:835 +msgid "update your roles (run `just roles` or `make roles`)" +msgstr "" + +#: ../../../CHANGELOG.md:836 +msgid "update your `vars.yml`, renaming `matrix_mailer`-prefixed variables to `exim_relay`-prefixed ones (e.g. `matrix_mailer_sender_address` -> `exim_relay_sender_address`). If you find none, it means you're using the default configuration and your migraiton job is even simpler." +msgstr "" + +#: ../../../CHANGELOG.md:837 +msgid "re-run the playbook (`install-all` or `setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:839 +msgid "The playbook will take care of stopping the old `matrix-mailer` systemd service, relocating its directory and restarting it under the new name (`matrix-exim-relay.service`)." +msgstr "" + +#: ../../../CHANGELOG.md:842 +msgid "2024-01-02" +msgstr "" + +#: ../../../CHANGELOG.md:844 +msgid "mautrix-signal now powered by the new Go-based bridge" +msgstr "" + +#: ../../../CHANGELOG.md:846 +msgid "The old Python-based [mautrix-signal](https://github.com/mautrix/signal) bridge is no longer maintained upstream. It's also known to have issues linking new devices." +msgstr "" + +#: ../../../CHANGELOG.md:848 +msgid "It seems like the path forward is to switch to the new mautrix-signal bridge written in Golang, which we did thanks to [PR #3031](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3041) by [Pierre 'McFly' Marty](https://github.com/pm-McFly)." +msgstr "" + +#: ../../../CHANGELOG.md:850 +msgid "The playbook should **automatically migrate your mautrix-signal installation to the new bridge code**. You will **need to relink all your devices** to continue your bridged conversations." +msgstr "" + +#: ../../../CHANGELOG.md:853 +msgid "2023-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:855 +msgid "Enabling `allow_public_rooms_over_federation` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:857 +msgid "**TDLR**: if your Matrix server is federating (which it mostly likely is, unless you've [disabled federation](docs/configuring-playbook-federation.md#disabling-federation)), your public rooms will not only be joinable across federation (as they've always been), but from now on will be discoverable (made available as a list across federation). We're changing this by flipping the value for Synapse's `allow_public_rooms_over_federation` setting to `true`, going against the upstream default. Servers that disable federation are not affected. Servers that have public rooms which are not published to the room directory are also not affected." +msgstr "" + +#: ../../../CHANGELOG.md:859 +msgid "We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) — the default value was making Synapse more wasteful of resources by default." +msgstr "" + +#: ../../../CHANGELOG.md:861 +msgid "Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`. This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms)." +msgstr "" + +#: ../../../CHANGELOG.md:863 +msgid "The upstream Synapse default is `false` (disabled), so that public rooms are not exposed for other servers to discover (learn about their existence). Nevertheless, even if these rooms are not exposed (listed) for discovery, they are **still joinable** by anyone who knows their address or is invited to the room by an existing member." +msgstr "" + +#: ../../../CHANGELOG.md:865 +msgid "**We go against the upstream default** in an effort to make Matrix federation more useful — a public room should be globally public — not only joinable, but also discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:867 +msgid "The **historical reasoning** behind this change is as follows:" +msgstr "" + +#: ../../../CHANGELOG.md:869 +msgid "`allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network — rooms should be joinable and discoverable across federation." +msgstr "" + +#: ../../../CHANGELOG.md:871 +msgid "In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/element-hq/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense." +msgstr "" + +#: ../../../CHANGELOG.md:873 +msgid "[etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://github.com/etkecc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful." +msgstr "" + +#: ../../../CHANGELOG.md:875 +msgid "Here are **actions you may wish to take** as a result of this change:" +msgstr "" + +#: ../../../CHANGELOG.md:877 +msgid "(recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery." +msgstr "" + +#: ../../../CHANGELOG.md:879 +msgid "(switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for \"mostly private\" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces — you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting — controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them." +msgstr "" + +#: ../../../CHANGELOG.md:881 +msgid "(keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures." +msgstr "" + +#: ../../../CHANGELOG.md:884 +msgid "2023-10-18" +msgstr "" + +#: ../../../CHANGELOG.md:886 +msgid "Postgres parameters are automatically tuned now" +msgstr "" + +#: ../../../CHANGELOG.md:888 +msgid "The playbook has provided some hints about [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) for quite a while now." +msgstr "" + +#: ../../../CHANGELOG.md:890 +msgid "From now on, the [Postgres Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) automatically tunes your Postgres configuration with the same [calculation logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) that powers https://pgtune.leopard.in.ua/." +msgstr "" + +#: ../../../CHANGELOG.md:892 +msgid "Our [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) documentation page has details about how you can turn auto-tuning off or adjust the automatically-determined Postgres configuration parameters manually." +msgstr "" + +#: ../../../CHANGELOG.md:894 +msgid "People who [enable load-balancing with Synapse workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) no longer need to increase the maximum number of Postgres connections manually (previously done via `postgres_process_extra_arguments`). There's a new variable (`postgres_max_connections`) for controlling this number and the playbook automatically raises its value from `200` to `500` for setups which enable workers." +msgstr "" + +#: ../../../CHANGELOG.md:897 +msgid "2023-08-31" +msgstr "" + +#: ../../../CHANGELOG.md:899 +msgid "SchildiChat Web support" +msgstr "" + +#: ../../../CHANGELOG.md:901 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client." +msgstr "" + +#: ../../../CHANGELOG.md:903 +msgid "See our [Configuring SchildiChat Web](docs/configuring-playbook-client-schildichat-web.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:906 +msgid "2023-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:908 +msgid "mautrix-wsproxy support" +msgstr "" + +#: ../../../CHANGELOG.md:910 +msgid "Thanks to [Johan Swetzén](https://github.com/jswetzen)'s efforts (who finished what was started by [James Reilly](https://github.com/hanthor) and [Shreyas Ajjarapu](https://github.com/shreyasajj)), the playbook now supports bridging to Android SMS and Apple iMessage via the [mautrix-wsproxy](https://github.com/mautrix/wsproxy) service (in combination with a [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone)." +msgstr "" + +#: ../../../CHANGELOG.md:912 +msgid "See our [Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](docs/configuring-playbook-bridge-mautrix-wsproxy.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:915 +msgid "2023-07-24" +msgstr "" + +#: ../../../CHANGELOG.md:917 +msgid "matrix-registration-bot usage changed" +msgstr "" + +#: ../../../CHANGELOG.md:919 +msgid "[matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) got some updates and now supports password-only-based login. Therefore the bot now doesn't need any manual configuration except setting a password in your `vars.yml`. The bot will be registered as admin and access tokens will be obtained automatically by the bot." +msgstr "" + +#: ../../../CHANGELOG.md:921 +msgid "**For existing users** You need to set `matrix_bot_matrix_registration_bot_bot_password` if you previously only used `matrix_bot_matrix_registration_bot_bot_access_token`. Please also remove the following deprecated settings" +msgstr "" + +#: ../../../CHANGELOG.md:923 +msgid "`matrix_bot_matrix_registration_bot_bot_access_token`" +msgstr "" + +#: ../../../CHANGELOG.md:924 +msgid "`matrix_bot_matrix_registration_bot_api_token`" +msgstr "" + +#: ../../../CHANGELOG.md:927 +msgid "2023-07-21" +msgstr "" + +#: ../../../CHANGELOG.md:929 +msgid "mautrix-gmessages support" +msgstr "" + +#: ../../../CHANGELOG.md:931 +msgid "Thanks to [Shreyas Ajjarapu](https://github.com/shreyasajj)'s efforts, the playbook now supports bridging to [Google Messages](https://messages.google.com/) via the [mautrix-gmessages](https://github.com/mautrix/gmessages) bridge. See our [Setting up Mautrix Google Messages bridging](docs/configuring-playbook-bridge-mautrix-gmessages.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:934 +msgid "2023-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:936 +msgid "matrix-media-repo support" +msgstr "" + +#: ../../../CHANGELOG.md:938 +msgid "Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) — an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features." +msgstr "" + +#: ../../../CHANGELOG.md:940 +msgid "To learn more see our [Storing Matrix media files using matrix-media-repo](docs/configuring-playbook-matrix-media-repo.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:943 +msgid "2023-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:945 +msgid "Enabling `forget_rooms_on_leave` by default for Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:947 +msgid "With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`. This way, **when you leave a room, Synapse will now forget it automatically**." +msgstr "" + +#: ../../../CHANGELOG.md:949 +msgid "The upstream Synapse default is `false` (disabled), so that you must forget rooms manually after leaving." +msgstr "" + +#: ../../../CHANGELOG.md:951 +msgid "**We go against the upstream default** ([somewhat controversially](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2700)) in an effort to make Synapse leaner and potentially do what we believe most users would expect their homeserver to be doing." +msgstr "" + +#: ../../../CHANGELOG.md:953 +msgid "If you'd like to go back to the old behavior, add the following to your configuration: `matrix_synapse_forget_rooms_on_leave: false`" +msgstr "" + +#: ../../../CHANGELOG.md:956 +msgid "2023-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:958 +msgid "The matrix-jitsi role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:960 +msgid "**TLDR**: the `matrix-jitsi` role is now included from the [ansible-role-jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:962 +msgid "The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:964 +msgid "As part of the extraction process of this role out of the Matrix playbook, a few other things improved:" +msgstr "" + +#: ../../../CHANGELOG.md:966 +msgid "**native Traefik support** has been added" +msgstr "" + +#: ../../../CHANGELOG.md:967 +msgid "**support for hosting under a subpath** has been added, although it suffers from a few minor issues listed [here](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md#url)" +msgstr "" + +#: ../../../CHANGELOG.md:969 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Jitsi or not." +msgstr "" + +#: ../../../CHANGELOG.md:971 +msgid "If you're making use of Jitsi via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:973 +msgid "`matrix_jitsi_*_docker_image_` -> `matrix_jitsi_*_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:974 +msgid "`matrix_jitsi_` -> `jitsi_`" +msgstr "" + +#: ../../../CHANGELOG.md:975 +#: ../../../CHANGELOG.md:1002 +msgid "some other internal variables have changed, but the playbook will tell you about them" +msgstr "" + +#: ../../../CHANGELOG.md:977 +msgid "2023-03-22" +msgstr "" + +#: ../../../CHANGELOG.md:979 +msgid "ntfy Web App is disabled by default" +msgstr "" + +#: ../../../CHANGELOG.md:981 +msgid "ntfy provides a web app, which is now disabled by default, because it may be unknown to and unused by most users of this playbook. You can enable it by setting `ntfy_web_root: \"app\"` (see [ntfy documentation](docs/configuring-playbook-ntfy.md))." +msgstr "" + +#: ../../../CHANGELOG.md:983 +msgid "This change was already applied a while before this entry, but as some users were reporting the missing web app, this entry was added (see [#2529](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2529))." +msgstr "" + +#: ../../../CHANGELOG.md:986 +msgid "2023-03-21" +msgstr "" + +#: ../../../CHANGELOG.md:988 +msgid "The matrix-prometheus role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:990 +msgid "**TLDR**: the `matrix-prometheus` role is now included from the [ansible-role-prometheus](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:992 +msgid "The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project — an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so." +msgstr "" + +#: ../../../CHANGELOG.md:994 +msgid "Extracting the Prometheus role out of this Matrix playbook required huge internal refactoring to the way the Prometheus configuration (scraping jobs) is generated. If you notice any breakage after upgrading, let us know." +msgstr "" + +#: ../../../CHANGELOG.md:996 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Prometheus or not." +msgstr "" + +#: ../../../CHANGELOG.md:998 +msgid "If you're making use of Prometheus via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1000 +msgid "`matrix_prometheus_docker_image_` -> `matrix_prometheus_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1001 +msgid "`matrix_prometheus_` -> `prometheus_`" +msgstr "" + +#: ../../../CHANGELOG.md:1005 +msgid "2023-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:1007 +msgid "synapse-auto-compressor support" +msgstr "" + +#: ../../../CHANGELOG.md:1009 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state)'s `synapse_auto_compressor` tool to run periodically." +msgstr "" + +#: ../../../CHANGELOG.md:1011 +msgid "If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before — see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because:" +msgstr "" + +#: ../../../CHANGELOG.md:1013 +msgid "it runs on a more up-to-date version of `rust-synapse-compress-state`" +msgstr "" + +#: ../../../CHANGELOG.md:1014 +msgid "it's a set-it-and-forget-it tool that you can enable and never have to deal with manual compression anymore" +msgstr "" + +#: ../../../CHANGELOG.md:1016 +msgid "This tool needs to be enabled manually, for now. In the future, we're considering enabling it by default for all Synapse installations." +msgstr "" + +#: ../../../CHANGELOG.md:1018 +msgid "See our [Setting up synapse-auto-compressor](docs/configuring-playbook-synapse-auto-compressor.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1021 +msgid "2023-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:1023 +msgid "Sliding Sync proxy (Element X) support" +msgstr "" + +#: ../../../CHANGELOG.md:1025 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn) for [getting it started](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515), [FSG-Cat](https://github.com/FSG-Cat) for fixing it up and me ([Slavi](https://github.com/spantaleev)) for polishing it up, the playbook can now install and configure the [sliding-sync proxy](https://github.com/matrix-org/sliding-sync)." +msgstr "" + +#: ../../../CHANGELOG.md:1027 +msgid "The upcoming Element X clients ([Element X iOS](https://github.com/vector-im/element-x-ios) and [Element X Android](https://github.com/vector-im/element-x-android)) require the `sliding-sync` proxy to do their job. **These clients are still in beta** (especially Element X Android, which requires manual compilation to get it working with a non-`matrix.org` homeseserver). Playbook users can now easily give these clients a try and help test them thanks to us having `sliding-sync` support." +msgstr "" + +#: ../../../CHANGELOG.md:1029 +msgid "To get started, see our [Setting up the Sliding Sync proxy](docs/configuring-playbook-sliding-sync-proxy.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:1032 +msgid "2023-03-02" +msgstr "" + +#: ../../../CHANGELOG.md:1034 +msgid "The matrix-etherpad role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1036 +msgid "**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad). Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1038 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Etherpad or not." +msgstr "" + +#: ../../../CHANGELOG.md:1040 +msgid "If you're making use of Etherpad via this playbook, you will need to update variable references in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1042 +msgid "Rename `matrix_etherpad_public_endpoint` to `etherpad_path_prefix`" +msgstr "" + +#: ../../../CHANGELOG.md:1044 +msgid "Replace `matrix_etherpad_mode: dimension` with:" +msgstr "" + +#: ../../../CHANGELOG.md:1045 +msgid "for `matrix-nginx-proxy` users:" +msgstr "" + +#: ../../../CHANGELOG.md:1046 +msgid "`etherpad_nginx_proxy_dimension_integration_enabled: true`" +msgstr "" + +#: ../../../CHANGELOG.md:1047 +msgid "`etherpad_hostname: \"{{ matrix_server_fqn_dimension }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:1048 +msgid "for Traefik users:" +msgstr "" + +#: ../../../CHANGELOG.md:1049 +msgid "define your own `etherpad_hostname` and `etherpad_path_prefix` as you see fit" +msgstr "" + +#: ../../../CHANGELOG.md:1051 +msgid "Rename all other variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1052 +msgid "`matrix_etherpad_docker_image_` -> `matrix_etherpad_container_image_`" +msgstr "" + +#: ../../../CHANGELOG.md:1053 +msgid "`matrix_etherpad_` -> `etherpad_`" +msgstr "" + +#: ../../../CHANGELOG.md:1055 +msgid "Along with this relocation, the new role also:" +msgstr "" + +#: ../../../CHANGELOG.md:1057 +msgid "supports [self-building](docs/self-building.md), so it should work on `arm32` and `arm64` architectures" +msgstr "" + +#: ../../../CHANGELOG.md:1058 +msgid "has native Traefik reverse-proxy support (Etherpad requests no longer go through `matrix-nginx-proxy` when using Traefik)" +msgstr "" + +#: ../../../CHANGELOG.md:1061 +msgid "2023-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:1063 +msgid "Traefik is the default reverse-proxy now" +msgstr "" + +#: ../../../CHANGELOG.md:1065 +msgid "**TLDR**: new installations will now default to Traefik as their reverse-proxy. Existing users need to explicitly choose their reverse-proxy type. [Switching to Traefik](#how-do-i-switch-my-existing-setup-to-traefik) is strongly encouraged. `matrix-nginx-proxy` may break over time and will ultimately be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1067 +msgid "As mentioned 2 weeks ago in [(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support](#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support), the playbook is moving to Traefik as its default SSL-terminating reverse-proxy." +msgstr "" + +#: ../../../CHANGELOG.md:1069 +msgid "Until now, we've been doing the migration gradually and keeping full backward compatibility. New installations were defaulting to `matrix-nginx-proxy` (just like before), while existing installations were allowed to remain on `matrix-nginx-proxy` as well. This makes things very difficult for us, because we need to maintain and think about lots of different setups:" +msgstr "" + +#: ../../../CHANGELOG.md:1071 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1072 +msgid "Traefik managed by the user in another way" +msgstr "" + +#: ../../../CHANGELOG.md:1073 +msgid "another reverse-proxy on the same host (`127.0.0.1` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1074 +msgid "another reverse-proxy on another host (`0.0.0.0` port exposure)" +msgstr "" + +#: ../../../CHANGELOG.md:1075 +msgid "`matrix-nginx-proxy` — an `nginx` container managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1076 +msgid "`nginx` webserver operated by the user, running without a container on the same server" +msgstr "" + +#: ../../../CHANGELOG.md:1078 +msgid "Each change we do and each new feature that comes in needs to support all these different ways of reverse-proxying. Because `matrix-nginx-proxy` was the default and pretty much everyone was (and still is) using it, means that new PRs also come with `matrix-nginx-proxy` as their main focus and Traefik as an afterthought, which means we need to spend hours fixing up Traefik support." +msgstr "" + +#: ../../../CHANGELOG.md:1080 +msgid "We can't spend all this time maintaining so many different configurations anymore. Traefik support has been an option for 2 weeks and lots of people have already migrated their server and have tested things out. Traefik is what we use and preferentially test for." +msgstr "" + +#: ../../../CHANGELOG.md:1082 +msgid "It's time for the **next step in our migration process** to Traefik and elimination of `matrix-nginx-proxy`:" +msgstr "" + +#: ../../../CHANGELOG.md:1084 +msgid "Traefik is now the default reverse-proxy for new installations" +msgstr "" + +#: ../../../CHANGELOG.md:1085 +msgid "All existing users need to explicitly choose their reverse-proxy type by defining the `matrix_playbook_reverse_proxy_type` variable in their `vars.yml` configuration file. We strongly encourage existing users to [switch the Traefik](#how-to-switch-an-existing-setup-to-traefik), as the nginx setup is bound to become more and more broken over time until it's ultimately removed" +msgstr "" + +#: ../../../CHANGELOG.md:1087 +msgid "How do I switch my existing setup to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1089 +msgid "**For users who are on `matrix-nginx-proxy`** (the default reverse-proxy provided by the playbook), switching to Traefik can happen with a simple configuration change. Follow this section from 2 weeks ago: [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now)." +msgstr "" + +#: ../../../CHANGELOG.md:1091 +msgid "If you experience trouble:" +msgstr "" + +#: ../../../CHANGELOG.md:1093 +msgid "Follow [How do I remain on matrix-nginx-proxy?](#how-do-i-remain-on-matrix-nginx-proxy) to bring your server back online using the old reverse-proxy" +msgstr "" + +#: ../../../CHANGELOG.md:1094 +msgid "Ask for help in our [support channels](README.md#support)" +msgstr "" + +#: ../../../CHANGELOG.md:1095 +msgid "Try switching to Traefik again later" +msgstr "" + +#: ../../../CHANGELOG.md:1097 +msgid "**For users with a more special reverse-proxying setup** (another nginx server, Apache, Caddy, etc.), the migration may not be so smooth. Follow the [Using your own webserver](docs/configuring-playbook-own-webserver.md) guide. Ideally, your custom reverse-proxy will be configured in such a way that it **fronts the Traefik reverse-proxy** provided by the playbook. Other means of reverse-proxying are more fragile and may be deprecated in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1099 +msgid "I already use my own Traefik server. How do I plug that in?" +msgstr "" + +#: ../../../CHANGELOG.md:1101 +msgid "See the [Traefik managed by the playbook](docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) section." +msgstr "" + +#: ../../../CHANGELOG.md:1103 +msgid "Why is matrix-nginx-proxy used even after switching to Traefik?" +msgstr "" + +#: ../../../CHANGELOG.md:1105 +msgid "This playbook manages many different services. All these services were initially integrated with `matrix-nginx-proxy`." +msgstr "" + +#: ../../../CHANGELOG.md:1107 +msgid "While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component). As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed." +msgstr "" + +#: ../../../CHANGELOG.md:1109 +msgid "How do I remain on matrix-nginx-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1111 +msgid "Most new work and testing targets Traefik, so remaining on nginx is **not** \"the good old stable\" option, but rather the \"still available, but largely untested and likely to be broken very soon\" option." +msgstr "" + +#: ../../../CHANGELOG.md:1113 +msgid "To proceed regardless of this warning, add `matrix_playbook_reverse_proxy_type: playbook-managed-nginx` to your configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1115 +msgid "At some point in the **near** future (days, or even weeks at most), we hope to completely get rid of `matrix-nginx-proxy` (or break it enough to make it unusable), so you **will soon be forced to migrate** anyway. Plan your migration accordingly." +msgstr "" + +#: ../../../CHANGELOG.md:1117 +msgid "How do I keep using my own other reverse-proxy?" +msgstr "" + +#: ../../../CHANGELOG.md:1119 +msgid "We recommend that you follow the guide for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy)." +msgstr "" + +#: ../../../CHANGELOG.md:1122 +msgid "2023-02-25" +msgstr "" + +#: ../../../CHANGELOG.md:1124 +msgid "rageshake support" +msgstr "" + +#: ../../../CHANGELOG.md:1126 +msgid "Thanks to [Benjamin Kampmann](https://github.com/gnunicorn), the playbook can now install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server." +msgstr "" + +#: ../../../CHANGELOG.md:1128 +msgid "Additional details are available in [Setting up rageshake](docs/configuring-playbook-rageshake.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1131 +msgid "2023-02-17" +msgstr "" + +#: ../../../CHANGELOG.md:1133 +msgid "Synapse templates customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1135 +msgid "The playbook can now help you customize Synapse's templates." +msgstr "" + +#: ../../../CHANGELOG.md:1137 +msgid "Additional details are available in the [Customizing templates](docs/configuring-playbook-synapse.md#customizing-templates) section of our Synapse documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1139 +msgid "The matrix-redis role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1141 +msgid "**TLDR**: the `matrix-redis` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1143 +msgid "The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-redis). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1145 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_redis_` -> `redis_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1147 +msgid "The matrix-ntfy role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1149 +msgid "**TLDR**: the `matrix-ntfy` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1151 +msgid "The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1153 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_ntfy_` -> `ntfy_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1156 +msgid "2023-02-15" +msgstr "" + +#: ../../../CHANGELOG.md:1158 +msgid "The matrix-grafana role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1160 +msgid "**TLDR**: the `matrix-grafana` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1162 +msgid "The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-grafana). This makes it possible to easily use it in other Ansible playbooks." +msgstr "" + +#: ../../../CHANGELOG.md:1164 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Grafana or not. If you're making use of Grafana via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_grafana_` -> `grafana_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1167 +msgid "2023-02-13" +msgstr "" + +#: ../../../CHANGELOG.md:1169 +msgid "The matrix-backup-borg role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1171 +msgid "**TLDR**: the `matrix-backup-borg` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1173 +msgid "Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [BorgBackup](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon." +msgstr "" + +#: ../../../CHANGELOG.md:1175 +msgid "You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Borg's backup functionality or not. If you're making use of BorgBackup via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_backup_borg_` -> `backup_borg_`)." +msgstr "" + +#: ../../../CHANGELOG.md:1178 +msgid "2023-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1180 +msgid "(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support" +msgstr "" + +#: ../../../CHANGELOG.md:1182 +msgid "**TLDR**:" +msgstr "" + +#: ../../../CHANGELOG.md:1184 +msgid "there's a new `matrix_playbook_reverse_proxy_type` variable (see [roles/custom/matrix-base/defaults/main.yml](roles/custom/matrix-base/defaults/main.yml)), which lets you tell the playbook what reverse-proxy setup you'd like to have. This makes it easier for people who want to do reverse-proxying in other ways." +msgstr "" + +#: ../../../CHANGELOG.md:1185 +msgid "the default reverse-proxy (`matrix_playbook_reverse_proxy_type`) is still `playbook-managed-nginx` (via `matrix-nginx-proxy`), for now. **Existing `matrix-nginx-proxy` users should not observe any changes** and can stay on this for now." +msgstr "" + +#: ../../../CHANGELOG.md:1186 +msgid "**Users who use their [own other webserver](docs/configuring-playbook-own-webserver.md) (e.g. Apache, etc.) need to change** `matrix_playbook_reverse_proxy_type` to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`" +msgstr "" + +#: ../../../CHANGELOG.md:1187 +msgid "we now have **optional [Traefik](https://traefik.io/) support**, so you could easily host Matrix and other Traefik-native services in containers on the same server. Traefik support is still experimental (albeit, good enough) and will improve over time. It does work, but certain esoteric features may not be there yet." +msgstr "" + +#: ../../../CHANGELOG.md:1188 +msgid "**Traefik will become the default reverse-proxy in the near future**. `matrix-nginx-proxy` will either remain as an option, or be completely removed to simplify the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:1190 +msgid "Motivation for redoing our reverse-proxy setup" +msgstr "" + +#: ../../../CHANGELOG.md:1192 +msgid "The playbook has supported various reverse-proxy setups for a long time. We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though — hard to figure out and with lots of variables to toggle to make things work as you'd expect — huge **operational complexity**." +msgstr "" + +#: ../../../CHANGELOG.md:1194 +msgid "We love containers, proven by the fact that **everything** that this playbook manages runs in a container. Yet, we weren't allowing people to easily host other web-exposed containers alongside Matrix services on the same server. We were using `matrix-nginx-proxy` (our integrated [nginx](https://nginx.org/) server), which was handling web-exposure and SSL termination for our own services, but we **weren't helping you with all your other containers**." +msgstr "" + +#: ../../../CHANGELOG.md:1196 +msgid "People who were **using `matrix-nginx-proxy`** were on the happy path on which everything worked well by default (Matrix-wise), **but** could not easily run other web-exposed services on their Matrix server because `matrix-nginx-proxy` was occupying ports `80` and `443`. Other services which wanted to get web exposure either had to be plugged into `matrix-nginx-proxy` (somewhat difficult) or people had to forgo using `matrix-nginx-proxy` in favor of something else." +msgstr "" + +#: ../../../CHANGELOG.md:1198 +msgid "Of those that decided to forgo `matrix-nginx-proxy`, many were **using nginx** on the same server without a container. This was likely some ancient nginx version, depending on your choice of distro. The Matrix playbook was trying to be helpful and even with `matrix_nginx_proxy_enabled: false` was still generating nginx configuration in `/matrix/nginx-proxy/conf.d`. Those configuration files were adapted for inclusion into an nginx server running locally. Disabling the `matrix-nginx-proxy` role like this, yet still having it produce files is a bit disgusting, but it's what we've had since the early beginnings of this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1200 +msgid "Others still, wanted to run Matrix locally (no SSL certificates), regardless of which web server technology this relied on, and then **reverse-proxy from another machine on the network** which was doing SSL termination. These people were:" +msgstr "" + +#: ../../../CHANGELOG.md:1202 +msgid "*either* relying on `matrix_nginx_proxy_enabled: false` as well, combined with exposing services manually (setting `_bind_port` variables)" +msgstr "" + +#: ../../../CHANGELOG.md:1203 +msgid "*or* better yet, they were keeping `matrix-nginx-proxy` enabled, but in `http`-only mode (no SSL certificate retrieval)." +msgstr "" + +#: ../../../CHANGELOG.md:1205 +msgid "Despite this operational complexity, things worked and were reasonably flexible to adapt to all these situations." +msgstr "" + +#: ../../../CHANGELOG.md:1207 +msgid "When using `matrix-nginx-proxy` as is, we still had another problem — one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime — see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still… yikes)." +msgstr "" + +#: ../../../CHANGELOG.md:1209 +msgid "The next problem is one of **efficiency, interoperability and cost-saving**. We're working on other playbooks:" +msgstr "" + +#: ../../../CHANGELOG.md:1211 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server — an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager" +msgstr "" + +#: ../../../CHANGELOG.md:1212 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) — for hosting the [Gitea](https://gitea.io/) git source code hosting service" +msgstr "" + +#: ../../../CHANGELOG.md:1213 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) — for hosting the [Nextcloud](https://nextcloud.com/) groupware platform" +msgstr "" + +#: ../../../CHANGELOG.md:1215 +msgid "We'd love for users to be able to **seamlessly use all these playbooks (and others, even) against a single server**. We don't want `matrix-nginx-proxy` to have a monopoly on port `80`/`443` and make it hard for other services to join in on the party. Such a thing forces people into running multiple servers (one for each service), which does provide nice security benefits, but is costly and ineffiecient. We'd like to make self-hosting these services cheap and easy." +msgstr "" + +#: ../../../CHANGELOG.md:1217 +msgid "These other playbooks have been using [Traefik](https://traefik.io/) as their default reverse-proxy for a long time. They can all coexist nicely together (as an example, see the [Interoperability](https://github.com/spantaleev/nextcloud-docker-ansible-deploy/blob/master/docs/configuring-playbook-interoperability.md) documentation for the [Nextcloud playbook](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)). Now that this playbook is gaining Traefik support, it will be able to interoperate with them. If you're going this way, make sure to have the Matrix playbook install Traefik and have the others use `*_reverse_proxy_type: other-traefik-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1219 +msgid "Finally, at [etke.cc — a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with." +msgstr "" + +#: ../../../CHANGELOG.md:1221 +msgid "How do these changes fix all these problems?" +msgstr "" + +#: ../../../CHANGELOG.md:1223 +msgid "The new `matrix_playbook_reverse_proxy_type` lets you easily specify your preferred reverse-proxy type, including `other-on-same-host`, `other-on-another-host` and `none`, so people who'd like to reverse-proxy with their own web server have more options now." +msgstr "" + +#: ../../../CHANGELOG.md:1225 +msgid "Using Traefik greatly simplifies things, so going forward we'll have a simpler and easier to maintain playbook, which is also interoperable with other services." +msgstr "" + +#: ../../../CHANGELOG.md:1227 +msgid "Traefik is a web server, which has been specifically **designed for reverse-proxying to services running in containers**. It's ideal for usage in an Ansible playbook which runs everything in containers." +msgstr "" + +#: ../../../CHANGELOG.md:1229 +msgid "**Traefik obtains SSL certificates automatically**, so there's no need for plugging additional tools like [Certbot](https://certbot.eff.org/) into your web server (like we were doing in the `matrix-nginx-proxy` role). No more certificate renewal timers, web server reloading timers, etc. It's just simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1231 +msgid "Traefik is a **modern web server**. [HTTP/3](https://doc.traefik.io/traefik/routing/entrypoints/#http3) is supported already (experimentally) and will move to stable soon, in the upcoming Traefik v3 release." +msgstr "" + +#: ../../../CHANGELOG.md:1233 +msgid "Traefik does not lock important functionality we'd like to use into [plus packages like nginx does](https://www.nginx.com/products/nginx/), leading us to resolve to configuration workarounds. The default Traefik package is good enough as it is." +msgstr "" + +#: ../../../CHANGELOG.md:1235 +msgid "Where we're at right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1237 +msgid "`matrix_playbook_reverse_proxy_type` still defaults to a value of `playbook-managed-nginx`." +msgstr "" + +#: ../../../CHANGELOG.md:1239 +msgid "Unless we have some regression, **existing `matrix-nginx-proxy` users should be able to update their Matrix server and not observe any changes**. Their setup should still remain on nginx and everything should still work as expected." +msgstr "" + +#: ../../../CHANGELOG.md:1241 +msgid "**Users using [their own webservers](docs/configuring-playbook-own-webserver.md) will need to change `matrix_playbook_reverse_proxy_type`** to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`. Previously, they could toggle `matrix_nginx_proxy_enabled` to `false`, and that made the playbook automatically expose services locally. Currently, we only do this if you change the reverse-proxy type to `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`." +msgstr "" + +#: ../../../CHANGELOG.md:1243 +msgid "How do I explicitly switch to Traefik right now?" +msgstr "" + +#: ../../../CHANGELOG.md:1245 +msgid "**Users who wish to migrate to Traefik** today, can do so by **adding** this to their configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1253 +msgid "You may still need to keep certain old `matrix_nginx_proxy_*` variables (like `matrix_nginx_proxy_base_domain_serving_enabled`), even when using Traefik. For now, we recommend keeping all `matrix_nginx_proxy_*` variables just in case. In the future, reliance on `matrix-nginx-proxy` will be removed." +msgstr "" + +#: ../../../CHANGELOG.md:1255 +msgid "Switching to Traefik will obtain new SSL certificates from Let's Encrypt (stored in `/matrix/traefik/ssl/acme.json`). **The switch is reversible**. You can always go back to `playbook-managed-nginx` if Traefik is causing you trouble." +msgstr "" + +#: ../../../CHANGELOG.md:1257 +msgid "**Note**: toggling `matrix_playbook_reverse_proxy_type` between Traefik and nginx will uninstall the Traefik role and all of its data (under `/matrix/traefik`), so you may run into a Let's Encrypt rate limit if you do it often." +msgstr "" + +#: ../../../CHANGELOG.md:1259 +msgid "Treafik directly reverse-proxies to **some** services right now, but for most other services it goes through `matrix-nginx-proxy` (e.g. Traefik -> `matrix-nginx-proxy` -> [Ntfy](docs/configuring-playbook-ntfy.md)). So, even if you opt into Traefik, you'll still see `matrix-nginx-proxy` being installed in local-only mode. This will improve with time." +msgstr "" + +#: ../../../CHANGELOG.md:1261 +msgid "Some services (like [coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bridge-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool." +msgstr "" + +#: ../../../CHANGELOG.md:1263 +msgid "Our Traefik setup mostly works, but certain esoteric features may not work. If you have a default setup, we expect you to have a good experience." +msgstr "" + +#: ../../../CHANGELOG.md:1265 +msgid "Where we're going in the near future?" +msgstr "" + +#: ../../../CHANGELOG.md:1267 +msgid "The `matrix-nginx-proxy` role is quite messy. It manages both nginx and Certbot and its certificate renewal scripts and timers. It generates configuration even when the role is disabled (weird). Although it doesn't directly reach into variables from other roles, it has explicit awareness of various other services that it reverse-proxies to (`roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-ntfy.conf.j2`, etc.). We'd like to clean this up. The only way is probably to just get rid of the whole thing at some point." +msgstr "" + +#: ../../../CHANGELOG.md:1269 +msgid "For now, `matrix-nginx-proxy` will stay around." +msgstr "" + +#: ../../../CHANGELOG.md:1271 +msgid "As mentioned above, Traefik still reverse-proxies to some (most) services by going through a local-only `matrix-nginx-proxy` server. This has allowed us to add Traefik support to the playbook early on (without having to rework all services), but is not the final goal. We'll **work on making each service support Traefik natively**, so that traffic will not need to go through `matrix-nginx-proxy` anymore. In the end, choosing Traefik should only give you a pure Traefik installation with no `matrix-nginx-proxy` in sight." +msgstr "" + +#: ../../../CHANGELOG.md:1273 +msgid "As Traefik support becomes complete and proves to be stable for a while, especially as a playbook default, we will **most likely remove `matrix-nginx-proxy` completely**. It will likely be some months before this happens though. Keeping support for both Traefik and nginx in the playbook will be a burden, especially with most of us running Traefik in the future. The Traefik role should do everything nginx does in a better and cleaner way. Users who use their own `nginx` server on the Matrix server will be inconvenienced, as nothing will generate ready-to-include nginx configuration for them. Still, we hope it won't be too hard to migrate their setup to another way of doing things, like:" +msgstr "" + +#: ../../../CHANGELOG.md:1275 +msgid "not using nginx anymore. A common reason for using nginx until now was that you were running other containers and you need your own nginx to reverse-proxy to all of them. Just switch them to Traefik as well." +msgstr "" + +#: ../../../CHANGELOG.md:1276 +msgid "running Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and using some nginx configuration which reverse-proxies to Traefik (we should introduce examples for this in `examples/nginx`)." +msgstr "" + +#: ../../../CHANGELOG.md:1278 +msgid "How do I help?" +msgstr "" + +#: ../../../CHANGELOG.md:1280 +msgid "You can help by:" +msgstr "" + +#: ../../../CHANGELOG.md:1282 +msgid "**explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles" +msgstr "" + +#: ../../../CHANGELOG.md:1284 +msgid "**adding native Traefik support to a role** (requires adding Traefik labels, etc.) — for inspiration, see these roles ([prometheus_node_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter), [prometheus_postgres_exporter](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers)." +msgstr "" + +#: ../../../CHANGELOG.md:1286 +msgid "**adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server" +msgstr "" + +#: ../../../CHANGELOG.md:1289 +msgid "2023-02-10" +msgstr "" + +#: ../../../CHANGELOG.md:1291 +msgid "Matrix Authentication Support for Jitsi" +msgstr "" + +#: ../../../CHANGELOG.md:1293 +msgid "Thanks to [Jakob S.](https://github.com/jakicoll) ([zakk gGmbH](https://github.com/zakk-it)), Jitsi can now use Matrix for authentication (via [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service))." +msgstr "" + +#: ../../../CHANGELOG.md:1295 +msgid "Additional details are available in the [Authenticate using Matrix OpenID (Auth-Type 'matrix')](docs/configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix)." +msgstr "" + +#: ../../../CHANGELOG.md:1297 +msgid "Draupnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:1299 +msgid "Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (bot). Draupnir is a fork of [Mjolnir](docs/configuring-playbook-bot-mjolnir.md) (which the playbook has supported for a long time) maintained by Mjolnir's former lead developer." +msgstr "" + +#: ../../../CHANGELOG.md:1301 +msgid "Additional details are available in [Setting up Draupnir](docs/configuring-playbook-bot-draupnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1304 +msgid "2023-02-05" +msgstr "" + +#: ../../../CHANGELOG.md:1306 +msgid "The matrix-prometheus-postgres-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1308 +msgid "**TLDR**: the `matrix-prometheus-postgres-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1310 +msgid "The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1312 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1314 +msgid "The `matrix-prometheus-services-proxy-connect` role has bee adjusted to help integrate the new `prometheus_postgres_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1316 +#: ../../../CHANGELOG.md:1358 +msgid "Other roles which aren't strictly related to Matrix are likely to follow this fate of moving to their own repositories. Extracting them out allows other Ansible playbooks to make use of these roles easily." +msgstr "" + +#: ../../../CHANGELOG.md:1319 +msgid "2023-01-26" +msgstr "" + +#: ../../../CHANGELOG.md:1321 +msgid "coturn can now use host-networking" +msgstr "" + +#: ../../../CHANGELOG.md:1323 +msgid "Large coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown." +msgstr "" + +#: ../../../CHANGELOG.md:1325 +msgid "Such deployments don't need to run coturn within a private container network anymore. coturn can now run with host-networking by using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1331 +msgid "With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time coturn starts and stops. This, however, means that **you will need to ensure these ports are open** in your firewall yourself." +msgstr "" + +#: ../../../CHANGELOG.md:1333 +msgid "Thanks to us [tightening coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network." +msgstr "" + +#: ../../../CHANGELOG.md:1335 +msgid "(Backward Compatibility) Tightening coturn security can lead to connectivity issues" +msgstr "" + +#: ../../../CHANGELOG.md:1337 +msgid "**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it." +msgstr "" + +#: ../../../CHANGELOG.md:1339 +msgid "Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better." +msgstr "" + +#: ../../../CHANGELOG.md:1341 +msgid "If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it." +msgstr "" + +#: ../../../CHANGELOG.md:1343 +msgid "We've also added `no-multicast-peers` to the default coturn configuration, but we don't expect this to cause trouble for most people." +msgstr "" + +#: ../../../CHANGELOG.md:1346 +msgid "2023-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:1348 +msgid "The matrix-prometheus-node-exporter role lives independently now" +msgstr "" + +#: ../../../CHANGELOG.md:1350 +msgid "**TLDR**: the `matrix-prometheus-node-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1352 +msgid "The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter" +msgstr "" + +#: ../../../CHANGELOG.md:1354 +msgid "It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact." +msgstr "" + +#: ../../../CHANGELOG.md:1356 +msgid "A new `matrix-prometheus-services-proxy-connect` role was added to the playbook to help integrate the new `prometheus_node_exporter` role with our own services (`matrix-nginx-proxy`)" +msgstr "" + +#: ../../../CHANGELOG.md:1361 +msgid "2023-01-13" +msgstr "" + +#: ../../../CHANGELOG.md:1363 +msgid "Support for running commands via just" +msgstr "" + +#: ../../../CHANGELOG.md:1365 +msgid "We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)). Our `Makefile` is still around and you can still run these commands." +msgstr "" + +#: ../../../CHANGELOG.md:1367 +msgid "In addition, we've added support for running commands via [just](https://github.com/casey/just) — a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same." +msgstr "" + +#: ../../../CHANGELOG.md:1369 +msgid "Our [justfile](justfile) already defines some additional helpful **shortcut** commands that weren't part of our `Makefile`. Here are some examples:" +msgstr "" + +#: ../../../CHANGELOG.md:1371 +msgid "`just install-all` to trigger the much longer `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` command" +msgstr "" + +#: ../../../CHANGELOG.md:1372 +msgid "`just install-all --ask-vault-pass` — commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../CHANGELOG.md:1373 +msgid "`just run-tags install-mautrix-slack,start` — to run specific playbook tags" +msgstr "" + +#: ../../../CHANGELOG.md:1374 +msgid "`just start-all` — (re-)starts all services" +msgstr "" + +#: ../../../CHANGELOG.md:1375 +msgid "`just stop-group postgres` — to stop only the Postgres service" +msgstr "" + +#: ../../../CHANGELOG.md:1376 +msgid "`just register-user alice secret-password yes` — registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../CHANGELOG.md:1378 +msgid "Additional helpful commands and shortcuts may be defined in the future." +msgstr "" + +#: ../../../CHANGELOG.md:1380 +msgid "This is all completely optional. If you find it difficult to [install `just`](https://github.com/casey/just#installation) or don't find any of this convenient, feel free to run all commands manually." +msgstr "" + +#: ../../../CHANGELOG.md:1383 +msgid "2023-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:1385 +msgid "mautrix-slack support" +msgstr "" + +#: ../../../CHANGELOG.md:1387 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix)'s efforts, the playbook now supports bridging to [Slack](https://slack.com/) via the [mautrix-slack](https://mau.dev/mautrix/slack) bridge. See our [Setting up Mautrix Slack bridging](docs/configuring-playbook-bridge-mautrix-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1389 +msgid "**Note**: this is a new Slack bridge. The playbook still retains Slack bridging via [matrix-appservice-slack](docs/configuring-playbook-bridge-appservice-slack.md) and [mx-puppet-slack](docs/configuring-playbook-bridge-mx-puppet-slack.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1392 +msgid "2023-01-10" +msgstr "" + +#: ../../../CHANGELOG.md:1394 +msgid "ChatGPT support" +msgstr "" + +#: ../../../CHANGELOG.md:1396 +msgid "Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) — a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model." +msgstr "" + +#: ../../../CHANGELOG.md:1398 +msgid "See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1401 +msgid "2022-11-30" +msgstr "" + +#: ../../../CHANGELOG.md:1403 +msgid "matrix-postgres-backup has been replaced by the ansible-role-postgres-backup external role" +msgstr "" + +#: ../../../CHANGELOG.md:1405 +msgid "Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role — [com.devture.ansible.role.postgres_backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres_backup)." +msgstr "" + +#: ../../../CHANGELOG.md:1407 +msgid "You'll need to rename your `matrix_postgres_backup`-prefixed variables such that they use a `postgres_backup` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1410 +msgid "2022-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:1412 +msgid "matrix-postgres has been replaced by the ansible-role-postgres external role" +msgstr "" + +#: ../../../CHANGELOG.md:1414 +msgid "**TLDR**: the tasks that install the integrated Postgres server now live in an external role — [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`)." +msgstr "" + +#: ../../../CHANGELOG.md:1416 +msgid "The `matrix-postgres` role that has been part of the playbook for a long time has been replaced with the [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) role. This was done as part of our work to [use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) for better code re-use and maintainability." +msgstr "" + +#: ../../../CHANGELOG.md:1418 +msgid "The new role is an upgraded version of the old `matrix-postgres` role with these notable differences:" +msgstr "" + +#: ../../../CHANGELOG.md:1420 +msgid "it uses different names for its variables (`matrix_postgres` -> `devture_postgres`)" +msgstr "" + +#: ../../../CHANGELOG.md:1421 +msgid "when [Vacuuming PostgreSQL](docs/maintenance-postgres.md#vacuuming-postgresql), it will vacuum all your databases, not just the Synapse one" +msgstr "" + +#: ../../../CHANGELOG.md:1423 +msgid "You'll need to run `make roles` to install the new role. You would also need to rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:1425 +msgid "Note: the systemd service still remains the same — `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc. Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin)." +msgstr "" + +#: ../../../CHANGELOG.md:1427 +msgid "The playbook no longer installs scripts to /usr/local/bin" +msgstr "" + +#: ../../../CHANGELOG.md:1429 +msgid "The locations of various scripts installed by the playbook have changed." +msgstr "" + +#: ../../../CHANGELOG.md:1431 +msgid "The playbook no longer contaminates your `/usr/local/bin` directory. All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below:" +msgstr "" + +#: ../../../CHANGELOG.md:1433 +msgid "`/usr/local/bin/matrix-remove-all` -> `/matrix/bin/remove-all`" +msgstr "" + +#: ../../../CHANGELOG.md:1434 +msgid "`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1435 +msgid "`/usr/local/bin/matrix-ssl-lets-encrypt-certificates-renew` -> `/matrix/ssl/bin/lets-encrypt-certificates-renew`" +msgstr "" + +#: ../../../CHANGELOG.md:1436 +msgid "`/usr/local/bin/matrix-synapse-register-user` -> `/matrix/synapse/bin/register-user`" +msgstr "" + +#: ../../../CHANGELOG.md:1439 +msgid "2022-11-25" +msgstr "" + +#: ../../../CHANGELOG.md:1441 +msgid "2x-5x performance improvements in playbook runtime" +msgstr "" + +#: ../../../CHANGELOG.md:1443 +msgid "**TLDR**: the playbook is 2x faster for running `--tags=setup-all` (and various other tags). It also has new `--tags=install-*` tags (like `--tags=install-all`), which skip uninstallation tasks and bring an additional 2.5x speedup. In total, the playbook can maintain your server 5 times faster." +msgstr "" + +#: ../../../CHANGELOG.md:1445 +msgid "Our [etke.cc managed Matrix hosting service](https://etke.cc) runs maintenance against hundreds of servers, so the playbook being fast means a lot. The [etke.cc Ansible playbook](https://github.com/etkecc/ansible) (which is an extension of this one) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience." +msgstr "" + +#: ../../../CHANGELOG.md:1447 +msgid "Even when running `ansible-playbook` manually (as most of us here do), it's beneficial not to waste time and CPU resources." +msgstr "" + +#: ../../../CHANGELOG.md:1449 +msgid "Recently, a few large optimizations have been done to this playbook and its external roles (see [The playbook now uses external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) and don't forget to run `make roles`):" +msgstr "" + +#: ../../../CHANGELOG.md:1451 +msgid "Replacing Ansible `import_tasks` calls with `include_tasks`, which decreased runtime in half. Using `import_tasks` is slower and causes Ansible to go through and skip way too many tasks (tasks which could have been skipped altogether by not having Ansible include them in the first place). On an experimental VM, **deployment time was decreased from ~530 seconds to ~250 seconds**." +msgstr "" + +#: ../../../CHANGELOG.md:1453 +msgid "Introducing new `install-*` tags (`install-all` and `install-COMPONENT`, e.g. `install-synapse`, `install-bot-mjolnir`), which only run Ansible tasks pertaining to installation, while skipping uninstallation tasks. In most cases, people are maintaining the same setup or they're *adding* new components. Removing components is rare. Running thousands of uninstallation tasks each time is wasteful. On an experimental VM, **deployment time was decreased from ~250 seconds (`--tags=setup-all`) to ~100 seconds (`--tags=install-all`)**." +msgstr "" + +#: ../../../CHANGELOG.md:1455 +msgid "You can still use `--tags=setup-all`. In fact, that's the best way to ensure your server is reconciled with the `vars.yml` configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1457 +msgid "If you know you haven't uninstalled any services since the last time you ran the playbook, you could run `--tags=install-all` instead and benefit from quicker runtimes. It should be noted that a service may become \"eligible for uninstallation\" even if your `vars.yml` file remains the same. In rare cases, we toggle services from being auto-installed to being optional, like we did on the 17th of March 2022 when we made [ma1sd not get installed by default](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#compatibility-break-ma1sd-identity-server-no-longer-installed-by-default). In such rare cases, you'd also need to run `--tags=setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:1460 +msgid "2022-11-22" +msgstr "" + +#: ../../../CHANGELOG.md:1462 +msgid "Automatic `matrix_architecture` determination" +msgstr "" + +#: ../../../CHANGELOG.md:1464 +msgid "From now on, the playbook automatically determines your server's architecture and sets the `matrix_architecture` variable accordingly. You no longer need to set this variable manually in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1466 +msgid "Docker and the Docker SDK for Python are now installed via external roles" +msgstr "" + +#: ../../../CHANGELOG.md:1470 +msgid "Docker will now be installed on the server via the [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker) Ansible role. If you'd like to manage the Docker installation yourself, you can disable the playbook's installation of Docker by setting `matrix_playbook_docker_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1472 +msgid "The Docker SDK for Python (named `docker-python`, `python-docker`, etc. on the different platforms) is now also installed by another role ([com.devture.ansible.role.docker_sdk_for_python](https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python)). To disable this role and install the necessary tools yourself, use `devture_docker_sdk_for_python_installation_enabled: false`." +msgstr "" + +#: ../../../CHANGELOG.md:1474 +msgid "If you're hitting issues with Docker installation or Docker SDK for Python installation, consider reporting bugs or contributing to these other projects." +msgstr "" + +#: ../../../CHANGELOG.md:1476 +msgid "These additional roles are downloaded into the playbook directory (to `roles/galaxy`) via an `ansible-galaxy …` command. `make roles` is an easy shortcut for invoking the `ansible-galaxy` command to download these roles." +msgstr "" + +#: ../../../CHANGELOG.md:1479 +msgid "2022-11-20" +msgstr "" + +#: ../../../CHANGELOG.md:1481 +msgid "(Backward Compatibility Break) Changing how reverse-proxying to Synapse works — now via a `matrix-synapse-reverse-proxy-companion` service" +msgstr "" + +#: ../../../CHANGELOG.md:1483 +msgid "**TLDR**: There's now a `matrix-synapse-reverse-proxy-companion` nginx service, which helps with reverse-proxying to Synapse and its various worker processes (if workers are enabled), so that `matrix-nginx-proxy` can be relieved of this role. `matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. `matrix-synapse-reverse-proxy-companion` is just one more reverse-proxy thrown into the mix for convenience. People with a more custom reverse-proxying configuration may be affected — see [Webserver configuration](#webserver-configuration) below." +msgstr "" + +#: ../../../CHANGELOG.md:1485 +msgid "Background" +msgstr "" + +#: ../../../CHANGELOG.md:1487 +msgid "Previously, `matrix-nginx-proxy` forwarded requests to Synapse directly. When Synapse is running in worker mode, the reverse-proxying configuration is more complicated (different requests need to go to different Synapse worker processes). `matrix-nginx-proxy` had configuration for sending each URL endpoint to the correct Synapse worker responsible for handling it. However, sometimes people like to disable `matrix-nginx-proxy` (for whatever reason) as detailed in [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1489 +msgid "Because `matrix-nginx-proxy` was so central to request forwarding, when it was disabled and Synapse was running with workers enabled, there was nothing which could forward requests to the correct place anymore… which caused [problems such as this one affecting Dimension](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090)." +msgstr "" + +#: ../../../CHANGELOG.md:1491 +msgid "Solution" +msgstr "" + +#: ../../../CHANGELOG.md:1493 +msgid "From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxying to Synapse and its various worker processes. This role is now handled by the new `matrix-synapse-reverse-proxy-companion` nginx service and works even if `matrix-nginx-proxy` is disabled. The purpose of the new `matrix-synapse-reverse-proxy-companion` service is to:" +msgstr "" + +#: ../../../CHANGELOG.md:1495 +msgid "serve as a companion to Synapse and know how to reverse-proxy to Synapse correctly (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1497 +msgid "provide a unified container address for reaching Synapse (no matter if workers are enabled or not)" +msgstr "" + +#: ../../../CHANGELOG.md:1498 +msgid "`matrix-synapse-reverse-proxy-companion:8008` for Synapse Client-Server API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1499 +msgid "`matrix-synapse-reverse-proxy-companion:8048` for Synapse Server-Server (Federation) API traffic" +msgstr "" + +#: ../../../CHANGELOG.md:1501 +msgid "simplify `matrix-nginx-proxy` configuration — it now only needs to send requests to `matrix-synapse-reverse-proxy-companion` or `matrix-dendrite`, etc., without having to worry about workers" +msgstr "" + +#: ../../../CHANGELOG.md:1503 +msgid "allow reverse-proxying to Synapse, even if `matrix-nginx-proxy` is disabled" +msgstr "" + +#: ../../../CHANGELOG.md:1505 +msgid "`matrix-nginx-proxy` still remains as the public SSL-terminating reverse-proxy in the playbook. All traffic goes through it before reaching any of the services. It's just that now the Synapse traffic is routed through `matrix-synapse-reverse-proxy-companion` like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1507 +msgid "(`matrix-nginx-proxy` -> `matrix-synapse-reverse-proxy-companion` -> (`matrix-synapse` or some Synapse worker))." +msgstr "" + +#: ../../../CHANGELOG.md:1509 +msgid "Various services (like Dimension, etc.) still talk to Synapse via `matrix-nginx-proxy` (e.g. `http://matrix-nginx-proxy:12080`) preferentially. They only talk to Synapse via the reverse-proxy companion (e.g. `http://matrix-synapse-reverse-proxy-companion:8008`) if `matrix-nginx-proxy` is disabled. Services should not be talking to Synapse (e.g. `https://matrix-synapse:8008` directly anymore), because when workers are enabled, that's the Synapse `master` process and may not be serving all URL endpoints needed by the service." +msgstr "" + +#: ../../../CHANGELOG.md:1511 +msgid "Webserver configuration" +msgstr "" + +#: ../../../CHANGELOG.md:1513 +msgid "if you're using `matrix-nginx-proxy` (`matrix_nginx_proxy_enabled: true`, which is the default for the playbook), you don't need to do anything" +msgstr "" + +#: ../../../CHANGELOG.md:1515 +msgid "if you're using your own `nginx` webserver running on the server, you shouldn't be affected. The `/matrix/nginx/conf.d` configuration and exposed ports that you're relying on will automatically be updated in a way that should work" +msgstr "" + +#: ../../../CHANGELOG.md:1517 +msgid "if you're using another local webserver (e.g. Apache, etc.) and haven't changed any ports (`matrix_*_host_bind_port` definitions), you shouldn't be affected. You're likely sending Matrix traffic to `127.0.0.1:8008` and `127.0.0.1:8048`. These ports (`8008` and `8048`) will still be exposed on `127.0.0.1` by default — just not by the `matrix-synapse` container from now on, but by the `matrix-synapse-reverse-proxy-companion` container instead" +msgstr "" + +#: ../../../CHANGELOG.md:1519 +msgid "if you've been exposing `matrix-synapse` ports (`matrix_synapse_container_client_api_host_bind_port`, etc.) manually, you should consider exposing `matrix-synapse-reverse-proxy-companion` ports instead" +msgstr "" + +#: ../../../CHANGELOG.md:1521 +msgid "if you're running Traefik and reverse-proxying directly to the `matrix-synapse` container, you should start reverse-proxying to the `matrix-synapse-reverse-proxy-companion` container instead. See [our updated Traefik example configuration](docs/configuring-playbook-own-webserver.md#sample-configuration-for-running-behind-traefik-20). Note: we now recommend calling the federation entry point `federation` (instead of `synapse`) and reverse-proxying the federation traffic via `matrix-nginx-proxy`, instead of sending it directly to Synapse (or `matrix-synapse-reverse-proxy-companion`). This makes the configuration simpler." +msgstr "" + +#: ../../../CHANGELOG.md:1524 +msgid "2022-11-05" +msgstr "" + +#: ../../../CHANGELOG.md:1526 +msgid "(Backward Compatibility Break) A new default standalone mode for Etherpad" +msgstr "" + +#: ../../../CHANGELOG.md:1528 +msgid "Until now, [Etherpad](https://etherpad.org/) (which [the playbook could install for you](docs/configuring-playbook-etherpad.md)) required the [Dimension integration manager](docs/configuring-playbook-dimension.md) to also be installed, because Etherpad was hosted on the Dimension domain (at `dimension.example.com/etherpad`)." +msgstr "" + +#: ../../../CHANGELOG.md:1530 +msgid "From now on, Etherpad can be installed in `standalone` mode on `etherpad.example.com` and used even without Dimension. This is much more versatile, so the playbook now defaults to this new mode (`etherpad_mode: standalone`)." +msgstr "" + +#: ../../../CHANGELOG.md:1532 +msgid "If you've already got both Etherpad and Dimension in use you could:" +msgstr "" + +#: ../../../CHANGELOG.md:1534 +msgid "**either** keep hosting Etherpad under the Dimension domain by adding `etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary." +msgstr "" + +#: ../../../CHANGELOG.md:1536 +msgid "**or**, you could change to hosting Etherpad separately on `etherpad.example.com`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.example.com/…`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.example.com/etherpad/…`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode" +msgstr "" + +#: ../../../CHANGELOG.md:1539 +msgid "2022-11-04" +msgstr "" + +#: ../../../CHANGELOG.md:1541 +msgid "The playbook now uses external roles for some things" +msgstr "" + +#: ../../../CHANGELOG.md:1543 +msgid "**TLDR**: when updating the playbook and before running it, you'll need to run `make roles` to make [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) download dependency roles (see the [`requirements.yml` file](requirements.yml)) to the `roles/galaxy` directory. Without this, the playbook won't work." +msgstr "" + +#: ../../../CHANGELOG.md:1545 +msgid "We're in the process of trimming the playbook and making it reuse Ansible roles." +msgstr "" + +#: ../../../CHANGELOG.md:1547 +msgid "Starting now, the playbook is composed of 2 types of Ansible roles:" +msgstr "" + +#: ../../../CHANGELOG.md:1549 +msgid "those that live within the playbook itself (`roles/custom/*`)" +msgstr "" + +#: ../../../CHANGELOG.md:1551 +msgid "those downloaded from other sources (using [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to `roles/galaxy`, based on the [`requirements.yml` file](requirements.yml)). These roles are maintained by us or by other people from the Ansible community." +msgstr "" + +#: ../../../CHANGELOG.md:1553 +msgid "We're doing this for greater code-reuse (across Ansible playbooks, including our own related playbooks [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) and [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)) and decreased maintenance burden. Until now, certain features were copy-pasted across playbooks or were maintained separately in each one, with improvements often falling behind. We've also tended to do too much by ourselves — installing Docker on the server from our `matrix-base` role, etc. — something that we'd rather not do anymore by switching to the [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker) role." +msgstr "" + +#: ../../../CHANGELOG.md:1555 +msgid "Some variable names will change during the transition to having more and more external (galaxy) roles. There's a new `custom/matrix_playbook_migration` role added to the playbook which will tell you about these changes each time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1557 +msgid "**From now on**, every time you update the playbook (well, every time the `requirements.yml` file changes), it's best to run `make roles` to update the roles downloaded from other sources. `make roles` is a shortcut (a `roles` target defined in [`Makefile`](Makefile) and executed by the [`make`](https://www.gnu.org/software/make/) utility) which ultimately runs [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to download Ansible roles. If you don't have `make`, you can also manually run the commands seen in the `Makefile`." +msgstr "" + +#: ../../../CHANGELOG.md:1560 +msgid "2022-10-14" +msgstr "" + +#: ../../../CHANGELOG.md:1562 +msgid "synapse-s3-storage-provider support" +msgstr "" + +#: ../../../CHANGELOG.md:1564 +msgid "**`synapse-s3-storage-provider` support is very new and still relatively untested. Using it may cause data loss.**" +msgstr "" + +#: ../../../CHANGELOG.md:1566 +msgid "You can now store your Synapse media repository files on Amazon S3 (or another S3-compatible object store) using [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) — a media provider for Synapse (Python module), which should work faster and more reliably than our previous [Goofys](docs/configuring-playbook-s3-goofys.md) implementation (Goofys will continue to work)." +msgstr "" + +#: ../../../CHANGELOG.md:1568 +msgid "This is not just for initial installations. Users with existing files (stored in the local filesystem) can also migrate their files to `synapse-s3-storage-provider`." +msgstr "" + +#: ../../../CHANGELOG.md:1570 +msgid "To get started, see our [Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](docs/configuring-playbook-synapse-s3-storage-provider.md) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1572 +msgid "Synapse container image customization support" +msgstr "" + +#: ../../../CHANGELOG.md:1574 +msgid "We now support customizing the Synapse container image by adding additional build steps to its [`Dockerfile`](https://docs.docker.com/engine/reference/builder/)." +msgstr "" + +#: ../../../CHANGELOG.md:1576 +msgid "Our [synapse-s3-storage-provider support](#synapse-s3-storage-provider-support) is actually built on this. When `s3-storage-provider` is enabled, we automatically add additional build steps to install its Python module into the Synapse image." +msgstr "" + +#: ../../../CHANGELOG.md:1578 +msgid "Besides this kind of auto-added build steps (for components supported by the playbook), we also let you inject your own custom build steps using configuration like this:" +msgstr "" + +#: ../../../CHANGELOG.md:1589 +msgid "People who have needed to customize Synapse previously had to fork the git repository, make their changes to the `Dockerfile` there, point the playbook to the new repository (`matrix_synapse_container_image_self_build_repo`) and enable self-building from scratch (`matrix_synapse_container_image_self_build: true`). This is harder and slower." +msgstr "" + +#: ../../../CHANGELOG.md:1591 +msgid "With the new Synapse-customization feature in the playbook, we use the original upstream (pre-built, if available) Synapse image and only build on top of it, right on the Matrix server. This is much faster than building all of Synapse from scratch." +msgstr "" + +#: ../../../CHANGELOG.md:1594 +msgid "2022-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:1596 +msgid "matrix-ldap-registration-proxy support" +msgstr "" + +#: ../../../CHANGELOG.md:1598 +msgid "Thanks to [@TheOneWithTheBraid](https://github.com/TheOneWithTheBraid), we now support installing [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) — a proxy which handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../CHANGELOG.md:1600 +msgid "See our [Setting up matrix-ldap-registration-proxy](docs/configuring-playbook-matrix-ldap-registration-proxy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1603 +msgid "2022-09-15" +msgstr "" + +#: ../../../CHANGELOG.md:1605 +msgid "(Potential Backward Compatibility Break) Major improvements to Synapse workers" +msgstr "" + +#: ../../../CHANGELOG.md:1607 +msgid "People who are interested in running a Synapse worker setup should know that **our Synapse worker implementation is much more powerful now**:" +msgstr "" + +#: ../../../CHANGELOG.md:1609 +msgid "we've added support for [Stream writers](#stream-writers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1610 +msgid "we've added support for [multiple federation sender workers](#multiple-federation-sender-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1611 +msgid "we've added support for [multiple pusher workers](#multiple-pusher-workers-support)" +msgstr "" + +#: ../../../CHANGELOG.md:1612 +msgid "we've added support for [running background tasks on a worker](#background-tasks-can-run-on-a-worker)" +msgstr "" + +#: ../../../CHANGELOG.md:1613 +msgid "we've restored support for [`appservice` workers](#appservice-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1614 +msgid "we've restored support for [`user_dir` workers](#user-directory-worker-support-is-back)" +msgstr "" + +#: ../../../CHANGELOG.md:1615 +msgid "we've made it possible to [reliably use more than 1 `media_repository` worker](#using-more-than-1-media-repository-worker-is-now-more-reliable)" +msgstr "" + +#: ../../../CHANGELOG.md:1616 +msgid "see the [Potential Backward Incompatibilities after these Synapse worker changes](#potential-backward-incompatibilities-after-these-synapse-worker-changes)" +msgstr "" + +#: ../../../CHANGELOG.md:1618 +msgid "Stream writers support" +msgstr "" + +#: ../../../CHANGELOG.md:1620 +msgid "From now on, the playbook lets you easily set up various [stream writer workers](https://matrix-org.github.io/synapse/latest/workers.html#stream-writers) which can handle different streams (`events` stream; `typing` URL endpoints, `to_device` URL endpoints, `account_data` URL endpoints, `receipts` URL endpoints, `presence` URL endpoints). All of this work was previously handled by the main Synapse process, but can now be offloaded to stream writer worker processes." +msgstr "" + +#: ../../../CHANGELOG.md:1622 +msgid "If you're using `matrix_synapse_workers_preset: one-of-each`, you'll automatically get 6 additional workers (one for each of the above stream types). Our `little-federation-helper` preset (meant to be quite minimal and focusing in improved federation performance) does not include stream writer workers." +msgstr "" + +#: ../../../CHANGELOG.md:1624 +msgid "If you'd like to customize the number of workers we also make that possible using these variables:" +msgstr "" + +#: ../../../CHANGELOG.md:1637 +msgid "Multiple federation sender workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1639 +msgid "Until now, we only supported a single `federation_sender` worker (`matrix_synapse_workers_federation_sender_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with your federation traffic." +msgstr "" + +#: ../../../CHANGELOG.md:1641 +msgid "Multiple pusher workers support" +msgstr "" + +#: ../../../CHANGELOG.md:1643 +msgid "Until now, we only supported a single `pusher` worker (`matrix_synapse_workers_pusher_workers_count` could either be `0` or `1`). From now on, you can have as many as you want to help with pushing notifications out." +msgstr "" + +#: ../../../CHANGELOG.md:1645 +msgid "Background tasks can run on a worker" +msgstr "" + +#: ../../../CHANGELOG.md:1647 +msgid "From now on, you can put [background task processing on a worker](https://matrix-org.github.io/synapse/latest/workers.html#background-tasks)." +msgstr "" + +#: ../../../CHANGELOG.md:1649 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `background` worker automatically. You can also control the `background` workers count with `matrix_synapse_workers_background_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1651 +msgid "Appservice worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1653 +msgid "We previously had an `appservice` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1655 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of talking to Application Services. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1657 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `appservice` worker automatically. You can also control the `appservice` workers count with `matrix_synapse_workers_appservice_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1659 +msgid "User Directory worker support is back" +msgstr "" + +#: ../../../CHANGELOG.md:1661 +msgid "We previously had a `user_dir` worker type, which [Synapse deprecated in v1.59.0](https://github.com/element-hq/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types). So did we, at the time." +msgstr "" + +#: ../../../CHANGELOG.md:1663 +msgid "The new way to implement such workers is by using a `generic_worker` and dedicating it to the task of serving the user directory. From now on, we have support for this." +msgstr "" + +#: ../../../CHANGELOG.md:1665 +msgid "With `matrix_synapse_workers_preset: one-of-each`, you'll get one `user_dir` worker automatically. You can also control the `user_dir` workers count with `matrix_synapse_workers_user_dir_workers_count`. Only `0` or `1` workers of this type are supported by Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:1667 +msgid "Using more than 1 media repository worker is now more reliable" +msgstr "" + +#: ../../../CHANGELOG.md:1669 +msgid "With `matrix_synapse_workers_preset: one-of-each`, we only launch one `media_repository` worker." +msgstr "" + +#: ../../../CHANGELOG.md:1671 +msgid "If you've been configuring `matrix_synapse_workers_media_repository_workers_count` manually, you may have increased that to more workers. When multiple media repository workers are in use, background tasks related to the media repository must always be configured to run on a single `media_repository` worker via `media_instance_running_background_jobs`. Until now, we weren't doing this correctly, but we now are." +msgstr "" + +#: ../../../CHANGELOG.md:1673 +msgid "Potential Backward Incompatibilities after these Synapse worker changes" +msgstr "" + +#: ../../../CHANGELOG.md:1675 +msgid "Below we'll discuss **potential backward incompatibilities**." +msgstr "" + +#: ../../../CHANGELOG.md:1677 +msgid "**Worker names** (container names, systemd services, worker configuration files) **have changed**. Workers are now labeled sequentially (e.g. `matrix-synapse-worker_generic_worker-18111` -> `matrix-synapse-worker-generic-0`). The playbook will handle these changes automatically." +msgstr "" + +#: ../../../CHANGELOG.md:1679 +msgid "Due to increased worker types support above, people who use `matrix_synapse_workers_preset: one-of-each` should be aware that with these changes, **the playbook will deploy 9 additional workers** (6 stream writers, 1 `appservice` worker, 1 `user_dir` worker, 1 background task worker). This **may increase RAM/CPU usage**, etc. If you find your server struggling, consider disabling some workers with the appropriate `matrix_synapse_workers_*_workers_count` variables." +msgstr "" + +#: ../../../CHANGELOG.md:1681 +msgid "**Metric endpoints have also changed** (`/metrics/synapse/worker/generic_worker-18111` -> `/metrics/synapse/worker/generic-worker-0`). If you're [collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server), consider revisiting our [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server) docs and updating your Prometheus configuration. **If you're collecting metrics to the integrated Prometheus server** (not enabled by default), **your Prometheus configuration will be updated automatically**. Old data (from before this change) may stick around though." +msgstr "" + +#: ../../../CHANGELOG.md:1683 +msgid "**the format of `matrix_synapse_workers_enabled_list` has changed**. You were never advised to use this variable for directly creating workers (we advise people to control workers using `matrix_synapse_workers_preset` or by tweaking `matrix_synapse_workers_*_workers_count` variables only), but some people may have started using the `matrix_synapse_workers_enabled_list` variable to gain more control over workers. If you're one of them, you'll need to adjust its value. See `roles/custom/matrix-synapse/defaults/main.yml` for more information on the new format. The playbook will also do basic validation and complain if you got something wrong." +msgstr "" + +#: ../../../CHANGELOG.md:1686 +msgid "2022-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:1688 +msgid "Cactus Comments support" +msgstr "" + +#: ../../../CHANGELOG.md:1690 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now set up [Cactus Comments](https://cactus.chat) — federated comment system for the web based on Matrix." +msgstr "" + +#: ../../../CHANGELOG.md:1692 +msgid "See our [Setting up Cactus Comments](docs/configuring-playbook-cactus-comments.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1695 +msgid "2022-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:1697 +msgid "Postmoogle email bridge support" +msgstr "" + +#: ../../../CHANGELOG.md:1699 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the new [Postmoogle](https://github.com/etkecc/postmoogle) email bridge. Postmoogle is like the [Email2Matrix bridge](https://github.com/devture/email2matrix) (also [already supported by the playbook](docs/configuring-playbook-email2matrix.md)), but more capable and with the intention to soon support *sending* emails, not just receiving." +msgstr "" + +#: ../../../CHANGELOG.md:1701 +msgid "See our [Setting up Postmoogle email bridging](docs/configuring-playbook-bridge-postmoogle.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1704 +msgid "2022-08-10" +msgstr "" + +#: ../../../CHANGELOG.md:1706 +msgid "mautrix-whatsapp default configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:1708 +msgid "In [Pull Request #2012](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2012), we've made some changes to the default configuration used by the `mautrix-whatsapp` bridge." +msgstr "" + +#: ../../../CHANGELOG.md:1710 +msgid "If you're using this bridge, you should look into this PR and see if the new configuration suits you. If not, you can always change individual preferences in your `vars.yml` file." +msgstr "" + +#: ../../../CHANGELOG.md:1712 +msgid "Most notably, spaces support has been enabled by default. The bridge will now group rooms into a Matrix space. **If you've already bridged to Whatsapp** prior to this update, you will need to send `!wa sync space` to the bridge bot to make it create the space and put your existing rooms into it." +msgstr "" + +#: ../../../CHANGELOG.md:1715 +msgid "2022-08-09" +msgstr "" + +#: ../../../CHANGELOG.md:1717 +msgid "Conduit support" +msgstr "" + +#: ../../../CHANGELOG.md:1719 +msgid "Thanks to [Charles Wright](https://github.com/cvwright), we now have optional experimental [Conduit](https://conduit.rs) homeserver support for new installations. This comes as a follow-up to the playbook getting [Dendrite support](#dendrite-support) earlier this year." +msgstr "" + +#: ../../../CHANGELOG.md:1721 +msgid "Existing Synapse or Dendrite installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:1723 +msgid "To try out Conduit, we recommend that you **use a new server** and the following `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:1729 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse or Dendrite to Conduit) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:1732 +msgid "2022-07-29" +msgstr "" + +#: ../../../CHANGELOG.md:1734 +msgid "mautrix-discord support" +msgstr "" + +#: ../../../CHANGELOG.md:1736 +msgid "Thanks to [MdotAmaan](https://github.com/MdotAmaan)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mautrix-discord](https://mau.dev/mautrix/discord) bridge. See our [Setting up Mautrix Discord bridging](docs/configuring-playbook-bridge-mautrix-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:1738 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md) and [mx-puppet-discord](docs/configuring-playbook-bridge-mx-puppet-discord.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:1741 +msgid "2022-07-27" +msgstr "" + +#: ../../../CHANGELOG.md:1743 +msgid "matrix-appservice-kakaotalk support" +msgstr "" + +#: ../../../CHANGELOG.md:1745 +msgid "The playbook now supports bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) via [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) — a bridge based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code. Thanks to [hnarjis](https://github.com/hnarjis) for helping us add support for this!" +msgstr "" + +#: ../../../CHANGELOG.md:1747 +msgid "See our [Setting up Appservice Kakaotalk bridging](docs/configuring-playbook-bridge-appservice-kakaotalk.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1750 +msgid "2022-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:1752 +msgid "maubot support" +msgstr "" + +#: ../../../CHANGELOG.md:1754 +msgid "Thanks to [Stuart Mumford (@Cadair)](https://github.com/cadair) for starting ([PR #373](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/373) and [PR #622](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/622)) and to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s) for finishing up (in [PR #1894](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894)), the playbook can now help you set up [maubot](https://github.com/maubot/maubot) — a plugin-based Matrix bot system." +msgstr "" + +#: ../../../CHANGELOG.md:1756 +msgid "See our [Setting up maubot](docs/configuring-playbook-bot-maubot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1759 +msgid "2022-07-14" +msgstr "" + +#: ../../../CHANGELOG.md:1761 +msgid "mx-puppet-skype removal" +msgstr "" + +#: ../../../CHANGELOG.md:1763 +msgid "The playbook no longer includes the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge, because it has been broken and unmaintained for a long time. Users that have `matrix_mx_puppet_skype_enabled` in their configuration files will encounter an error when running the playbook until they remove references to this bridge from their configuration." +msgstr "" + +#: ../../../CHANGELOG.md:1765 +msgid "To completely clean up your server from `mx-puppet-skype`'s presence on it:" +msgstr "" + +#: ../../../CHANGELOG.md:1767 +msgid "ensure your Ansible configuration (`vars.yml` file) no longer contains `matrix_mx_puppet_skype_*` references" +msgstr "" + +#: ../../../CHANGELOG.md:1768 +msgid "stop and disable the systemd service (run `systemctl disable --now matrix-mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1769 +msgid "delete the systemd service (run `rm /etc/systemd/system/matrix-mx-puppet-skype.service` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1770 +msgid "delete `/matrix/mx-puppet-skype` (run `rm -rf /matrix/mx-puppet-skype` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1771 +msgid "drop the `matrix_mx_puppet_skype` database (run `/usr/local/bin/matrix-postgres-cli` on the server, and execute the `DROP DATABASE matrix_mx_puppet_skype;` query there)" +msgstr "" + +#: ../../../CHANGELOG.md:1773 +msgid "If you still need bridging to [Skype](https://www.skype.com/), consider switching to [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) instead. See [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:1775 +msgid "If you think this is a mistake and `mx-puppet-skype` works for you (or you get it to work somehow), let us know and we may reconsider this removal." +msgstr "" + +#: ../../../CHANGELOG.md:1777 +msgid "signald (0.19.0+) upgrade requires data migration" +msgstr "" + +#: ../../../CHANGELOG.md:1779 +msgid "In [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921) we upgraded [signald](https://signald.org/) (used by the mautrix-signal bridge) from `v0.18.5` to `v0.20.0`." +msgstr "" + +#: ../../../CHANGELOG.md:1781 +msgid "Back in the [`v0.19.0` released of signald](https://gitlab.com/signald/signald/-/blob/main/releases/0.19.0.md) (which we skipped and migrated straight to `v0.20.0`), a new `--migrate-data` command had been added that migrates avatars, group images, attachments, etc., into the database (those were previously stored in the filesystem)." +msgstr "" + +#: ../../../CHANGELOG.md:1783 +msgid "If you've been using the mautrix-signal bridge for a while, you may have files stored in the local filesystem, which will need to be upgraded." +msgstr "" + +#: ../../../CHANGELOG.md:1785 +msgid "We attempt to do this data migration automatically every time Signald starts (`matrix-mautrix-signal-daemon.service`) using a `ExecStartPre` systemd unit definition." +msgstr "" + +#: ../../../CHANGELOG.md:1787 +msgid "Keep an eye on your Signal bridge and let us know (in our [support room](README.md#support) or in [Pull Request #1921](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921)) if you experience any trouble!" +msgstr "" + +#: ../../../CHANGELOG.md:1790 +msgid "2022-07-05" +msgstr "" + +#: ../../../CHANGELOG.md:1792 +msgid "Ntfy push notifications support" +msgstr "" + +#: ../../../CHANGELOG.md:1794 +msgid "Thanks to [Julian Foad](https://matrix.to/#/@julian:foad.me.uk), the playbook can now install a [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../CHANGELOG.md:1796 +msgid "See our [Setting up the ntfy push notifications server](docs/configuring-playbook-ntfy.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1799 +msgid "2022-06-23" +msgstr "" + +#: ../../../CHANGELOG.md:1801 +msgid "(Potential Backward Compatibility Break) Changes around metrics collection" +msgstr "" + +#: ../../../CHANGELOG.md:1803 +msgid "**TLDR**: we've made extensive **changes to metrics exposure/collection, which concern people using an external Prometheus server**. If you don't know what that is, you don't need to read below." +msgstr "" + +#: ../../../CHANGELOG.md:1805 +msgid "**Why do major changes to metrics**? Because various services were exposing metrics in different, hacky, ways. Synapse was exposing metrics at `/_synapse/metrics` and `/_synapse-worker-…/metrics` on the `matrix.example.com`. The Hookshot role was **repurposing** the Granana web UI domain (`stats.example.com`) for exposing its metrics on `stats.example.com/hookshot/metrics`, while protecting these routes using Basic Authentication **normally used for Synapse** (`/_synapse/metrics`). Node-exporter and Postgres-exporter roles were advising for more `stats.example.com` usage in manual ways. Each role was doing things differently and mixing variables from other roles. Each metrics endpoint was ending up in a different place, protected by who knows what Basic Authentication credentials (if protected at all)." +msgstr "" + +#: ../../../CHANGELOG.md:1807 +msgid "**The solution**: a completely revamped way to expose metrics to an external Prometheus server. We are **introducing new `https://matrix.example.com/metrics/*` endpoints**, where various services *can* expose their metrics, for collection by external Prometheus servers. To enable the `/metrics/*` endpoints, use `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`. There's also a way to protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). See the `matrix-nginx-proxy` role or our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation for additional variables around `matrix_nginx_proxy_proxy_matrix_metrics_enabled`." +msgstr "" + +#: ../../../CHANGELOG.md:1809 +msgid "**If you are using the [Hookshot bridge](docs/configuring-playbook-bridge-hookshot.md)**, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1810 +msgid "**Metrics may not be enabled by default anymore**:" +msgstr "" + +#: ../../../CHANGELOG.md:1811 +msgid "If Prometheus is enabled (`prometheus_enabled: true`), then Hookshot metrics will be enabled automatically (`matrix_hookshot_metrics_enabled: true`). These metrics will be collected from the local (in-container) Prometheus over the container network." +msgstr "" + +#: ../../../CHANGELOG.md:1812 +msgid "**If Prometheus is not enabled** (you are either not using Prometheus or are using an external one), **Hookshot metrics will not be enabled by default anymore**. Feel free to enable them by setting `matrix_hookshot_metrics_enabled: true`. Also, see below." +msgstr "" + +#: ../../../CHANGELOG.md:1813 +msgid "When metrics are meant to be **consumed by an external Prometheus server**, `matrix_hookshot_metrics_proxying_enabled` needs to be set to `true`, so that metrics would be exposed (proxied) \"publicly\" on `https://matrix.example.com/metrics/hookshot`. To make use of this, you'll also need to enable the new `https://matrix.example.com/metrics/*` endpoints mentioned above, using `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. Learn more in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:1814 +msgid "**We've changed the URL we're exposing Hookshot metrics at** for external Prometheus servers. Until now, you were advised to consume Hookshot metrics from `https://stats.example.com/hookshot/metrics` (working in conjunction with `matrix_nginx_proxy_proxy_synapse_metrics`). From now on, **this no longer works**. As described above, you need to start consuming metrics from `https://matrix.example.com/metrics/hookshot`." +msgstr "" + +#: ../../../CHANGELOG.md:1816 +msgid "**If you're using node-exporter** (`matrix_prometheus_node_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_node_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/node-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1818 +msgid "**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.example.com/metrics/postgres-exporter`." +msgstr "" + +#: ../../../CHANGELOG.md:1820 +msgid "**If you're using Synapse** and would like to collect its metrics from an external Prometheus server, you may find that:" +msgstr "" + +#: ../../../CHANGELOG.md:1822 +msgid "Exposing metrics is now done using `matrix_synapse_metrics_proxying_enabled`, not `matrix_nginx_proxy_proxy_synapse_metrics: true`. You may still need to enable metrics using `matrix_synapse_metrics_enabled: true` before exposing them." +msgstr "" + +#: ../../../CHANGELOG.md:1823 +msgid "Protecting metrics endpoints using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) is now done in another way. See our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation" +msgstr "" + +#: ../../../CHANGELOG.md:1824 +msgid "If Synapse metrics are exposed, they will be made available at `https://matrix.example.com/metrics/synapse/main-process` or `https://matrix.example.com/metrics/synapse/worker/TYPE-ID` (when workers are enabled), not at `https://matrix.example.com/_synapse/metrics` and `https://matrix.example.com/_synapse-worker-…/metrics`" +msgstr "" + +#: ../../../CHANGELOG.md:1825 +msgid "The playbook still generates an `external_prometheus.yml.example` sample file for scraping Synapse from Prometheus as described in [Collecting Synapse worker metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-synapse-worker-metrics-to-an-external-prometheus-server), but it's now saved under `/matrix/synapse` (not `/matrix`)." +msgstr "" + +#: ../../../CHANGELOG.md:1827 +msgid "**If you where already using a external Prometheus server** before this change, and you gave a hashed version of the password as a variable, the playbook will now take care of hashing the password for you. Thus, you need to provide the non-hashed version now." +msgstr "" + +#: ../../../CHANGELOG.md:1829 +msgid "2022-06-13" +msgstr "" + +#: ../../../CHANGELOG.md:1831 +msgid "go-skype-bridge bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1833 +msgid "Thanks to [CyberShadow](https://github.com/CyberShadow), the playbook can now install the [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) bridge for bridging Matrix to [Skype](https://www.skype.com/)." +msgstr "" + +#: ../../../CHANGELOG.md:1835 +msgid "See our [Setting up Go Skype Bridge bridging](docs/configuring-playbook-bridge-go-skype-bridge.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1837 +msgid "The playbook has supported [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridging (see [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md)) since [2020-04-09](#2020-04-09), but `mx-puppet-skype` is reportedly broken." +msgstr "" + +#: ../../../CHANGELOG.md:1840 +msgid "2022-06-09" +msgstr "" + +#: ../../../CHANGELOG.md:1842 +msgid "Running Ansible in a container can now happen on the Matrix server itself" +msgstr "" + +#: ../../../CHANGELOG.md:1844 +msgid "If you're tired of being on an old and problematic Ansible version, you can now run [run Ansible in a container on the Matrix server itself](docs/ansible.md#running-ansible-in-a-container-on-the-matrix-server-itself)." +msgstr "" + +#: ../../../CHANGELOG.md:1847 +msgid "2022-05-31" +msgstr "" + +#: ../../../CHANGELOG.md:1849 +msgid "Synapse v1.60 upgrade may cause trouble and require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:1851 +msgid "Synapse v1.60 will try to add a new unique index to `state_group_edges` upon startup and could fail if your database is corrupted." +msgstr "" + +#: ../../../CHANGELOG.md:1853 +msgid "We haven't observed this problem yet, but [the Synapse v1.60.0 upgrade notes](https://github.com/element-hq/synapse/blob/v1.60.0/docs/upgrade.md#adding-a-new-unique-index-to-state_group_edges-could-fail-if-your-database-is-corrupted) mention it, so we're giving you a heads up here in case you're unlucky." +msgstr "" + +#: ../../../CHANGELOG.md:1855 +msgid "**If Synapse fails to start** after your next playbook run, you'll need to:" +msgstr "" + +#: ../../../CHANGELOG.md:1857 +msgid "SSH into the Matrix server" +msgstr "" + +#: ../../../CHANGELOG.md:1858 +msgid "launch `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:1859 +msgid "switch to the `synapse` database: `\\c synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:1860 +msgid "run the following SQL query:" +msgstr "" + +#: ../../../CHANGELOG.md:1879 +msgid "You could then restart services: `ansible-playbook -i inventory/hosts setup.yml --tags=start`" +msgstr "" + +#: ../../../CHANGELOG.md:1882 +msgid "2022-04-25" +msgstr "" + +#: ../../../CHANGELOG.md:1884 +msgid "Buscarron bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1886 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [the Buscarron bot](https://github.com/etkecc/buscarron). It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../CHANGELOG.md:1888 +msgid "See our [Setting up Buscarron](docs/configuring-playbook-bot-buscarron.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1891 +msgid "2022-04-21" +msgstr "" + +#: ../../../CHANGELOG.md:1893 +msgid "matrix-registration-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:1895 +msgid "Thanks to [Julian-Samuel Gebühr (@moan0s)](https://github.com/moan0s), the playbook can now help you set up [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) — a bot that is used to create and manage registration tokens for a Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1897 +msgid "See our [Setting up matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1900 +msgid "2022-04-19" +msgstr "" + +#: ../../../CHANGELOG.md:1902 +msgid "BorgBackup support" +msgstr "" + +#: ../../../CHANGELOG.md:1904 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [Borg](https://www.borgbackup.org/) backups with [borgmatic](https://torsion.org/borgmatic/) of your Matrix server." +msgstr "" + +#: ../../../CHANGELOG.md:1906 +msgid "See our [Setting up BorgBackup](docs/configuring-playbook-backup-borg.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1908 +msgid "(Compatibility Break) Upgrading to Synapse v1.57 on setups using workers may require manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1910 +msgid "If you're running a worker setup for Synapse (`matrix_synapse_workers_enabled: true`), the [Synapse v1.57 upgrade notes](https://github.com/element-hq/synapse/blob/v1.57.0rc1/docs/upgrade.md#changes-to-database-schema-for-application-services) say that you may need to take special care when upgrading:" +msgstr "" + +#: ../../../CHANGELOG.md:1912 +msgid "Synapse v1.57.0 includes a change to the way transaction IDs are managed for application services. If your deployment uses a dedicated worker for application service traffic, **it must be stopped** when the database is upgraded (which normally happens when the main process is upgraded), to ensure the change is made safely without any risk of reusing transaction IDs." +msgstr "" + +#: ../../../CHANGELOG.md:1914 +msgid "If you're not running an `appservice` worker (`matrix_synapse_workers_preset: little-federation-helper` or `matrix_synapse_workers_appservice_workers_count: 0`), you are probably safe to upgrade as per normal, without taking any special care." +msgstr "" + +#: ../../../CHANGELOG.md:1916 +msgid "If you are running a setup with an `appservice` worker, or otherwise want to be on the safe side, we recommend the following upgrade path:" +msgstr "" + +#: ../../../CHANGELOG.md:1918 +msgid "Pull the latest playbook changes" +msgstr "" + +#: ../../../CHANGELOG.md:1919 +msgid "Stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:1920 +msgid "Re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`)" +msgstr "" + +#: ../../../CHANGELOG.md:1921 +msgid "Start Postgres (`systemctl start matrix-postgres` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1922 +msgid "Start the main Synapse process (`systemctl start matrix-synapse` on the server)" +msgstr "" + +#: ../../../CHANGELOG.md:1923 +msgid "Wait a while so that Synapse can start and complete the database migrations. You can use `journalctl -fu matrix-synapse` on the server to get a clue. Waiting a few minutes should also be enough." +msgstr "" + +#: ../../../CHANGELOG.md:1924 +msgid "It should now be safe to start all other services. `ansible-playbook -i inventory/hosts setup.yml --tags=start` will do it for you" +msgstr "" + +#: ../../../CHANGELOG.md:1927 +msgid "2022-04-14" +msgstr "" + +#: ../../../CHANGELOG.md:1929 +msgid "(Compatibility Break) Changes to `docker-src` permissions necessitating manual action" +msgstr "" + +#: ../../../CHANGELOG.md:1931 +msgid "Users who build container images from source will need to manually correct file permissions of some directories on the server." +msgstr "" + +#: ../../../CHANGELOG.md:1933 +msgid "When self-building, the playbook used to `git clone` repositories (into `/matrix/SERVICE/docker-src`) using the `root` user, but now uses `matrix` instead to work around [the following issue with git 2.35.2](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1749)." +msgstr "" + +#: ../../../CHANGELOG.md:1935 +msgid "If you're on a non-`amd64` architecture (that is, you're overriding `matrix_architecture` in your `vars.yml` file) or you have enabled self-building for some service (e.g. `matrix_*_self_build: true`), you're certainly building some container images from source and have `docker-src` directories with mixed permissions lying around in various `/matrix/SERVICE` directories." +msgstr "" + +#: ../../../CHANGELOG.md:1937 +msgid "The playbook *could* correct these permissions automatically, but that requires additional Ansible tasks in some ~45 different places — something that takes considerable effort. So we ask users observing errors related to `docker-src` directories to correct the problem manually by **running this command on the Matrix server** (which deletes all `/matrix/*/docker-src` directories): `find /matrix -maxdepth 2 -name 'docker-src' | xargs rm -rf`" +msgstr "" + +#: ../../../CHANGELOG.md:1940 +msgid "2022-03-17" +msgstr "" + +#: ../../../CHANGELOG.md:1942 +msgid "(Compatibility Break) ma1sd identity server no longer installed by default" +msgstr "" + +#: ../../../CHANGELOG.md:1944 +msgid "The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:1946 +msgid "The main reason we used to install ma1sd by default in the past was to prevent Element clients from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks." +msgstr "" + +#: ../../../CHANGELOG.md:1948 +msgid "Since Element clients no longer default to using a public identity server if another one is not provided, we can stop installing ma1sd." +msgstr "" + +#: ../../../CHANGELOG.md:1950 +msgid "If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:1957 +msgid "2022-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:1959 +msgid "matrix_encryption_disabler support" +msgstr "" + +#: ../../../CHANGELOG.md:1961 +msgid "We now support installing the [matrix_encryption_disabler](https://github.com/digitalentity/matrix_encryption_disabler) Synapse module, which lets you prevent End-to-End-Encryption from being enabled by users on your homeserver. The popular opinion is that this is dangerous and shouldn't be done, but there are valid use cases for disabling encryption discussed [here](https://github.com/matrix-org/synapse/issues/4401)." +msgstr "" + +#: ../../../CHANGELOG.md:1963 +msgid "To enable this module (and prevent encryption from being used on your homserver), add `matrix_synapse_ext_encryption_disabler_enabled: true` to your configuration. This module provides further customization. Check its other configuration settings (and defaults) in `roles/custom/matrix-synapse/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:1966 +msgid "2022-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:1968 +msgid "matrix-hookshot bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:1970 +msgid "Thanks to [HarHarLinks](https://github.com/HarHarLinks), the playbook can now install the [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) bridge for bridging Matrix to multiple project management services, such as GitHub, GitLab and JIRA. See our [Setting up matrix-hookshot](docs/configuring-playbook-bridge-hookshot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:1973 +msgid "2022-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:1975 +msgid "ARM support for matrix-corporal" +msgstr "" + +#: ../../../CHANGELOG.md:1977 +msgid "[matrix-corporal](https://github.com/devture/matrix-corporal) (as of version `2.2.3`) is now published to Docker Hub (see [devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal)) as a multi-arch container image with support for all these platforms: `linux/amd64`, `linux/arm64/v8` and `linux/arm/v7`. The playbook no longer resorts to self-building matrix-corporal on these ARM architectures." +msgstr "" + +#: ../../../CHANGELOG.md:1980 +msgid "2022-01-07" +msgstr "" + +#: ../../../CHANGELOG.md:1982 +msgid "Dendrite support" +msgstr "" + +#: ../../../CHANGELOG.md:1984 +msgid "**TLDR**: We now have optional experimental [Dendrite](https://github.com/matrix-org/dendrite) homeserver support for new installations. **Existing (Synapse) installations need to be updated**, because some internals changed. See [Adapting the configuration for existing Synapse installations](#adapting-the-configuration-for-existing-synapse-installations)." +msgstr "" + +#: ../../../CHANGELOG.md:1986 +msgid "[Jip J. Dekker](https://github.com/Dekker1) did the [initial work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/818) of adding [Dendrite](https://github.com/matrix-org/dendrite) support to the playbook back in January 2021. Lots of work (and time) later, Dendrite support is finally ready for testing." +msgstr "" + +#: ../../../CHANGELOG.md:1988 +msgid "We believe that 2022 will be the year of the non-Synapse Matrix server!" +msgstr "" + +#: ../../../CHANGELOG.md:1990 +msgid "The playbook was previously quite [Synapse](https://github.com/element-hq/synapse)-centric, but can now accommodate multiple homeserver implementations. Only one homeserver implementation can be active (installed) at a given time." +msgstr "" + +#: ../../../CHANGELOG.md:1992 +msgid "**Synapse is still the default homeserver implementation** installed by the playbook. A new variable (`matrix_homeserver_implementation`) controls which server implementation is enabled (`synapse` or `dendrite` at the given moment)." +msgstr "" + +#: ../../../CHANGELOG.md:1994 +msgid "Adapting the configuration for existing Synapse installations" +msgstr "" + +#: ../../../CHANGELOG.md:1996 +msgid "Because the playbook is not so Synapse-centric anymore, a small configuration change is necessary for existing installations to bring them up to date." +msgstr "" + +#: ../../../CHANGELOG.md:1998 +msgid "The `vars.yml` file for **existing installations will need to be updated** by adding this **additional configuration**:" +msgstr "" + +#: ../../../CHANGELOG.md:2010 +msgid "Trying out Dendrite" +msgstr "" + +#: ../../../CHANGELOG.md:2012 +msgid "Finally, **to try out Dendrite**, we recommend that you **use a new server** and the following addition to your `vars.yml` configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2018 +msgid "**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse to Dendrite) without data loss." +msgstr "" + +#: ../../../CHANGELOG.md:2020 +msgid "We're excited to gain support for other homeserver implementations, like [Conduit](https://conduit.rs/), etc!" +msgstr "" + +#: ../../../CHANGELOG.md:2022 +msgid "Honoroit bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2024 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now help you set up [Honoroit](https://github.com/etkecc/honoroit) — a helpdesk bot." +msgstr "" + +#: ../../../CHANGELOG.md:2026 +msgid "See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2029 +msgid "2022-01-06" +msgstr "" + +#: ../../../CHANGELOG.md:2031 +msgid "Cinny support" +msgstr "" + +#: ../../../CHANGELOG.md:2033 +msgid "Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) — a new simple, elegant and secure Matrix client." +msgstr "" + +#: ../../../CHANGELOG.md:2035 +msgid "By default, we still install Element Web. Still, people who'd like to try Cinny out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2037 +msgid "Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2040 +msgid "2021-12-22" +msgstr "" + +#: ../../../CHANGELOG.md:2042 +msgid "Twitter bridging support via mautrix-twitter" +msgstr "" + +#: ../../../CHANGELOG.md:2044 +msgid "Thanks to [Matthew Cengia](https://github.com/mattcen) and [Shreyas Ajjarapu](https://github.com/shreyasajj), besides [mx-puppet-twitter](docs/configuring-playbook-bridge-mx-puppet-twitter.md), bridging to [Twitter](https://twitter.com/) can now also happen with [mautrix-twitter](docs/configuring-playbook-bridge-mautrix-twitter.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2047 +msgid "2021-12-14" +msgstr "" + +#: ../../../CHANGELOG.md:2049 +msgid "(Security) Users of the Signal bridge may wish to upgrade it to work around log4j vulnerability" +msgstr "" + +#: ../../../CHANGELOG.md:2051 +msgid "Recently, a security vulnerability affecting the Java logging package `log4j` [has been discovered](https://www.huntress.com/blog/rapid-response-critical-rce-vulnerability-is-affecting-java). Software that uses this Java package is potentially vulnerable." +msgstr "" + +#: ../../../CHANGELOG.md:2053 +msgid "One such piece of software that is part of the playbook is the [mautrix-signal bridge](./docs/configuring-playbook-bridge-mautrix-signal.md), which [has been patched already](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1452). If you're running this bridge, you may wish to [upgrade](./docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2056 +msgid "2021-11-11" +msgstr "" + +#: ../../../CHANGELOG.md:2058 +msgid "Dropped support for Postgres v9.6" +msgstr "" + +#: ../../../CHANGELOG.md:2060 +msgid "Postgres v9.6 reached its end of life today, so the playbook will refuse to run for you if you're still on that version." +msgstr "" + +#: ../../../CHANGELOG.md:2062 +msgid "Synapse still supports v9.6 (for now), but we're retiring support for it early, to avoid having to maintain support for so many Postgres versions. Users that are still on Postgres v9.6 can easily [upgrade Postgres](docs/maintenance-postgres.md#upgrading-postgresql) via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2065 +msgid "2021-10-23" +msgstr "" + +#: ../../../CHANGELOG.md:2067 +msgid "Hangouts bridge no longer updated, superseded by a Googlechat bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2069 +msgid "The mautrix-hangouts bridge is no longer receiving updates upstream and is likely to stop working in the future. We still retain support for this bridge in the playbook, but you're encouraged to switch away from it." +msgstr "" + +#: ../../../CHANGELOG.md:2071 +msgid "There's a new [mautrix-googlechat](https://github.com/mautrix/googlechat) bridge that you can [install using the playbook](docs/configuring-playbook-bridge-mautrix-googlechat.md). Your **Hangouts bridge data will not be migrated**, however. You need to start fresh with the new bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2074 +msgid "2021-08-23" +msgstr "" + +#: ../../../CHANGELOG.md:2076 +msgid "LinkedIn bridging support via beeper-linkedin" +msgstr "" + +#: ../../../CHANGELOG.md:2078 +msgid "Thanks to [Alexandar Mechev](https://github.com/apmechev), the playbook can now install the [beeper-linkedin](https://gitlab.com/beeper/linkedin) bridge for bridging to [LinkedIn](https://www.linkedin.com/) Messaging." +msgstr "" + +#: ../../../CHANGELOG.md:2080 +msgid "This brings the total number of bridges supported by the playbook up to 20. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2082 +msgid "To get started with bridging to LinkedIn, see [Setting up Beeper LinkedIn bridging](docs/configuring-playbook-bridge-beeper-linkedin.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2085 +msgid "2021-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:2087 +msgid "Sygnal upgraded — ARM support and no longer requires a database" +msgstr "" + +#: ../../../CHANGELOG.md:2089 +msgid "The [Sygnal](docs/configuring-playbook-sygnal.md) push gateway has been upgraded from `v0.9.0` to `v0.10.1`." +msgstr "" + +#: ../../../CHANGELOG.md:2091 +msgid "This is an optional component for the playbook, so most of our users wouldn't care about this announcement." +msgstr "" + +#: ../../../CHANGELOG.md:2093 +msgid "Since this feels like a relatively big (and untested, as of yet) Sygnal change, we're putting up this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2095 +msgid "The new version is also available for the ARM architecture. It also no longer requires a database anymore. If you need to downgrade to the previous version, changing `matrix_sygnal_version` or `matrix_sygnal_docker_image` will not be enough, as we've removed the `database` configuration completely. You'd need to switch to an earlier playbook commit." +msgstr "" + +#: ../../../CHANGELOG.md:2098 +msgid "2021-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:2100 +msgid "Hydrogen support" +msgstr "" + +#: ../../../CHANGELOG.md:2102 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) — a new lightweight Matrix client with legacy and mobile browser support." +msgstr "" + +#: ../../../CHANGELOG.md:2104 +msgid "By default, we still install Element Web, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2106 +msgid "Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2109 +msgid "2021-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2111 +msgid "Heisenbridge support" +msgstr "" + +#: ../../../CHANGELOG.md:2113 +msgid "Thanks to [Toni Spets (hifi)](https://github.com/hifi), the playbook now supports bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) using yet another bridge (besides matrix-appservice-irc), called [Heisenbridge](https://github.com/hifi/heisenbridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2115 +msgid "Additional details are available in [Setting up Heisenbridge bouncer-style IRC bridging](docs/configuring-playbook-bridge-heisenbridge.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2118 +msgid "2021-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:2120 +msgid "Disabling TLSv1 and TLSv1.1 for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:2122 +msgid "To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/999) from our default [coturn](https://github.com/coturn/coturn) configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2124 +msgid "If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:2132 +msgid "2021-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2134 +msgid "Automated local Postgres backup support" +msgstr "" + +#: ../../../CHANGELOG.md:2136 +msgid "Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local)." +msgstr "" + +#: ../../../CHANGELOG.md:2138 +msgid "Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2141 +msgid "2021-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2143 +msgid "Mjolnir moderation tool (bot) support" +msgstr "" + +#: ../../../CHANGELOG.md:2145 +msgid "Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook can now install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation tool (bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2147 +msgid "Additional details are available in [Setting up Mjolnir](docs/configuring-playbook-bot-mjolnir.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2150 +msgid "2021-03-20" +msgstr "" + +#: ../../../CHANGELOG.md:2152 +msgid "Sygnal push gateway support" +msgstr "" + +#: ../../../CHANGELOG.md:2154 +msgid "The playbook can now install the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../CHANGELOG.md:2156 +msgid "This is only useful to people who develop/build their own Matrix client applications." +msgstr "" + +#: ../../../CHANGELOG.md:2158 +msgid "Additional details are available in our [Setting up the Sygnal push gateway](docs/configuring-playbook-sygnal.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2161 +msgid "2021-03-16" +msgstr "" + +#: ../../../CHANGELOG.md:2163 +msgid "Go-NEB support" +msgstr "" + +#: ../../../CHANGELOG.md:2165 +msgid "Thanks to [Zir0h](https://github.com/Zir0h), the playbook can now install and configure the [Go-NEB](https://github.com/matrix-org/go-neb) bot." +msgstr "" + +#: ../../../CHANGELOG.md:2167 +msgid "Additional details are available in [Setting up Go-NEB](docs/configuring-playbook-bot-go-neb.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2170 +msgid "2021-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:2172 +msgid "GroupMe bridging support via mx-puppet-groupme" +msgstr "" + +#: ../../../CHANGELOG.md:2174 +msgid "Thanks to [Cody Neiman](https://github.com/xangelix), the playbook can now install the [mx-puppet-groupme](https://gitlab.com/robintown/mx-puppet-groupme) bridge for bridging to [GroupMe](https://groupme.com)." +msgstr "" + +#: ../../../CHANGELOG.md:2176 +msgid "This brings the total number of bridges supported by the playbook up to 18. See all supported bridges [here](docs/configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../CHANGELOG.md:2178 +msgid "To get started, follow our [Setting up MX Puppet GroupMe](docs/configuring-playbook-bridge-mx-puppet-groupme.md) docs." +msgstr "" + +#: ../../../CHANGELOG.md:2180 +msgid "Mautrix Instagram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2182 +msgid "The playbook now supports bridging with [Instagram](https://www.instagram.com/) by installing the [mautrix-instagram](https://github.com/tulir/mautrix-instagram) bridge. This playbook functionality is available thanks to [@MarcProe](https://github.com/MarcProe)." +msgstr "" + +#: ../../../CHANGELOG.md:2184 +msgid "Additional details are available in [Setting up Mautrix Instagram bridging](docs/configuring-playbook-bridge-mautrix-instagram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2186 +msgid "Synapse workers support" +msgstr "" + +#: ../../../CHANGELOG.md:2188 +msgid "After [lots and lots of work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/456) (done over many months by [Marcel Partap](https://github.com/eMPee584), [Max Klenk](https://github.com/maxklenk), a few others from the [Technical University of Dresden, Germany](https://tu-dresden.de/) and various other contributors), support for Synapse workers has finally landed." +msgstr "" + +#: ../../../CHANGELOG.md:2190 +msgid "Having support for workers makes the playbook suitable for larger homeserver deployments." +msgstr "" + +#: ../../../CHANGELOG.md:2192 +msgid "Our setup is not yet perfect (we don't support all types of workers; scaling some of them (like `pusher`, `federation_sender`) beyond a single instance is not yet supported). Still, it's a great start and can already power homeservers with thousands of users, like the [Matrix deployment at TU Dresden](https://doc.matrix.tu-dresden.de/en/) discussed in [Matrix Live S06E09 — TU Dresden on their Matrix deployment](https://www.youtube.com/watch?v=UHJX2pmT2gk)." +msgstr "" + +#: ../../../CHANGELOG.md:2194 +msgid "By default, workers are disabled and Synapse runs as a single process (homeservers don't necessarily need the complexity and increased memory requirements of running a worker-based setup)." +msgstr "" + +#: ../../../CHANGELOG.md:2196 +msgid "To enable Synapse workers, follow our [Load balancing with workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2199 +msgid "2021-02-12" +msgstr "" + +#: ../../../CHANGELOG.md:2201 +msgid "(Potential Breaking Change) Monitoring/metrics support using Prometheus and Grafana" +msgstr "" + +#: ../../../CHANGELOG.md:2203 +msgid "Thanks to [@Peetz0r](https://github.com/Peetz0r), the playbook can now install a bunch of tools for monitoring your Matrix server: the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI." +msgstr "" + +#: ../../../CHANGELOG.md:2205 +msgid "To get get these installed, follow our [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](docs/configuring-playbook-prometheus-grafana.md) docs page." +msgstr "" + +#: ../../../CHANGELOG.md:2207 +msgid "This update comes with a **potential breaking change** for people who were already exposing Synapse metrics (for consumption via another Prometheus installation). From now on, `matrix_synapse_metrics_enabled: true` no longer exposes metrics publicly via matrix-nginx-proxy (at `https://matrix.example.com/_synapse/metrics`). To do so, you'd need to explicitly set `matrix_nginx_proxy_proxy_synapse_metrics: true`." +msgstr "" + +#: ../../../CHANGELOG.md:2210 +msgid "2021-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:2212 +msgid "Etherpad support" +msgstr "" + +#: ../../../CHANGELOG.md:2214 +msgid "Thanks to [@pushytoxin](https://github.com/pushytoxin), the playbook can now install the [Etherpad](https://etherpad.org) realtime collaborative text editor. It can be used in a [Jitsi](https://jitsi.org/) audio/video call or integrated as a widget into Matrix chat rooms via the [Dimension](https://dimension.t2bot.io) integration manager." +msgstr "" + +#: ../../../CHANGELOG.md:2216 +msgid "To get it installed, follow [our Etherpad docs page](docs/configuring-playbook-etherpad.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2219 +msgid "2021-01-22" +msgstr "" + +#: ../../../CHANGELOG.md:2221 +msgid "(Breaking Change) Postgres changes that require manual intervention" +msgstr "" + +#: ../../../CHANGELOG.md:2223 +msgid "We've made a lot of changes to our Postgres setup and some manual action is required (described below). Sorry about the hassle." +msgstr "" + +#: ../../../CHANGELOG.md:2225 +msgid "**TLDR**: people running an [external Postgres server](docs/configuring-playbook-external-postgres.md) don't need to change anything for now. Everyone else (the common/default case) is affected and manual intervention is required." +msgstr "" + +#: ../../../CHANGELOG.md:2227 +msgid "Why?" +msgstr "" + +#: ../../../CHANGELOG.md:2229 +msgid "we had a default Postgres password (`matrix_postgres_connection_password: synapse-password`), which we think is **not ideal for security anymore**. We now ask you to generate/provide a strong password yourself. Postgres is normally not exposed outside the container network, making it relatively secure, but still:" +msgstr "" + +#: ../../../CHANGELOG.md:2230 +msgid "by tweaking the configuration, you may end up intentionally or unintentionally exposing your Postgres server to the local network (or even publicly), while still using the default default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2231 +msgid "we can't be sure we trust all these services (bridges, etc). Some of them may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2232 +msgid "you may have other containers running on the same Docker network, which may try to talk to or attack `matrix-postgres` using the default credentials (`synapse` + `synapse-password`)" +msgstr "" + +#: ../../../CHANGELOG.md:2233 +msgid "our Postgres usage **was overly-focused on Synapse** (default username of `synapse` and default/main database of `homeserver`). Additional homeserver options are likely coming in the future ([Dendrite](https://matrix.org/docs/projects/server/dendrite), [Conduit](https://matrix.org/docs/projects/server/conduit), [The Construct](https://matrix.org/docs/projects/server/construct)), so being too focused on `matrix-synapse` is not great. From now on, Synapse is just another component of this playbook, which happens to have an *additional database* (called `synapse`) on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2234 +msgid "we try to reorganize things a bit, to make the playbook even friendlier to people running an [external Postgres server](docs/configuring-playbook-external-postgres.md). Work on this will proceed in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2236 +msgid "So, this is some **effort to improve security** and to **prepare for a brighter future of having more homeserver options** than just Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:2238 +msgid "What has really changed?" +msgstr "" + +#: ../../../CHANGELOG.md:2240 +msgid "the default superuser Postgres username is now `matrix` (used to be `synapse`)" +msgstr "" + +#: ../../../CHANGELOG.md:2241 +msgid "the default Postgres database is now `matrix` (used to be `homeserver`)" +msgstr "" + +#: ../../../CHANGELOG.md:2242 +msgid "Synapse's database is now `synapse` (used to be `homeserver`). This is now just another \"additional database\" that the playbook manages for you" +msgstr "" + +#: ../../../CHANGELOG.md:2243 +msgid "Synapse's user called `synapse` is just a regular user that can only use the `synapse` database (not a superuser anymore)" +msgstr "" + +#: ../../../CHANGELOG.md:2245 +msgid "What do I do if I'm using the integrated Postgres server (default)?" +msgstr "" + +#: ../../../CHANGELOG.md:2247 +msgid "By default, the playbook runs an integrated Postgres server for you in a container (`matrix-postgres`). Unless you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), these steps are meant for you." +msgstr "" + +#: ../../../CHANGELOG.md:2249 +msgid "To migrate to the new setup, expect a few minutes of downtime, while you follow these steps:" +msgstr "" + +#: ../../../CHANGELOG.md:2251 +msgid "We believe the steps below are safe and you won't encounter any data loss, but consider [making a Postgres backup](docs/maintenance-postgres.md#backing-up-postgresql) anyway. If you've never backed up Postgres, now would be a good time to try it." +msgstr "" + +#: ../../../CHANGELOG.md:2253 +msgid "Generate a strong password to be used for your superuser Postgres user (called `matrix`). You can create one with a command like `pwgen -s 64 1`. The **maximum length** for a Postgres password is 100 bytes (characters). Don't go crazy!" +msgstr "" + +#: ../../../CHANGELOG.md:2255 +msgid "Update your playbook's `inventory/host_vars/matrix.example.com/vars.yml` file, adding a line like this:" +msgstr "" + +#: ../../../CHANGELOG.md:2260 +#: ../../../CHANGELOG.md:2272 +msgid "… where `YOUR_POSTGRES_PASSWORD_HERE` is to be replaced with the password you generated during step #2." +msgstr "" + +#: ../../../CHANGELOG.md:2262 +msgid "Stop all services: `ansible-playbook -i inventory/hosts setup.yml --tags=stop`" +msgstr "" + +#: ../../../CHANGELOG.md:2263 +msgid "Log in to the server via SSH. The next commands will be performed there." +msgstr "" + +#: ../../../CHANGELOG.md:2264 +msgid "Start the Postgres database server: `systemctl start matrix-postgres`" +msgstr "" + +#: ../../../CHANGELOG.md:2265 +msgid "Open a Postgres shell: `/usr/local/bin/matrix-postgres-cli`" +msgstr "" + +#: ../../../CHANGELOG.md:2266 +msgid "Execute the following query, while making sure to **change the password inside** (**don't forget the ending `;`**):" +msgstr "" + +#: ../../../CHANGELOG.md:2274 +msgid "Execute the following queries as you see them (no modifications necessary, so you can just **paste them all at once**):" +msgstr "" + +#: ../../../CHANGELOG.md:2292 +msgid "You may need to press *Enter* after pasting the lines above." +msgstr "" + +#: ../../../CHANGELOG.md:2294 +msgid "Re-run the playbook normally: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2296 +msgid "What do I do if I'm using an external Postgres server?" +msgstr "" + +#: ../../../CHANGELOG.md:2298 +msgid "If you've explicitly configured an [external Postgres server](docs/configuring-playbook-external-postgres.md), there are **no changes** that you need to do at this time." +msgstr "" + +#: ../../../CHANGELOG.md:2300 +msgid "The fact that we've renamed Synapse's database from `homeserver` to `synapse` (in our defaults) should not affect you, as you're already explicitly defining `matrix_synapse_database_database` (if you've followed our guide, that is). If you're not explicitly defining this variable, you may wish to do so (`matrix_synapse_database_database: homeserver`), to avoid the new `synapse` default and keep things as they were." +msgstr "" + +#: ../../../CHANGELOG.md:2303 +msgid "2021-01-20" +msgstr "" + +#: ../../../CHANGELOG.md:2305 +msgid "(Breaking Change) The mautrix-facebook bridge now requires a Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2307 +msgid "**Update from 2021-11-15**: SQLite support has been re-added to the mautrix-facebook bridge in [v0.3.2](https://github.com/mautrix/facebook/releases/tag/v0.3.2). You can ignore this changelog entry." +msgstr "" + +#: ../../../CHANGELOG.md:2309 +msgid "A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite." +msgstr "" + +#: ../../../CHANGELOG.md:2311 +msgid "**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2313 +msgid "Whether this change requires your intervention depends mostly on:" +msgstr "" + +#: ../../../CHANGELOG.md:2314 +msgid "whether you're using an [external Postgres server](docs/configuring-playbook-external-postgres.md). If yes, then [you need to do something](#upgrade-path-for-people-running-an-external-postgres-server)." +msgstr "" + +#: ../../../CHANGELOG.md:2315 +msgid "or whether you've force-changed the bridge's database engine to SQLite (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) some time in the past (likely during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous))." +msgstr "" + +#: ../../../CHANGELOG.md:2317 +msgid "As already mentioned above, you most likely don't need to do anything. If you rerun the playbook and don't get an error, you've been automatically upgraded. Just send a `login` message to the Facebook bridge bot again. Otherwise, read below for a solution." +msgstr "" + +#: ../../../CHANGELOG.md:2319 +msgid "Upgrade path for people NOT running an external Postgres server (default for the playbook)" +msgstr "" + +#: ../../../CHANGELOG.md:2321 +msgid "If you're **not running an external Postgres server**, then this bridge either already works on Postgres for you, or you've intentionally kept it back on SQLite with custom configuration (`matrix_mautrix_facebook_database_engine: 'sqlite'` in your `vars.yml`) ." +msgstr "" + +#: ../../../CHANGELOG.md:2323 +msgid "Simply remove that custom configuration from your `vars.yml` file (if it's there) and re-run the playbook. It should upgrade you automatically. You'll need to send a `login` message to the Facebook bridge bot again." +msgstr "" + +#: ../../../CHANGELOG.md:2325 +msgid "Alternatively, [you can stay on SQLite for a little longer](#staying-on-sqlite-for-a-little-longer-temporary-solution)." +msgstr "" + +#: ../../../CHANGELOG.md:2327 +msgid "Upgrade path for people running an external Postgres server" +msgstr "" + +#: ../../../CHANGELOG.md:2329 +msgid "For people using the internal Postgres server (the default for the playbook):" +msgstr "" + +#: ../../../CHANGELOG.md:2330 +msgid "we automatically create an additional `matrix_mautrix_facebook` Postgres database and credentials to access it" +msgstr "" + +#: ../../../CHANGELOG.md:2331 +msgid "we automatically adjust the bridge's `matrix_mautrix_facebook_database_*` variables to point the bridge to that Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2332 +msgid "we use [pgloader](https://pgloader.io/) to automatically import the existing SQLite data for the bridge into the `matrix_mautrix_facebook` Postgres database" +msgstr "" + +#: ../../../CHANGELOG.md:2334 +msgid "If you are using an [external Postgres server](docs/configuring-playbook-external-postgres.md), unfortunately we currently can't do any of that for you." +msgstr "" + +#: ../../../CHANGELOG.md:2336 +msgid "You have 3 ways to proceed:" +msgstr "" + +#: ../../../CHANGELOG.md:2338 +msgid "contribute to the playbook to make this possible (difficult)" +msgstr "" + +#: ../../../CHANGELOG.md:2339 +msgid "or, do the migration \"steps\" manually:" +msgstr "" + +#: ../../../CHANGELOG.md:2340 +msgid "stop the bridge (`systemctl stop matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2341 +msgid "create a new `matrix_mautrix_facebook` Postgres database for it" +msgstr "" + +#: ../../../CHANGELOG.md:2342 +msgid "run [pgloader](https://pgloader.io/) manually (we import this bridge's data using default settings and it works well)" +msgstr "" + +#: ../../../CHANGELOG.md:2343 +msgid "define `matrix_mautrix_facebook_database_*` variables in your `vars.yml` file (credentials, etc.) — you can find their defaults in `roles/custom/matrix-mautrix-facebook/defaults/main.yml`" +msgstr "" + +#: ../../../CHANGELOG.md:2344 +msgid "switch the bridge to Postgres (`matrix_mautrix_facebook_database_engine: 'postgres'` in your `vars.yml` file)" +msgstr "" + +#: ../../../CHANGELOG.md:2345 +msgid "re-run the playbook (`--tags=setup-all,start`) and ensure the bridge works (`systemctl status matrix-mautrix-facebook` and `journalctl -fu matrix-mautrix-facebook`)" +msgstr "" + +#: ../../../CHANGELOG.md:2346 +msgid "send a `login` message to the Facebook bridge bot again" +msgstr "" + +#: ../../../CHANGELOG.md:2347 +msgid "or, [stay on SQLite for a little longer (temporary solution)](#staying-on-sqlite-for-a-little-longer-temporary-solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2349 +msgid "Staying on SQLite for a little longer (temporary solution)" +msgstr "" + +#: ../../../CHANGELOG.md:2351 +msgid "To keep using this bridge with SQLite for a little longer (**not recommended**), use the following configuration in your `vars.yml` file:" +msgstr "" + +#: ../../../CHANGELOG.md:2361 +msgid "If you do this, keep in mind that **you can't run this forever**. This SQLite-supporting bridge version is not getting any updates and will break sooner or later. The playbook will also drop support for SQLite at some point in the future." +msgstr "" + +#: ../../../CHANGELOG.md:2364 +msgid "2021-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:2366 +msgid "matrix-corporal goes 2.0" +msgstr "" + +#: ../../../CHANGELOG.md:2368 +msgid "[matrix-corporal v2 has been released](https://github.com/devture/matrix-corporal/releases/tag/2.0.0) and the playbook also supports it now." +msgstr "" + +#: ../../../CHANGELOG.md:2370 +msgid "No manual intervention is required in the common case." +msgstr "" + +#: ../../../CHANGELOG.md:2372 +msgid "The new [matrix-corporal](https://github.com/devture/matrix-corporal) version is also the first one to support Interactive Authentication. If you wish to enable that (hint: you should), you'll need to set up the [REST auth password provider](docs/configuring-playbook-rest-auth.md). There's more information in [our matrix-corporal docs](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2375 +msgid "2021-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2377 +msgid "Moving from cronjobs to systemd timers" +msgstr "" + +#: ../../../CHANGELOG.md:2379 +msgid "We no longer use cronjobs for Let's Encrypt SSL renewal and `matrix-nginx-proxy`/`matrix-coturn` reloading. Instead, we've switched to systemd timers." +msgstr "" + +#: ../../../CHANGELOG.md:2381 +msgid "The largest benefit of this is that we no longer require you to install a cron daemon, thus simplifying our install procedure." +msgstr "" + +#: ../../../CHANGELOG.md:2383 +msgid "The playbook will migrate you from cronjobs to systemd timers automatically. This is just a heads up." +msgstr "" + +#: ../../../CHANGELOG.md:2386 +msgid "2021-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:2388 +msgid "(Breaking Change) New SSL configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2390 +msgid "SSL configuration (protocols, ciphers) can now be more easily controlled thanks to us making use of configuration presets." +msgstr "" + +#: ../../../CHANGELOG.md:2392 +msgid "We define a few presets (old, intermediate, modern), following the [Mozilla SSL Configuration Generator](https://ssl-config.mozilla.org/#server=nginx)." +msgstr "" + +#: ../../../CHANGELOG.md:2394 +msgid "A new variable `matrix_nginx_proxy_ssl_preset` controls which preset is used (defaults to `\"intermediate\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2396 +msgid "Compared to before, this changes nginx's `ssl_prefer_server_ciphers` to `off` (used to default to `on`). It also add some more ciphers to the list, giving better performance on mobile devices, and removes some weak ciphers. More information in the [documentation](docs/configuring-playbook-nginx.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2398 +msgid "To revert to the old behaviour, set the following variables:" +msgstr "" + +#: ../../../CHANGELOG.md:2405 +msgid "Just like before, you can still use your own custom protocols by specifying them in `matrix_nginx_proxy_ssl_protocols`. Doing so overrides the values coming from the preset." +msgstr "" + +#: ../../../CHANGELOG.md:2408 +msgid "2021-01-03" +msgstr "" + +#: ../../../CHANGELOG.md:2410 +msgid "Signal bridging support via mautrix-signal" +msgstr "" + +#: ../../../CHANGELOG.md:2412 +msgid "Thanks to [laszabine](https://github.com/laszabine)'s efforts, the playbook now supports bridging to [Signal](https://www.signal.org/) via the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge. See our [Setting up Mautrix Signal bridging](docs/configuring-playbook-bridge-mautrix-signal.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2414 +msgid "If you had installed the mautrix-signal bridge while its Pull Request was still work-in-progress, you can migrate your data to the new and final setup by referring to [this comment](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686#issuecomment-753510789)." +msgstr "" + +#: ../../../CHANGELOG.md:2417 +msgid "2020-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:2419 +msgid "The big move to all-on-Postgres (potentially dangerous)" +msgstr "" + +#: ../../../CHANGELOG.md:2421 +msgid "**TLDR**: all your bridges (and other services) will likely be auto-migrated from SQLite/nedb to Postgres, hopefully without trouble. You can opt-out (see how below), if too worried about breakage." +msgstr "" + +#: ../../../CHANGELOG.md:2423 +msgid "Until now, we've only used Postgres as a database for Synapse. All other services (bridges, bots, etc.) were kept simple and used a file-based database (SQLite or nedb)." +msgstr "" + +#: ../../../CHANGELOG.md:2425 +msgid "Since [this huge pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/740), **all of our services now use Postgres by default**. Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann) for starting the work on it and for providing great input!" +msgstr "" + +#: ../../../CHANGELOG.md:2427 +msgid "Moving all services to Postgres brings a few **benefits** to us:" +msgstr "" + +#: ../../../CHANGELOG.md:2429 +msgid "**improved performance**" +msgstr "" + +#: ../../../CHANGELOG.md:2430 +msgid "**improved compatibility**. Most bridges are deprecating SQLite/nedb support or offer less features when not on Postgres." +msgstr "" + +#: ../../../CHANGELOG.md:2431 +msgid "**easier backups**. It's still some effort to take a proper backup (Postgres dump + various files, keys), but a Postgres dump now takes you much further." +msgstr "" + +#: ../../../CHANGELOG.md:2432 +msgid "we're now **more prepared to introduce other services** that need a Postgres database — [Dendrite](https://github.com/matrix-org/dendrite), the [mautrix-signal](https://github.com/tulir/mautrix-signal) bridge (existing [pull request](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/686)), etc." +msgstr "" + +#: ../../../CHANGELOG.md:2434 +msgid "Key takeway" +msgstr "" + +#: ../../../CHANGELOG.md:2436 +msgid "existing installations that use an [external Postgres](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-external-postgres.md) server should be unaffected (they remain on SQLite/nedb for all services, except Synapse)" +msgstr "" + +#: ../../../CHANGELOG.md:2438 +msgid "for existing installations which use our integrated Postgres database server (`matrix-postgres`, which is the default), **we automatically migrate data** from SQLite/nedb to Postgres and **archive the database files** (`something.db` -> `something.db.backup`), so you can restore them if you need to go back (see how below)." +msgstr "" + +#: ../../../CHANGELOG.md:2440 +msgid "Opting-out of the Postgres migration" +msgstr "" + +#: ../../../CHANGELOG.md:2442 +msgid "This is a **very large and somewhat untested change** (potentially dangerous), so **if you're not feeling confident/experimental, opt-out** of it for now. Still, it's the new default and what we (and various bridges) will focus on going forward, so don't stick to old ways for too long." +msgstr "" + +#: ../../../CHANGELOG.md:2444 +msgid "You can remain on SQLite/nedb (at least for now) by adding a variable like this to your `vars.yml` file for each service you use: `matrix_COMPONENT_database_engine: sqlite` (e.g. `matrix_mautrix_facebook_database_engine: sqlite`)." +msgstr "" + +#: ../../../CHANGELOG.md:2446 +msgid "Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2448 +msgid "Going back to SQLite/nedb if things went wrong" +msgstr "" + +#: ../../../CHANGELOG.md:2450 +msgid "If you went with the Postgres migration and it went badly for you (some bridge not working as expected or not working at all), do this:" +msgstr "" + +#: ../../../CHANGELOG.md:2452 +msgid "stop all services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../CHANGELOG.md:2453 +msgid "SSH into the server and rename the old database files (`something.db.backup` -> `something.db`). Example: `mv /matrix/mautrix-facebook/data/mautrix-facebook.db.backup /matrix/mautrix-facebook/data/mautrix-facebook.db`" +msgstr "" + +#: ../../../CHANGELOG.md:2454 +msgid "switch the affected service back to SQLite (e.g. `matrix_mautrix_facebook_database_engine: sqlite`). Some services (like `appservice-irc` and `appservice-slack`) don't use SQLite, so use `nedb`, instead of `sqlite` for them." +msgstr "" + +#: ../../../CHANGELOG.md:2455 +msgid "re-run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`)" +msgstr "" + +#: ../../../CHANGELOG.md:2456 +msgid "[get in touch](README.md#support) with us" +msgstr "" + +#: ../../../CHANGELOG.md:2458 +msgid "2020-12-11" +msgstr "" + +#: ../../../CHANGELOG.md:2460 +msgid "synapse-janitor support removed" +msgstr "" + +#: ../../../CHANGELOG.md:2462 +msgid "We've removed support for the unmaintained [synapse-janitor](https://github.com/xwiki-labs/synapse_scripts) script. There's been past reports of it corrupting the Synapse database. Since there hasn't been any new development on it and it doesn't seem too useful nowadays, there's no point in including it in the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2464 +msgid "If you need to clean up or compact your database, consider using the Synapse Admin APIs directly. See our [Synapse maintenance](docs/maintenance-synapse.md) and [Postgres maintenance](docs/maintenance-postgres.md) documentation pages for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2466 +msgid "Docker 20.10 is here" +msgstr "" + +#: ../../../CHANGELOG.md:2468 +msgid "(No need to do anything special in relation to this. Just something to keep in mind)" +msgstr "" + +#: ../../../CHANGELOG.md:2470 +msgid "Docker 20.10 got released recently and your server will likely get it the next time you update." +msgstr "" + +#: ../../../CHANGELOG.md:2472 +msgid "This is the first major Docker update in a long time and it packs a lot of changes. Some of them introduced some breakage for us initially (see [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/d08b27784f222effcbce2abf924bf07bbe0893be) and [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/7593d969e316cc0144bce378a5be58c76c2c37ee)), but it should be all good now." +msgstr "" + +#: ../../../CHANGELOG.md:2475 +msgid "2020-12-08" +msgstr "" + +#: ../../../CHANGELOG.md:2477 +msgid "openid APIs exposed by default on the federation port when federation disabled" +msgstr "" + +#: ../../../CHANGELOG.md:2479 +msgid "We've changed some defaults. People running with our default configuration (federation enabled), are not affected at all." +msgstr "" + +#: ../../../CHANGELOG.md:2481 +msgid "If you are running an unfederated server (`matrix_synapse_federation_enabled: false`), this may be of interest to you." +msgstr "" + +#: ../../../CHANGELOG.md:2483 +msgid "When federation is disabled, but ma1sd or Dimension are enabled, we'll now expose the `openid` APIs on the federation port. These APIs are necessary for some ma1sd features to work. If you'd like to prevent this, you can: `matrix_synapse_federation_port_openid_resource_required: false`." +msgstr "" + +#: ../../../CHANGELOG.md:2486 +msgid "2020-11-27" +msgstr "" + +#: ../../../CHANGELOG.md:2488 +msgid "Recent Jitsi updates may require configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:2490 +msgid "We've recently [updated from Jitsi build 4857 to build 5142](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/719), which brings a lot of configuration changes." +msgstr "" + +#: ../../../CHANGELOG.md:2492 +msgid "**If you use our default Jitsi settings, you won't have to do anything.**" +msgstr "" + +#: ../../../CHANGELOG.md:2494 +msgid "People who have [fine-tuned Jitsi](docs/configuring-playbook-jitsi.md#optional-fine-tune-jitsi) may find that some options got renamed now, others are gone and yet others still need to be defined in another way." +msgstr "" + +#: ../../../CHANGELOG.md:2496 +msgid "The next time you run the playbook [installation](docs/installing.md) command, our validation logic will tell you if you're using some variables like that and will recommend a migration path for each one." +msgstr "" + +#: ../../../CHANGELOG.md:2498 +msgid "Additionally, we've recently disabled transcriptions (`jitsi_enable_transcriptions: false`) and recording (`jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working." +msgstr "" + +#: ../../../CHANGELOG.md:2501 +msgid "2020-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:2503 +#: ../../../CHANGELOG.md:2511 +msgid "Breaking change matrix-sms-bridge" +msgstr "" + +#: ../../../CHANGELOG.md:2505 +msgid "Because of many problems using gammu as SMS provider, matrix-sms-bridge now uses (https://github.com/RebekkaMa/android-sms-gateway-server) by default. See (the docs)[./docs/configuring-playbook-bridge-matrix-bridge-sms.md] which new vars you need to add." +msgstr "" + +#: ../../../CHANGELOG.md:2507 +msgid "If you are using this playbook to deploy matrix-sms-bridge and still really want to use gammu as SMS provider, we could possibly add support for both android-sms-gateway-server and gammu." +msgstr "" + +#: ../../../CHANGELOG.md:2509 +msgid "2020-11-13" +msgstr "" + +#: ../../../CHANGELOG.md:2513 +msgid "The new version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) changed its database from neo4j to h2. You need to sync the bridge at the first start. Note that this only will sync rooms where the @smsbot:yourServer is member. For rooms without @smsbot:yourServer you need to kick and invite the telephone number **or** invite @smsbot:yourServer." +msgstr "" + +#: ../../../CHANGELOG.md:2515 +msgid "Add the following to your `vars.yml` file: `matrix_sms_bridge_container_extra_arguments=['--env SPRING_PROFILES_ACTIVE=initialsync']`" +msgstr "" + +#: ../../../CHANGELOG.md:2516 +msgid "Login to your host shell and remove old systemd file from your host: `rm /etc/systemd/system/matrix-sms-bridge-database.service`" +msgstr "" + +#: ../../../CHANGELOG.md:2517 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-sms-bridge,start`" +msgstr "" + +#: ../../../CHANGELOG.md:2518 +msgid "Login to your host shell and check the logs with `journalctl -u matrix-sms-bridge` until the sync finished." +msgstr "" + +#: ../../../CHANGELOG.md:2519 +msgid "Remove the var from the first step." +msgstr "" + +#: ../../../CHANGELOG.md:2520 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`." +msgstr "" + +#: ../../../CHANGELOG.md:2522 +msgid "2020-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2524 +msgid "Dynamic DNS support" +msgstr "" + +#: ../../../CHANGELOG.md:2526 +msgid "Thanks to [Scott Crossen](https://github.com/scottcrossen), the playbook can now manage Dynamic DNS for you using [ddclient](https://ddclient.net/)." +msgstr "" + +#: ../../../CHANGELOG.md:2528 +msgid "To learn more, follow our [Dynamic DNS docs page](docs/configuring-playbook-dynamic-dns.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2531 +msgid "2020-10-28" +msgstr "" + +#: ../../../CHANGELOG.md:2533 +msgid "(Compatibility Break) https://matrix.example.com/ now redirects to https://element.example.com/" +msgstr "" + +#: ../../../CHANGELOG.md:2535 +msgid "Until now, we used to serve a static page coming from Synapse at `https://matrix.example.com/`. This page was not very useful to anyone." +msgstr "" + +#: ../../../CHANGELOG.md:2537 +msgid "Since `matrix.example.com` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to [Element Web](docs/configuring-playbook-client-element-web.md))." +msgstr "" + +#: ../../../CHANGELOG.md:2539 +msgid "If Element Web is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page." +msgstr "" + +#: ../../../CHANGELOG.md:2541 +msgid "If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable. To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: \"\"`)." +msgstr "" + +#: ../../../CHANGELOG.md:2544 +msgid "2020-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:2546 +msgid "(Compatibility Break) /_synapse/admin is no longer publicly exposed by default" +msgstr "" + +#: ../../../CHANGELOG.md:2548 +msgid "We used to expose the Synapse Admin APIs publicly (at `https://matrix.example.com/_synapse/admin`). These APIs require authentication with a valid access token, so it's not that big a deal to expose them." +msgstr "" + +#: ../../../CHANGELOG.md:2550 +msgid "However, following [official Synapse's reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints), we're no longer exposing `/_synapse/admin` by default." +msgstr "" + +#: ../../../CHANGELOG.md:2552 +msgid "If you'd like to restore restore the old behavior and expose `/_synapse/admin` publicly, you can use the following configuration (in your `vars.yml`):" +msgstr "" + +#: ../../../CHANGELOG.md:2559 +msgid "2020-10-02" +msgstr "" + +#: ../../../CHANGELOG.md:2561 +msgid "Minimum Ansible version raised to v2.7.0" +msgstr "" + +#: ../../../CHANGELOG.md:2563 +msgid "We were claiming to support [Ansible](https://www.ansible.com/) v2.5.2 and higher, but issues like [#662](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/662) demonstrate that we need at least v2.7.0." +msgstr "" + +#: ../../../CHANGELOG.md:2565 +msgid "If you've been using the playbook without getting any errors until now, you're probably on a version higher than that already (or you're not using the `matrix-ma1sd` and `matrix-client-element` roles)." +msgstr "" + +#: ../../../CHANGELOG.md:2567 +msgid "Our [Ansible docs page](docs/ansible.md) contains information on how to run a more up-to-date version of Ansible." +msgstr "" + +#: ../../../CHANGELOG.md:2570 +msgid "2020-10-01" +msgstr "" + +#: ../../../CHANGELOG.md:2572 +msgid "Postgres 13 support" +msgstr "" + +#: ../../../CHANGELOG.md:2574 +msgid "The playbook now installs [Postgres 13](https://www.postgresql.org/about/news/postgresql-13-released-2077/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2576 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x, 11.x or 12.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2578 +msgid "2020-09-01" +msgstr "" + +#: ../../../CHANGELOG.md:2580 +msgid "matrix-registration support" +msgstr "" + +#: ../../../CHANGELOG.md:2582 +msgid "The playbook can now help you set up [matrix-registration](https://github.com/ZerataX/matrix-registration) — an application that lets you keep your Matrix server's registration private, but still allow certain users (those having a unique registration link) to register by themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2584 +msgid "See our [Setting up matrix-registration](docs/configuring-playbook-matrix-registration.md) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2587 +msgid "2020-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2589 +msgid "rust-synapse-compress-state support" +msgstr "" + +#: ../../../CHANGELOG.md:2591 +msgid "The playbook can now help you use [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) to compress the state groups in your Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2593 +msgid "See our [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state) documentation page to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2596 +msgid "2020-07-22" +msgstr "" + +#: ../../../CHANGELOG.md:2598 +msgid "Synapse Admin support" +msgstr "" + +#: ../../../CHANGELOG.md:2600 +msgid "The playbook can now help you set up [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin)." +msgstr "" + +#: ../../../CHANGELOG.md:2602 +msgid "See our [Setting up Synapse Admin](docs/configuring-playbook-synapse-admin.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2605 +msgid "2020-07-20" +msgstr "" + +#: ../../../CHANGELOG.md:2607 +msgid "matrix-reminder-bot support" +msgstr "" + +#: ../../../CHANGELOG.md:2609 +msgid "The playbook can now help you set up [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)." +msgstr "" + +#: ../../../CHANGELOG.md:2611 +msgid "See our [Setting up matrix-reminder-bot](docs/configuring-playbook-bot-matrix-reminder-bot.md) documentation to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2614 +msgid "2020-07-17" +msgstr "" + +#: ../../../CHANGELOG.md:2616 +msgid "(Compatibility Break) Riot is now Element" +msgstr "" + +#: ../../../CHANGELOG.md:2618 +msgid "As per the official announcement, [Riot has been rebraned to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../CHANGELOG.md:2620 +msgid "The playbook follows suit. Existing installations have a few options for how to handle this." +msgstr "" + +#: ../../../CHANGELOG.md:2622 +msgid "See our [Migrating to Element Web](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details." +msgstr "" + +#: ../../../CHANGELOG.md:2625 +msgid "2020-07-03" +msgstr "" + +#: ../../../CHANGELOG.md:2627 +msgid "Steam bridging support via mx-puppet-steam" +msgstr "" + +#: ../../../CHANGELOG.md:2629 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Steam](https://steamapp.com/) via the [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) bridge. See our [Setting up MX Puppet Steam bridging](docs/configuring-playbook-bridge-mx-puppet-steam.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2632 +msgid "2020-07-01" +msgstr "" + +#: ../../../CHANGELOG.md:2634 +msgid "Discord bridging support via mx-puppet-discord" +msgstr "" + +#: ../../../CHANGELOG.md:2636 +msgid "Thanks to [Hugues Morisset](https://github.com/izissise)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mx-puppet-discord](https://github.com/Sorunome/mx-puppet-discord) bridge. See our [Setting up MX Puppet Discord bridging](docs/configuring-playbook-bridge-mx-puppet-discord.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2638 +msgid "**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md). You're free too use the bridge that serves you better, or even both (for different users and use-cases)." +msgstr "" + +#: ../../../CHANGELOG.md:2641 +msgid "2020-06-30" +msgstr "" + +#: ../../../CHANGELOG.md:2643 +msgid "Instagram and Twitter bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2645 +msgid "Thanks to [Johanna Dorothea Reichmann](https://github.com/jdreichmann)'s efforts, the playbook now supports bridging to [Instagram](https://www.instagram.com/) via the [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) bridge. See our [Setting up MX Puppet Instagram bridging](docs/configuring-playbook-bridge-mx-puppet-instagram.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2647 +msgid "Thanks to [Tulir Asokan](https://github.com/tulir)'s efforts, the playbook now supports bridging to [Twitter](https://twitter.com/) via the [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) bridge. See our [Setting up MX Puppet Twitter bridging](docs/configuring-playbook-bridge-mx-puppet-twitter.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2650 +msgid "2020-06-28" +msgstr "" + +#: ../../../CHANGELOG.md:2652 +msgid "(Post Mortem / fixed Security Issue) Re-enabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2654 +#: ../../../CHANGELOG.md:2683 +msgid "User Directory search requests used to go to the ma1sd identity server by default, which queried its own stores and the Synapse database." +msgstr "" + +#: ../../../CHANGELOG.md:2656 +msgid "ma1sd's [security issue](https://github.com/ma1uta/ma1sd/issues/44) has been fixed in version `2.4.0`, with [this commit](ma1uta/ma1sd@2bb5a734d11662b06471113cf3d6b4cee5e33a85). `ma1sd 2.4.0` is now the default version for this playbook. For more information on what happened, please check the mentioned issue." +msgstr "" + +#: ../../../CHANGELOG.md:2658 +msgid "We are re-enabling user directory search with this update. Those who would like to keep it disabled can use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:2660 +msgid "As always, re-running the playbook is enough to get the updated bits." +msgstr "" + +#: ../../../CHANGELOG.md:2662 +msgid "2020-06-11" +msgstr "" + +#: ../../../CHANGELOG.md:2664 +msgid "SMS bridging requires db reset" +msgstr "" + +#: ../../../CHANGELOG.md:2666 +msgid "The current version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) needs you to delete the database to work as expected. Just remove `/matrix/matrix-sms-bridge/database/*`. It also adds a new requried var `matrix_sms_bridge_default_region`." +msgstr "" + +#: ../../../CHANGELOG.md:2668 +msgid "To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a message. You are also able to use automated room creation with telephonenumers by writing `sms send -t 01749292923 \"Hello World\"` in a room with `@smsbot:yourServer`. See [the docs](https://github.com/benkuly/matrix-sms-bridge) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:2670 +msgid "2020-06-05" +msgstr "" + +#: ../../../CHANGELOG.md:2672 +msgid "SMS bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2674 +msgid "Thanks to [benkuly](https://github.com/benkuly)'s efforts, the playbook now supports bridging to SMS (with one telephone number only) via [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)." +msgstr "" + +#: ../../../CHANGELOG.md:2676 +msgid "See our [Setting up Matrix SMS bridging](docs/configuring-playbook-bridge-matrix-bridge-sms.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2679 +msgid "2020-05-19" +msgstr "" + +#: ../../../CHANGELOG.md:2681 +msgid "(Compatibility Break / Security Issue) Disabling User Directory search powered by the ma1sd Identity Server" +msgstr "" + +#: ../../../CHANGELOG.md:2685 +msgid "ma1sd current has [a security issue](https://github.com/ma1uta/ma1sd/issues/44), which made it leak information about all users — including users created by bridges, etc." +msgstr "" + +#: ../../../CHANGELOG.md:2687 +msgid "Until the issue gets fixed, we're making User Directory search not go to ma1sd by default. You **need to re-run the playbook and restart services to apply this workaround**." +msgstr "" + +#: ../../../CHANGELOG.md:2689 +msgid "*If you insist on restoring the old behavior* (**which has a security issue!**), you *might* use this configuration: `matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: \"{{ matrix_ma1sd_enabled }}\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2692 +msgid "2020-04-28" +msgstr "" + +#: ../../../CHANGELOG.md:2694 +msgid "Newer IRC bridge (with potential breaking change)" +msgstr "" + +#: ../../../CHANGELOG.md:2696 +msgid "This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream made a change to how you define manual mappings. If you added a `mapping` to your configuration, you will need to update it accoring to the [upstream instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). If you did not include `mappings` in your configuration for IRC, no change is necessary. `mappings` is not part of the default configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2705 +msgid "2020-04-23" +msgstr "" + +#: ../../../CHANGELOG.md:2707 +#: ../../../CHANGELOG.md:2938 +msgid "Slack bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2709 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Slack](https://slack.com) via the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2711 +msgid "See our [Setting up MX Puppet Slack bridging](docs/configuring-playbook-bridge-mx-puppet-slack.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2714 +msgid "2020-04-09" +msgstr "" + +#: ../../../CHANGELOG.md:2716 +msgid "Skype bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2718 +msgid "Thanks to [Rodrigo Belem](https://github.com/rbelem)'s efforts, the playbook now supports bridging to [Skype](https://www.skype.com) via the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2720 +msgid "See our [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md) documentation page for getting started." +msgstr "" + +#: ../../../CHANGELOG.md:2723 +msgid "2020-04-05" +msgstr "" + +#: ../../../CHANGELOG.md:2725 +msgid "Private Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2727 +msgid "The [Jitsi support](#jitsi-support) we had landed a few weeks ago was working well, but it was always open to the whole world." +msgstr "" + +#: ../../../CHANGELOG.md:2729 +msgid "Running such an open instance is not desirable to most people, so [teutat3s](https://github.com/teutat3s) has contributed support for making Jitsi use authentication." +msgstr "" + +#: ../../../CHANGELOG.md:2731 +msgid "To make your Jitsi server more private, see the [configure internal Jitsi authentication and guests mode](docs/configuring-playbook-jitsi.md#optional-configure-internal-jitsi-authentication-and-guests-mode) section in our Jitsi documentation." +msgstr "" + +#: ../../../CHANGELOG.md:2734 +msgid "2020-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:2736 +msgid "(Potential Backward Compatibility Break) ma1sd replaces mxisd" +msgstr "" + +#: ../../../CHANGELOG.md:2738 +msgid "Thanks to [Marcel Partap](https://github.com/eMPee584)'s efforts, the [mxisd](https://github.com/kamax-io/mxisd) identity server, which has been deprecated for a long time, has finally been replaced by [ma1sd](https://github.com/ma1uta/ma1sd), a compatible fork." +msgstr "" + +#: ../../../CHANGELOG.md:2740 +msgid "**If you're using the default playbook configuration**, you don't need to do anything — your mxisd installation will be replaced with ma1sd and all existing data will be migrated automatically the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2742 +msgid "**If you're doing something more special** (defining custom `matrix_mxisd_*` variables), the playbook will ask you to rename them to `matrix_ma1sd_*`. You're also encouraged to test that ma1sd works well for such a more custom setup." +msgstr "" + +#: ../../../CHANGELOG.md:2745 +msgid "2020-03-29" +msgstr "" + +#: ../../../CHANGELOG.md:2747 +msgid "Archlinux support" +msgstr "" + +#: ../../../CHANGELOG.md:2749 +msgid "Thanks to [Christian Lupus](https://github.com/christianlupus)'s efforts, the playbook now supports installing to an [Archlinux](https://www.archlinux.org/) server." +msgstr "" + +#: ../../../CHANGELOG.md:2752 +msgid "2020-03-24" +msgstr "" + +#: ../../../CHANGELOG.md:2754 +msgid "Jitsi support" +msgstr "" + +#: ../../../CHANGELOG.md:2756 +msgid "The playbook can now (optionally) install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Riot](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2758 +msgid "See our [Jitsi documentation page](docs/configuring-playbook-jitsi.md) to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2761 +msgid "2020-03-15" +msgstr "" + +#: ../../../CHANGELOG.md:2763 +msgid "Raspberry Pi support" +msgstr "" + +#: ../../../CHANGELOG.md:2765 +msgid "Thanks to [Gergely Horváth](https://github.com/hooger)'s effort, the playbook supports installing to a Raspberry Pi server, for at least some of the services." +msgstr "" + +#: ../../../CHANGELOG.md:2767 +msgid "Since most ready-made container images do not support that architecture, we achieve this by building images locally on the device itself. See our [Self-building documentation page](docs/self-building.md) for how to get started." +msgstr "" + +#: ../../../CHANGELOG.md:2770 +msgid "2020-02-26" +msgstr "" + +#: ../../../CHANGELOG.md:2772 +msgid "Riot-web themes are here" +msgstr "" + +#: ../../../CHANGELOG.md:2774 +msgid "The playbook now makes it easy to install custom riot-web themes." +msgstr "" + +#: ../../../CHANGELOG.md:2776 +msgid "To learn more, take a look at our [riot-web documentation on Themes](docs/configuring-playbook-riot-web.md#themes)." +msgstr "" + +#: ../../../CHANGELOG.md:2779 +msgid "2020-02-24" +msgstr "" + +#: ../../../CHANGELOG.md:2781 +msgid "Customize the server name in Riot's login page" +msgstr "" + +#: ../../../CHANGELOG.md:2783 +msgid "You can now customize the server name string that Riot-web displays in its login page." +msgstr "" + +#: ../../../CHANGELOG.md:2785 +msgid "These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:2791 +msgid "The login page previously said \"Sign in to your Matrix account on matrix.example.org\" (the homeserver's domain name). It will now say \"Sign in … on example.org\" (the server name) by default, or \"Sign in … on Our Server\" if you set the variable to \"Our Server\"." +msgstr "" + +#: ../../../CHANGELOG.md:2793 +msgid "To support this, the config.json template is changed to use the configuration key `default_server_config` for setting the default HS/IS, and the new configuration key `server_name` is added in there." +msgstr "" + +#: ../../../CHANGELOG.md:2796 +msgid "2020-01-30" +msgstr "" + +#: ../../../CHANGELOG.md:2798 +msgid "Disabling TLSv1.1" +msgstr "" + +#: ../../../CHANGELOG.md:2800 +msgid "To improve security, we've removed TLSv1.1 support from our default matrix-nginx-proxy configuration." +msgstr "" + +#: ../../../CHANGELOG.md:2802 +msgid "If you need to support old clients, you can re-enable it with the following configuration: `matrix_nginx_proxy_ssl_protocols: \"TLSv1.1 TLSv1.2 TLSv1.3\"`" +msgstr "" + +#: ../../../CHANGELOG.md:2805 +msgid "2020-01-21" +msgstr "" + +#: ../../../CHANGELOG.md:2807 +msgid "Postgres collation changes (action required!)" +msgstr "" + +#: ../../../CHANGELOG.md:2809 +msgid "By default, we've been using a UTF-8 collation for Postgres. This is known to cause Synapse some troubles (see the [relevant issue](https://github.com/matrix-org/synapse/issues/6722)) on systems that use [glibc](https://www.gnu.org/software/libc/). We run Postgres in an [Alpine Linux](https://alpinelinux.org/) container (which uses [musl](https://www.musl-libc.org/), and not glibc), so our users are likely not affected by the index corruption problem observed by others." +msgstr "" + +#: ../../../CHANGELOG.md:2811 +msgid "Still, we might become affected in the future. In any case, it's imminent that Synapse will complain about databases which do not use a C collation." +msgstr "" + +#: ../../../CHANGELOG.md:2813 +msgid "To avoid future problems, we recommend that you run the following command:" +msgstr "" + +#: ../../../CHANGELOG.md:2819 +msgid "It forces a [Postgres database upgrade](docs/maintenance-postgres.md#upgrading-postgresql), which would recreate your Postgres database using the proper (`C`) collation. If you are low on disk space, or run into trouble, refer to the Postgres database upgrade documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:2822 +msgid "2020-01-14" +msgstr "" + +#: ../../../CHANGELOG.md:2824 +msgid "Added support for Appservice Webhooks" +msgstr "" + +#: ../../../CHANGELOG.md:2826 +msgid "Thanks to a contribution from [Björn Marten](https://github.com/tripleawwy) from [netresearch](https://www.netresearch.de/), the playbook can now install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../CHANGELOG.md:2828 +msgid "Learn more in [Setting up Appservice Webhooks bridging](docs/configuring-playbook-bridge-appservice-webhooks.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2831 +msgid "2020-01-12" +msgstr "" + +#: ../../../CHANGELOG.md:2833 +msgid "Added support for automatic Double Puppeting for all Mautrix bridges" +msgstr "" + +#: ../../../CHANGELOG.md:2835 +msgid "Double Puppeting can now be easily enabled for all Mautrix bridges supported by the playbook (Facebook, Hangouts, Whatsapp, Telegram)." +msgstr "" + +#: ../../../CHANGELOG.md:2837 +msgid "This is possible due to those bridges' integration with [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) — yet another component that this playbook can install for you." +msgstr "" + +#: ../../../CHANGELOG.md:2839 +msgid "To get started, following the playbook's documentation for the bridge you'd like to configure." +msgstr "" + +#: ../../../CHANGELOG.md:2842 +msgid "2019-12-06" +msgstr "" + +#: ../../../CHANGELOG.md:2844 +msgid "Added support for an alternative method for using another webserver" +msgstr "" + +#: ../../../CHANGELOG.md:2846 +msgid "We have added support for making `matrix-nginx-proxy` not being so invasive, so that it would be easier to [use your own webserver](docs/configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2848 +msgid "The documentation has been updated with a **Method 2**, which might make \"own webserver\" setup easier in some cases (such as [reverse-proxying using Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/296))." +msgstr "" + +#: ../../../CHANGELOG.md:2850 +msgid "**Existing users** are not affected by this and **don't need to change anything**. The defaults are still the same (`matrix-nginx-proxy` obtaining SSL certificates and doing everything for you automatically)." +msgstr "" + +#: ../../../CHANGELOG.md:2853 +msgid "2019-11-10" +msgstr "" + +#: ../../../CHANGELOG.md:2855 +msgid "Tightened security around room directory publishing" +msgstr "" + +#: ../../../CHANGELOG.md:2857 +msgid "As per this [advisory blog post](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers), we've decided to change the default publishing rules for the Matrix room directory." +msgstr "" + +#: ../../../CHANGELOG.md:2859 +msgid "Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**." +msgstr "" + +#: ../../../CHANGELOG.md:2861 +msgid "As with anything else, these new defaults can be overriden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively." +msgstr "" + +#: ../../../CHANGELOG.md:2864 +msgid "2019-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:2866 +msgid "Improved Postgres upgrading/importing" +msgstr "" + +#: ../../../CHANGELOG.md:2868 +msgid "Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) and [importing](docs/importing-postgres.md) have been improved to add support for multiple databases and roles." +msgstr "" + +#: ../../../CHANGELOG.md:2870 +msgid "Previously, the playbook would only take care of the `homeserver` database and `synapse` user. We now back up and restore all databases and users on the Postgres server." +msgstr "" + +#: ../../../CHANGELOG.md:2872 +msgid "For now, the playbook only uses that one database (`homeserver`) and that one single user (`synapse`), so it's all the same. However, in the future, additional components besides Synapse may also make use the Postgres database server. One such example is the [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge, which strongly encourages use of Postgres in its v1.0 release. We are yet to upgrade to it." +msgstr "" + +#: ../../../CHANGELOG.md:2874 +msgid "Additionally, Postgres [upgrading](docs/maintenance-postgres.md#upgrading-postgresql) now uses gzipped dump files by default, to minimize disk space usage." +msgstr "" + +#: ../../../CHANGELOG.md:2877 +msgid "2019-10-04" +msgstr "" + +#: ../../../CHANGELOG.md:2879 +msgid "Postgres 12 support" +msgstr "" + +#: ../../../CHANGELOG.md:2881 +msgid "The playbook now installs [Postgres 12](https://www.postgresql.org/about/news/1976/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:2883 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x, 10.x or 11.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2886 +msgid "2019-10-03" +msgstr "" + +#: ../../../CHANGELOG.md:2888 +msgid "Synapse 1.4.0" +msgstr "" + +#: ../../../CHANGELOG.md:2890 +msgid "Synapse 1.4.0 [is out](https://matrix.org/blog/2019/10/03/synapse-1-4-0-released) with lots of changes related to privacy." +msgstr "" + +#: ../../../CHANGELOG.md:2892 +msgid "Its new defaults (which we adopt as well) mean that certain old data will automatically get purged after a certain number of days. 1.4.0 automatically garbage collects redacted messages (defaults to 7 days) and removes unused IP and user agent information stored in the user_ips table (defaults to 30 days). If you'd like to preserve this data, we encourage you to look at the `redaction_retention_period` and `user_ips_max_age` options (controllable by the `matrix_synapse_redaction_retention_period` and `matrix_synapse_user_ips_max_age` playbook variables, respectively) before doing the upgrade. If you'd like to keep data indefinitely, set these variables to `null` (e.g. `matrix_synapse_redaction_retention_period: ~`)." +msgstr "" + +#: ../../../CHANGELOG.md:2894 +msgid "From now on the `trusted_key_servers` setting for Synapse is configurable. It still defaults to `matrix.org` just like it always has, but in a more explicit way now. If you'd like to use another trusted key server, adjust the `matrix_synapse_trusted_key_servers` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:2896 +msgid "Synapse 1.4.0 also changes lots of things related to identity server integration. Because Synapse will now by default be responsible for validating email addresses for user accounts, running without an identity server looks more feasible. We still [have concerns](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/275/files#r331104117) over disabling the identity server by default, so for now it remains enabled." +msgstr "" + +#: ../../../CHANGELOG.md:2899 +msgid "2019-09-09" +msgstr "" + +#: ../../../CHANGELOG.md:2901 +msgid "Synapse Simple Antispam support" +msgstr "" + +#: ../../../CHANGELOG.md:2903 +msgid "There have been lots of invite-spam attacks lately and [Travis](https://github.com/t2bot) has created a Synapse module ([synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam)) to let people protect themselves." +msgstr "" + +#: ../../../CHANGELOG.md:2905 +msgid "From now on, you can easily install and configure this spam checker module through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2907 +msgid "Learn more in [Setting up Synapse Simple Antispam](docs/configuring-playbook-synapse-simple-antispam.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2910 +msgid "2019-08-25" +msgstr "" + +#: ../../../CHANGELOG.md:2912 +msgid "Extensible Riot-web configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2914 +msgid "Similarly to [Extensible Synapse configuration](#extensible-synapse-configuration) (below), Riot-web configuration is also extensible now." +msgstr "" + +#: ../../../CHANGELOG.md:2916 +msgid "From now on, you can extend/override Riot-web's configuration by making use of the `matrix_riot_web_configuration_extension_json` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2918 +msgid "If you need even more power, you can now also take full control and override `matrix_riot_web_configuration_default` (or `matrix_riot_web_configuration`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2920 +msgid "Learn more in [Configuring Riot-web](docs/configuring-playbook-riot-web.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2923 +msgid "2019-08-22" +msgstr "" + +#: ../../../CHANGELOG.md:2925 +msgid "Extensible Synapse configuration" +msgstr "" + +#: ../../../CHANGELOG.md:2927 +msgid "Previously, we had to create custom Ansible variables for each and every Synapse setting. This lead to too much effort (and configuration ugliness) to all of Synapse's settings, so naturally, not all features of Synapse could be controlled through the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2929 +msgid "From now on, you can extend/override the Synapse server's configuration by making use of the `matrix_synapse_configuration_extension_yaml` variable. This should be enough for most customization needs." +msgstr "" + +#: ../../../CHANGELOG.md:2931 +msgid "If you need even more power, you can now also take full control and override `matrix_synapse_configuration` (or `matrix_synapse_configuration_yaml`) directly." +msgstr "" + +#: ../../../CHANGELOG.md:2933 +msgid "Learn more here in [Configuring Synapse](docs/configuring-playbook-synapse.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2936 +msgid "2019-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:2940 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/205) of [kingoftheconnors](https://github.com/kingoftheconnors) and [Stuart Mumford (Cadair)](https://github.com/Cadair), the playbook now supports bridging to [Slack](https://slack.com) via the [appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2942 +msgid "Additional details are available in [Setting up Appservice Slack bridging](docs/configuring-playbook-bridge-appservice-slack.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2944 +msgid "Google Hangouts bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:2946 +msgid "Thanks to the [great work](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/251) of [Eduardo Beltrame (Munfred)](https://github.com/Munfred) and [Robbie D (microchipster)](https://github.com/microchipster), the playbook now supports bridging to [Google Hangouts](https://hangouts.google.com/) via the [mautrix-hangouts](https://mau.dev/tulir/mautrix-hangouts) bridge." +msgstr "" + +#: ../../../CHANGELOG.md:2948 +msgid "Additional details are available in [Setting up Mautrix Hangouts bridging](docs/configuring-playbook-bridge-mautrix-hangouts.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2951 +msgid "2019-08-05" +msgstr "" + +#: ../../../CHANGELOG.md:2953 +msgid "Email2Matrix support" +msgstr "" + +#: ../../../CHANGELOG.md:2955 +msgid "Support for [Email2Matrix](https://github.com/devture/email2matrix) has been added." +msgstr "" + +#: ../../../CHANGELOG.md:2957 +msgid "It's an optional feature that you can enable via the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:2959 +msgid "To learn more, see the [playbook's documentation on Email2Matrix](./docs/configuring-playbook-email2matrix.md)." +msgstr "" + +#: ../../../CHANGELOG.md:2962 +msgid "2019-08-03" +msgstr "" + +#: ../../../CHANGELOG.md:2964 +msgid "Synapse logging level has been reduced to WARNING" +msgstr "" + +#: ../../../CHANGELOG.md:2966 +msgid "After [some discussion in our support room](https://matrix.to/#/!PukFFdIcHgtaaHZflT:devture.com/$156476852524179TBeKy:matrix.org?via=devture.com&via=matrix.org&via=librem.one), we've decided to change the default logging level for Synapse from `INFO` to `WARNING`." +msgstr "" + +#: ../../../CHANGELOG.md:2968 +msgid "This greatly reduces the number of log messages that are being logged, leading to:" +msgstr "" + +#: ../../../CHANGELOG.md:2970 +msgid "much less disk space dedicated to Synapse and thus, logs kept for longer" +msgstr "" + +#: ../../../CHANGELOG.md:2971 +msgid "easier to find some important `WARNING`, `ERROR` and `CRITICAL` messages, as they're not longer buried in thousands of non-important `INFO` messages" +msgstr "" + +#: ../../../CHANGELOG.md:2973 +msgid "If you'd like to track down an issue, you [can always increase the logging level as described here](./docs/maintenance-and-troubleshooting.md#increasing-synapse-logging)." +msgstr "" + +#: ../../../CHANGELOG.md:2976 +msgid "2019-07-08" +msgstr "" + +#: ../../../CHANGELOG.md:2978 +msgid "Synapse Maintenance docs and synapse-janitor support are available" +msgstr "" + +#: ../../../CHANGELOG.md:2980 +msgid "The playbook can now help you with Synapse's maintenance." +msgstr "" + +#: ../../../CHANGELOG.md:2982 +msgid "There's a new documentation page about [Synapse maintenance](./docs/maintenance-synapse.md) and another section on [Postgres vacuuming](./docs/maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:2984 +msgid "Among other things, if your Postgres database has grown significantly over time, you may wish to [ask the playbook to purge unused data with synapse-janitor](./docs/maintenance-synapse.md#purging-unused-data-with-synapse-janitor) for you." +msgstr "" + +#: ../../../CHANGELOG.md:2986 +msgid "(BC Break) Rename run control variables" +msgstr "" + +#: ../../../CHANGELOG.md:2988 +msgid "Some internal playbook control variables have been renamed." +msgstr "" + +#: ../../../CHANGELOG.md:2990 +msgid "This change **only affects people who run this playbook's roles from another playbook**. If you're using this playbook as-is, you're not affected and don't need to do anything." +msgstr "" + +#: ../../../CHANGELOG.md:2992 +msgid "The following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:2994 +msgid "from `run_import_postgres` to `run_postgres_import`" +msgstr "" + +#: ../../../CHANGELOG.md:2995 +msgid "from `run_import_sqlite_db` to `run_postgres_import_sqlite_db`" +msgstr "" + +#: ../../../CHANGELOG.md:2996 +msgid "from `run_upgrade_postgres` to `run_postgres_upgrade`" +msgstr "" + +#: ../../../CHANGELOG.md:2997 +msgid "from `run_import_media_store` to `run_synapse_import_media_store`" +msgstr "" + +#: ../../../CHANGELOG.md:2998 +msgid "from `run_register_user` to `run_synapse_register_user`" +msgstr "" + +#: ../../../CHANGELOG.md:2999 +msgid "from `run_update_user_password` to `run_synapse_update_user_password`" +msgstr "" + +#: ../../../CHANGELOG.md:3002 +msgid "2019-07-04" +msgstr "" + +#: ../../../CHANGELOG.md:3004 +msgid "Synapse no longer logs to text files" +msgstr "" + +#: ../../../CHANGELOG.md:3006 +msgid "Following what the official Synapse Docker image is doing ([#5565](https://github.com/matrix-org/synapse/pull/5565)) and what we've been doing for mostly everything installed by this playbook, **Synapse no longer logs to text files** (`/matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3008 +msgid "From now on, Synapse would only log to console, which goes to systemd's journald. To see Synapse's logs, execute: `journalctl -fu matrix-synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3010 +msgid "Because of this, the following variables have become obsolete and were removed:" +msgstr "" + +#: ../../../CHANGELOG.md:3012 +msgid "`matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3013 +msgid "`matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3015 +msgid "To prevent confusion, it'd be better if you delete all old files manually after you've upgraded (`rm -f /matrix/synapse/run/homeserver.log*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3017 +msgid "Because Synapse is incredibly chatty when it comes to logging (here's [one such issue](https://github.com/matrix-org/synapse/issues/4751) describing the problem), if you're running an ancient distribution (like CentOS 7.0), be advised that systemd's journald default logging restrictions may not be high enough to capture all log messages generated by Synapse. This is especially true if you've got a busy (Synapse) server. We advise that you manually add `RateLimitInterval=0` and `RateLimitBurst=0` under `[Storage]` in the `/etc/systemd/journald.conf` file, followed by restarting the logging service (`systemctl restart systemd-journald`)." +msgstr "" + +#: ../../../CHANGELOG.md:3020 +msgid "2019-06-27" +msgstr "" + +#: ../../../CHANGELOG.md:3022 +msgid "(BC Break) Discord bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3024 +msgid "Until now, the `config.yaml` file for the [Discord bridge](docs/configuring-playbook-bridge-appservice-discord.md) was managed by the playbook, but the `registration.yaml` file was not." +msgstr "" + +#: ../../../CHANGELOG.md:3026 +msgid "From now on, the playbook will keep both configuration files sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3028 +msgid "This means that if you were making manual changes to the `/matrix/appservice-discord/discord-registration.yaml` configuration file, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3030 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-discord/config`)." +msgstr "" + +#: ../../../CHANGELOG.md:3032 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/appservice-discord/data`). When you run the playbook with an existing database file (`/matrix/appservice-discord/discord.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3034 +msgid "The main directory (`/matrix/appservice-discord`) may contain some leftover files (`user-store.db`, `room-store.db`, `config.yaml`, `discord-registration.yaml`, `invite_link`). These are no longer necessary and can be deleted manually." +msgstr "" + +#: ../../../CHANGELOG.md:3036 +msgid "We're now following the default sample configuration for the Discord bridge. If you need to override some values, define them in `matrix_appservice_discord_configuration_extension_yaml`." +msgstr "" + +#: ../../../CHANGELOG.md:3039 +msgid "2019-06-24" +msgstr "" + +#: ../../../CHANGELOG.md:3041 +msgid "(BC Break) WhatsApp bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3043 +msgid "Until now, configuration files for the [WhatsApp bridge](docs/configuring-playbook-bridge-mautrix-whatsapp.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3045 +#: ../../../CHANGELOG.md:3062 +#: ../../../CHANGELOG.md:3081 +#: ../../../CHANGELOG.md:3120 +msgid "From now on, the playbook will keep the configuration in sync for you." +msgstr "" + +#: ../../../CHANGELOG.md:3047 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-whatsapp/config.yaml` or `/matrix/mautrix-whatsapp/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3049 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-whatsapp/config`), so your old configuration remains in the base directory (`/matrix/mautrix-whatsapp`). You need to migrate any manual changes over to the new `matrix_mautrix_whatsapp_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3051 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-whatsapp/data`). When you run the playbook with an existing database file (`/matrix/mautrix-whatsapp/mautrix-whatsapp.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3053 +msgid "We're now following the default configuration for the WhatsApp bridge." +msgstr "" + +#: ../../../CHANGELOG.md:3056 +msgid "2019-06-20" +msgstr "" + +#: ../../../CHANGELOG.md:3058 +msgid "(BC Break) IRC bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3060 +msgid "Until now, configuration files for the [IRC bridge](docs/configuring-playbook-bridge-appservice-irc.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3064 +msgid "This means that if you were making manual changes to the `/matrix/appservice-irc/config.yaml` or `/matrix/appservice-irc/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3066 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/appservice-irc/config`), so your old configuration remains in the base directory (`/matrix/appservice-irc`)." +msgstr "" + +#: ../../../CHANGELOG.md:3068 +msgid "Previously, we asked people to configure bridged IRC servers by extending the bridge configuration (`matrix_appservice_irc_configuration_extension_yaml`). While this is still possible and will continue working forever, **we now recommend defining IRC servers in the easier to use `matrix_appservice_irc_ircService_servers` variable**. See [our IRC bridge documentation page](docs/configuring-playbook-bridge-appservice-irc.md) for an example." +msgstr "" + +#: ../../../CHANGELOG.md:3070 +msgid "If you decide to continue using `matrix_appservice_irc_configuration_extension_yaml`, you might be interested to know that `ircService.databaseUri` and a few other keys now have default values in the base configuration (`matrix_appservice_irc_configuration_yaml`). You may wish to stop redefining those keys, unless you really intend to override them. You most likely only need to override `ircService.servers`." +msgstr "" + +#: ../../../CHANGELOG.md:3072 +msgid "Bridge data (`passkey.pem` and database files) is now also stored in a subdirectory (`/matrix/appservice-irc/data`). When you run the playbook with an existing `/matrix/appservice-irc/passkey.pem` file, the playbook will stop the bridge and relocate the passkey and database files (`rooms.db` and `users.db`) to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3075 +msgid "2019-06-15" +msgstr "" + +#: ../../../CHANGELOG.md:3077 +msgid "(BC Break) Telegram bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3079 +msgid "Until now, configuration files for the [Telegram bridge](docs/configuring-playbook-bridge-mautrix-telegram.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3083 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-telegram/config.yaml` or `/matrix/mautrix-telegram/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3085 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-telegram/config`), so your old configuration remains in the base directory (`/matrix/mautrix-telegram`). You need to migrate any manual changes over to the new `matrix_mautrix_telegram_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3087 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-telegram/data`). When you run the playbook with an existing database file (`/matrix/mautrix-telegram/mautrix-telegram.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3089 +msgid "Also, we're now following the default configuration for the Telegram bridge, so some default configuration values are different:" +msgstr "" + +#: ../../../CHANGELOG.md:3091 +msgid "`edits_as_replies` (used to be `false`, now `true`) — previously replies were not sent over to Matrix at all; ow they are sent over as a reply to the original message" +msgstr "" + +#: ../../../CHANGELOG.md:3092 +msgid "`inline_images` (used to be `true`, now `false`) — this has to do with captioned images. Inline-image (included caption) are said to exhibit troubles on Riot iOS. When `false`, the caption arrives on the Matrix side as a separate message." +msgstr "" + +#: ../../../CHANGELOG.md:3093 +msgid "`authless_portals` (used to be `false`, now `true`) — creating portals from the Telegram side is now possible" +msgstr "" + +#: ../../../CHANGELOG.md:3094 +msgid "`whitelist_group_admins` (used to be `false`, now `true`) — allows Telegram group admins to use the bot commands" +msgstr "" + +#: ../../../CHANGELOG.md:3096 +msgid "If the new values are not to your liking, use `matrix_mautrix_telegram_configuration_extension_yaml` to specify an override (refer to `matrix_mautrix_telegram_configuration_yaml` to figure out which variable goes where)." +msgstr "" + +#: ../../../CHANGELOG.md:3099 +msgid "2019-06-12" +msgstr "" + +#: ../../../CHANGELOG.md:3101 +msgid "Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3103 +msgid "With [Synapse v1.0 now available](https://matrix.org/blog/2019/06/11/introducing-matrix-1-0-and-the-matrix-org-foundation) and most people being on at least Synapse v0.99, it's time to remove the `_matrix._tcp` DNS SRV record that we've been keeping for compatibility with old Synapse versions (<= 0.34)." +msgstr "" + +#: ../../../CHANGELOG.md:3105 +msgid "According to the [Server Discovery specification](https://matrix.org/docs/spec/server_server/r0.1.2.html#server-discovery), it's no harm to keep the DNS SRV record. But since it's not necessary for federating with the larger Matrix network anymore, you should be safe to get rid of it." +msgstr "" + +#: ../../../CHANGELOG.md:3107 +msgid "**Note**: don't confuse the `_matrix._tcp` and `_matrix-identity._tcp` DNS SRV records. The latter, **must not** be removed." +msgstr "" + +#: ../../../CHANGELOG.md:3109 +msgid "For completeness, we must say that using a `_matrix._tcp` [SRV record for Server Delegation](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced) is still valid and useful for certain deployments. It's just that our guide recommends the [`/.well-known/matrix/server` Server Delegation method](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), due to its easier implementation when using this playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3111 +msgid "Besides this optional/non-urgent DNS change, assuming you're already on Synapse v0.99, upgrading to Synapse v1.0 should be as simple as [re-running the playbook](docs/maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3114 +msgid "2019-06-07" +msgstr "" + +#: ../../../CHANGELOG.md:3116 +msgid "(BC Break) Facebook bridge configuration is now entirely managed by the playbook" +msgstr "" + +#: ../../../CHANGELOG.md:3118 +msgid "Until now, configuration files for the [Facebook bridge](docs/configuring-playbook-bridge-mautrix-facebook.md) were created by the playbook initially, but never modified later on." +msgstr "" + +#: ../../../CHANGELOG.md:3122 +msgid "This means that if you were making manual changes to the `/matrix/mautrix-facebook/config.yaml` or `/matrix/mautrix-facebook/registration.yaml` configuration files, those would be lost the next time you run the playbook." +msgstr "" + +#: ../../../CHANGELOG.md:3124 +msgid "The bridge now stores configuration in a subdirectory (`/matrix/mautrix-facebook/config`), so your old configuration remains in the base directory (`/matrix/mautrix-facebook`). You need to migrate any manual changes over to the new `matrix_mautrix_facebook_configuration_extension_yaml` variable, so that the playbook would apply them for you." +msgstr "" + +#: ../../../CHANGELOG.md:3126 +msgid "Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-facebook/data`). When you run the playbook with an existing database file (`/matrix/mautrix-facebook/mautrix-facebook.db`), the playbook will stop the bridge and relocate the database file to the `./data` directory. There's no data-loss involved. You'll need to restart the bridge manually though (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3129 +msgid "2019-05-25" +msgstr "" + +#: ../../../CHANGELOG.md:3131 +msgid "Support for exposing container ports publicly (not just to the host)" +msgstr "" + +#: ../../../CHANGELOG.md:3133 +msgid "Until now, various roles supported a `matrix_*_expose_port` variable, which would expose their container's port to the host. This was mostly useful for reverse-proxying manually (in case `matrix-nginx-proxy` was disabled). It could also be used for installing some playbook services (e.g. bridges, etc.) and wiring them to a separate (manual) Matrix setup." +msgstr "" + +#: ../../../CHANGELOG.md:3135 +msgid "`matrix_*_expose_port` variables were not granular enough — sometimes they would expose one port, other times multiple. They also didn't provide control over **where** to expose (to which port number and to which network interface), because they would usually hardcode something like `127.0.0.1:8080`." +msgstr "" + +#: ../../../CHANGELOG.md:3137 +msgid "All such variables have been superseded by a better (more flexible) way to do it." +msgstr "" + +#: ../../../CHANGELOG.md:3139 +msgid "**Most** people (including those not using `matrix-nginx-proxy`), **don't need** to bother with this." +msgstr "" + +#: ../../../CHANGELOG.md:3141 +msgid "Porting examples follow for people having more customized setups:" +msgstr "" + +#: ../../../CHANGELOG.md:3143 +msgid "**from** `matrix_synapse_container_expose_client_api_port: true` **to** `matrix_synapse_container_client_api_host_bind_port: '127.0.0.1:8008'`" +msgstr "" + +#: ../../../CHANGELOG.md:3145 +msgid "**from** `matrix_synapse_container_expose_federation_api_port: true` **to** `matrix_synapse_container_federation_api_plain_host_bind_port: '127.0.0.1:8048'` and possibly `matrix_synapse_container_federation_api_tls_host_bind_port: '8448'`" +msgstr "" + +#: ../../../CHANGELOG.md:3147 +msgid "**from** `matrix_synapse_container_expose_metrics_port: true` **to** `matrix_synapse_container_metrics_api_host_bind_port: '127.0.0.1:9100'`" +msgstr "" + +#: ../../../CHANGELOG.md:3149 +msgid "**from** `matrix_riot_web_container_expose_port: true` **to** `matrix_riot_web_container_http_host_bind_port: '127.0.0.1:8765'`" +msgstr "" + +#: ../../../CHANGELOG.md:3151 +msgid "**from** `matrix_mxisd_container_expose_port: true` **to** `matrix_mxisd_container_http_host_bind_port: '127.0.0.1:8090'`" +msgstr "" + +#: ../../../CHANGELOG.md:3153 +msgid "**from** `matrix_dimension_container_expose_port: true` **to** `matrix_dimension_container_http_host_bind_port: '127.0.0.1:8184'`" +msgstr "" + +#: ../../../CHANGELOG.md:3155 +msgid "**from** `matrix_corporal_container_expose_ports: true` **to** `matrix_corporal_container_http_gateway_host_bind_port: '127.0.0.1:41080'` and possibly `matrix_corporal_container_http_api_host_bind_port: '127.0.0.1:41081'`" +msgstr "" + +#: ../../../CHANGELOG.md:3157 +msgid "**from** `matrix_appservice_irc_container_expose_client_server_api_port: true` **to** `matrix_appservice_irc_container_http_host_bind_port: '127.0.0.1:9999'`" +msgstr "" + +#: ../../../CHANGELOG.md:3159 +msgid "**from** `matrix_appservice_discord_container_expose_client_server_api_port: true` **to** `matrix_appservice_discord_container_http_host_bind_port: '127.0.0.1:9005'`" +msgstr "" + +#: ../../../CHANGELOG.md:3161 +msgid "As always, if you forget to remove usage of some outdated variable, the playbook will warn you." +msgstr "" + +#: ../../../CHANGELOG.md:3164 +msgid "2019-05-23" +msgstr "" + +#: ../../../CHANGELOG.md:3166 +msgid "(BC Break) Ansible 2.8 compatibility" +msgstr "" + +#: ../../../CHANGELOG.md:3168 +msgid "Thanks to [@danbob](https://github.com/danbob), the playbook now [supports the new Ansible 2.8](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/187)." +msgstr "" + +#: ../../../CHANGELOG.md:3170 +msgid "A manual change is required to the `inventory/hosts` file, changing the group name from `matrix-servers` to `matrix_servers` (dash to underscore)." +msgstr "" + +#: ../../../CHANGELOG.md:3172 +msgid "To avoid doing it manually, run this:" +msgstr "" + +#: ../../../CHANGELOG.md:3173 +msgid "Linux: `sed -i 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3174 +msgid "Mac: `sed -i '' 's/matrix-servers/matrix_servers/g' inventory/hosts`" +msgstr "" + +#: ../../../CHANGELOG.md:3177 +msgid "2019-05-21" +msgstr "" + +#: ../../../CHANGELOG.md:3179 +msgid "Synapse no longer required" +msgstr "" + +#: ../../../CHANGELOG.md:3181 +msgid "The playbook no longer insists on installing [Synapse](https://github.com/element-hq/synapse) via the `matrix-synapse` role." +msgstr "" + +#: ../../../CHANGELOG.md:3183 +msgid "If you would prefer to install Synapse another way and just use the playbook to install other services, it should be possible (`matrix_synapse_enabled: false`)." +msgstr "" + +#: ../../../CHANGELOG.md:3185 +msgid "Note that it won't necessarily be the best experience, since the playbook wires things to Synapse by default. If you're using your own Synapse instance (especially one not running in a container), you may have to override many variables to point them to the correct place." +msgstr "" + +#: ../../../CHANGELOG.md:3187 +msgid "Having Synapse not be a required component potentially opens the door for installing alternative Matrix homeservers." +msgstr "" + +#: ../../../CHANGELOG.md:3189 +msgid "Bridges are now separate from the Synapse role" +msgstr "" + +#: ../../../CHANGELOG.md:3191 +msgid "Bridges are no longer part of the `matrix-synapse` role. Each bridge now lives in its own separate role (`roles/custom/matrix-bridge-*`)." +msgstr "" + +#: ../../../CHANGELOG.md:3193 +msgid "These bridge roles are independent of the `matrix-synapse` role, so it should be possible to use them with a Synapse instance installed another way (not through the playbook)." +msgstr "" + +#: ../../../CHANGELOG.md:3195 +msgid "Renaming inconsistently-named Synapse variables" +msgstr "" + +#: ../../../CHANGELOG.md:3197 +msgid "For better consistency, the following variables have been renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3199 +msgid "`matrix_enable_room_list_search` was renamed to `matrix_synapse_enable_room_list_search`" +msgstr "" + +#: ../../../CHANGELOG.md:3200 +msgid "`matrix_alias_creation_rules` was renamed to `matrix_synapse_alias_creation_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3201 +msgid "`matrix_nginx_proxy_matrix_room_list_publication_rulesdata_path` was renamed to `matrix_synapse_room_list_publication_rules`" +msgstr "" + +#: ../../../CHANGELOG.md:3204 +msgid "2019-05-09" +msgstr "" + +#: ../../../CHANGELOG.md:3206 +msgid "Besides a myriad of bug fixes and minor improvements, here are the more notable (bigger) features we can announce today." +msgstr "" + +#: ../../../CHANGELOG.md:3208 +msgid "Mautrix Facebook/Messenger bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3210 +msgid "The playbook now supports bridging with [Facebook](https://www.facebook.com/) by installing the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3212 +msgid "Additional details are available in [Setting up Mautrix Facebook bridging](docs/configuring-playbook-bridge-mautrix-facebook.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3214 +msgid "mxisd Registration feature integration" +msgstr "" + +#: ../../../CHANGELOG.md:3216 +msgid "The playbook can now help you integrate with mxisd's [Registration](https://github.com/kamax-matrix/mxisd/blob/master/docs/features/registration.md) feature." +msgstr "" + +#: ../../../CHANGELOG.md:3218 +msgid "Learn more in [mxisd-controlled Registration](docs/configuring-playbook-mxisd.md#mxisd-controlled-registration)." +msgstr "" + +#: ../../../CHANGELOG.md:3221 +msgid "2019-04-16" +msgstr "" + +#: ../../../CHANGELOG.md:3223 +msgid "Caddy webserver examples" +msgstr "" + +#: ../../../CHANGELOG.md:3225 +msgid "If you prefer using the [Caddy](https://caddyserver.com/) webserver instead of our own integrated nginx, we now have examples for it in the [`examples/caddy`](examples/caddy) directory" +msgstr "" + +#: ../../../CHANGELOG.md:3227 +msgid "2019-04-10" +msgstr "" + +#: ../../../CHANGELOG.md:3229 +msgid "Goofys support for other S3-compatible object stores" +msgstr "" + +#: ../../../CHANGELOG.md:3231 +msgid "Until now, you could optionally host Synapse's media repository on Amazon S3, but we now also support [using other S3-compatible object stores](docs/configuring-playbook-s3.md)," +msgstr "" + +#: ../../../CHANGELOG.md:3234 +msgid "2019-04-03" +msgstr "" + +#: ../../../CHANGELOG.md:3236 +msgid "Ansible >= 2.5 is required" +msgstr "" + +#: ../../../CHANGELOG.md:3238 +msgid "Due to recent playbook improvements and the fact that the world keeps turning, we're bumping the [version requirement for Ansible](docs/ansible.md#supported-ansible-versions) (2.4 -> 2.5)." +msgstr "" + +#: ../../../CHANGELOG.md:3240 +msgid "We've also started building our own Docker image of Ansible ([devture/ansible](https://hub.docker.com/r/devture/ansible/)), which is useful for people who can't upgrade their local Ansible installation (see [Using Ansible via Docker](docs/ansible.md#using-ansible-via-docker))." +msgstr "" + +#: ../../../CHANGELOG.md:3243 +msgid "2019-03-19" +msgstr "" + +#: ../../../CHANGELOG.md:3245 +msgid "TLS support for coturn" +msgstr "" + +#: ../../../CHANGELOG.md:3247 +msgid "We've added TLS support to the coturn TURN server installed by the playbook by default. The certificates from the Matrix domain will be used for the coturn server." +msgstr "" + +#: ../../../CHANGELOG.md:3249 +msgid "This feature is enabled by default for new installations. To make use of TLS support for your existing Matrix server's coturn, make sure to rebuild both coturn and Synapse:" +msgstr "" + +#: ../../../CHANGELOG.md:3255 +msgid "People who have an extra firewall (besides the iptables firewall, which Docker manages automatically), will need to open these additional firewall ports: `5349/tcp` (TURN over TCP) and `5349/udp` (TURN over UDP)." +msgstr "" + +#: ../../../CHANGELOG.md:3257 +msgid "People who build their own custom playbook from our roles should be aware that:" +msgstr "" + +#: ../../../CHANGELOG.md:3259 +msgid "the `matrix-coturn` role and actually starting coturn (e.g. `--tags=start`), requires that certificates are already put in place. For this reason, it's usually a good idea to have the `matrix-coturn` role execute after `matrix-nginx-proxy` (which retrieves the certificates)." +msgstr "" + +#: ../../../CHANGELOG.md:3261 +msgid "there are a few variables that can help you enable TLS support for coturn. See the `matrix-coturn` section in [group_vars/matrix-servers](./group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3264 +msgid "2019-03-12" +msgstr "" + +#: ../../../CHANGELOG.md:3266 +msgid "matrix-nginx-proxy support for serving the base domain" +msgstr "" + +#: ../../../CHANGELOG.md:3268 +msgid "If you don't have a dedicated server for your base domain and want to set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), the playbook has got you covered now." +msgstr "" + +#: ../../../CHANGELOG.md:3270 +msgid "It's now possible for the playbook to obtain an SSL certificate and serve the necessary files for Matrix Server Delegation on your base domain. Take a look at the new [Serving the base domain](docs/configuring-playbook-base-domain-serving.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3272 +msgid "(BC break) matrix-nginx-proxy data variable renamed" +msgstr "" + +#: ../../../CHANGELOG.md:3274 +msgid "`matrix_nginx_proxy_data_path` was renamed to `matrix_nginx_proxy_base_path`." +msgstr "" + +#: ../../../CHANGELOG.md:3276 +msgid "There's a new `matrix_nginx_proxy_data_path` variable, which has a different use-purpose now (it's a subdirectory of `matrix_nginx_proxy_base_path` and is meant for storing various data files)." +msgstr "" + +#: ../../../CHANGELOG.md:3279 +msgid "2019-03-10" +msgstr "" + +#: ../../../CHANGELOG.md:3281 +msgid "Dimension integration manager support" +msgstr "" + +#: ../../../CHANGELOG.md:3283 +msgid "Thanks to [NullIsNot0](https://github.com/NullIsNot0), the playbook can now (optionally) install the [Dimension](https://dimension.t2bot.io/) integration manager. To learn more, see the [Setting up Dimension](docs/configuring-playbook-dimension.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3286 +msgid "2019-03-07" +msgstr "" + +#: ../../../CHANGELOG.md:3288 +msgid "Ability to customize mxisd's email templates" +msgstr "" + +#: ../../../CHANGELOG.md:3290 +msgid "Thanks to [Sylvia van Os](https://github.com/TheLastProject), mxisd's email templates can now be customized easily. To learn more, see the [Customizing email templates](docs/configuring-playbook-mxisd.md#customizing-email-templates) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3293 +msgid "2019-03-05" +msgstr "" + +#: ../../../CHANGELOG.md:3295 +msgid "Discord bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3297 +msgid "[@Lionstiger](https://github.com/Lionstiger) has done some great work adding Discord bridging support via [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord). To learn more, see the [Setting up Appservice Discord bridging](docs/configuring-playbook-bridge-appservice-discord.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3300 +msgid "2019-02-19" +msgstr "" + +#: ../../../CHANGELOG.md:3302 +msgid "Renaming variables" +msgstr "" + +#: ../../../CHANGELOG.md:3304 +#: ../../../CHANGELOG.md:3621 +#: ../../../CHANGELOG.md:3706 +#: ../../../CHANGELOG.md:3826 +msgid "The following playbook variables were renamed:" +msgstr "" + +#: ../../../CHANGELOG.md:3306 +msgid "from `host_specific_hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3307 +msgid "from `hostname_identity` to `matrix_domain`" +msgstr "" + +#: ../../../CHANGELOG.md:3308 +msgid "from `hostname_matrix` to `matrix_server_fqn_matrix`" +msgstr "" + +#: ../../../CHANGELOG.md:3309 +msgid "from `hostname_riot` to `matrix_server_fqn_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3310 +msgid "from `host_specific_matrix_ssl_lets_encrypt_support_email` to `matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3312 +msgid "Doing that, we've simplified things, made names less confusing (hopefully) and moved all variable names under the `matrix_` prefix." +msgstr "" + +#: ../../../CHANGELOG.md:3315 +msgid "2019-02-16" +msgstr "" + +#: ../../../CHANGELOG.md:3317 +msgid "Riot v1.0.1 support" +msgstr "" + +#: ../../../CHANGELOG.md:3319 +msgid "You can now use the brand new and redesigned Riot." +msgstr "" + +#: ../../../CHANGELOG.md:3321 +msgid "The new version no longer has a homepage by default, so we've also removed the custom homepage that we've been installing." +msgstr "" + +#: ../../../CHANGELOG.md:3323 +msgid "However, we still provide you with hooks to install your own `home.html` file by specifying the `matrix_riot_web_embedded_pages_home_path` variable (used to be called `matrix_riot_web_homepage_template` before)." +msgstr "" + +#: ../../../CHANGELOG.md:3326 +msgid "2019-02-14" +msgstr "" + +#: ../../../CHANGELOG.md:3328 +msgid "Synapse v0.99.1" +msgstr "" + +#: ../../../CHANGELOG.md:3330 +msgid "As we're moving toward Synapse v1.0, things are beginning to stabilize. Upgrading from v0.99.0 to v0.99.1 should be painless." +msgstr "" + +#: ../../../CHANGELOG.md:3332 +msgid "If you've been overriding the default configuration so that you can terminate TLS at the Synapse side (`matrix_synapse_no_tls: false`), you'll now have to replace this custom configuration with `matrix_synapse_tls_federation_listener_enabled: true`. The `matrix_synapse_no_tls` variable is no more." +msgstr "" + +#: ../../../CHANGELOG.md:3335 +msgid "2019-02-06" +msgstr "" + +#: ../../../CHANGELOG.md:3337 +msgid "Synapse v0.99 support and preparation for Synapse v1.0" +msgstr "" + +#: ../../../CHANGELOG.md:3339 +msgid "Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. The first step is the Synapse v0.99 transitional release, which this playbook now supports." +msgstr "" + +#: ../../../CHANGELOG.md:3341 +msgid "If you've been using this playbook successfully until now, you'd be aware that we've been doing [Server Delegation](docs/howto-server-delegation.md) using a `_matrix._tcp` DNS SRV record (as per [Configuring DNS](docs/configuring-dns.md))." +msgstr "" + +#: ../../../CHANGELOG.md:3343 +msgid "Due to changes related to certificate file requirements that will affect us at Synapse v1.0, we'll have to stop using a **`_matrix._tcp` DNS SRV record in the future** (when Synapse goes to v1.0 — around 5th of March 2019). We **still need to keep the SRV record for now**, for backward compatibility with older Synapse versions (lower than v0.99)." +msgstr "" + +#: ../../../CHANGELOG.md:3345 +msgid "**What you need to do now** is make use of this transitional Synapse v0.99 release to **prepare your federation settings for the future**. You have 2 choices to prepare yourself for compatibility with the future Synapse v1.0:" +msgstr "" + +#: ../../../CHANGELOG.md:3347 +msgid "(recommended) set up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file), unless you are affected by the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation). If you had previously set up the well-known `client` file, depending on how you've done it, it may be that there is nothing new required of you (besides [upgrading](docs/maintenance-upgrading-services.md)). After upgrading, you can [run a self-check](docs/maintenance-checking-services.md), which will tell you if you need to do anything extra with regard to setting up [Server Delegation via a well-known file](docs/howto-server-delegation.md#server-delegation-via-a-well-known-file). After some time, when most people have upgraded to Synapse v0.99 and older releases have disappeared, be prepared to drop your `_matrix._tcp` SRV record." +msgstr "" + +#: ../../../CHANGELOG.md:3349 +msgid "(more advanced) if the [Downsides of well-known-based Server Delegation](docs/howto-server-delegation.md#downsides-of-well-known-based-server-delegation) are not to your liking, **as an alternative**, you can set up [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced). In such a case, you get to keep using your existing `_matrix._tcp` DNS SRV record forever and need to NOT set up a `/.well-known/matrix/server` file. Don't forget that you need to do certificate changes though. Follow the guide at [Server Delegation via a DNS SRV record](docs/howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)." +msgstr "" + +#: ../../../CHANGELOG.md:3352 +msgid "2019-02-01" +msgstr "" + +#: ../../../CHANGELOG.md:3354 +msgid "TLS v1.3 support" +msgstr "" + +#: ../../../CHANGELOG.md:3356 +msgid "Now that the [nginx Docker image](https://hub.docker.com/_/nginx) has [added support for TLS v1.3](https://github.com/nginxinc/docker-nginx/issues/190), we have enabled that protocol by default." +msgstr "" + +#: ../../../CHANGELOG.md:3358 +msgid "When using:" +msgstr "" + +#: ../../../CHANGELOG.md:3360 +msgid "the **integrated nginx server**: TLS v1.3 support might not kick in immediately, because the nginx version hasn't been bumped and you may have an older build of the nginx Docker image (currently `nginx:1.15.8-alpine`). Typically, we do not re-pull images that you already have. When the nginx version gets bumped in the future, everyone will get the update. Until then, you could manually force-pull the rebuilt Docker image by running this on the server: `docker pull nginx:1.15.8-alpine`." +msgstr "" + +#: ../../../CHANGELOG.md:3362 +msgid "**your own external nginx server**: if your external nginx server is too old, the new configuration we generate for you in `/matrix/nginx-proxy/conf.d/` might not work anymore, because it mentions `TLSv1.3` and your nginx version might not support that. You can adjust the SSL protocol list by overriding the `matrix_nginx_proxy_ssl_protocols` variable. Learn more in the documentation page for [Using your own webserver, instead of this playbook's nginx proxy](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3364 +msgid "**another web server**: you don't need to do anything to accommodate this change" +msgstr "" + +#: ../../../CHANGELOG.md:3367 +msgid "2019-01-31" +msgstr "" + +#: ../../../CHANGELOG.md:3369 +msgid "IRC bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3371 +msgid "[Devon Maloney (@Plailect)](https://github.com/Plailect) has done some great work bringing IRC bridging support via [matrix-appservice-irc](https://github.com/TeDomum/matrix-appservice-irc). To learn more, see the [Setting up Appservice IRC bridging](docs/configuring-playbook-bridge-appservice-irc.md) documentation page." +msgstr "" + +#: ../../../CHANGELOG.md:3374 +msgid "2019-01-29" +msgstr "" + +#: ../../../CHANGELOG.md:3376 +msgid "Running container processes as non-root, without capabilities and read-only" +msgstr "" + +#: ../../../CHANGELOG.md:3378 +msgid "To improve security, this playbook no longer starts container processes as the `root` user. Most containers were dropping privileges anyway, but we were trusting them with `root` privileges until they would do that. Not anymore — container processes now start as a non-root user (usually `matrix`) from the get-go." +msgstr "" + +#: ../../../CHANGELOG.md:3380 +msgid "For additional security, various capabilities are also dropped (see [why it's important](https://github.com/projectatomic/atomic-site/issues/203)) for all containers." +msgstr "" + +#: ../../../CHANGELOG.md:3382 +msgid "Additionally, most containers now use a read-only filesystem (see [why it's important](https://www.projectatomic.io/blog/2015/12/making-docker-images-write-only-in-production/)). Containers are given write access only to the directories they need to write to." +msgstr "" + +#: ../../../CHANGELOG.md:3384 +msgid "A minor breaking change is the `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size` variable having being renamed to `matrix_nginx_proxy_proxy_matrix_client_api_client_max_body_size_mb` (note the `_mb` suffix). The new variable expects a number value (e.g. `25M` -> `25`). If you weren't customizing this variable, this wouldn't affect you." +msgstr "" + +#: ../../../CHANGELOG.md:3386 +msgid "matrix-mailer is now based on Exim, not Postfix" +msgstr "" + +#: ../../../CHANGELOG.md:3388 +msgid "While we would have preferred to stay with [Postfix](http://www.postfix.org/), we found out that it cannot run as a non-root user. We've had to replace it with [Exim](https://www.exim.org/) (via the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image)." +msgstr "" + +#: ../../../CHANGELOG.md:3390 +msgid "The internal `matrix-mailer` service (running in a container) now listens on port `8025` (used to be `587` before). The playbook will update your Synapse and mxisd email settings to match (`matrix-mailer:587` -> `matrix-mailer:8025`)." +msgstr "" + +#: ../../../CHANGELOG.md:3392 +msgid "Using the [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay) container image instead of [panubo/postfix](https://hub.docker.com/r/panubo/postfix/) also gives us a nice disk usage reduction (~200MB -> 8MB)." +msgstr "" + +#: ../../../CHANGELOG.md:3395 +msgid "2019-01-17" +msgstr "" + +#: ../../../CHANGELOG.md:3397 +msgid "(BC Break) Making the playbook's roles more independent of one another" +msgstr "" + +#: ../../../CHANGELOG.md:3399 +msgid "The following change **affects people running a more non-standard setup** — external Postgres or using our roles in their own other playbook. **Most users don't need to do anything**, besides becoming aware of the new glue variables file [`group_vars/matrix-servers`](group_vars/matrix-servers)." +msgstr "" + +#: ../../../CHANGELOG.md:3402 +msgid "Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them. Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components." +msgstr "" + +#: ../../../CHANGELOG.md:3404 +msgid "With the new changes, **all roles are now only dependent on the minimal `matrix-base` role**. They are no longer dependent among themselves." +msgstr "" + +#: ../../../CHANGELOG.md:3406 +msgid "In addition, the following components can now be completely disabled (for those who want/need to):" +msgstr "" + +#: ../../../CHANGELOG.md:3407 +msgid "`matrix-coturn` by using `matrix_coturn_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3408 +msgid "`matrix-mailer` by using `matrix_mailer_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3409 +msgid "`matrix-postgres` by using `matrix_postgres_enabled: false`" +msgstr "" + +#: ../../../CHANGELOG.md:3411 +msgid "The following changes had to be done:" +msgstr "" + +#: ../../../CHANGELOG.md:3413 +msgid "glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file." +msgstr "" + +#: ../../../CHANGELOG.md:3415 +msgid "`matrix_postgres_use_external` has been superceeded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement." +msgstr "" + +#: ../../../CHANGELOG.md:3417 +msgid "Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're not enabling the `matrix-postgres` role (`matrix_postgres_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3419 +msgid "roles, being more independent now, are more minimal and do not do so much magic for you. People that are building their own playbook using our roles will definitely need to take a look at the [`group_vars/matrix-servers`](group_vars/matrix-servers) file and adapt their playbooks with the same (or similar) wiring logic." +msgstr "" + +#: ../../../CHANGELOG.md:3422 +msgid "2019-01-16" +msgstr "" + +#: ../../../CHANGELOG.md:3424 +msgid "Splitting the playbook into multiple roles" +msgstr "" + +#: ../../../CHANGELOG.md:3426 +msgid "For better maintainability, the playbook logic (which all used to reside in a single `matrix-server` role) has been split out into a number of different roles: `matrix-synapse`, `matrix-postgres`, `matrix-riot-web`, `matrix-mxisd`, etc. (see the `roles/` directory)." +msgstr "" + +#: ../../../CHANGELOG.md:3429 +msgid "To keep the filesystem more consistent with this separation, the **Postgres data had to be relocated**." +msgstr "" + +#: ../../../CHANGELOG.md:3431 +msgid "The default value of `matrix_postgres_data_path` was changed from `/matrix/postgres` to `/matrix/postgres/data`. The `/matrix/postgres` directory is what we consider a base path now (new variable `matrix_postgres_base_path`). **Your Postgres data files will automatically be relocated by the playbook** (`/matrix/postgres/*` -> `/matrix/postgres/data/`) when you run with `--tags=setup-all` (or `--tags=setup-postgres`). While this shouldn't cause data-loss, **it's better if you do a Postgres backup just in case**. You'd need to restart all services after this migration (`--tags=start`)." +msgstr "" + +#: ../../../CHANGELOG.md:3434 +msgid "2019-01-11" +msgstr "" + +#: ../../../CHANGELOG.md:3436 +msgid "(BC Break) mxisd configuration changes" +msgstr "" + +#: ../../../CHANGELOG.md:3438 +msgid "To be more flexible and to support the upcoming [mxisd](https://github.com/kamax-io/mxisd) 1.3.0 (when it gets released), we've had to redo how mxisd gets configured." +msgstr "" + +#: ../../../CHANGELOG.md:3441 +msgid "The following variables are no longer supported by this playbook:" +msgstr "" + +#: ../../../CHANGELOG.md:3443 +msgid "`matrix_mxisd_ldap_enabled`" +msgstr "" + +#: ../../../CHANGELOG.md:3444 +msgid "`matrix_mxisd_ldap_connection_host`" +msgstr "" + +#: ../../../CHANGELOG.md:3445 +msgid "`matrix_mxisd_ldap_connection_tls`" +msgstr "" + +#: ../../../CHANGELOG.md:3446 +msgid "`matrix_mxisd_ldap_connection_port`" +msgstr "" + +#: ../../../CHANGELOG.md:3447 +msgid "`matrix_mxisd_ldap_connection_baseDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3448 +msgid "`matrix_mxisd_ldap_connection_baseDns`" +msgstr "" + +#: ../../../CHANGELOG.md:3449 +#: ../../../CHANGELOG.md:3450 +msgid "`matrix_mxisd_ldap_connection_bindDn`" +msgstr "" + +#: ../../../CHANGELOG.md:3451 +#: ../../../CHANGELOG.md:3455 +msgid "`matrix_mxisd_ldap_connection_bindPassword`" +msgstr "" + +#: ../../../CHANGELOG.md:3452 +msgid "`matrix_mxisd_ldap_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3453 +msgid "`matrix_mxisd_ldap_attribute_uid_type`" +msgstr "" + +#: ../../../CHANGELOG.md:3454 +msgid "`matrix_mxisd_ldap_attribute_uid_value`" +msgstr "" + +#: ../../../CHANGELOG.md:3456 +msgid "`matrix_mxisd_ldap_attribute_name`" +msgstr "" + +#: ../../../CHANGELOG.md:3457 +msgid "`matrix_mxisd_ldap_attribute_threepid_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3458 +msgid "`matrix_mxisd_ldap_attribute_threepid_msisdn`" +msgstr "" + +#: ../../../CHANGELOG.md:3459 +msgid "`matrix_mxisd_ldap_identity_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3460 +msgid "`matrix_mxisd_ldap_identity_medium`" +msgstr "" + +#: ../../../CHANGELOG.md:3461 +msgid "`matrix_mxisd_ldap_auth_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3462 +msgid "`matrix_mxisd_ldap_directory_filter`" +msgstr "" + +#: ../../../CHANGELOG.md:3463 +msgid "`matrix_mxisd_template_config`" +msgstr "" + +#: ../../../CHANGELOG.md:3465 +msgid "You are encouraged to use the `matrix_mxisd_configuration_extension_yaml` variable to define your own mxisd configuration additions and overrides. Refer to the [default variables file](roles/custom/matrix-mxisd/defaults/main.yml) for more information." +msgstr "" + +#: ../../../CHANGELOG.md:3467 +msgid "This new way of configuring mxisd is beneficial because:" +msgstr "" + +#: ../../../CHANGELOG.md:3469 +msgid "it lets us support all mxisd configuration options, as the playbook simply forwards them to mxisd without needing to care or understand them" +msgstr "" + +#: ../../../CHANGELOG.md:3470 +msgid "it lets you upgrade to newer mxisd versions and make use of their features, without us having to add support for them explicitly" +msgstr "" + +#: ../../../CHANGELOG.md:3473 +msgid "2019-01-08" +msgstr "" + +#: ../../../CHANGELOG.md:3475 +msgid "(BC Break) Cronjob schedule no longer configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3477 +msgid "Due to the way we manage cronjobs now, you can no longer configure the schedule they're invoked at." +msgstr "" + +#: ../../../CHANGELOG.md:3479 +msgid "If you were previously using `matrix_ssl_lets_encrypt_renew_cron_time_definition` or `matrix_nginx_proxy_reload_cron_time_definition` to set a custom schedule, you should note that these variables don't affect anything anymore." +msgstr "" + +#: ../../../CHANGELOG.md:3482 +msgid "If you miss this functionality, please [open an Issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new) and let us know about your use case!" +msgstr "" + +#: ../../../CHANGELOG.md:3485 +msgid "2018-12-23" +msgstr "" + +#: ../../../CHANGELOG.md:3487 +msgid "(BC Break) More SSL certificate retrieval methods" +msgstr "" + +#: ../../../CHANGELOG.md:3489 +msgid "The playbook now lets you decide between 3 different SSL certificate retrieval methods:" +msgstr "" + +#: ../../../CHANGELOG.md:3490 +msgid "(default) obtaining free SSL certificates from Let's Encrypt" +msgstr "" + +#: ../../../CHANGELOG.md:3491 +msgid "generating self-signed SSL certificates" +msgstr "" + +#: ../../../CHANGELOG.md:3492 +msgid "managing SSL certificates manually" +msgstr "" + +#: ../../../CHANGELOG.md:3494 +msgid "Learn more in [Adjusting SSL certificate retrieval](docs/configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3496 +msgid "For people who use Let's Encrypt (mostly everyone, since it's the default), you'll also have to rename a variable in your configuration:" +msgstr "" + +#: ../../../CHANGELOG.md:3498 +msgid "before: `host_specific_matrix_ssl_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3499 +msgid "after: `host_specific_matrix_ssl_lets_encrypt_support_email`" +msgstr "" + +#: ../../../CHANGELOG.md:3501 +msgid "(BC Break) mxisd upgrade with multiple base DN support" +msgstr "" + +#: ../../../CHANGELOG.md:3503 +msgid "mxisd has bee upgraded to [version 1.2.2](https://github.com/kamax-matrix/mxisd/releases/tag/v1.2.2), which supports [multiple base DNs](https://github.com/kamax-matrix/mxisd/blob/v1.2.2/docs/stores/ldap.md#base)." +msgstr "" + +#: ../../../CHANGELOG.md:3505 +msgid "If you were configuring this playbook's `matrix_mxisd_ldap_connection_baseDn` variable until now (a string containing a single base DN), you'll need to change to configuring the `matrix_mxisd_ldap_connection_baseDns` variable (an array containing multiple base DNs)." +msgstr "" + +#: ../../../CHANGELOG.md:3507 +msgid "Example change:" +msgstr "" + +#: ../../../CHANGELOG.md:3509 +msgid "before: `matrix_mxisd_ldap_connection_baseDn: OU=Users,DC=example,DC=org`" +msgstr "" + +#: ../../../CHANGELOG.md:3510 +msgid "after: `matrix_mxisd_ldap_connection_baseDns: ['OU=Users,DC=example,DC=org']`" +msgstr "" + +#: ../../../CHANGELOG.md:3513 +msgid "2018-12-21" +msgstr "" + +#: ../../../CHANGELOG.md:3515 +msgid "Synapse 0.34.0 and Python 3" +msgstr "" + +#: ../../../CHANGELOG.md:3517 +msgid "Synapse has been upgraded to 0.34.0 and now uses Python 3. Based on feedback from others, running Synapse on Python 3 is supposed to decrease memory usage significantly (~2x)." +msgstr "" + +#: ../../../CHANGELOG.md:3520 +msgid "2018-12-12" +msgstr "" + +#: ../../../CHANGELOG.md:3522 +msgid "Riot homepage customization" +msgstr "" + +#: ../../../CHANGELOG.md:3524 +msgid "You can now customize some parts of the Riot homepage (or even completely replace it with your own custom page). See the `matrix_riot_web_homepage_` variables in `roles/custom/matrix-riot-web/defaults/main.yml`." +msgstr "" + +#: ../../../CHANGELOG.md:3527 +msgid "2018-12-04" +msgstr "" + +#: ../../../CHANGELOG.md:3529 +msgid "mxisd extensibility" +msgstr "" + +#: ../../../CHANGELOG.md:3531 +msgid "The [LDAP identity store for mxisd](https://github.com/kamax-matrix/mxisd/blob/master/docs/stores/ldap.md) can now be configured easily using playbook variables (see the `matrix_mxisd_ldap_` variables in `roles/custom/matrix-server/defaults/main.yml`)." +msgstr "" + +#: ../../../CHANGELOG.md:3534 +msgid "2018-11-28" +msgstr "" + +#: ../../../CHANGELOG.md:3536 +msgid "More scripts" +msgstr "" + +#: ../../../CHANGELOG.md:3538 +msgid "matrix-remove-all allows to uninstall everything with a single command" +msgstr "" + +#: ../../../CHANGELOG.md:3539 +msgid "matrix-make-user-admin allows to upgrade a user's privileges" +msgstr "" + +#: ../../../CHANGELOG.md:3541 +msgid "LDAP auth support via matrix-synapse-ldap3" +msgstr "" + +#: ../../../CHANGELOG.md:3543 +msgid "The playbook can now install and configure [LDAP auth support](https://github.com/matrix-org/matrix-synapse-ldap3) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3545 +msgid "Additional details are available in [Setting up the LDAP authentication password provider module](docs/configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3548 +msgid "2018-11-23" +msgstr "" + +#: ../../../CHANGELOG.md:3550 +msgid "Support for controlling public registration and room auto-join" +msgstr "" + +#: ../../../CHANGELOG.md:3552 +msgid "The playbook now lets you enable public registration for users (controlled via `matrix_synapse_enable_registration`). By default, public registration is forbidden." +msgstr "" + +#: ../../../CHANGELOG.md:3554 +msgid "You can also make people automatically get auto-joined to rooms (controlled via `matrix_synapse_auto_join_rooms`)." +msgstr "" + +#: ../../../CHANGELOG.md:3556 +msgid "Support for changing the welcome user ID (welcome bot)" +msgstr "" + +#: ../../../CHANGELOG.md:3558 +msgid "By default, `@riot-bot:matrix.org` is used to welcome newly registered users. This can be changed to something else (or disabled) via the new `matrix_riot_web_welcome_user_id` variable." +msgstr "" + +#: ../../../CHANGELOG.md:3561 +msgid "2018-11-14" +msgstr "" + +#: ../../../CHANGELOG.md:3563 +msgid "Ability to set Synapse log levels" +msgstr "" + +#: ../../../CHANGELOG.md:3565 +msgid "The playbook now allows you to set the log levels used by Synapse. The default logging levels remain the same." +msgstr "" + +#: ../../../CHANGELOG.md:3567 +msgid "You can now override following variables with any of the supported log levels listed here: https://docs.python.org/3/library/logging.html#logging-levels" +msgstr "" + +#: ../../../CHANGELOG.md:3576 +msgid "2018-11-03" +msgstr "" + +#: ../../../CHANGELOG.md:3578 +msgid "Customize parts of Riot's config" +msgstr "" + +#: ../../../CHANGELOG.md:3580 +msgid "You can now customize some parts of Riot's `config.json`. These playbook variables, with these default values, have been added:" +msgstr "" + +#: ../../../CHANGELOG.md:3591 +msgid "This now allows you use a custom integration manager like [Dimension](https://dimension.t2bot.io). For example, if you wish to use the Dimension instance hosted at dimension.t2bot.io, you can set the following in your vars.yml file:" +msgstr "" + +#: ../../../CHANGELOG.md:3600 +msgid "SSL protocols used to serve Riot and Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3602 +msgid "There's now a new `matrix_nginx_proxy_ssl_protocols` playbook variable, which controls the SSL protocols used to serve Riot and Synapse. Its default value is `TLSv1.1 TLSv1.2`. This playbook previously used `TLSv1 TLSv1.1 TLSv1.2` to serve Riot and Synapse." +msgstr "" + +#: ../../../CHANGELOG.md:3604 +msgid "You may wish to reenable TLSv1 if you need to access Riot in older browsers." +msgstr "" + +#: ../../../CHANGELOG.md:3606 +msgid "Note: Currently the dockerized nginx doesn't support TLSv1.3. See https://github.com/nginxinc/docker-nginx/issues/190 for more details." +msgstr "" + +#: ../../../CHANGELOG.md:3609 +msgid "2018-11-01" +msgstr "" + +#: ../../../CHANGELOG.md:3611 +msgid "Postgres 11 support" +msgstr "" + +#: ../../../CHANGELOG.md:3613 +msgid "The playbook now installs [Postgres 11](https://www.postgresql.org/about/news/1894/) by default." +msgstr "" + +#: ../../../CHANGELOG.md:3615 +msgid "If you have have an existing setup, it's likely running on an older Postgres version (9.x or 10.x). You can easily upgrade by following the [upgrading PostgreSQL guide](docs/maintenance-postgres.md#upgrading-postgresql)." +msgstr "" + +#: ../../../CHANGELOG.md:3617 +#: ../../../CHANGELOG.md:3704 +#: ../../../CHANGELOG.md:3824 +msgid "(BC Break) Renaming playbook variables" +msgstr "" + +#: ../../../CHANGELOG.md:3619 +msgid "Due to the large amount of features added to this playbook lately, to keep things manageable we've had to reorganize its configuration variables a bit." +msgstr "" + +#: ../../../CHANGELOG.md:3623 +msgid "from `matrix_docker_image_mxisd` to `matrix_mxisd_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3624 +msgid "from `matrix_docker_image_mautrix_telegram` to `matrix_mautrix_telegram_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3625 +msgid "from `matrix_docker_image_mautrix_whatsapp` to `matrix_mautrix_whatsapp_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3626 +msgid "from `matrix_docker_image_mailer` to `matrix_mailer_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3627 +msgid "from `matrix_docker_image_coturn` to `matrix_coturn_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3628 +msgid "from `matrix_docker_image_goofys` to `matrix_s3_goofys_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3629 +msgid "from `matrix_docker_image_riot` to `matrix_riot_web_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3630 +msgid "from `matrix_docker_image_nginx` to `matrix_nginx_proxy_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3631 +msgid "from `matrix_docker_image_synapse` to `matrix_synapse_docker_image`" +msgstr "" + +#: ../../../CHANGELOG.md:3632 +msgid "from `matrix_docker_image_postgres_v9` to `matrix_postgres_docker_image_v9`" +msgstr "" + +#: ../../../CHANGELOG.md:3633 +msgid "from `matrix_docker_image_postgres_v10` to `matrix_postgres_docker_image_v10`" +msgstr "" + +#: ../../../CHANGELOG.md:3634 +msgid "from `matrix_docker_image_postgres_latest` to `matrix_postgres_docker_image_latest`" +msgstr "" + +#: ../../../CHANGELOG.md:3637 +msgid "2018-10-26" +msgstr "" + +#: ../../../CHANGELOG.md:3639 +msgid "Mautrix Whatsapp bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3641 +msgid "The playbook now supports bridging with [Whatsapp](https://www.whatsapp.com/) by installing the [mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3643 +msgid "Additional details are available in [Setting up Mautrix Whatsapp bridging](docs/configuring-playbook-bridge-mautrix-whatsapp.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3646 +msgid "2018-10-25" +msgstr "" + +#: ../../../CHANGELOG.md:3648 +msgid "Support for controlling Matrix federation" +msgstr "" + +#: ../../../CHANGELOG.md:3650 +msgid "The playbook can now help you with [Controlling Matrix federation](docs/configuring-playbook-federation), should you wish to run a more private (isolated) server." +msgstr "" + +#: ../../../CHANGELOG.md:3653 +msgid "2018-10-24" +msgstr "" + +#: ../../../CHANGELOG.md:3655 +msgid "Disabling riot-web guests" +msgstr "" + +#: ../../../CHANGELOG.md:3657 +msgid "From now on, Riot's configuration setting `disable_guests` would be set to `true`. The homeserver was rejecting guests anyway, so this is just a cosmetic change affecting Riot's UI." +msgstr "" + +#: ../../../CHANGELOG.md:3660 +msgid "2018-10-21" +msgstr "" + +#: ../../../CHANGELOG.md:3662 +msgid "Self-check maintenance command" +msgstr "" + +#: ../../../CHANGELOG.md:3664 +msgid "The playbook can now [check if services are configured correctly](docs/maintenance-checking-services.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3667 +msgid "2018-10-05" +msgstr "" + +#: ../../../CHANGELOG.md:3669 +msgid "Presence tracking made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3671 +msgid "The playbook can now enable/disable user presence-status tracking in Synapse, through the playbook's `matrix_synapse_use_presence` variable (having a default value of `true` — enabled)." +msgstr "" + +#: ../../../CHANGELOG.md:3673 +msgid "If users participate in large rooms with many other servers, disabling presence will decrease server load significantly." +msgstr "" + +#: ../../../CHANGELOG.md:3676 +msgid "2018-09-27" +msgstr "" + +#: ../../../CHANGELOG.md:3678 +msgid "Synapse Cache Factor made configurable" +msgstr "" + +#: ../../../CHANGELOG.md:3680 +msgid "The playbook now makes the Synapse cache factor configurable, through the playbook's `matrix_synapse_cache_factor` variable (having a default value of `0.5`)." +msgstr "" + +#: ../../../CHANGELOG.md:3682 +msgid "Changing that value allows you to potentially decrease RAM usage or to increase performance by caching more stuff. Some information on it is available here: https://github.com/element-hq/synapse#help-synapse-eats-all-my-ram" +msgstr "" + +#: ../../../CHANGELOG.md:3685 +msgid "2018-09-26" +msgstr "" + +#: ../../../CHANGELOG.md:3687 +msgid "Disabling Docker container logging" +msgstr "" + +#: ../../../CHANGELOG.md:3689 +msgid "`--log-driver=none` is used for all Docker containers now." +msgstr "" + +#: ../../../CHANGELOG.md:3691 +msgid "All these containers are started through systemd anyway and get logged in journald, so there's no need for Docker to be logging the same thing using the default `json-file` driver. Doing that was growing `/var/lib/docker/containers/…` infinitely until service/container restart." +msgstr "" + +#: ../../../CHANGELOG.md:3693 +msgid "As a result of this, things like `docker logs matrix-synapse` won't work anymore. `journalctl -u matrix-synapse` is how one can see the logs." +msgstr "" + +#: ../../../CHANGELOG.md:3696 +msgid "2018-09-17" +msgstr "" + +#: ../../../CHANGELOG.md:3698 +msgid "Service discovery support" +msgstr "" + +#: ../../../CHANGELOG.md:3700 +msgid "The playbook now helps you set up [service discovery](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) using a `/.well-known/matrix/client` file." +msgstr "" + +#: ../../../CHANGELOG.md:3702 +msgid "Additional details are available in [Configuring service discovery via .well-known](docs/configuring-well-known.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3708 +msgid "from `matrix_nginx_riot_web_data_path` to `matrix_riot_web_data_path`" +msgstr "" + +#: ../../../CHANGELOG.md:3709 +msgid "from `matrix_riot_web_default_identity_server_url` to `matrix_identity_server_url`" +msgstr "" + +#: ../../../CHANGELOG.md:3712 +msgid "2018-09-07" +msgstr "" + +#: ../../../CHANGELOG.md:3714 +msgid "Mautrix Telegram bridging support" +msgstr "" + +#: ../../../CHANGELOG.md:3716 +msgid "The playbook now supports bridging with [Telegram](https://telegram.org/) by installing the [mautrix-telegram](https://github.com/tulir/mautrix-telegram) bridge. This playbook functionality is available thanks to [@izissise](https://github.com/izissise)." +msgstr "" + +#: ../../../CHANGELOG.md:3718 +msgid "Additional details are available in [Setting up Mautrix Telegram bridging](docs/configuring-playbook-bridge-mautrix-telegram.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3720 +msgid "Events cache size increase and configurability for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3722 +msgid "The playbook now lets you configure Matrix Synapse's `event_cache_size` configuration via the `matrix_synapse_event_cache_size` playbook variable." +msgstr "" + +#: ../../../CHANGELOG.md:3724 +msgid "Previously, this value was hardcoded to `\"10K\"`. From now on, a more reasonable default of `\"100K\"` is used." +msgstr "" + +#: ../../../CHANGELOG.md:3726 +msgid "Password-peppering support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3728 +msgid "The playbook now supports enabling password-peppering for increased security in Matrix Synapse via the `matrix_synapse_password_config_pepper` playbook variable. Using a password pepper is disabled by default (just like it used to be before this playbook variable got introduced) and is not to be enabled/disabled after initial setup, as that would invalidate all existing passwords." +msgstr "" + +#: ../../../CHANGELOG.md:3730 +msgid "Statistics-reporting support for Matrix Synapse" +msgstr "" + +#: ../../../CHANGELOG.md:3732 +msgid "There's now a new `matrix_synapse_report_stats` playbook variable, which controls the `report_stats` configuration option for Matrix Synapse. It defaults to `false`, so no change is required to retain your privacy." +msgstr "" + +#: ../../../CHANGELOG.md:3734 +msgid "If you'd like to start reporting statistics about your homeserver (things like number of users, number of messages sent, uptime, load, etc.) to matrix.org, you can turn on stats reporting." +msgstr "" + +#: ../../../CHANGELOG.md:3737 +msgid "2018-08-29" +msgstr "" + +#: ../../../CHANGELOG.md:3739 +msgid "Changing the way SSL certificates are retrieved" +msgstr "" + +#: ../../../CHANGELOG.md:3741 +msgid "We've been using [acmetool](https://github.com/hlandau/acme) (with the [willwill/acme-docker](https://hub.docker.com/r/willwill/acme-docker/) Docker image) until now." +msgstr "" + +#: ../../../CHANGELOG.md:3743 +msgid "Due to the Docker image being deprecated, and things looking bleak for acmetool's support of the newer ACME v2 API endpoint, we've switched to using [certbot](https://certbot.eff.org/) (with the [certbot/certbot](https://hub.docker.com/r/certbot/certbot/) Docker image)." +msgstr "" + +#: ../../../CHANGELOG.md:3745 +msgid "Simply re-running the playbook will retrieve new certificates (via certbot) for you. To ensure you don't leave any old files behind, though, you'd better do this:" +msgstr "" + +#: ../../../CHANGELOG.md:3747 +msgid "`systemctl stop 'matrix*'`" +msgstr "" + +#: ../../../CHANGELOG.md:3748 +msgid "stop your custom webserver, if you're running one (only affects you if you've installed with `matrix_nginx_proxy_enabled: false`)" +msgstr "" + +#: ../../../CHANGELOG.md:3749 +msgid "`mv /matrix/ssl /matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3750 +msgid "re-run the playbook's [installation](docs/installing.md)" +msgstr "" + +#: ../../../CHANGELOG.md:3751 +msgid "possibly delete `/matrix/ssl-acmetool-delete-later`" +msgstr "" + +#: ../../../CHANGELOG.md:3754 +msgid "2018-08-21" +msgstr "" + +#: ../../../CHANGELOG.md:3756 +msgid "Matrix Corporal support" +msgstr "" + +#: ../../../CHANGELOG.md:3758 +msgid "The playbook can now install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3760 +msgid "Additional details are available in [Setting up Matrix Corporal](docs/configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3763 +msgid "2018-08-20" +msgstr "" + +#: ../../../CHANGELOG.md:3765 +msgid "Matrix Synapse rate limit control variables" +msgstr "" + +#: ../../../CHANGELOG.md:3767 +msgid "The following new variables can now be configured to control Matrix Synapse's rate-limiting (default values are shown below)." +msgstr "" + +#: ../../../CHANGELOG.md:3774 +msgid "Shared Secret Auth support via matrix-synapse-shared-secret-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3776 +msgid "The playbook can now install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3778 +msgid "Additional details are available in [Setting up the Shared Secret Auth password provider module](docs/configuring-playbook-shared-secret-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3781 +msgid "2018-08-17" +msgstr "" + +#: ../../../CHANGELOG.md:3783 +msgid "REST auth support via matrix-synapse-rest-auth" +msgstr "" + +#: ../../../CHANGELOG.md:3785 +msgid "The playbook can now install and configure [matrix-synapse-rest-auth](https://github.com/kamax-io/matrix-synapse-rest-auth) for you." +msgstr "" + +#: ../../../CHANGELOG.md:3787 +msgid "Additional details are available in [Setting up the REST authentication password provider module](docs/configuring-playbook-rest-auth.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3789 +msgid "Compression improvements" +msgstr "" + +#: ../../../CHANGELOG.md:3791 +msgid "Shifted Matrix Synapse compression from happening in the Matrix Synapse, to happening in the nginx proxy that's in front of it." +msgstr "" + +#: ../../../CHANGELOG.md:3794 +msgid "Additionally, `riot-web` also gets compressed now (in the nginx proxy), which drops the initial page load's size from 5.31MB to 1.86MB." +msgstr "" + +#: ../../../CHANGELOG.md:3797 +msgid "Disabling some unnecessary Synapse services" +msgstr "" + +#: ../../../CHANGELOG.md:3799 +msgid "The following services are not necessary, so they have been disabled:" +msgstr "" + +#: ../../../CHANGELOG.md:3800 +msgid "on the federation port (8448): the `client` service" +msgstr "" + +#: ../../../CHANGELOG.md:3801 +msgid "on the http port (8008, exposed over 443): the old Angular `webclient` and the `federation` service" +msgstr "" + +#: ../../../CHANGELOG.md:3803 +msgid "Federation runs only on the federation port (8448) now. The Client APIs run only on the http port (8008) now." +msgstr "" + +#: ../../../CHANGELOG.md:3806 +msgid "2018-08-15" +msgstr "" + +#: ../../../CHANGELOG.md:3808 +msgid "mxisd Identity Server support" +msgstr "" + +#: ../../../CHANGELOG.md:3810 +msgid "The playbook now sets up an [mxisd](https://github.com/kamax-io/mxisd) Identity Server for you by default. Additional details are available in [Setting up ma1sd Identity Server](docs/configuring-playbook-mxisd.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3813 +msgid "2018-08-14" +msgstr "" + +#: ../../../CHANGELOG.md:3815 +msgid "Email-sending support" +msgstr "" + +#: ../../../CHANGELOG.md:3817 +msgid "The playbook now configures an email-sending service (postfix) by default. Additional details are available in [Adjusting email-sending settings](docs/configuring-playbook-email.md)." +msgstr "" + +#: ../../../CHANGELOG.md:3819 +msgid "With this, Matrix Synapse is able to send email notifications for missed messages, etc." +msgstr "" + +#: ../../../CHANGELOG.md:3822 +msgid "2018-08-08" +msgstr "" + +#: ../../../CHANGELOG.md:3828 +msgid "from `matrix_max_upload_size_mb` to `matrix_synapse_max_upload_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3829 +msgid "from `matrix_max_log_file_size_mb` to `matrix_synapse_max_log_file_size_mb`" +msgstr "" + +#: ../../../CHANGELOG.md:3830 +msgid "from `matrix_max_log_files_count` to `matrix_synapse_max_log_files_count`" +msgstr "" + +#: ../../../CHANGELOG.md:3831 +msgid "from `docker_matrix_image` to `matrix_docker_image_synapse`" +msgstr "" + +#: ../../../CHANGELOG.md:3832 +msgid "from `docker_nginx_image` to `matrix_docker_image_nginx`" +msgstr "" + +#: ../../../CHANGELOG.md:3833 +msgid "from `docker_riot_image` to `matrix_docker_image_riot`" +msgstr "" + +#: ../../../CHANGELOG.md:3834 +msgid "from `docker_goofys_image` to `matrix_docker_image_goofys`" +msgstr "" + +#: ../../../CHANGELOG.md:3835 +msgid "from `docker_coturn_image` to `matrix_docker_image_coturn`" +msgstr "" + +#: ../../../CHANGELOG.md:3837 +msgid "If you're overriding any of them in your `vars.yml` file, you'd need to change to the new names." +msgstr "" + +#: ../../../CHANGELOG.md:3839 +msgid "Renaming Ansible playbook tag" +msgstr "" + +#: ../../../CHANGELOG.md:3841 +msgid "The command for executing the whole playbook has changed. The `setup-main` tag got renamed to `setup-all`." +msgstr "" + +#: ../../../CHANGELOG.md:3843 +msgid "Docker container linking" +msgstr "" + +#: ../../../CHANGELOG.md:3845 +msgid "Changed the way the Docker containers are linked together. The ones that need to communicate with others operate in a `matrix` network now and not in the default bridge network." +msgstr "" diff --git a/i18n/translation-templates/README.pot b/i18n/translation-templates/README.pot new file mode 100644 index 000000000..43bd0d07c --- /dev/null +++ b/i18n/translation-templates/README.pot @@ -0,0 +1,1177 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../README.md:1 +msgid "[![Support room on Matrix](https://img.shields.io/matrix/matrix-docker-ansible-deploy:devture.com.svg?label=%23matrix-docker-ansible-deploy%3Adevture.com&logo=matrix&style=for-the-badge&server_fqdn=matrix.devture.com)](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/s.pantaleev/donate)" +msgstr "" + +#: ../../../README.md:1 +msgid "Support room on Matrix" +msgstr "" + +#: ../../../README.md:1 +msgid "donate" +msgstr "" + +#: ../../../README.md:3 +msgid "Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker" +msgstr "" + +#: ../../../README.md:5 +msgid "🎯 Purpose" +msgstr "" + +#: ../../../README.md:7 +msgid "This [Ansible](https://www.ansible.com/) playbook is meant to help you run your own [Matrix](http://matrix.org/) homeserver, along with the [various services](#supported-services) related to that." +msgstr "" + +#: ../../../README.md:9 +msgid "That is, it lets you join the Matrix network using your own user ID like `@alice:example.com`, all hosted on your own server (see [prerequisites](docs/prerequisites.md))." +msgstr "" + +#: ../../../README.md:11 +msgid "We run all [supported services](#-supported-services) in [Docker](https://www.docker.com/) containers (see [the container images we use](docs/container-images.md)), which lets us have a predictable and up-to-date setup, across multiple supported distros (see [prerequisites](docs/prerequisites.md)) and [architectures](docs/alternative-architectures.md) (x86/amd64 being recommended)." +msgstr "" + +#: ../../../README.md:13 +msgid "Installation (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md))." +msgstr "" + +#: ../../../README.md:15 +msgid "☁ Self-hosting or Managed / SaaS" +msgstr "" + +#: ../../../README.md:17 +msgid "This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy (see [Getting started](#-getting-started)). Still, running any service smoothly requires knowledge, time and effort." +msgstr "" + +#: ../../../README.md:19 +msgid "If you like the [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also [get a managed Matrix server from etke.cc](https://etke.cc?utm_source=github&utm_medium=readme&utm_campaign=mdad) (both hosting and on-premises) - a service built on top of this Ansible playbook but with [additional components](https://etke.cc/help/extras/?utm_source=github&utm_medium=readme&utm_campaign=mdad) and [services](https://etke.cc/services/?utm_source=github&utm_medium=readme&utm_campaign=mdad) which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no \"just set up my server once and be done with it\" option." +msgstr "" + +#: ../../../README.md:21 +msgid "🚀 Getting started" +msgstr "" + +#: ../../../README.md:23 +msgid "We have detailed documentation in the [docs/](./docs) directory - see the Table of Contents in the [documentation README](./docs/README.md)." +msgstr "" + +#: ../../../README.md:25 +msgid "While the [list of supported services](#-supported-services) and documentation is very extensive, you don't need to read through everything. We recommend:" +msgstr "" + +#: ../../../README.md:27 +msgid "Starting with the basics. You can always add/remove or tweak services later on." +msgstr "" + +#: ../../../README.md:29 +msgid "Following our installation guide. There are two guides available for beginners and advanced users:" +msgstr "" + +#: ../../../README.md:31 +msgid "⚡ **[Quick start](./docs/quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../README.md:33 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](./docs/prerequisites.md)** documentation page." +msgstr "" + +#: ../../../README.md:35 +msgid "If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our [FAQ](./docs/faq.md). If you cannot find an answer to your question, feel free to ask for [help and support](#-support)." +msgstr "" + +#: ../../../README.md:37 +msgid "✔ Supported services" +msgstr "" + +#: ../../../README.md:39 +msgid "Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else." +msgstr "" + +#: ../../../README.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../README.md:43 +msgid "The list below is exhaustive. It includes optional or even some advanced components that you will most likely not need. Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation. You can always re-run the playbook later to add or remove components." +msgstr "" + +#: ../../../README.md:45 +msgid "Deprecated or unmaintained services are not listed. You can find documentations for them [here](docs/configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../README.md:47 +msgid "Homeserver" +msgstr "" + +#: ../../../README.md:49 +msgid "The homeserver is the backbone of your Matrix system. Choose one from the following list." +msgstr "" + +#: ../../../README.md:0 +msgid "Name" +msgstr "" + +#: ../../../README.md:0 +msgid "Default?" +msgstr "" + +#: ../../../README.md:0 +msgid "Description" +msgstr "" + +#: ../../../README.md:0 +msgid "Documentation" +msgstr "" + +#: ../../../README.md:0 +msgid "[Synapse](https://github.com/element-hq/synapse)" +msgstr "" + +#: ../../../README.md:0 +msgid "✅" +msgstr "" + +#: ../../../README.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Conduit](https://conduit.rs)" +msgstr "" + +#: ../../../README.md:0 +msgid "❌" +msgstr "" + +#: ../../../README.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-conduit.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[conduwuit](https://conduwuit.puppyirl.gay/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-conduwuit.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Dendrite](https://github.com/element-hq/dendrite)" +msgstr "" + +#: ../../../README.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../README.md:58 +msgid "Clients" +msgstr "" + +#: ../../../README.md:60 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../README.md:0 +msgid "[Element Web](https://github.com/element-hq/element-web)" +msgstr "" + +#: ../../../README.md:0 +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Hydrogen](https://github.com/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../README.md:0 +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Cinny](https://github.com/ajbura/cinny)" +msgstr "" + +#: ../../../README.md:0 +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[SchildiChat Web](https://schildi.chat/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../README.md:69 +msgid "Server Components" +msgstr "" + +#: ../../../README.md:71 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../README.md:0 +msgid "[PostgreSQL](https://www.postgresql.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[coturn](https://github.com/coturn/coturn)" +msgstr "" + +#: ../../../README.md:0 +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-turn.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Traefik](https://doc.traefik.io/traefik/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Free SSL certificate, which secures the connection to all components" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Exim](https://www.exim.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-email.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[ma1sd](https://github.com/ma1uta/ma1sd)" +msgstr "" + +#: ../../../README.md:0 +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[ddclient](https://github.com/linuxserver/docker-ddclient)" +msgstr "" + +#: ../../../README.md:0 +msgid "Dynamic DNS" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../README.md:83 +msgid "Authentication" +msgstr "" + +#: ../../../README.md:85 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "Password provider module" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-ldap-auth.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-registration](https://github.com/ZerataX/matrix-registration)" +msgstr "" + +#: ../../../README.md:0 +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (UVS)" +msgstr "" + +#: ../../../README.md:0 +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-user-verification-service.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "A spam checker module" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)" +msgstr "" + +#: ../../../README.md:97 +msgid "File Storage" +msgstr "" + +#: ../../../README.md:99 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../README.md:0 +msgid "[Goofys](https://github.com/kahing/goofys)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-s3.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-media-repo](https://github.com/turt2live/matrix-media-repo)" +msgstr "" + +#: ../../../README.md:0 +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../README.md:107 +msgid "Bridges" +msgstr "" + +#: ../../../README.md:109 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-discord](https://github.com/mautrix/discord)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-slack](https://github.com/mautrix/slack)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-telegram](https://github.com/mautrix/telegram)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-gmessages](https://github.com/mautrix/gmessages)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-whatsapp](https://github.com/mautrix/whatsapp)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-wsproxy](https://github.com/mautrix/wsproxy)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-twitter](https://github.com/mautrix/twitter)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-googlechat](https://github.com/mautrix/googlechat)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-meta](https://github.com/mautrix/instagram)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "Link for [Messenger](docs/configuring-playbook-bridge-mautrix-meta-messenger.md) / [Instagram](docs/configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mautrix-signal](https://github.com/mautrix/signal)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[beeper-linkedin](https://github.com/beeper/linkedin)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-appservice-irc.md)" +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 +msgid "[matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-hookshot](https://github.com/matrix-org/matrix-hookshot)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to SMS" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-wechat](https://github.com/duo/matrix-wechat)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Heisenbridge](https://github.com/hifi/heisenbridge)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[go-skype-bridge](https://github.com/kelaresg/go-skype-bridge)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Postmoogle](https://github.com/etkecc/postmoogle)" +msgstr "" + +#: ../../../README.md:0 +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../README.md:141 +msgid "Bots" +msgstr "" + +#: ../../../README.md:143 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../README.md:0 +msgid "[baibot](https://github.com/etkecc/baibot)" +msgstr "" + +#: ../../../README.md:0 +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[maubot](https://github.com/maubot/maubot)" +msgstr "" + +#: ../../../README.md:0 +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Honoroit](https://github.com/etkecc/honoroit)" +msgstr "" + +#: ../../../README.md:0 +msgid "A helpdesk bot" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Mjolnir](https://github.com/matrix-org/mjolnir)" +msgstr "" + +#: ../../../README.md:0 +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Draupnir](https://github.com/the-draupnir-project/Draupnir)" +msgstr "" + +#: ../../../README.md:0 +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-draupnir.md) (for [appservice mode](docs/configuring-playbook-appservice-draupnir-for-all.md))" +msgstr "" + +#: ../../../README.md:0 +msgid "[Buscarron](https://github.com/etkecc/buscarron)" +msgstr "" + +#: ../../../README.md:0 +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../README.md:156 +msgid "Administration" +msgstr "" + +#: ../../../README.md:158 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../README.md:0 +msgid "[matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../README.md:0 +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/)" +msgstr "" + +#: ../../../README.md:0 +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse-admin](https://github.com/etkecc/synapse-admin)" +msgstr "" + +#: ../../../README.md:0 +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "Metrics and Graphs" +msgstr "" + +#: ../../../README.md:0 +msgid "Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI, with [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) being available too" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-prometheus-grafana.md) (for [prometheus-nginxlog-exporter](docs/configuring-playbook-prometheus-nginxlog.md))" +msgstr "" + +#: ../../../README.md:0 +msgid "[Borg](https://borgbackup.org)" +msgstr "" + +#: ../../../README.md:0 +msgid "Backups" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[rageshake](https://github.com/matrix-org/rageshake)" +msgstr "" + +#: ../../../README.md:0 +msgid "Bug report server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter)" +msgstr "" + +#: ../../../README.md:0 +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../README.md:170 +msgid "Misc" +msgstr "" + +#: ../../../README.md:172 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../README.md:0 +msgid "[sliding-sync](https://github.com/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../README.md:0 +msgid "(Superseded by Simplified Sliding Sync integrated into Synapse > `1.114` and Conduit > `0.6.0`) Sliding Sync support for clients which require it (e.g. old Element X versions before Simplified Sliding Sync was developed)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite)" +msgstr "" + +#: ../../../README.md:0 +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor)" +msgstr "" + +#: ../../../README.md:0 +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced)" +msgstr "" + +#: ../../../README.md:0 +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-matrix-corporal.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Etherpad](https://etherpad.org)" +msgstr "" + +#: ../../../README.md:0 +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Jitsi](https://jitsi.org/)" +msgstr "" + +#: ../../../README.md:0 +msgid "An open source video-conferencing platform" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Cactus Comments](https://cactus.chat)" +msgstr "" + +#: ../../../README.md:0 +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Pantalaimon](https://github.com/matrix-org/pantalaimon)" +msgstr "" + +#: ../../../README.md:0 +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[Sygnal](https://github.com/matrix-org/sygnal)" +msgstr "" + +#: ../../../README.md:0 +msgid "Push gateway" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../README.md:0 +msgid "[ntfy](https://ntfy.sh)" +msgstr "" + +#: ../../../README.md:0 +msgid "Push notifications server" +msgstr "" + +#: ../../../README.md:0 +msgid "[Link](docs/configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../README.md:187 +msgid "🆕 Changes" +msgstr "" + +#: ../../../README.md:189 +msgid "This playbook evolves over time, sometimes with backward-incompatible changes." +msgstr "" + +#: ../../../README.md:191 +msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new." +msgstr "" + +#: ../../../README.md:193 +msgid "🆘 Support" +msgstr "" + +#: ../../../README.md:195 +msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)" +msgstr "" + +#: ../../../README.md:197 +msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)" +msgstr "" + +#: ../../../README.md:199 +msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)" +msgstr "" + +#: ../../../README.md:201 +msgid "🌐 Translation" +msgstr "" + +#: ../../../README.md:203 +msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation." +msgstr "" + +#: ../../../README.md:205 +msgid "Translations are still work in progress." +msgstr "" + +#: ../../../README.md:207 +msgid "🤝 Related" +msgstr "" + +#: ../../../README.md:209 +msgid "You may also be interested in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) - another Ansible playbook for self-hosting non-Matrix services (see its [List of supported services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md))." +msgstr "" + +#: ../../../README.md:211 +msgid "mash-playbook also makes use of [Traefik](./docs/configuring-playbook-traefik.md) as its reverse-proxy, so with minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md), you can make matrix-docker-ansible-deploy and mash-playbook co-exist and host Matrix and non-Matrix services on the same server." +msgstr "" diff --git a/i18n/translation-templates/YEAR-IN-REVIEW.pot b/i18n/translation-templates/YEAR-IN-REVIEW.pot new file mode 100644 index 000000000..e17e16d39 --- /dev/null +++ b/i18n/translation-templates/YEAR-IN-REVIEW.pot @@ -0,0 +1,289 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../YEAR-IN-REVIEW.md:1 +msgid "2023" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:3 +msgid "2023 was a year filled with many changes for matrix-docker-ansible-deploy. In this post, we're looking backward at some of the major changes that happened this year, as well as taking a glimpse of what's ahead in 2024." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:5 +msgid "2023 is probably [the year of AI](https://journal.everypixel.com/2023-the-year-of-ai), with millions of people jumping aboard [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/chatgpt) train. matrix-docker-ansible-deploy is no stranger to this and 2023 began with a PR from [bertybuttface](https://github.com/bertybuttface) who added support for [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#chatgpt-support)). While OpenAI's chat GPT website was frequently overloaded in the past, their API was up which made using this bot both convenient and more reliable." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:7 +msgid "AI aside, with the playbook's focus being containers, we're **doubling down on being \"container native\"** and becoming more interoperable for people hosting other containers on the Matrix server. In [2022](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/YEAR-IN-REVIEW.md#2022), we've announced a few sibling Ansible playbooks, their use of [Traefik](https://doc.traefik.io/traefik/) and the possiblity of matrix-docker-ansible-deploy also switching to this reverse-proxy. This prediction materialized quickly. The **largest change** in the playbook in 2023 happened way back in February - matrix-docker-ansible-deploy [starting the switch from nginx to Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support) and then quickly [making Treafik the default reverse-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now). As noted in the changelog entries, we envisioned a quick and complete elimination of `matrix-nginx-proxy`, but at the end of 2023, it hasn't happened yet. The playbook is already using Traefik as the front-most reverse-proxy, but nginx (via `matrix-nginx-proxy`) is still around - it has taken a step back and is only used internally for new setups. Work got to a stall due to:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:9 +msgid "complexity: untangling the overly large and messy `matrix-nginx-proxy` component is difficult" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:10 +msgid "the current setup became \"good enough\" because nginx has become an internal implementation detail for those who have migrated to Traefik. Traefik is already the default public reverse-proxy and gives better possibilities to people wishing to run other web-exposed containers on their Matrix server via [Docker Compose](https://docs.docker.com/compose/), other Ansible playbooks like [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) (more about this one, below) or any other way." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:12 +msgid "`matrix-nginx-proxy` is no longer in the way of us being interoperable, but its ugly internal details are still there. It is one more proxy in the long chain of reverse-proxies we have and we'd like to cut it out. This would both make things simpler and also boost performance." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:14 +msgid "The delay in eliminating `matrix-nginx-proxy` has probably been welcome by many existing users who decided to postpone the Traefik migration a bit longer. In 2024, work on eliminating `matrix-nginx-proxy` will continue with rapid pace. People who are still using `matrix-nginx-proxy` as their front-most reverse-proxy will need to rework their setup. About a year of putting it off has been long enough." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:16 +msgid "This large Traefik reverse-proxy change was also accompanied by another internal change which began in 2022, but continued in 2023 - **moving non-Matrix-related roles from being internal to the playbook to living their own life outside of it**. Various roles were made more decoupled and moved outside of the playbook, so that other projects (like the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook or other Ansible playbooks) could benefit from them. This led to the **death of a few sibling playbooks** ([gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), [peertube-docker-ansible-deploy](https://github.com/spantaleev/peertube-docker-ansible-deploy), [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy)), but brought life to something better, which supports all these services and more." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:18 +msgid "[mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a new Ansible playbook that a few of us (matrix-docker-ansible-deploy contributors) have launched in 2023. It has quickly grown to supports [60+ services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) and aims to do the same for [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) service hosting, as matrix-docker-ansible-deploy has done for Matrix - providing a clean and secure way to run a bunch of services in containers on a regular server (that is to say, without Kubernetes, etc.). Thanks to Traefik and Ansible role reuse, it's easy to host both mash-playbook services and matrix-docker-ansible-deploy services on the same server - see mash-playbook's [interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) documentation page. If you've been looking for a holiday project or your New Year's Resolutions list contains \"self-hosting more services\", then you're welcome to give this new playbook a try and join its Matrix room ([#mash-playbook:devture.com](https://matrix.to/#/#mash-playbook:devture.com))." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:20 +msgid "Because many of the roles are now external to this playbook (defined in the [requirements.yml](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/da27655ef34999fa924bc0a5e641dbd9ba06f133/requirements.yml) file), running `make roles` (or better yet `just roles` via the [just tool](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#support-for-running-commands-via-just)) becomes a necessity each time one pulls playbook updates (`git pull`). Pulling external roles happens via the [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) command-line tool, but if available, the playbook would also use the much faster [agru](https://github.com/etkecc/agru) tool (developed by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) this year)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:22 +msgid "With the internal (but important) details out of the way, we can now talk more about **new features that landed in matrix-docker-ansible-deploy in 2023**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:24 +msgid "The following **new** **bridges** were added to the playbook in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:26 +msgid "(2023-01-11) [mautrix-slack](https://mau.dev/mautrix/slack), thanks to a PR by [Cody Neiman](https://github.com/xangelix) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-slack-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:27 +msgid "(2023-07-21) [mautrix-gmessages](https://github.com/mautrix/gmessages), thanks to a PR by [Shreyas Ajjarapu](https://github.com/shreyasajj) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#mautrix-gmessages-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:28 +msgid "(2023-08-23) [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for Apple iMessage bridging (when combined with the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone), thanks to a PR by [Johan Swetzén](https://github.com/jswetzen)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:30 +msgid "This brings the total number of **[bridges that the playbook supports](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/docs/configuring-playbook.md#bridging-other-networks) up to 30**. There are alternative bridge implementations for various networks and protocols, so the number of \"unique bridged networks\" is surely much smaller." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:32 +msgid "A few other **major components and changes** landed in 2023:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:34 +msgid "(2023-02-10) The [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (successor to [Mjolnir](https://github.com/matrix-org/mjolnir)), thanks to a PR by [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#draupnir-moderation-tool-bot-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:35 +msgid "(2023-02-10) [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) to add Matrix Authentication Support to our Jitsi setup, thanks to a PR by [Jakob S.](https://github.com/jakicoll) from [zakk gGmbH](https://github.com/zakk-it) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-authentication-support-for-jitsi))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:36 +msgid "(2023-02-25) The [rageshake](https://github.com/matrix-org/rageshake) bug report server, thanks to a PR by [Benjamin Kampmann](https://github.com/gnunicorn) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#rageshake-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:37 +msgid "(2023-03-07) [Sliding Sync proxy](https://github.com/matrix-org/sliding-sync) (currently a necessary component for [Element X](https://element.io/labs/element-x) to work), thanks to: [Benjamin Kampmann](https://github.com/gnunicorn) and [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#sliding-sync-proxy-element-x-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:38 +msgid "(2023-03-12) synapse-auto-compressor to periodically and automatically run [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#synapse-auto-compressor-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:39 +msgid "(2023-07-17) [matrix-media-repo](https://github.com/turt2live/matrix-media-repo),  thanks to a PR by [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-media-repo-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:40 +msgid "(2023-08-31) [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client app (fork of [Element Web)](https://github.com/element-hq/element-web), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#schildichat-support))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:41 +msgid "(2023-10-18) Postgres parameters auto-tuning, thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#postgres-parameters-are-automatically-tuned-now))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:42 +msgid "(2023-10-23) Enabling federation of the room directory for Synapse (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse))" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:44 +msgid "The most recent change in the list above (Enabling federation of the room directory for Synapse) has been somewhat **controversial** as it goes against upstream defaults for Synapse. Nevertheless, we believe it **promotes the well-being of the Matrix Federation by improving room discovery**." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:46 +msgid "**Matrix Federation Stats** (containing the percentage of servers publishing their room directory publicly) are posted to [TWIM](https://matrix.org/category/this-week-in-matrix/) each week by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/). The number of servers which [currently published their room directory publicly](https://matrix.org/blog/2023/12/2/this-week-in-matrix-2023-12-22/#matrix-federation-stats) stands at `26.6%`, which is:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:48 +msgid "**2.4% more** than when it was when [first published to TWIM](https://matrix.org/blog/2023/11/03/this-week-in-matrix-2023-11-03/#matrix-federation-stats) (1 month earlier, in November)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:49 +msgid "likely about **15+% more** than from before we flipped the switch (in October)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:51 +msgid "Hopefully, Synapse defaults would also change the same way and we'd see the number of servers publicly listing their room directory grow faster." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:53 +msgid "With this configuration change in place, projects like [MatrixRooms.info](https://matrixrooms.info/) (made by [etke.cc](https://etke.cc/)) and potentially others in the future, can discover, index the metadata (room address, title, topic, number of users, etc.) and make public rooms browsable & searchable across the whole Matrix Federation. It'd be great if users joining Matrix could more easily find interesting communities that match their interests!" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:55 +msgid "On the **media side of things**, besides Jitsi getting better Matrix integration (via the aforementioned Matrix User Verification Service), we've also had some [coturn security tightening](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues) as well as [performance optimizations](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#coturn-can-now-use-host-networking) for configurations exposing lots of network ports." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:57 +msgid "[Element Call](https://github.com/element-hq/element-call) seems to have become a nice and polished product lately (as proclaimed in [The Matrix Holiday Update 2023](https://matrix.org/blog/2023/12/25/the-matrix-holiday-update-2023/)), so 2024 is likely the year we'll see support for it in the playbook. Element Call depends on the [LiveKit](https://livekit.io/) streaming server (which is also useful to developers even by itself), so the first step is likely to see LiveKit support in mash-playbook via a reusable Ansible role. Such a LiveKit Ansible role could later easily land in matrix-docker-ansible-deploy and an Element Call static website could be hooked to it." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:59 +msgid "Besides these highlights, there were many other relatively large changes announced in our [CHANGELOG](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md) and hundreds of other more minor (but still important) playbook changes that didn't get a mention." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:61 +msgid "We have **hundreds of contributors to thank for their hard work** on making Matrix self-hosting better for all of us! It should be noted that **support comes in many shapes**, not only in raw code commits and financial help (via [donations](https://liberapay.com/s.pantaleev) or using the [etke.cc managed Matrix hosting service](https://etke.cc/) which is based on matrix-docker-ansible-deploy). It also comes in the shape of code reviews, helping others with [issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues), reporting new issues, participating in our support room on Matrix ([#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)), etc. To everyone who has been there to make matrix-docker-ansible-deploy better in 2023, thank you! 🙇‍♂️" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:64 +msgid "2022" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:66 +msgid "For [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy/), 2022 started with **breaking the** [**Synapse**](https://github.com/element-hq/synapse) **monopoly** by [adding support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#dendrite-support) for the [Dendrite](https://github.com/matrix-org/dendrite) Matrix homeserver in early January. This required various internal changes so that the [Ansible](https://www.ansible.com/) playbook would not be Synapse-centric anymore. This groundwork paved the way for continuing in this direction and we [added support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#conduit-support) for [Conduit](https://conduit.rs/) in August." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:68 +msgid "When it comes to the `matrix-docker-ansible-deploy` Ansible playbook, 2022 was the year of the non-Synapse homeserver implementation. In practice, none of these homeserver implementations seem ready for prime-time yet and there is no migration path when coming from Synapse. Having done our job of adding support for these alternative homeserver implementations, we can say that we're not getting in the way of future progress. It's time for the Dendrite developers to push harder (development-wise) and for the Synapse developers to take a well-deserved long (infinite) break, and we may get to see more people migrating away from Synapse in the next year(s)." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:70 +msgid "Support for the following new **bridges** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:72 +msgid "[Postmoogle](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#postmoogle-email-bridge-support) for bi-directional email bridging, which supersedes my old and simplistic [Email2Matrix](https://github.com/devture/email2matrix) one-way bridge-bot" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:73 +msgid "[mautrix-discord](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#mautrix-discord-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:74 +msgid "[go-skype-bridge](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#go-skype-bridge-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:75 +msgid "[matrix-appservice-kakaotalk](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-appservice-kakaotalk-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:77 +msgid "Support for the following new **bots** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:79 +msgid "[buscarron bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#buscarron-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:80 +msgid "[Honoroit bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#honoroit-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:81 +msgid "[matrix-registration-bot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-registration-bot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:82 +msgid "[matrix-hookshot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-hookshot-bridging-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:83 +msgid "[maubot](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#maubot-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:85 +msgid "Support for the following new **components and services** was added:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:87 +msgid "[BorgBackup](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#borg-backup-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:88 +msgid "[Cactus Comments](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cactus-comments-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:89 +msgid "[Cinny](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#cinny-support) client support" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:90 +msgid "[ntfy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#ntfy-push-notifications-support) notifications" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:91 +msgid "[matrix-ldap-registration-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix-ldap-registration-proxy-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:92 +msgid "[matrix\\_encryption\\_disabler support](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#matrix_encryption_disabler-support)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:93 +msgid "[synapse-s3-storage-provider](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-s3-storage-provider-support) to stop the Synapse media store from being a scalability problem. This brought along [another feature](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#synapse-container-image-customization-support) - an easier way to customize the Synapse container image without having to fork and self-build all of it from scratch" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:95 +msgid "Besides these major user-visible changes, a lot of work also happened **under the hood**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:97 +msgid "we made [major improvements to Synapse workers](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#potential-backward-compatibility-break-major-improvements-to-synapse-workers) - adding support for stream writers and for running multiple workers of various kinds (federation senders, pushers, background task processing workers, etc.)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:98 +msgid "we [improved the compatibility of (Synapse + workers) with the rest of the playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#backward-compatibility-break-changing-how-reverse-proxying-to-synapse-works---now-via-a-matrix-synapse-reverse-proxy-companion-service) by introducing a new `matrix-synapse-reverse-proxy-companion-service` service" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:99 +msgid "we started [splitting various Ansible roles out of the Matrix playbook and into independent roles](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#the-playbook-now-uses-external-roles-for-some-things) (e.g. `matrix-postgres` -> [ansible-role-postgres](https://github.com/mother-of-all-self-hosting/ansible-role-postgres)), which could be included in other Ansible playbooks. In fact, these roles already power a few **interesting other sibling playbooks**:" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:100 +msgid "[gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy), for deploying a [Gitea](https://gitea.io/) (self-hosted [Git](https://git-scm.com/) service) server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:101 +msgid "[nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy), for deploying a [Nextcloud](https://nextcloud.com/) groupware server" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:102 +msgid "[vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy), for deploying a [Vaultwarden](https://github.com/dani-garcia/vaultwarden) password manager server (unofficial [Bitwarden](https://bitwarden.com/) compatible server)" +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:104 +msgid "These sibling playbooks co-exist nicely with one another due to using [Traefik](https://traefik.io/) for reverse-proxying, instead of trying to overtake the whole server by running their own [nginx](https://nginx.org/) reverse-proxy. Hopefully soon, the Matrix playbook will follow suit and be powered by Traefik by default." +msgstr "" + +#: ../../../YEAR-IN-REVIEW.md:106 +msgid "Last, but not least, to optimize our [etke.cc managed Matrix hosting service](https://etke.cc/)'s performance (but also individual Ansible playbook runs for people self-hosting by themselves using the playbook), we've [improved playbook runtime 2-5x](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/ba09705f7fbaf0108652ecbe209793b1d935eba7/CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) by employing various Ansible tricks." +msgstr "" diff --git a/i18n/translation-templates/docs/README.pot b/i18n/translation-templates/docs/README.pot new file mode 100644 index 000000000..0acbd653e --- /dev/null +++ b/i18n/translation-templates/docs/README.pot @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/README.md:1 +msgid "Table of Contents" +msgstr "" + +#: ../../../docs/README.md:3 +msgid "⬇️ Installaton guides " +msgstr "" + +#: ../../../docs/README.md:5 +msgid "There are two installation guides available for beginners and advanced users." +msgstr "" + +#: ../../../docs/README.md:7 +msgid "⚡ **[Quick start](quick-start.md) (for beginners)**: this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/README.md:9 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide." +msgstr "" + +#: ../../../docs/README.md:11 +msgid "[Prerequisites](prerequisites.md)" +msgstr "" + +#: ../../../docs/README.md:13 +msgid "[Configuring your DNS settings](configuring-dns.md)" +msgstr "" + +#: ../../../docs/README.md:15 +msgid "[Getting the playbook](getting-the-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:17 +msgid "[Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:19 +msgid "[Installing](installing.md)" +msgstr "" + +#: ../../../docs/README.md:21 +msgid "🛠️ Configuration options" +msgstr "" + +#: ../../../docs/README.md:28 +msgid "You can check useful documentation for configuring components here: [Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/README.md:30 +msgid "[Administration](configuring-playbook.md#administration) — services that help you in administrating and monitoring your Matrix installation" +msgstr "" + +#: ../../../docs/README.md:32 +msgid "[Authentication and user-related](configuring-playbook.md#authentication-and-user-related) — extend and modify how users are authenticated on your homeserver" +msgstr "" + +#: ../../../docs/README.md:34 +msgid "[Bots](configuring-playbook.md#bots) — bots provide various additional functionality to your installation" +msgstr "" + +#: ../../../docs/README.md:36 +msgid "[Bridges](configuring-playbook.md#bridging-other-networks) — bridges can be used to connect your Matrix installation with third-party communication networks" +msgstr "" + +#: ../../../docs/README.md:38 +msgid "[Clients](configuring-playbook.md#clients) — web clients for Matrix that you can host on your own domains" +msgstr "" + +#: ../../../docs/README.md:40 +msgid "[Core service adjustments](configuring-playbook.md#core-service-adjustments) — backbone of your Matrix system" +msgstr "" + +#: ../../../docs/README.md:42 +msgid "[File Storage](configuring-playbook.md#file-storage) — use alternative file storage to the default `media_store` folder" +msgstr "" + +#: ../../../docs/README.md:46 +msgid "[Other specialized services](configuring-playbook.md#other-specialized-services) — various services that don't fit any other categories" +msgstr "" + +#: ../../../docs/README.md:48 +msgid "👨‍🔧 Maintenance" +msgstr "" + +#: ../../../docs/README.md:50 +msgid "If your server and services experience issues, feel free to come to [our support room](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com) and ask for help." +msgstr "" + +#: ../../../docs/README.md:54 +msgid "[Checking if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/README.md:56 +msgid "[Maintenance and Troubleshooting](maintenance-and-troubleshooting.md)" +msgstr "" + +#: ../../../docs/README.md:58 +msgid "[PostgreSQL maintenance](maintenance-postgres.md)" +msgstr "" + +#: ../../../docs/README.md:60 +msgid "[Synapse maintenance](maintenance-synapse.md)" +msgstr "" + +#: ../../../docs/README.md:62 +msgid "[Upgrading services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/README.md:64 +msgid "Other documentation pages " +msgstr "" + +#: ../../../docs/README.md:66 +msgid "ℹ️ **[FAQ](faq.md)** — various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook" +msgstr "" + +#: ../../../docs/README.md:70 +msgid "[Alternative architectures](alternative-architectures.md)" +msgstr "" + +#: ../../../docs/README.md:72 +msgid "[Container images used by the playbook](container-images.md)" +msgstr "" + +#: ../../../docs/README.md:74 +msgid "[Obtaining an Access Token](obtaining-access-tokens.md)" +msgstr "" + +#: ../../../docs/README.md:76 +msgid "[Playbook tags](playbook-tags.md)" +msgstr "" + +#: ../../../docs/README.md:78 +msgid "[Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/README.md:80 +msgid "[Running `just` commands](just.md)" +msgstr "" + +#: ../../../docs/README.md:82 +msgid "[Self-building](self-building.md)" +msgstr "" + +#: ../../../docs/README.md:84 +msgid "[Uninstalling](uninstalling.md)" +msgstr "" + +#: ../../../docs/README.md:86 +msgid "[Updating users passwords](updating-users-passwords.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/alternative-architectures.pot b/i18n/translation-templates/docs/alternative-architectures.pot new file mode 100644 index 000000000..efb512f68 --- /dev/null +++ b/i18n/translation-templates/docs/alternative-architectures.pot @@ -0,0 +1,57 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/alternative-architectures.md:1 +msgid "Alternative architectures" +msgstr "" + +#: ../../../docs/alternative-architectures.md:3 +msgid "As stated in the [Prerequisites](prerequisites.md), currently only `amd64` (`x86_64`) is fully supported." +msgstr "" + +#: ../../../docs/alternative-architectures.md:5 +msgid "The playbook automatically determines the target server's architecture (the `matrix_architecture` variable) to be one of the following:" +msgstr "" + +#: ../../../docs/alternative-architectures.md:7 +msgid "`amd64` (`x86_64`)" +msgstr "" + +#: ../../../docs/alternative-architectures.md:8 +msgid "`arm32`" +msgstr "" + +#: ../../../docs/alternative-architectures.md:9 +msgid "`arm64`" +msgstr "" + +#: ../../../docs/alternative-architectures.md:11 +msgid "Some tools and container images can be built on the host or other measures can be used to install on that architecture." +msgstr "" + +#: ../../../docs/alternative-architectures.md:13 +msgid "Implementation details" +msgstr "" + +#: ../../../docs/alternative-architectures.md:15 +msgid "For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building)." +msgstr "" + +#: ../../../docs/alternative-architectures.md:17 +msgid "For other architecture (`arm64`, `arm32`), components which have a prebuilt image make use of it. If the component is not available for the specific architecture, [self-building](self-building.md) will be used. Not all components support self-building though, so your mileage may vary." +msgstr "" diff --git a/i18n/translation-templates/docs/ansible.pot b/i18n/translation-templates/docs/ansible.pot new file mode 100644 index 000000000..dec504ce5 --- /dev/null +++ b/i18n/translation-templates/docs/ansible.pot @@ -0,0 +1,180 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/ansible.md:2 +msgid "Running this playbook" +msgstr "" + +#: ../../../docs/ansible.md:4 +msgid "This playbook is meant to be run using [Ansible](https://www.ansible.com/)." +msgstr "" + +#: ../../../docs/ansible.md:6 +msgid "Ansible typically runs on your local computer and carries out tasks on a remote server. If your local computer cannot run Ansible, you can also run Ansible on some server somewhere (including the server you wish to install to)." +msgstr "" + +#: ../../../docs/ansible.md:8 +msgid "Supported Ansible versions" +msgstr "" + +#: ../../../docs/ansible.md:10 +msgid "To manually check which version of Ansible you're on, run: `ansible --version`." +msgstr "" + +#: ../../../docs/ansible.md:12 +msgid "For the **best experience**, we recommend getting the **latest version of Ansible available**." +msgstr "" + +#: ../../../docs/ansible.md:14 +msgid "We're not sure what's the minimum version of Ansible that can run this playbook successfully. The lowest version that we've confirmed (on 2022-11-26) to be working fine is: `ansible-core` (`2.11.7`) combined with `ansible` (`4.10.0`)." +msgstr "" + +#: ../../../docs/ansible.md:16 +msgid "If your distro ships with an Ansible version older than this, you may run into issues. Consider [Upgrading Ansible](#upgrading-ansible) or [using Ansible via Docker](#using-ansible-via-docker)." +msgstr "" + +#: ../../../docs/ansible.md:18 +msgid "Upgrading Ansible" +msgstr "" + +#: ../../../docs/ansible.md:20 +msgid "Depending on your distribution, you may be able to upgrade Ansible in a few different ways:" +msgstr "" + +#: ../../../docs/ansible.md:22 +msgid "by using an additional repository (PPA, etc.), which provides newer Ansible versions. See instructions for [CentOS](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-rhel-centos-or-fedora), [Debian](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-debian), or [Ubuntu](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu) on the Ansible website." +msgstr "" + +#: ../../../docs/ansible.md:24 +msgid "by removing the Ansible package (`yum remove ansible` or `apt-get remove ansible`) and installing via [pip](https://pip.pypa.io/en/stable/installation/) (`pip install ansible`)." +msgstr "" + +#: ../../../docs/ansible.md:26 +msgid "If using the `pip` method, do note that the `ansible-playbook` binary may not be on the `$PATH` (https://linuxconfig.org/linux-path-environment-variable), but in some more special location like `/usr/local/bin/ansible-playbook`. You may need to invoke it using the full path." +msgstr "" + +#: ../../../docs/ansible.md:28 +msgid "**Note**: Both of the above methods are a bad way to run system software such as Ansible. If you find yourself needing to resort to such hacks, please consider reporting a bug to your distribution and/or switching to a sane distribution, which provides up-to-date software." +msgstr "" + +#: ../../../docs/ansible.md:30 +msgid "Using Ansible via Docker" +msgstr "" + +#: ../../../docs/ansible.md:32 +msgid "Alternatively, you can run Ansible inside a Docker container (powered by the [devture/ansible](https://hub.docker.com/r/devture/ansible/) Docker image)." +msgstr "" + +#: ../../../docs/ansible.md:34 +msgid "This ensures that you're using a very recent Ansible version, which is less likely to be incompatible with the playbook." +msgstr "" + +#: ../../../docs/ansible.md:36 +msgid "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)." +msgstr "" + +#: ../../../docs/ansible.md:38 +msgid "Running Ansible in a container on the Matrix server itself" +msgstr "" + +#: ../../../docs/ansible.md:40 +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 "" + +#: ../../../docs/ansible.md:42 +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 "" + +#: ../../../docs/ansible.md:43 +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 "" + +#: ../../../docs/ansible.md:45 +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 "" + +#: ../../../docs/ansible.md:47 +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 "" + +#: ../../../docs/ansible.md:49 +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: `ansible-playbook --connection=community.docker.nsenter …`" +msgstr "" + +#: ../../../docs/ansible.md:51 +#: ../../../docs/ansible.md:71 +msgid "Run this from the playbook's directory:" +msgstr "" + +#: ../../../docs/ansible.md:63 +#: ../../../docs/ansible.md:84 +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:65 +#: ../../../docs/ansible.md:86 +msgid "First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues)." +msgstr "" + +#: ../../../docs/ansible.md:67 +msgid "Finally, you can execute `ansible-playbook …` (or `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:69 +msgid "Running Ansible in a container on another computer (not the Matrix server)" +msgstr "" + +#: ../../../docs/ansible.md:82 +msgid "The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`). If your SSH key is at a different path (not in `$HOME/.ssh/id_rsa`), adjust that part." +msgstr "" + +#: ../../../docs/ansible.md:88 +msgid "Finally, you execute `ansible-playbook …` commands as per normal now." +msgstr "" + +#: ../../../docs/ansible.md:90 +msgid "If you don't use SSH keys for authentication" +msgstr "" + +#: ../../../docs/ansible.md:92 +msgid "If you don't use SSH keys for authentication, simply remove that whole line (`-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro`)." +msgstr "" + +#: ../../../docs/ansible.md:94 +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 "" + +#: ../../../docs/ansible.md:100 +msgid "Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command." +msgstr "" + +#: ../../../docs/ansible.md:102 +msgid "Resolve directory ownership issues" +msgstr "" + +#: ../../../docs/ansible.md:104 +msgid "Because you're `root` in the container running Ansible and this likely differs fom 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 "" + +#: ../../../docs/ansible.md:106 +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 "" + +#: ../../../docs/ansible.md:110 +msgid "These errors can be resolved by making `git` trust the playbook directory by running `git config --global --add safe.directory /work`" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-captcha.pot b/i18n/translation-templates/docs/configuring-captcha.pot new file mode 100644 index 000000000..a652f8838 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-captcha.pot @@ -0,0 +1,75 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-captcha.md:1 +msgid "(Adapted from the [upstream project](https://github.com/element-hq/synapse/blob/develop/docs/CAPTCHA_SETUP.md))" +msgstr "" + +#: ../../../docs/configuring-captcha.md:3 +msgid "Overview" +msgstr "" + +#: ../../../docs/configuring-captcha.md:5 +msgid "Captcha can be enabled for this home server. This file explains how to do that." +msgstr "" + +#: ../../../docs/configuring-captcha.md:7 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-captcha.md:9 +msgid "ReCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:11 +#: ../../../docs/configuring-captcha.md:37 +msgid "Getting keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:13 +#: ../../../docs/configuring-captcha.md:39 +msgid "Requires a site/secret key pair from:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:15 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:17 +msgid "Must be a reCAPTCHA **v2** key using the \"I'm not a robot\" Checkbox option" +msgstr "" + +#: ../../../docs/configuring-captcha.md:19 +msgid "Setting ReCaptcha keys" +msgstr "" + +#: ../../../docs/configuring-captcha.md:21 +msgid "Once registered as above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-captcha.md:35 +msgid "hCaptcha" +msgstr "" + +#: ../../../docs/configuring-captcha.md:41 +msgid "" +msgstr "" + +#: ../../../docs/configuring-captcha.md:43 +msgid "Setting hCaptcha keys" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-dns.pot b/i18n/translation-templates/docs/configuring-dns.pot new file mode 100644 index 000000000..5cbb56f35 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-dns.pot @@ -0,0 +1,145 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-dns.md:1 +msgid "Configuring your DNS settings" +msgstr "" + +#: ../../../docs/configuring-dns.md:3 +msgid "[Prerequisites](prerequisites.md) > Configuring your DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-dns.md:5 +msgid "To set up Matrix on your domain, you'd need to do some DNS configuration." +msgstr "" + +#: ../../../docs/configuring-dns.md:7 +msgid "DNS settings for services enabled by default" +msgstr "" + +#: ../../../docs/configuring-dns.md:9 +msgid "To serve the base domain (`example.com`) and [Element Web](configuring-playbook-client-element-web.md) with the default subdomain, adjust DNS records as below." +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "A" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "-" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "`matrix-server-IP`" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "CNAME" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "`element`" +msgstr "" + +#: ../../../docs/configuring-dns.md:0 +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-dns.md:16 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "" + +#: ../../../docs/configuring-dns.md:18 +msgid "The `element.example.com` subdomain is necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you by default. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record." +msgstr "" + +#: ../../../docs/configuring-dns.md:20 +msgid "Be mindful as to how long it will take for the DNS records to propagate." +msgstr "" + +#: ../../../docs/configuring-dns.md:22 +msgid "**Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\". Otherwise, fetching certificates will fail." +msgstr "" + +#: ../../../docs/configuring-dns.md:24 +msgid "DNS setting for server delegation (optional)" +msgstr "" + +#: ../../../docs/configuring-dns.md:26 +msgid "In the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-dns.md:28 +msgid "To use such an ID, you don't need to install anything on the actual `example.com` server. Instead, you need to instruct the Matrix network that Matrix services for `example.com` are redirected over to `matrix.example.com`. This redirection is also known as \"delegation\"." +msgstr "" + +#: ../../../docs/configuring-dns.md:30 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-dns.md:32 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-dns.md:33 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-dns.md:35 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file, instead of using a DNS SRV record." +msgstr "" + +#: ../../../docs/configuring-dns.md:37 +msgid "If you choose the recommended method (file-based delegation), you do not need to configure the DNS record to enable server delegation. You will need to add a necessary configuration later, when you [finalize the installation](installing.md#finalize-the-installation) after installing and starting Matrix services." +msgstr "" + +#: ../../../docs/configuring-dns.md:39 +msgid "On the other hand, if you choose this method (setting up a DNS SRV record), you need to configure the additional DNS record as well as adjust SSL certificate handling. Take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-dns.md:43 +msgid "[▶️](getting-the-playbook.md) When you're done with the DNS configuration and ready to proceed, continue with [Getting the playbook](getting-the-playbook.md)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-alertmanager-receiver.pot b/i18n/translation-templates/docs/configuring-playbook-alertmanager-receiver.pot new file mode 100644 index 000000000..b0324d65a --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-alertmanager-receiver.pot @@ -0,0 +1,197 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:1 +msgid "Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:3 +msgid "The playbook can install and configure the [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) service for you. It's a [client](https://prometheus.io/docs/alerting/latest/clients/) for Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), allowing you to deliver alerts to Matrix rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:5 +msgid "See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:7 +msgid "This service is meant to be used with an external [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) instance. It's **not** meant to be integrated with the [Prometheus & Grafana stack](./configuring-playbook-prometheus-grafana.md) installed by this playbook, because the Alertmanager component is not installed by it." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:11 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:13 +msgid "This service uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart`) for delivering messages." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:32 +msgid "Join to rooms as the bot manually" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:34 +msgid "ℹ️ **This bot does not accept room invitations automatically**. To deliver messages to rooms, the bot must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:36 +msgid "For each new room you would like the bot to deliver alerts to, invite the bot to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:38 +msgid "Then, log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account, and log out." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:40 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:42 +msgid "By default, this playbook installs matrix-alertmanager-receiver on the `matrix.` subdomain, at the `/matrix-alertmanager-receiver` path (https://matrix.example.com/matrix-alertmanager-receiver). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:44 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-alertmanager-receiver-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:48 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:69 +msgid "Adjusting the matrix-alertmanager-receiver URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:71 +msgid "By tweaking the `matrix_alertmanager_receiver_hostname` and `matrix_alertmanager_receiver_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-alertmanager-receiver.md:73 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:81 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-alertmanager-receiver domain (`alertmanager.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:83 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:85 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:87 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:89 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:91 +msgid "`roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:92 +msgid "`roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_alertmanager_receiver_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:96 +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-alertmanager-receiver.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:111 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:113 +msgid "Configure your Prometheus Alertmanager with configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:132 +msgid "where `URL_HERE` looks like `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.example.com/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:134 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:136 +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-alertmanager-receiver`." +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:138 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-alertmanager-receiver.md:140 +msgid "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:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-appservice-double-puppet.pot b/i18n/translation-templates/docs/configuring-playbook-appservice-double-puppet.pot new file mode 100644 index 000000000..afd8b9282 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-appservice-double-puppet.pot @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:1 +msgid "Setting up Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:3 +msgid "The playbook can install and configure the Appservice Double Puppet service for you. It is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:5 +msgid "This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the appservice method. The service is an implementation of this approach." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:7 +msgid "Previously, bridges supported performing double-puppeting with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:11 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:19 +msgid "There are some additional things you may wish to configure about the service." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:23 +msgid "`roles/custom/matrix-appservice-double-puppet/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_double_puppet_registration_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:38 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-double-puppet.md:44 +msgid "Installing the service will automatically enable double puppeting for all bridges that support double puppeting via the appservice method." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-appservice-draupnir-for-all.pot b/i18n/translation-templates/docs/configuring-playbook-appservice-draupnir-for-all.pot new file mode 100644 index 000000000..e050f2b2a --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-appservice-draupnir-for-all.pot @@ -0,0 +1,182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:1 +msgid "Setting up Draupnir for All/D4A (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool for you in appservice mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:5 +msgid "Appservice mode can be used together with the regular [Draupnir bot](configuring-playbook-bot-draupnir.md) or independently. Details about the differences between the 2 modes are described below." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:7 +msgid "Draupnir Appservice mode compared to Draupnir bot mode" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:9 +msgid "The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:11 +msgid "Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All (Even though the commands do show up in help)." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:13 +msgid "Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:15 +msgid "Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:17 +msgid "Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:19 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:21 +msgid "Create a main management room" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:23 +msgid "The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:25 +msgid "Note that the room must be unencrypted." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:27 +msgid "The management room has to be given an alias, and your bot has to be invited to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:29 +msgid "This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:31 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:34 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:36 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:46 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:48 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:50 +msgid "`roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_draupnir_for_all_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:52 +msgid "For example, to change Draupnir's `protectAllJoinedRooms` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:66 +msgid "You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:68 +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:70 +msgid "The playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:72 +msgid "Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyway. It instead touches the config passed to the Draupnirs that your Appservice creates. So the example above (`protectAllJoinedRooms: true`) makes all provisioned Draupnirs protect all joined rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:76 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:91 +msgid "If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have succesfully installed Draupnir for All and can now start using it." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:93 +msgid "The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:95 +msgid "Granting Users the ability to use D4A" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:97 +msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:99 +msgid "The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:101 +msgid "To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:103 +msgid "How to provision a D4A once you are allowed to" +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:105 +msgid "To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience." +msgstr "" + +#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:107 +msgid "Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-backup-borg.pot b/i18n/translation-templates/docs/configuring-playbook-backup-borg.pot new file mode 100644 index 000000000..ca89549cf --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-backup-borg.pot @@ -0,0 +1,189 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-backup-borg.md:1 +msgid "Setting up BorgBackup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:3 +msgid "The playbook can install and configure [BorgBackup](https://www.borgbackup.org/) (short: Borg) with [borgmatic](https://torsion.org/borgmatic/) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:5 +msgid "BorgBackup is a deduplicating backup program with optional compression and encryption. That means your daily incremental backups can be stored in a fraction of the space and is safe whether you store it at home or on a cloud service." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:9 +msgid "Set up a remote server for storing backups" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:11 +msgid "You will need a remote server where BorgBackup will store the backups. There are hosted, BorgBackup compatible solutions available, such as [BorgBase](https://www.borgbase.com)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:13 +msgid "Check the Postgres version" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:15 +msgid "By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), backups with BorgBackup will also include dumps of your Postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:17 +msgid "Unless you disable the Postgres-backup support, make sure that the Postgres version of your homeserver's database is compatible with borgmatic. You can check the compatible versions [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:19 +msgid "An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for BorgBackup using the `backup_borg_postgresql_enabled` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:21 +msgid "Create a new SSH key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:23 +msgid "Run the command below on any machine to create a new SSH key:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:29 +msgid "You don't need to place the key in the `.ssh` folder." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:31 +msgid "Add the public key" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:33 +msgid "Next, add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your BorgBackup provider/server." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:35 +msgid "If you are using a hosted solution, follow their instructions. If you have your own server, copy the key to it with the command like below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:45 +msgid "The **private** key needs to be added to `backup_borg_ssh_key_private` on your `inventory/host_vars/matrix.example.com/vars.yml` file as below." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:47 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:49 +msgid "To enable BorgBackup, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:76 +msgid "**Note**: `REPO` will be initialized on backup start, for example: `matrix`. See [Remote repositories](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls) for the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:78 +msgid "Set backup archive name (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:80 +msgid "You can specify the backup archive name format. To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:86 +msgid "Configure retention policy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:88 +msgid "It is also possible to configure a retention strategy. To configure it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:98 +msgid "Edit the backup schedule (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:100 +msgid "By default the backup will run 4 a.m. every day based on the `backup_borg_schedule` variable. It is defined in the format of systemd timer calendar." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:102 +msgid "To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:108 +msgid "**Note**: the actual job may run with a delay. See `backup_borg_schedule_randomized_delay_sec` [here](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/f5d5b473d48c6504be10b3d946255ef5c186c2a6/defaults/main.yml#L50) for its default value." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:110 +msgid "Set include and/or exclude directories (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:112 +msgid "`backup_borg_location_source_directories` defines the list of directories to back up. It's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:114 +msgid "You might also want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:116 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:118 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:120 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:122 +msgid "[backup_borg role](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/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 `backup_borg_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:124 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:126 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:133 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:135 +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-backup-borg.md:137 +msgid "Manually start a backup" +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:139 +msgid "Sometimes it can be helpful to run the backup as you'd like, avoiding to wait until 4 a.m., like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:141 +msgid "If you want to run it immediately, log in to the server with SSH and run `systemctl start matrix-backup-borg`." +msgstr "" + +#: ../../../docs/configuring-playbook-backup-borg.md:143 +msgid "This will not return until the backup is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-base-domain-serving.pot b/i18n/translation-templates/docs/configuring-playbook-base-domain-serving.pot new file mode 100644 index 000000000..8fa55d07a --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-base-domain-serving.pot @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:1 +msgid "Serving the base domain (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`), but has it configured so that it presents itself as the base domain (`example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:5 +msgid "As we discuss in [Server Delegation](howto-server-delegation.md), server delegation / redirection can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:7 +msgid "Setting up a `/.well-known/matrix/server` file on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:8 +msgid "Setting up a `_matrix._tcp` DNS SRV record" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:10 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:12 +msgid "However, those who don't have a separate server to dedicate to the base domain have trouble arranging this." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:14 +msgid "Usually, there are 2 options:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:16 +msgid "either get a separate server for the base domain, just for serving the files necessary for [Server Delegation via a well-known file](howto-server-delegation.md#server-delegation-via-a-well-known-file)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:18 +msgid "or, arrange for the Matrix server to serve the base domain. This either involves you [using your own webserver](configuring-playbook-own-webserver.md) or making the integrated webserver serve the base domain for you." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:20 +msgid "This documentation page tells you how to do the latter. With some easy changes, we make it possible to serve the base domain from the Matrix server via the integrated webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:22 +msgid "Just [**adjust your DNS records**](configuring-dns.md), so that your base domain is pointed to the Matrix server's IP address (using a DNS `A` record) **and then add the following configuration** to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:28 +msgid "Doing this, the playbook will:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:30 +msgid "obtain an SSL certificate for the base domain, just like it does for all other domains (see [how we handle SSL certificates](configuring-playbook-ssl-certificates.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:32 +msgid "serve the `/.well-known/matrix/*` files which are necessary for [Federation Server Discovery](configuring-well-known.md#federation-server-discovery) (also see [Server Delegation](howto-server-delegation.md)) and [Client-Server discovery](configuring-well-known.md#client-server-discovery)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:34 +msgid "serve a simple homepage at `https://example.com` with content `Hello from example.com` (configurable via the `matrix_static_files_file_index_html_template` variable). You can also [serve a more complicated static website](#serving-a-static-website-at-the-base-domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:36 +msgid "Serving a static website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:38 +msgid "By default, when \"serving the base domain\" is enabled, the playbook hosts a simple `index.html` webpage at `/matrix/static-files/public/index.html`. The content of this page is taken from the `matrix_static_files_file_index_html_template` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:40 +msgid "If you'd like to host your own static website (more than a single `index.html` page) at the base domain, you can disable the creation of this default `index.html` page like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:54 +msgid "With this configuration, Ansible will no longer mess around with the `/matrix/static-files/public/index.html` file." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:56 +msgid "You are then free to upload any static website files to `/matrix/static-files/public` and they will get served at the base domain. You can do so manually or by using the [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role, which is part of this playbook already." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:58 +msgid "Serving a more complicated website at the base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:60 +msgid "If you'd like to serve an even more complicated (dynamic) website from the Matrix server, relying on the playbook to serve the base domain is not the best choice." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:62 +msgid "You have 2 options." +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:64 +msgid "**One way is to host your base domain elsewhere**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:65 +msgid "you stopping to serve it from the Matrix server: remove `matrix_static_files_container_labels_base_domain_enabled` from your configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:66 +msgid "[configuring Matrix Delegation via well-known](./configuring-well-known.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:68 +msgid "**Another way is to serve the base domain from another (your own) container on the Matrix server**. This involves:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:69 +msgid "telling the playbook to only serve `example.com/.well-known/matrix` files by adjusting your `vars.yml` configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:70 +msgid "keep `matrix_static_files_container_labels_base_domain_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:71 +msgid "add an extra: `matrix_static_files_container_labels_base_domain_traefik_path_prefix: /.well-known/matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:72 +msgid "building and running a new container on the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:73 +msgid "it should be connected to the `traefik` network, so that Traefik can reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:74 +msgid "it should have appropriate [container labels](https://docs.docker.com/config/labels-custom-metadata/), which instruct Traefik to reverse-proxy to it" +msgstr "" + +#: ../../../docs/configuring-playbook-base-domain-serving.md:76 +msgid "How you'll be managing building and running this container is up-to-you. You may use of the primitives from [ansible-role-aux](https://github.com/mother-of-all-self-hosting/ansible-role-aux) Ansible role to organize it yourself, or you can set it up in another way." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-baibot.pot b/i18n/translation-templates/docs/configuring-playbook-bot-baibot.pot new file mode 100644 index 000000000..f6b6bb6a5 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-baibot.pot @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-baibot.md:1 +msgid "Setting up baibot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:8 +msgid "🤖 [baibot](https://github.com/etkecc/baibot) (pronounced bye-bot) is a [Matrix](https://matrix.org/) bot developed by [etke.cc](https://etke.cc/) that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you. 🤖" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:10 +msgid "It supports [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) models, as many well as other [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:12 +msgid "It's designed as a more private and [✨ featureful](https://github.com/etkecc/baibot/?tab=readme-ov-file#-features) alternative to [matrix-chatgpt-bot](./configuring-playbook-bot-chatgpt.md). See the [baibot](https://github.com/etkecc/baibot) project and its documentation for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:14 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:16 +msgid "API access to one or more LLM [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:20 +msgid "There are **a lot of configuration options** (some required, some possibly required, some optional), so they're **split into multiple sections below**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:23 +msgid "[Base configuration](#base-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:24 +msgid "[👮‍♂️ Administrator configuration](#️-administrator-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:25 +msgid "[👥 Initial users configuration](#-initial-users-configuration)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:26 +msgid "[🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:27 +msgid "[🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:29 +msgid "Depending on your current `vars.yml` file and desired configuration, **you may require more than just the [base configuration](#base-configuration)**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:31 +msgid "Base configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:33 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:71 +msgid "As mentioned above, **this may not be enough**. Continue with the configuration sections below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:73 +msgid "👮‍♂️ Administrator configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:75 +#: ../../../docs/configuring-playbook-bot-baibot.md:99 +msgid "This is an addition to the [base configuration](#base-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:77 +msgid "To specify who is considered a bot [👮‍♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:79 +msgid "If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:81 +#: ../../../docs/configuring-playbook-bot-baibot.md:110 +msgid "**If necessary**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:95 +msgid "👥 Initial users configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:97 +msgid "By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:101 +msgid "To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:103 +msgid "define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:104 +msgid "configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:106 +msgid "Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:108 +msgid "**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:122 +msgid "🤖 Configuring agents via Ansible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:124 +msgid "You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:126 +msgid "Privileged users (like the [👮‍♂️ Administrator](#️-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:128 +msgid "The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:130 +msgid "Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:132 +msgid "Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:134 +msgid "Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:136 +msgid "Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:138 +msgid "Anthropic" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:140 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:142 +#: ../../../docs/configuring-playbook-bot-baibot.md:166 +#: ../../../docs/configuring-playbook-bot-baibot.md:197 +#: ../../../docs/configuring-playbook-bot-baibot.md:225 +msgid "Here's an example **addition** to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:158 +#: ../../../docs/configuring-playbook-bot-baibot.md:189 +#: ../../../docs/configuring-playbook-bot-baibot.md:215 +#: ../../../docs/configuring-playbook-bot-baibot.md:243 +msgid "If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:160 +#: ../../../docs/configuring-playbook-bot-baibot.md:191 +#: ../../../docs/configuring-playbook-bot-baibot.md:217 +#: ../../../docs/configuring-playbook-bot-baibot.md:245 +msgid "💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:162 +msgid "Groq" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:164 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:187 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:193 +msgid "Mistral" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:195 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:213 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:219 +msgid "OpenAI" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:221 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:223 +msgid "The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:241 +msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:247 +msgid "OpenAI Compatible" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:249 +msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:251 +msgid "This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:253 +msgid "Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:255 +msgid "As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:257 +msgid "Configuring additional agents (without a preset)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:259 +msgid "The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:261 +msgid "It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:263 +msgid "You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:265 +msgid "Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:304 +msgid "Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:306 +msgid "💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:308 +msgid "As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:310 +msgid "💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:312 +msgid "🤝 Configuring initial default handlers" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:314 +msgid "This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:316 +msgid "If you're not configuring agents via Ansible, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:318 +msgid "This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:320 +msgid "baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:322 +msgid "[💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:324 +msgid "[🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:326 +msgid "[🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:328 +msgid "[🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:330 +msgid "❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:332 +msgid "[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:334 +msgid "This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:336 +msgid "You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:338 +msgid "Example **additional** `vars.yml` configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:355 +msgid "**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:357 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:359 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:361 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:363 +msgid "`roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:364 +msgid "`roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:366 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:368 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:375 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:377 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:379 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:381 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:383 +msgid "If you change the bot password (`matrix_bot_baibot_config_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:385 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:387 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:389 +msgid "If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:391 +msgid "After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:393 +msgid "If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:395 +msgid "Send `!bai help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:397 +msgid "You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:399 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:401 +msgid "As with all other services, you can find service logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-baibot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:403 +msgid "The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-baibot.md:417 +msgid "**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-buscarron.pot b/i18n/translation-templates/docs/configuring-playbook-bot-buscarron.pot new file mode 100644 index 000000000..f2330ca77 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-buscarron.pot @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:1 +msgid "Setting up Buscarron (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:3 +msgid "The playbook can install and configure [Buscarron](https://github.com/etkecc/buscarron) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:5 +msgid "Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/buscarron/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:11 +msgid "By default, this playbook installs Buscarron on the `buscarron.` subdomain (`buscarron.example.com`) and requires you to create a CNAME record for `buscarron`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:40 +msgid "Adjusting the Buscarron URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:42 +msgid "By tweaking the `matrix_bot_buscarron_hostname` and `matrix_bot_buscarron_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-bot-buscarron.md:44 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:55 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:57 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:59 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:61 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:63 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:65 +msgid "`roles/custom/matrix-bot-buscarron/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:67 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:69 +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-bot-buscarron.md:76 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:78 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:80 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:82 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:84 +msgid "If you change the bot password (`matrix_bot_buscarron_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_buscarron_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:86 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:88 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.buscarron:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:90 +msgid "After the bot joins the room, anyone can call the web form via HTTP POST method." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:92 +msgid "Here is an example for the `contact` form:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:100 +msgid "**Note**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:102 +msgid "you hit the homepage (HTTP `GET` request to `/`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:103 +msgid "you submit a form to the wrong URL (`POST` request to `/non-existing-form`)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:104 +msgid "`hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:106 +msgid "If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:110 +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-bot-buscarron`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:112 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-buscarron.md:114 +msgid "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:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-chatgpt.pot b/i18n/translation-templates/docs/configuring-playbook-bot-chatgpt.pot new file mode 100644 index 000000000..19354a2fa --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-chatgpt.pot @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:1 +msgid "Setting up matrix-bot-chatgpt (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:3 +msgid "**Note**: [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) is now an archived (**unmaintained**) project. Talking to ChatGPT (and many other LLM providers) can happen via the much more featureful [baibot](https://github.com/etkecc/baibot), which can be installed using [this playbook](configuring-playbook-bot-baibot.md). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:5 +msgid "The playbook can install and configure [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:7 +msgid "Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client!" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:11 +msgid "Obtain an OpenAI API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:13 +msgid "To use the bot, you'd need to obtain an API key from [https://platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:15 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:17 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:19 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:21 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:27 +msgid "Obtain an access token and create encryption keys" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:29 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:31 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:34 +msgid "To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [Element documentation](https://element.io/help#encryption6)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:36 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:38 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `API_KEY_HERE` with the API key retrieved [here](#obtain-an-openai-api-key) and `ACCESS_TOKEN_HERE` with the access token created [here](#obtain-an-access-token-and-create-encryption-keys), respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:55 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:57 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:64 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:66 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:68 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:70 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:72 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:74 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @bot.chatgpt:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:76 +msgid "After the bot joins the room, you can send a message to it. When you do so, use the prefix if you configured it or mention the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-chatgpt.md:78 +msgid "You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-draupnir.pot b/i18n/translation-templates/docs/configuring-playbook-bot-draupnir.pot new file mode 100644 index 000000000..1ebffdc1f --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-draupnir.pot @@ -0,0 +1,405 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:1 +msgid "Setting up Draupnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:3 +msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:5 +msgid "See the project's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:7 +msgid "This documentation page is about installing Draupnir in bot mode. As an alternative, you can run a multi-instance Draupnir deployment by installing [Draupnir in appservice mode](./configuring-playbook-appservice-draupnir-for-all.md) (called Draupnir-for-all) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:9 +msgid "If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:13 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:15 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:17 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:20 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:22 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:24 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:26 +msgid "Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:28 +msgid "Refer to Draupnir's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#protecting-encrypted-rooms) for more details about why you might want to care about encryption support for protected rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:30 +msgid "Disable Pantalaimon for Draupnir (since v2.0.0; optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:32 +msgid "It is known that running Draupnir along with Pantalaimon breaks all workflows that involve answering prompts with reactions." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:34 +msgid "If you are updating Draupnir from v1.x.x and have enabled Pantalaimon for it, you can disable Pantalaimon in favor of the native E2EE support. To disable Pantalaimon, remove the configuration `matrix_bot_draupnir_pantalaimon_use: true` from your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:36 +msgid "**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:38 +msgid "Native E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:40 +msgid "To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:42 +msgid "Note that native E2EE requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. **The access token obtained via Element Web does not work with it**. Refer to the documentation on [how to obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:44 +msgid "To enable the native E2EE support, add the following configuration to your `vars.yml` file. Make sure to replace `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:55 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:57 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:76 +msgid "Create and invite the bot to the management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:78 +msgid "Before proceeding to the next step, run the playbook with the following command to create the bot user." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:84 +msgid "**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:86 +msgid "Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:88 +msgid "Make sure the account is free from rate limiting (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:90 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:92 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:94 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:96 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:98 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:100 +msgid "To expose the APIs publicly, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:106 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:108 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:110 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:113 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:115 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:117 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:118 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:119 +msgid "`@bot.draupnir:example.com` with the MXID of your Draupnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:125 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:126 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:127 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:129 +msgid "Abuse Reports" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:131 +msgid "Draupnir can receive reports in the management room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:133 +msgid "The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:145 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:147 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:149 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:151 +msgid "`roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:153 +msgid "For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:167 +msgid "Migrating from Mjolnir (Only required if migrating)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:169 +msgid "Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:171 +msgid "Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:173 +msgid "That is all you need to do due to that Draupnir can complete migration on its own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:184 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:186 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:188 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:190 +msgid "You can refer to the upstream [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) for additional ways to use and configure Draupnir and for a more detailed usage guide." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:192 +msgid "Below is a **non-exhaustive quick-start guide** for the impatient." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:194 +msgid "Making Draupnir join and protect a room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:196 +msgid "Draupnir can be told to self-join public rooms, but it's better to follow this flow which works well for all kinds of rooms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:198 +msgid "Invite the bot to the room manually ([inviting Draupnir to rooms](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#inviting-draupnir-to-rooms)). Before joining, the bot *may* ask for confirmation in the Management Room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:200 +msgid "[Give the bot permissions to do its job](#giving-draupnir-permissions-to-do-its-job)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:202 +msgid "Tell it to protect the room (using the [rooms command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#using-the-draupnir-rooms-command)) by sending the following command to the Management Room: `!draupnir rooms add !qporfwt:example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:204 +msgid "To have Draupnir provide useful room protection, you need do to a bit more work (at least the first time around). You may wish to [Subscribe to a public policy list](#subscribing-to-a-public-policy-list), [Create your own own policy and rules](#creating-your-own-policy-lists-and-rules) and [Enabling built-in protections](#enabling-built-in-protections)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:206 +msgid "Giving Draupnir permissions to do its job" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:208 +msgid "For Draupnir to do its job, you need to [give it permissions](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#giving-draupnir-permissions) in rooms it's protecting. This involves **giving it an Administrator power level**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:210 +msgid "**We recommend setting this power level as soon as the bot joins your room** (and before you create new rules), so that it can apply rules as soon as they are available. If the bot is under-privileged, it may fail to apply protections and may not retry for a while (or until your restart it)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:212 +msgid "Subscribing to a public policy list" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:214 +msgid "We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:216 +msgid "Polcy lists are maintained in Matrix rooms. A popular policy list is maintained in the public `#community-moderation-effort-bl:neko.dev` room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:218 +msgid "You can tell Draupnir to subscribe to it by sending the following command to the Management Room: `!draupnir watch #community-moderation-effort-bl:neko.dev`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:220 +msgid "Creating your own policy lists and rules" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:222 +msgid "We also recommend **creating your own policy lists** with the [list create](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-list-create-command-to-create-a-policy-room) command." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:224 +msgid "You can do so by sending the following command to the Management Room: `!draupnir list create my-bans my-bans-bl`. This will create a policy list having a name (shortcode) of `my-bans` and stored in a public `#my-bans-bl:example.com` room on your server. As soon as you run this command, the bot will invite you to the policy list room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:226 +msgid "A policy list does nothing by itself, so the next step is **adding some rules to your policy list**. Policies target a so-called `entity` (one of: `user`, `room` or `server`). These entities are mentioned on the [policy lists](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) documentation page and in the Matrix Spec [here](https://spec.matrix.org/v1.11/client-server-api/#mban-recommendation)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:228 +msgid "The simplest and most useful entity to target is `user`. Below are a few examples using the [ban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-ban-command) and targeting users." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:230 +msgid "To create rules, you run commands in the Management Room (**not** in the policy list room)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:232 +msgid "(ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:233 +msgid "(ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server - all users are fake`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:235 +msgid "As a result of running these commands, you may observe:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:237 +msgid "Draupnir creating `m.policy.rule.user` state events in the `#my-bans-bl:example.com` room on your server" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:238 +msgid "applying these rules against all rooms that Draupnir is an Administrator in" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:240 +msgid "You can undo bans with the [unban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-unban-command)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:242 +msgid "Enabling built-in protections" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:244 +msgid "You can also **turn on various built-in [protections](https://the-draupnir-project.github.io/draupnir-documentation/protections)** like `JoinWaveShortCircuit` (\"If X amount of users join in Y time, set the room to invite-only\")." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:246 +msgid "To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:248 +msgid "To **see the configuration options for a given protection**, send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:250 +msgid "To **set a specific option for a given protection**, send a command like this: `!draupnir config set PROTECTION_NAME.OPTION VALUE` (e.g. `!draupnir config set JoinWaveShortCircuit.timescaleMinutes 30`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:252 +msgid "To **enable a given protection**, send a command like this: `!draupnir enable PROTECTION_NAME` (e.g. `!draupnir enable JoinWaveShortCircuit`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-draupnir.md:254 +msgid "To **disable a given protection**, send a command like this: `!draupnir disable PROTECTION_NAME` (e.g. `!draupnir disable JoinWaveShortCircuit`)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-go-neb.pot b/i18n/translation-templates/docs/configuring-playbook-bot-go-neb.pot new file mode 100644 index 000000000..652820c16 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-go-neb.pot @@ -0,0 +1,153 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:1 +msgid "Setting up Go-NEB (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:3 +msgid "**Note**: [Go-NEB](https://github.com/matrix-org/go-neb) is now an archived (**unmaintained**) project. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bot instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:5 +msgid "The playbook can install and configure [Go-NEB](https://github.com/matrix-org/go-neb) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:7 +msgid "Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/go-neb/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:13 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:15 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:17 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:19 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:25 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:27 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:29 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:32 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:34 +msgid "By default, this playbook installs Go-NEB on the `goneb.` subdomain (`goneb.example.com`) and requires you to create a CNAME record for `goneb`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:36 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:38 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:40 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_GONEB_HERE` and `ACCESS_TOKEN_FOR_ANOTHER_GONEB_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:204 +msgid "Adjusting the Go-NEB URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:206 +msgid "By tweaking the `matrix_bot_go_neb_hostname` and `matrix_bot_go_neb_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-bot-go-neb.md:208 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:219 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:221 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:223 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:225 +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-bot-go-neb.md:232 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:234 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:236 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:238 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:240 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:242 +msgid "To use the bot, invite it to any existing Matrix room (`/invite @bot.go-neb:example.com` where `example.com` is your base domain, not the `matrix.` domain). Make sure you are granted with the sufficient permission if you are not the room owner." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:244 +msgid "Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:246 +msgid "If you enabled the github_cmd service, send `!github help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-go-neb.md:248 +msgid "You can also refer to the upstream [Documentation](https://github.com/matrix-org/go-neb)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-honoroit.pot b/i18n/translation-templates/docs/configuring-playbook-bot-honoroit.pot new file mode 100644 index 000000000..e8b7a4e0e --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-honoroit.pot @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:1 +msgid "Setting up Honoroit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:3 +msgid "The playbook can install and configure [Honoroit](https://github.com/etkecc/honoroit) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:5 +msgid "It's a bot you can use to setup **your own helpdesk on matrix**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/honoroit/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:11 +msgid "By default, this playbook installs Honoroit on the `matrix.` subdomain, at the `/honoroit` path (https://matrix.example.com/honoroit). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-honoroit-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:32 +msgid "Adjusting the Honoroit URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:34 +msgid "By tweaking the `matrix_bot_honoroit_hostname` and `matrix_bot_honoroit_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-bot-honoroit.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:44 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Honoroit domain (`honoroit.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:46 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:50 +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-bot-honoroit.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:61 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:65 +msgid "If you change the bot password (`matrix_bot_honoroit_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_honoroit_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:69 +msgid "To use the bot, invite it to the room you specified on your `vars.yml` file (`/invite @honoroit:example.com` where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:71 +msgid "After the bot joins the room, any Matrix user can send a message to it to start a new thread in that room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:73 +msgid "Send `!ho help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-honoroit.md:75 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/honoroit#features)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-matrix-registration-bot.pot b/i18n/translation-templates/docs/configuring-playbook-bot-matrix-registration-bot.pot new file mode 100644 index 000000000..cd5df4bf3 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-matrix-registration-bot.pot @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:1 +msgid "Setting up matrix-registration-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:3 +msgid "The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:5 +msgid "The bot allows you to easily **create and manage registration tokens** aka. invitation codes. It can be used for an invitation-based server, where you invite someone by sending them a registration token (tokens look like this: `rbalQ0zkaDSRQCOp`). They can register as per normal but have to provide a valid registration token in the final step of the registration process." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:7 +msgid "See the project's [documentation](https://github.com/moan0s/matrix-registration-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:30 +msgid "The bot account will be created automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:45 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:49 +msgid "If you change the bot password (`matrix_bot_matrix_registration_bot_bot_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_registration_bot_bot_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:53 +msgid "To use the bot, start a chat with `@bot.matrix-registration-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:55 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:57 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:59 +msgid "If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-registration-bot.md:61 +msgid "To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-matrix-reminder-bot.pot b/i18n/translation-templates/docs/configuring-playbook-bot-matrix-reminder-bot.pot new file mode 100644 index 000000000..4ef1131c8 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-matrix-reminder-bot.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:1 +msgid "Setting up matrix-reminder-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:3 +msgid "The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:5 +msgid "It's a bot you can use to **schedule one-off & recurring reminders and alarms**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:7 +msgid "See the project's [documentation](https://github.com/anoadragon453/matrix-reminder-bot/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:11 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:39 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:43 +msgid "If you change the bot password (`matrix_bot_matrix_reminder_bot_matrix_user_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_matrix_reminder_bot_matrix_user_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:45 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:47 +msgid "To use the bot, start a chat with `@bot.matrix-reminder-bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:49 +msgid "You can also add the bot to any existing Matrix room (`/invite @bot.matrix-reminder-bot:example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:51 +msgid "Basic usage is like this: `!remindme in 2 minutes; This is a test`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:53 +msgid "Send `!help reminders` to the room to see the bot's help menu for additional commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-matrix-reminder-bot.md:55 +msgid "You can also refer to the upstream [Usage documentation](https://github.com/anoadragon453/matrix-reminder-bot#usage)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-maubot.pot b/i18n/translation-templates/docs/configuring-playbook-bot-maubot.pot new file mode 100644 index 000000000..67e480d6b --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-maubot.pot @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-maubot.md:1 +msgid "Setting up maubot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:3 +msgid "The playbook can install and configure [maubot](https://github.com/maubot/maubot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:5 +msgid "After setting up maubot, you can use the web management interface to make it do things. The default location of the management interface is `matrix.example.com/_matrix/maubot/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/maubot/usage/basic.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:11 +msgid "By default, this playbook installs maubot on the `matrix.` subdomain, at the `/_matrix/maubot/` path (https://matrix.example.com/_matrix/maubot/). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-maubot-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:17 +msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:32 +msgid "You can add multiple admins. The admin accounts are only used to access the maubot administration interface." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:34 +msgid "Adjusting the maubot URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:36 +msgid "By tweaking the `matrix_bot_maubot_hostname` and `matrix_bot_maubot_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-bot-maubot.md:38 +#: ../../../docs/configuring-playbook-bot-maubot.md:56 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the maubot domain (`maubot.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:50 +msgid "Customizing the maubot container image" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:52 +msgid "Certain [maubot plugins](https://plugins.mau.bot/) require additional dependencies to be installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:54 +msgid "You can customize the default maubot container image and install your own dependencies." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:67 +msgid "Consult the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/) for more information about the syntax." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:69 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:71 +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-bot-maubot.md:78 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:80 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:82 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:84 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:86 +msgid "If you change the bot password (`matrix_bot_maubot_initial_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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_maubot_initial_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:88 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:90 +msgid "By default, you can visit `matrix.example.com/_matrix/maubot/` to manage your available plugins, clients and instances." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:92 +msgid "You should start in the following order" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:93 +msgid "**Create one or more clients**: A client is a Matrix account which the bot will use to message. By default, the playbook creates a `bot.maubot` account (as per the configuration above). You only need to [obtain an access token](#obtaining-an-access-token) for it" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:94 +msgid "**Upload some Plugins**: Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:95 +msgid "**Create an instance**: An instance is the actual bot. You have to specify a client which the bot instance will use and the plugin (how the bot will behave)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:97 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:99 +msgid "This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:101 +msgid "Alternatively, you can refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will causes issues to your bot in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-maubot.md:103 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bot-mjolnir.pot b/i18n/translation-templates/docs/configuring-playbook-bot-mjolnir.pot new file mode 100644 index 000000000..de2d13482 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bot-mjolnir.pot @@ -0,0 +1,267 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:1 +msgid "Setting up Mjolnir (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:3 +msgid "The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/mjolnir/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:9 +msgid "Register the bot account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:11 +msgid "The playbook does not automatically create users for you. You **need to register the bot user manually** before setting up the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:13 +msgid "Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:15 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:21 +msgid "If you would like Mjolnir to be able to deactivate users, move aliases, shutdown rooms, etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:23 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:25 +msgid "The bot requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:27 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:52 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:30 +msgid "Make sure the account is free from rate limiting" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:32 +msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a required step. If you do not configure it, Mjolnir will crash.**" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:34 +msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:36 +msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:38 +msgid "The APIs can also be accessed via [Synapse Admin](https://github.com/etkecc/synapse-admin), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:40 +msgid "Add the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:42 +msgid "To expose the APIs publicly, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:48 +msgid "Obtain an access token for admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:50 +msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md). If you have made Mjolnir an admin, you can just use the Mjolnir token." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:55 +msgid "Run the `curl` command" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:57 +msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:59 +msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:60 +msgid "`example.com` with your base domain" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:61 +msgid "`@bot.mjolnir:example.com` with the MXID of your Mjolnir bot user" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:67 +#: ../../../docs/configuring-playbook-bot-mjolnir.md:184 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:68 +msgid "This does not work on outdated Windows 10 as curl is not available there." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:69 +msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:71 +msgid "Create a management room" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:73 +msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:75 +msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:78 +msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you MUST enable and use Pantalaimon (see [below](#configuration-with-e2ee-support))." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:80 +msgid "Once you have created the room you need to copy the room ID so you can specify it on your `vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:82 +msgid "Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:84 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:86 +msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created just now." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:95 +msgid "End-to-End Encryption support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:97 +msgid "Decide whether you want Mjolnir to be capable of operating in end-to-end encrypted (E2EE) rooms. This includes the management room and the moderated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:99 +msgid "To support E2EE, Mjolnir needs to [use Pantalaimon](configuring-playbook-pantalaimon.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:101 +msgid "Configuration with E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:103 +msgid "When using Pantalaimon, Mjolnir will log in to its bot account itself through Pantalaimon, so configure its username and password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:105 +msgid "Add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:119 +msgid "The playbook's `group_vars` will configure other required settings. If using this role separately without the playbook, you also need to configure the two URLs that Mjolnir uses to reach the homeserver, one through Pantalaimon and one \"raw\". This example is taken from the playbook's `group_vars`:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:131 +msgid "Configuration without E2EE support" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:133 +msgid "When NOT using Pantalaimon, Mjolnir does not log in by itself and you must give it an access token for its bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:135 +msgid "Add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:141 +msgid "Adding Mjolnir synapse antispam module (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:143 +msgid "To enable Mjolnir synapse antispam module, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:153 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:155 +msgid "There are some additional things you may wish to configure about the bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:157 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:159 +msgid "`roles/custom/matrix-bot-mjolnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_mjolnir_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:161 +msgid "For example, to change Mjolnir's `recordIgnoredInvites` option to `true`, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:175 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:177 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:186 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:188 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:190 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:192 +msgid "If you change the Pantalaimon's password (`matrix_bot_mjolnir_pantalaimon_password` in your `vars.yml` file) subsequently, its credentials on the homeserver won't be updated automatically. If you'd like to change the password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_mjolnir_pantalaimon_password` to let Pantalaimon know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:194 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bot-mjolnir.md:196 +msgid "You can refer to the upstream [documentation](https://github.com/matrix-org/mjolnir) for additional ways to use and configure Mjolnir. Check out their [quickstart guide](https://github.com/matrix-org/mjolnir#quickstart-guide) for some basic commands you can give to the bot." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-discord.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-discord.pot new file mode 100644 index 000000000..256400515 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-discord.pot @@ -0,0 +1,166 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:1 +msgid "Setting up Appservice Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:4 +msgid "For using as a Bot we are recommend the Appservice Discord bridge (the one being discussed here), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:5 +msgid "For personal use we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:7 +msgid "The playbook can install and configure [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:13 +msgid "Create a Discord Application [here](https://discordapp.com/developers/applications). Then retrieve Client ID, and create a bot from the Bot tab and retrieve the Bot token." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:17 +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-discord.md:31 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:33 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:40 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:42 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:44 +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-discord.md:46 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:48 +msgid "Self-Service Bridging (Manual)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:50 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:56 +msgid "**Note**: If self-service bridging is not enabled, `!discord help` commands will return no results." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:58 +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:82 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:60 +msgid "Once self-service is enabled, start a chat with `@_discord_bot:example.com` and say `!discord help bridge`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:62 +msgid "Then, follow the instructions in the help output message." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:64 +msgid "If the bot is not already in the Discord server, follow the provided invite link. This may require you to be a administrator of the Discord server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:66 +msgid "On the Discord side, send `!matrix help` to the bot to see the available commands for managing the bridge and Matrix users." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:68 +msgid "**Note**: Encrypted Matrix rooms are not supported as of writing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:70 +msgid "Portal Bridging (Automatic)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:72 +msgid "Through portal bridging, Matrix rooms will automatically be created by the bot and bridged to the relevant Discord room. This is done by simply joining a room with a specific name pattern (`#_discord__`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:74 +msgid "All Matrix rooms created this way are **listed publicly** by default, and you will not have admin permissions to change this. To get more control, [make yourself a room Administrator](#getting-administrator-access-in-a-portal-bridged-room). You can then unlist the room from the directory and change the join rules." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:76 +msgid "To disable portal bridging, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:84 +msgid "To get started with Portal Bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:87 +msgid "Room addresses follow this syntax: `#_discord__`. 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//`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:88 +msgid "Once you have figured out the appropriate room address, you can join by doing `/join #_discord__` in your Matrix client." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:90 +msgid "Getting Administrator access in a portal bridged room" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:92 +msgid "By default, you won't have Administrator access in rooms created by the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:94 +msgid "To adjust room access privileges or do various other things (change the room name subsequently, etc.), you'd wish to become an Administrator." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:96 +msgid "There's the Discord bridge's guide for [setting privileges on bridge managed rooms](https://github.com/matrix-org/matrix-appservice-discord/blob/master/docs/howto.md#set-privileges-on-bridge-managed-rooms). To do the same with our container setup, run the following command on the server:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-irc.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-irc.pot new file mode 100644 index 000000000..557a6fae8 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-irc.pot @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:1 +msgid "Setting up Appservice IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:5 +msgid "The playbook can install and configure the [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-irc/blob/master/HOWTO.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:11 +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-irc.md:63 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:65 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:72 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:74 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:76 +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-irc.md:78 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:80 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:82 +msgid "To use the bridge, you need to start a chat with `@irc_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-kakaotalk.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-kakaotalk.pot new file mode 100644 index 000000000..02faa22c0 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-kakaotalk.pot @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:1 +msgid "Setting up Appservice Kakaotalk bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:3 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:5 +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 "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:7 +msgid "[!WARNING] There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:10 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:12 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:14 +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:16 +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:18 +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:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:22 +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:28 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:30 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:32 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:34 +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:35 +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:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:50 +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:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:56 +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:58 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-slack.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-slack.pot new file mode 100644 index 000000000..39bbbd431 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-slack.pot @@ -0,0 +1,262 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:1 +msgid "Setting up Appservice Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:3 +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:89 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:4 +msgid "Bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:5 +msgid "Currently (as of November, 2024) **this component is not available for new installation unless you have already created a classic Slack application** (which the bridge makes use of in order to enable bridging between Slack and Matrix), because the creation of classic Slack applications has been discontinued since June 4 2024. The author of the bridge claims [here](https://github.com/matrix-org/matrix-appservice-slack/issues/789#issuecomment-2172947787) that he plans to support the modern Slack application and until then \"the best (and only) option for new installations is to use the webhook bridging\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:7 +msgid "The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:9 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-appservice-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:13 +msgid "Create a Classic Slack App" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:15 +msgid "First, you need to create a Classic Slack App [here](https://api.slack.com/apps?new_classic_app=1)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:17 +msgid "Name the app \"matrixbot\" (or anything else you'll remember). Select the team/workspace this app will belong to. Click on bot users and add a new bot user. We will use this account to bridge the the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:19 +msgid "Then, click on Event Subscriptions and enable them and use the request url: `https://matrix.example.com/appservice-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:21 +msgid "Add the following events as `Bot User Events` and save:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:23 +msgid "team_domain_change" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:24 +msgid "message.channels" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:25 +msgid "message.groups (if you want to bridge private channels)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:26 +msgid "reaction_added" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:27 +msgid "reaction_removed" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:29 +msgid "Next, click on \"OAuth & Permissions\" and add the following scopes:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:31 +msgid "chat:write:bot" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:32 +msgid "users:read" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:33 +msgid "reactions:write" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:34 +msgid "files:write:user (if you want to bridge files)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:36 +msgid "**Note**: In order to make Slack files visible to Matrix users, this bridge will make Slack files visible to anyone with the url (including files in private channels). This is different than the current behavior in Slack, which only allows authenticated access to media posted in private channels. See MSC701 for details." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:38 +msgid "Click on \"Install App\" and \"Install App to Workspace\". Note the access tokens shown. You will need the Bot User OAuth Access Token and if you want to bridge files, the OAuth Access Token whenever you link a room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:40 +msgid "Create an administration control room on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:42 +msgid "Create a new Matrix room to act as the administration control room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:44 +msgid "Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing \"view source\". The room ID will be displayed near the top." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:48 +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-slack.md:64 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:66 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:68 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:70 +msgid "`roles/custom/matrix-bridge-appservice-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:71 +msgid "`roles/custom/matrix-bridge-appservice-slack/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_slack_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:73 +msgid "For example, to change the bot's username from `slackbot`, add the following configuration to your `vars.yml` file. Replace `examplebot` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:80 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:82 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:91 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:93 +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-slack.md:95 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:97 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:99 +msgid "To use the bridge, you need to send `/invite @slackbot:example.com` to invite the bridge bot user into the admin room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:101 +msgid "If Team Sync is not enabled, for each channel you would like to bridge, perform the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:103 +msgid "Create a Matrix room in the usual manner for your client. Take a note of its Matrix room ID — it will look something like `!qporfwt:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:104 +msgid "Invite the bot user to both the Slack and Matrix channels you would like to bridge using `/invite @matrixbot` for Slack and `/invite @slackbot:example.com` for Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:105 +msgid "Determine the \"channel ID\" that Slack uses to identify the channel. You can see it when you open a given Slack channel in a browser. The URL reads like this: `https://app.slack.com/client/XXX//details/`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:106 +msgid "Issue a link command in the administration control room with these collected values as arguments:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:108 +msgid "with file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:114 +msgid "without file bridging:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:120 +msgid "These arguments can be shortened to single-letter forms:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:126 +msgid "Unlinking" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:128 +msgid "Channels can be unlinked again by sending this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:134 +msgid "Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave the bridged Matrix room. So in case you want to re-link later, don't forget to re-invite the slackbot into this room again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:138 +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-slack`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:140 +msgid "Linking: \"Room is now pending-name\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:142 +msgid "This typically means that you haven't used the correct Slack channel ID. Unlink the room and recheck 'Determine the \"channel ID\"' from above." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:144 +msgid "Messages work from Matrix to Slack, but not the other way around" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:146 +msgid "Check the logs, and if you find the message like below, unlink your room, reinvite the bot and re-link it again." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:148 +msgid "`WARN SlackEventHandler Ignoring message from unrecognised Slack channel ID : %s (%s) `" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-slack.md:150 +msgid "This may particularly hit you, if you tried to unsuccessfully link your room multiple times without unlinking it after each failed attempt." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-webhooks.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-webhooks.pot new file mode 100644 index 000000000..1661603f5 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-appservice-webhooks.pot @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:1 +msgid "Setting up Appservice Webhooks bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:3 +msgid "**Note**: This bridge has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:5 +msgid "The playbook can install and configure [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) for you. This bridge provides support for Slack-compatible webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:7 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-appservice-webhooks/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:11 +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-webhooks.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:36 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:38 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:40 +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-webhooks.md:42 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:44 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:46 +msgid "To use the bridge, you need to invite the bridge bot user to your room in either way." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:48 +msgid "Send `/invite @_webhook:example.com` (**Note**: Make sure you have administration permissions in your room)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:49 +msgid "Add the bridge bot to a private channel (personal channels imply you being an administrator)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:51 +msgid "You then need to send a message to the bridge bot to receive a private message including the webhook link:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:57 +msgid "The JSON body for posting messages will have to look like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:68 +msgid "You can test this via curl like so:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:81 +msgid "Setting Webhooks with Dimension integration manager" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:83 +msgid "If you're using the [Dimension integration manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge with it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:85 +msgid "To configure it, open the Dimension integration manager, and go to \"Settings\" and \"Bridges\", then select edit action for \"Webhook Bridge\"." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-appservice-webhooks.md:87 +msgid "On the UI, press \"Add self-hosted Bridge\" button and populate \"Provisioning URL\" and \"Shared Secret\" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-beeper-linkedin.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-beeper-linkedin.pot new file mode 100644 index 000000000..7b19a5798 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-beeper-linkedin.pot @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:1 +msgid "Setting up Beeper Linkedin bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:3 +msgid "The playbook can install and configure [beeper-linkedin](https://github.com/beeper/linkedin) for you, for bridging to [LinkedIn](https://www.linkedin.com/) Messaging. This bridge is based on the mautrix-python framework and can be configured in a similar way to the mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:5 +msgid "See the project's [documentation](https://github.com/beeper/linkedin/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:9 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:11 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:13 +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-beeper-linkedin.md:15 +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-beeper-linkedin.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:19 +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-beeper-linkedin.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_beeper_linkedin_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:46 +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-beeper-linkedin.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:52 +msgid "To use the bridge, you need to start a chat with `@linkedinbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:54 +msgid "You then need to send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to enable bridging for your LinkedIn account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:56 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:58 +msgid "Bridge asking for 2FA even if you don't have 2FA enabled" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-beeper-linkedin.md:60 +msgid "If you don't have 2FA enabled and are logging in from a strange IP for the first time, LinkedIn will send an email with a one-time code. You can use this code to authorize the bridge session. In my experience, once the IP is authorized, you will not be asked again." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-go-skype-bridge.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-go-skype-bridge.pot new file mode 100644 index 000000000..155e05eed --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-go-skype-bridge.pot @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:1 +msgid "Setting up Go Skype Bridge bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:3 +msgid "The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you, for bridging to [Skype](https://www.skype.com/). This bridge was created based on [mautrix-whatsapp](https://github.com/mautrix/whatsapp) and can be configured in a similar way to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:5 +msgid "See the project's [documentation](https://github.com/kelaresg/go-skype-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:7 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:9 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:11 +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-go-skype-bridge.md:13 +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-go-skype-bridge.md:15 +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-go-skype-bridge.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:19 +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-go-skype-bridge.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:29 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:31 +msgid "**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_go_skype_bridge_`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:46 +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-go-skype-bridge.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-go-skype-bridge.md:52 +msgid "To use the bridge, you need to start a chat with `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-heisenbridge.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-heisenbridge.pot new file mode 100644 index 000000000..191ce175c --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-heisenbridge.pot @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:1 +msgid "Setting up Heisenbridge bouncer-style IRC bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:3 +msgid "**Note**: bridging to [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) can also happen via the [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:5 +msgid "The playbook can install and configure [Heisenbridge](https://github.com/hifi/heisenbridge) — the bouncer-style [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat) bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:7 +msgid "See the project's [documentation](https://github.com/hifi/heisenbridge/blob/master/README.md) to learn what it does and why it might be useful to you. You can also take a look at [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:11 +msgid "By default, this playbook installs Heisenbridge on the `matrix.` subdomain, at the `/heisenbridge` path (https://matrix.example.com/heisenbridge). It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-heisenbridge-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:17 +msgid "To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:30 +msgid "Adjusting the Heisenbridge URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:32 +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 "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:34 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:42 +msgid "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`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:46 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:48 +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-bridge-heisenbridge.md:55 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:57 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:59 +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-heisenbridge.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:65 +msgid "To use the bridge, you need to start a chat with `@heisenbridge:example.com` (where `example.com` is your base domain, not the `matrix.` domain). If the bridge ignores you and a DM is not accepted then the owner setting may be wrong." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:67 +msgid "Help is available for all commands with the `-h` switch." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:69 +msgid "You can also learn the basics by watching [this demonstration video](https://www.youtube.com/watch?v=nQk1Bp4tk4I)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:71 +msgid "If you encounter issues or feel lost you can join the project room at [#heisenbridge:vi.fi](https://matrix.to/#/#heisenbridge:vi.fi) for help." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-hookshot.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-hookshot.pot new file mode 100644 index 000000000..56b7da8a3 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-hookshot.pot @@ -0,0 +1,409 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:1 +msgid "Setting up matrix-hookshot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:3 +msgid "The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:5 +msgid "Hookshot can bridge [Webhooks](https://en.wikipedia.org/wiki/Webhook) from software project management services such as GitHub, GitLab, Jira, and Figma, as well as generic webhooks." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:7 +msgid "See the project's [documentation](https://matrix-org.github.io/matrix-hookshot/latest/hookshot.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:9 +msgid "**Note**: the playbook also supports [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), which however was deprecated by its author." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:13 +msgid "Download GitHub app private key (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:15 +msgid "If you're setting up the GitHub bridge, you need to create your GitHub app, and generate a private key file of it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:17 +msgid "You need to download the private key file, if you will install the file manually or with the `aux` role. For details, see [the section below](#manage-github-private-key-with-aux-role)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:21 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:35 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:37 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:39 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:41 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:43 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:45 +msgid "`roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:46 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:48 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:52 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service hookshot` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:61 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:65 +msgid "To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:67 +msgid "Make sure the bot is able to send state events (usually the Moderator power level in clients)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:69 +msgid "Send `!hookshot help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:71 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:73 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:75 +msgid "Reset crypto store" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:77 +msgid "Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:83 +msgid "More setup documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:85 +msgid "URLs for bridges setup" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:87 +msgid "Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Listener" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Default path" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Variable" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Used as" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/webhooks/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_webhook_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Webhook-prefix, which affects all webhook-related URLs below" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "generic" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/webhooks/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_generic_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Generic webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "github oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/webhooks/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_github_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "GitHub \"Callback URL\"" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "jira oauth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/webhooks/jira/oauth`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_jira_oauth_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Jira OAuth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "figma endpoint" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/webhooks/figma/webhook`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_figma_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Figma" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "provisioning" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/v1/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_provisioning_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Dimension [provisioning](#provisioning-api)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "appservice" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/_matrix/app/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_appservice_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/hookshot/widgetapi/`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_widgets_endpoint`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Widgets" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`/metrics/hookshot`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "`matrix_hookshot_metrics_enabled` and exposure enabled via `matrix_hookshot_metrics_proxying_enabled` or `matrix_metrics_exposure_enabled`. Read more in the [Metrics section](#metrics) below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 +msgid "Prometheus" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:101 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:103 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:105 +msgid "Manage GitHub Private Key with aux role" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:107 +msgid "The GitHub bridge requires you to install a private key file. This can be done in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:109 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:110 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:111 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:113 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:124 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:126 +msgid "Provisioning API" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:128 +msgid "The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with dimension, you will need to enter as \"Provisioning URL\": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:130 +msgid "Metrics" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:132 +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 "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:134 +msgid "To explicitly enable metrics, use `matrix_hookshot_metrics_enabled: true`. This only exposes metrics over the container network, however." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:136 +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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:138 +msgid "either enabling metrics exposure for Hookshot via `matrix_hookshot_metrics_proxying_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:139 +msgid "or enabling metrics exposure for all services via `matrix_metrics_exposure_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:141 +msgid "Whichever one you go with, by default metrics are exposed publicly **without** password-protection. See [the Prometheus and Grafana docs](configuring-playbook-prometheus-grafana.md) for details about password-protection for metrics." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:143 +msgid "Collision with matrix-appservice-webhooks" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:145 +msgid "If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:147 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:149 +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-bridge-hookshot`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:151 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-hookshot.md:153 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-matrix-bridge-sms.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-matrix-bridge-sms.pot new file mode 100644 index 000000000..0e4992bdf --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-matrix-bridge-sms.pot @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:1 +msgid "Setting up Matrix SMS bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:3 +msgid "The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:5 +msgid "See the project's [documentation](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:9 +msgid "The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/android-sms-gateway-server). You need to configure it first." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:13 +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-matrix-bridge-sms.md:36 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:38 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:45 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:47 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:49 +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-matrix-bridge-sms.md:51 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:53 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:55 +msgid "Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-bridges.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-bridges.pot new file mode 100644 index 000000000..b79c2ed2f --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-bridges.pot @@ -0,0 +1,299 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, discord, signal, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:5 +msgid "The author of the bridges maintains [the official docs](https://docs.mau.fi/bridges/index.html), whose source code is available at [mautrix/docs](https://github.com/mautrix/docs) repository on GitHub. You may as well to refer it while configuring them." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:7 +msgid "You can see each bridge's features on the `ROADMAP.md` file in its corresponding mautrix repository." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:11 +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-bridges.md:18 +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. **`matrix_mautrix_facebook_*` and `matrix_mautrix_instagram_*` variables belong to the deprecated components and do not control the new bridge** ([mautrix-meta](https://github.com/mautrix/meta)), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:20 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:22 +msgid "Configure bridge permissions (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:24 +msgid "By default any user on your homeserver will be able to use the mautrix bridges. To limit who can use them you would need to configure their permissions settings." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:26 +msgid "Different levels of permission can be granted to users. For example, to **configure a user as an administrator for all bridges**, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:32 +msgid "If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin: @alice:example.com`), then there's no admin by default." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:34 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:43 +msgid "This will add the admin permission to the specific user, while keeping the default permissions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:45 +msgid "You could also redefine the default permissions settings completely, rather than adding extra permissions. You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` to find information on the permission settings and other options you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:47 +msgid "Enable encryption (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:49 +msgid "[Encryption (End-to-Bridge Encryption, E2BE) support](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) is off by default. If you would like to enable encryption, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:51 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:58 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:77 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:65 +msgid "Enable relay mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:67 +msgid "[Relay mode](https://docs.mau.fi/bridges/general/relay-mode.html) is off by default. Check [the table on the official documentation](https://docs.mau.fi/bridges/general/relay-mode.html#support-table) for bridges which support relay mode." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:69 +msgid "If you would like to enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:71 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:86 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:100 +msgid "If you want to activate the relaybot in a room, send `!prefix set-relay` in the rooms where you want to use the bot (replace `!prefix` with the appropriate command prefix for the bridge, like `!signal` or `!wa`). To deactivate, send `!prefix unset-relay`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:102 +msgid "Use `!prefix set-pl 100` to be able for the bot to modify room settings and invite others." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:104 +msgid "Allow anyone on the homeserver to become a relay user (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:106 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:112 +msgid "Set the bot's username (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:114 +msgid "To set the bot's username, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:120 +msgid "Configure the logging level (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:122 +msgid "To specify the logging level, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:128 +msgid "Replace `warn` with one of the following to control the verbosity of the logs generated: `trace`, `debug`, `info`, `warn`, `error` or `fatal`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:130 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging (those that appear earlier in the list, like `trace`) will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:132 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:134 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:136 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:138 +msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:139 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:141 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:143 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:150 +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:190 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:152 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:154 +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-bridges.md:156 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:158 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:160 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:162 +msgid "For details about the next steps, refer to each bridge's individual documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:164 +msgid "Send `help` to the bot to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:166 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:168 +msgid "Set up Double Puppeting (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:170 +msgid "After successfully enabling bridging, you may wish to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:172 +msgid "To set it up, you have 2 ways of going about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:174 +msgid "Method 1: automatically, by enabling Appservice Double Puppet (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:176 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html), you could enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:178 +msgid "Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:180 +msgid "To enable the Appservice Double Puppet service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:186 +msgid "When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:188 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:192 +msgid "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)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:195 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:197 +msgid "Method 2: manually, by asking each user to provide a working access token" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:199 +msgid "When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:201 +msgid "retrieve a Matrix access token for yourself. Refer to the documentation on [how to obtain one](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:203 +msgid "send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:205 +msgid "make sure you don't log out the session for which you obtained an access token some time in the future, as that would break the Double Puppeting feature" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:207 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:209 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:211 +msgid "If the bridge's bot doesn't accept the invite to a chat, refer [the official troubleshooting page](https://docs.mau.fi/bridges/general/troubleshooting.html) as well." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:213 +msgid "If you found bugs in mautrix bridges, they should be reported to the upstream project, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-discord.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-discord.pot new file mode 100644 index 000000000..a404f37a0 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-discord.pot @@ -0,0 +1,149 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:1 +msgid "Setting up Mautrix Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:5 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:6 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:7 +msgid "For personal use with a discord account we recommend the `mautrix-discord` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:9 +msgid "The playbook can install and configure [mautrix-discord](https://github.com/mautrix/discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/discord/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:15 +msgid "There are 2 ways to login to discord using this bridge, either by [scanning a QR code](#method-1-login-using-qr-code-recommended) using the Discord mobile app **or** by using a [Discord token](#method-2-login-using-discord-token-not-recommended)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:17 +msgid "If this is a dealbreaker for you, consider using one of the other Discord bridges supported by the playbook: [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) or [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md). These come with their own complexity and limitations, however, so we recommend that you proceed with this one if possible." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:19 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:21 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:23 +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-discord.md:25 +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-mautrix-discord.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:29 +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-discord.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:40 +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-discord.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.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-mautrix-discord.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:61 +msgid "To use the bridge, you need to start a chat with `@discordbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/discord/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:65 +msgid "After logging in, the bridge will create portal rooms for some recent direct messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:67 +msgid "Bridge guilds" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:69 +msgid "If you'd like to bridge guilds, send `guilds status` to see the list of guilds, then send `guilds bridge GUILD_ID_HERE` for each guild that you'd like bridged. Make sure to replace `GUILD_ID_HERE` with the guild's ID." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:71 +msgid "After bridging, spaces will be created automatically, and rooms will be created if necessary when messages are received. You can also pass `--entire` to the bridge command to immediately create all rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-discord.md:73 +msgid "If you want to manually bridge channels, invite the bot to the room you want to bridge, and run `!discord bridge CHANNEL_ID_HERE` to bridge the room. Make sure to replace `CHANNEL_ID_HERE` with the channel's ID." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-facebook.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-facebook.pot new file mode 100644 index 000000000..53424a6d9 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-facebook.pot @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:1 +msgid "Setting up Mautrix Facebook bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-messenger.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:7 +msgid "The playbook can install and configure [mautrix-facebook](https://github.com/mautrix/facebook) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/facebook/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:13 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:15 +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-mautrix-facebook.md:17 +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-facebook.md:19 +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-mautrix-facebook.md:21 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:23 +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-facebook.md:29 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:31 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:33 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:44 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:46 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.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-facebook.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:52 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:54 +msgid "To use the bridge, you need to start a chat with `@facebookbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:56 +msgid "You then need to send `login YOUR_FACEBOOK_EMAIL_ADDRESS` to the bridge bot to enable bridging for your Facebook Messenger account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:58 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:60 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:62 +msgid "Facebook rejecting login attempts and forcing you to change password" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:64 +msgid "If your Matrix server is in a wildly different location than where you usually use your Facebook account from, the bridge's login attempts may be outright rejected by Facebook. Along with that, Facebook may even force you to change the account's password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:66 +msgid "If you happen to run into this problem while [setting up bridging](#usage), try to first get a successful session up by logging in to Facebook through the Matrix server's IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:68 +msgid "The easiest way to do this may be to use [sshuttle](https://sshuttle.readthedocs.io/) to proxy your traffic through the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:70 +msgid "Example command for proxying your traffic through the Matrix server:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:76 +msgid "Once connected, you should be able to verify that you're browsing the web through the Matrix server's IP by checking [icanhazip](https://icanhazip.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:78 +msgid "Then proceed to log in to [Facebook/Messenger](https://www.facebook.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:80 +msgid "Once logged in, proceed to [set up bridging](#usage)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-facebook.md:82 +msgid "If that doesn't work, enable 2FA (see: [Facebook help page on enabling 2FA](https://www.facebook.com/help/148233965247823)) and try to login again with a new password, and entering the 2FA code when prompted, it may take more then one try, in between attempts, check facebook.com to see if they are requiring another password change" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-gmessages.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-gmessages.pot new file mode 100644 index 000000000..21b6221ac --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-gmessages.pot @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:1 +msgid "Setting up Mautrix Google Messages bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:5 +msgid "The playbook can install and configure [mautrix-gmessages](https://github.com/mautrix/gmessages) for you, for bridging to [Google Messages](https://messages.google.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/gmessages/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:11 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:13 +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-gmessages.md:15 +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-gmessages.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:19 +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-gmessages.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:27 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:30 +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-gmessages.md:32 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:34 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:41 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:43 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:45 +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-gmessages.md:47 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:49 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:51 +msgid "To use the bridge, you need to start a chat with `@gmessagesbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:53 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/gmessages/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-gmessages.md:55 +msgid "After logging in, the bridge will create portal rooms for recent chats." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-googlechat.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-googlechat.pot new file mode 100644 index 000000000..5cc62b1ca --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-googlechat.pot @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:1 +msgid "Setting up Mautrix Google Chat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:5 +msgid "The playbook can install and configure [mautrix-googlechat](https://github.com/mautrix/googlechat) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/googlechat/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:15 +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-googlechat.md:17 +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-mautrix-googlechat.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:21 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:32 +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-googlechat.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:47 +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-googlechat.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:53 +msgid "To use the bridge, you need to start a chat with `@googlechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-googlechat.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-hangouts.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-hangouts.pot new file mode 100644 index 000000000..72ed5d3ac --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-hangouts.pot @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:1 +msgid "Setting up Mautrix Hangouts bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:5 +msgid "💡 **Note**: This bridge has been deprecated in favor of [Google Chat bridge](https://github.com/mautrix/googlechat), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-googlechat.md). Installing the mautrix-hangouts bridge is **no longer possible**. For now, this documentation page remains here for historical purposes." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:7 +msgid "The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:11 +msgid "Enable Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:13 +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-mautrix-hangouts.md:15 +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-hangouts.md:17 +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-mautrix-hangouts.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:21 +msgid "To enable the [Google Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:46 +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-hangouts.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:52 +msgid "To use the bridge, you need to start a chat with `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:54 +msgid "You then need to send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:56 +msgid "Automatic login may not work. If it does not, reload the page and select the \"Manual login\" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-hangouts.md:58 +msgid "Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-instagram.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-instagram.pot new file mode 100644 index 000000000..eba944ee2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-instagram.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:1 +msgid "Setting up Mautrix Instagram bridging (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:5 +msgid "**Note**: This bridge has been deprecated in favor of the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge, which can be installed using [this playbook](configuring-playbook-bridge-mautrix-meta-instagram.md). Consider using that bridge instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:7 +msgid "The playbook can install and configure [mautrix-instagram](https://github.com/mautrix/instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/instagram/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:13 +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-instagram.md:19 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:21 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:23 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:34 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:36 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:38 +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-instagram.md:40 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:42 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:44 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-instagram.md:46 +msgid "You then need to send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger account." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-instagram.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-instagram.pot new file mode 100644 index 000000000..cb04ef1d1 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-instagram.pot @@ -0,0 +1,145 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:1 +msgid "Setting up Instagram bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Instagram. For bridging to Facebook/Messenger, see [Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:15 +msgid "Migrating from the old mautrix-instagram bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:17 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:19 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:20 +msgid "both trying to bridge the same DMs" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:22 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:24 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:26 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:28 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:30 +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-meta-instagram.md:32 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:34 +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-meta-instagram.md:40 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:42 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:44 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:46 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:48 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:50 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:57 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:59 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:61 +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-meta-instagram.md:63 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:65 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:67 +msgid "To use the bridge, you need to start a chat with `@instagrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:69 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:71 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-messenger.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-messenger.pot new file mode 100644 index 000000000..e92f38ec6 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-meta-messenger.pot @@ -0,0 +1,177 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:1 +msgid "Setting up Messenger bridging via Mautrix Meta (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:5 +msgid "The playbook can install and configure the [mautrix-meta](https://github.com/mautrix/meta) Messenger/Instagram bridge for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/meta/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:9 +msgid "Since this bridge component can bridge to both [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) and you may wish to do both at the same time, the playbook makes it available via 2 different Ansible roles (`matrix-bridge-mautrix-meta-messenger` and `matrix-bridge-mautrix-meta-instagram`). The latter is a reconfigured copy of the first one (created by `just rebuild-mautrix-meta-instagram` and `bin/rebuild-mautrix-meta-instagram.sh`)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:11 +msgid "This documentation page only deals with the bridge's ability to bridge to Facebook Messenger. For bridging to Instagram, see [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:15 +msgid "Migrating from the old mautrix-facebook bridge" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:17 +msgid "If you've been using the [mautrix-facebook](./configuring-playbook-bridge-mautrix-facebook.md) bridge, it's possible to migrate the database using [instructions from the bridge documentation](https://docs.mau.fi/bridges/go/meta/facebook-migration.html) (advanced)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:19 +msgid "Then you may wish to get rid of the Facebook bridge. To do so, send a `clean-rooms` command to the management room with the old bridge bot (`@facebookbot:example.com`). It gives you a list of portals and groups of portals you may purge. Proceed with sending commands like `clean recommended`, etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:21 +msgid "Then, consider disabling the old bridge in your configuration, so it won't recreate the portals when you receive new messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:23 +msgid "**Note**: the user ID of the new bridge bot is `@messengerbot:example.com`, not `@facebookbot:example.com`. After disabling the old bridge, its bot user will stop responding to a command." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:25 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:27 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:29 +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-meta-messenger.md:31 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:33 +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-meta-messenger.md:39 +msgid "Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:41 +msgid "Bridge mode" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:43 +msgid "As mentioned above, the [mautrix-meta](https://github.com/mautrix/meta) bridge supports multiple modes of operation." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:45 +msgid "The bridge can pull your Messenger messages via 3 different methods:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:47 +msgid "(`facebook`) Facebook via `facebook.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:48 +msgid "(`facebook-tor`) Facebook via `facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion` ([Tor](https://www.torproject.org/)) — does not currently proxy media downloads" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:49 +msgid "(default) (`messenger`) Messenger via `messenger.com` — usable even without a Facebook account" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:51 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:53 +msgid "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.)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:55 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:57 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:59 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:61 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:63 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:70 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:72 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:74 +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-meta-messenger.md:76 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:78 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:80 +msgid "To use the bridge, you need to start a chat with `@messengerbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). Note that the user ID of the bridge's bot is not `@facebookbot:example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:82 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/meta/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:84 +msgid "After logging in, the bridge will sync recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:86 +msgid "**Note**: given that the bot is configured in `messenger` [bridge mode](#bridge-mode) by default, you will need to log in to [messenger.com](https://messenger.com/) (not `facebook.com`!) and obtain the cookies from there." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-signal.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-signal.pot new file mode 100644 index 000000000..3bf4fdb89 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-signal.pot @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:1 +msgid "Setting up Mautrix Signal bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:5 +msgid "The playbook can install and configure [mautrix-signal](https://github.com/mautrix/signal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/signal/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:9 +msgid "Prerequisites (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:11 +msgid "Prepare Postgres database on external Postgres server" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:13 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:15 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:17 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:19 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:21 +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-signal.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:25 +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-signal.md:31 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:33 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:35 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:37 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:39 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:50 +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-signal.md:52 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:54 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:56 +msgid "To use the bridge, you need to start a chat with `@signalbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:58 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/signal/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:60 +msgid "After logging in, the bridge will bridge chats as you receive messages." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:62 +msgid "**Note**: Signal does not support any kind of message history (even on official apps), so the bridge won't backfill any messages." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-slack.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-slack.pot new file mode 100644 index 000000000..5bbbe9d63 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-slack.pot @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:1 +msgid "Setting up Mautrix Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:5 +msgid "**Note**: bridging to [Slack](https://slack.com/) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:6 +msgid "For using as a Bot we recommend the [Appservice Slack](configuring-playbook-bridge-appservice-slack.md), because it supports plumbing. Note that it is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:7 +msgid "For personal use with a slack account we recommend the `mautrix-slack` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Slack bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:9 +msgid "The playbook can install and configure [mautrix-slack](https://github.com/mautrix/slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:11 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/slack/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:13 +msgid "See the [features and roadmap](https://github.com/mautrix/slack/blob/main/ROADMAP.md) for more information." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:15 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:17 +msgid "For using this bridge, you would need to authenticate by **providing your username and password** (legacy) or by using a **token login**. See more information in the [docs](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:19 +msgid "Note that neither of these methods are officially supported by Slack. [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) uses a Slack bot account which is the only officially supported method for bridging a Slack channel." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:21 +msgid "Enable Appservice Double Puppet (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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 [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:29 +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-slack.md:35 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:37 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:40 +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-slack.md:42 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:44 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:51 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:53 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.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-mautrix-slack.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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:59 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:61 +msgid "To use the bridge, you need to start a chat with `@slackbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:63 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/slack/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-slack.md:65 +msgid "If you authenticated using a token, the recent chats will be bridged automatically (depending on the `conversation_count` setting). Otherwise (i.e. logging with the Discord application), the chats the bot is in will be bridged automatically." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-telegram.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-telegram.pot new file mode 100644 index 000000000..f289a25b7 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-telegram.pot @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:1 +msgid "Setting up Mautrix Telegram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:5 +msgid "The playbook can install and configure [mautrix-telegram](https://github.com/mautrix/telegram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:11 +msgid "Obtain a Telegram API key" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:13 +msgid "To use the bridge, you'd need to obtain an API key from [https://my.telegram.org/apps](https://my.telegram.org/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:15 +msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:17 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:19 +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-telegram.md:21 +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:81 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:23 +msgid "Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:25 +msgid "If you decided to enable Double Puppeting manually, send `login-matrix` to the bot in order to receive an instruction about how to send an access token to it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:27 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:29 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:37 +msgid "Relaying" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:39 +msgid "Enable relay-bot (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:41 +msgid "If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:51 +msgid "Configure a user as an administrator of the bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:53 +msgid "You might also want to give permissions to a user to administrate the bot. See [this section](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional) on the common guide for details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:55 +msgid "More details about permissions in this example: https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:57 +msgid "Use the bridge for direct chats only (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:59 +msgid "If you want to exclude all groups from syncing and use the Telegram-Bridge only for direct chats, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:65 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:67 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:70 +msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:72 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:74 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:83 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:85 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:87 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:91 +msgid "To use the bridge, you need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:93 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/telegram/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:95 +msgid "After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them. Note that the bridge won't automatically create rooms for private chats." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-twitter.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-twitter.pot new file mode 100644 index 000000000..cf12fbbf1 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-twitter.pot @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:1 +msgid "Setting up Mautrix Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:5 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:7 +msgid "The playbook can install and configure [mautrix-twitter](https://github.com/mautrix/twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:9 +msgid "See the project's [documentation](https://github.com/mautrix/twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:11 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:13 +msgid "Enable Appservice Double Puppet" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:15 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:17 +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-twitter.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:21 +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-twitter.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:32 +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-twitter.md:34 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:36 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:43 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:45 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:47 +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-twitter.md:49 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:51 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:53 +msgid "To use the bridge, you need to start a chat with `@twitterbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:55 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-twitter.md:57 +msgid "After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-whatsapp.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-whatsapp.pot new file mode 100644 index 000000000..5ad331ed5 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-whatsapp.pot @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:1 +msgid "Setting up Mautrix Whatsapp bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:5 +msgid "The playbook can install and configure [mautrix-whatsapp](https://github.com/mautrix/whatsapp) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:7 +msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/whatsapp/index.html) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:9 +msgid "Prerequisite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:11 +msgid "Enable Appservice Double Puppet or Shared Secret Auth" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:13 +msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:15 +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-whatsapp.md:17 +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-mautrix-whatsapp.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:21 +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-whatsapp.md:27 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:29 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:31 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:33 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:35 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:42 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:44 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:46 +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-whatsapp.md:48 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:50 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:52 +msgid "To use the bridge, you need to start a chat with `@whatsappbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:54 +msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/whatsapp/authentication.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:56 +msgid "Approximately in a minute after logging in, the bridge will create portal rooms for recent chats." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-whatsapp.md:58 +msgid "**Note**: your linked devices will be logged out if you don’t use your phone for over 14 days (see the official FAQ entry [here](https://faq.whatsapp.com/general/download-and-installation/about-linked-devices)). The bridge will warn you if it doesn't receive any data from the phone over 12 days." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-wsproxy.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-wsproxy.pot new file mode 100644 index 000000000..bcd9a5179 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mautrix-wsproxy.pot @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:1 +msgid "Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:3 +msgid "Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:5 +msgid "The playbook can install and configure [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:7 +msgid "See the project's [documentation](https://github.com/mautrix/wsproxy/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:11 +msgid "By default, this playbook installs wsproxy on the `wsproxy.` subdomain (`wsproxy.example.com`) and requires you to create a CNAME record for `wsproxy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:17 +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-wsproxy.md:29 +msgid "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." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:31 +msgid "Adjusting the wsproxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:33 +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 "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:35 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:44 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:46 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:48 +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), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:52 +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-bridge-mautrix-wsproxy.md:59 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:61 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:63 +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-wsproxy.md:65 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:69 +msgid "Follow the [mautrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-discord.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-discord.pot new file mode 100644 index 000000000..5e1d73767 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-discord.pot @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:1 +msgid "Setting up MX Puppet Discord bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:3 +msgid "**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:4 +msgid "For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:5 +msgid "For personal use with a discord account we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:7 +msgid "The playbook can install and configure [mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:9 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:13 +msgid "To enable the [Discord](https://discordapp.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:19 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:21 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:28 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:30 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:32 +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-mx-puppet-discord.md:34 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:36 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:38 +msgid "To use the bridge, you need to start a chat with `Discord Puppet Bridge` with the handle `@_discordpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:40 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-discord [documentation](https://gitlab.com/mx-puppet/discord/mx-puppet-discord) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:42 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:44 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-discord.md:46 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-groupme.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-groupme.pot new file mode 100644 index 000000000..758251108 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-groupme.pot @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:1 +msgid "Setting up MX Puppet GroupMe bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:3 +msgid "The playbook can install and configure [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:5 +msgid "See the project's [documentation](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:9 +msgid "To enable the [GroupMe](https://groupme.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:28 +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-mx-puppet-groupme.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:34 +msgid "To use the bridge, you need to start a chat with `GroupMe Puppet Bridge` with the handle `@_groupmepuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:36 +msgid "One authentication method is available." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:38 +msgid "To link your GroupMe account, go to [dev.groupme.com](https://dev.groupme.com/), sign in, and select \"Access Token\" from the top menu. Copy the token and message the bridge with:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:44 +msgid "Once logged in, send `listrooms` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:46 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-groupme.md:48 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-instagram.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-instagram.pot new file mode 100644 index 000000000..ba8747713 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-instagram.pot @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:1 +msgid "Setting up MX Puppet Instagram bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:3 +msgid "The playbook can install and configure [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:5 +msgid "This allows you to bridge Instagram DirectMessages into Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:9 +msgid "To enable the [Instagram](https://www.instagram.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:28 +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-mx-puppet-instagram.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:34 +msgid "To use the bridge, you need to start a chat with `Instagram Puppet Bridge` with the handle `@_instagrampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:36 +msgid "Send `link ` to the bridge bot to link your instagram account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:38 +msgid "The `list` commands shows which accounts are linked and which `puppetId` is associated." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:40 +msgid "For double-puppeting, you probably want to issue these commands:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:42 +msgid "`settype $puppetId puppet` to enable puppeting for the link (instead of relaying)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:43 +msgid "`setautoinvite $puppetId 1` to automatically invite you to chats" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:44 +msgid "`setmatrixtoken $accessToken` to set the access token to enable puppeting from the other side (the \"double\" in double puppeting)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:46 +msgid "If you are linking only one Instagram account, your `$puppetId` is probably 1, but use the `list` command find out." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-instagram.md:48 +msgid "Send `help` to the bot to see the available commands. At the time of writing, not every command is fully implemented." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-skype.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-skype.pot new file mode 100644 index 000000000..d3971b5e0 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-skype.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:1 +msgid "Setting up MX Puppet Skype bridging (optional, removed)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:3 +msgid "The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-skype.md:5 +msgid "Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-slack.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-slack.pot new file mode 100644 index 000000000..f3c8cb89f --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-slack.pot @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:1 +msgid "Setting up MX Puppet Slack bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:3 +msgid "**Note**: bridging to [Slack](https://slack.com) can also happen via the [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook. Note that `matrix-appservice-slack` is not available for new installation unless you have already created a classic Slack application, because the creation of classic Slack applications, which this bridge makes use of, has been discontinued." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:5 +msgid "The playbook can install and configure [mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:7 +msgid "See the project's [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:11 +msgid "Follow the [OAuth credentials](https://gitlab.com/mx-puppet/slack/mx-puppet-slack#option-2-oauth) instructions to create a new Slack app, setting the redirect URL to `https://matrix.example.com/slack/oauth`." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:15 +msgid "To enable the [Slack](https://slack.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:24 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:26 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:33 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:35 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:37 +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-mx-puppet-slack.md:39 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:41 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:43 +msgid "To use the bridge, you need to start a chat with `Slack Puppet Bridge` with the handle `@_slackpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:45 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-slack [documentation](https://gitlab.com/mx-puppet/slack/mx-puppet-slack) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:47 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:49 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-slack.md:51 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-steam.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-steam.pot new file mode 100644 index 000000000..f1839dc75 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-steam.pot @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:1 +msgid "Setting up MX Puppet Steam bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:3 +msgid "The playbook can install and configure [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:5 +msgid "See the project's [documentation](https://github.com/icewind1991/mx-puppet-steam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:9 +msgid "To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:28 +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-mx-puppet-steam.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:34 +msgid "To use the bridge, you need to start a chat with `Steam Puppet Bridge` with the handle `@_steampuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:36 +msgid "Three authentication methods are available, Legacy Token, OAuth and xoxc token. See mx-puppet-steam [documentation](https://github.com/icewind1991/mx-puppet-steam) for more information about how to configure the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:38 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:40 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-steam.md:42 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-twitter.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-twitter.pot new file mode 100644 index 000000000..9b1a35b97 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-mx-puppet-twitter.pot @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:1 +msgid "Setting up MX Puppet Twitter bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:3 +msgid "**Note**: bridging to [Twitter](https://twitter.com/) can also happen via the [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) bridge supported by the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:5 +msgid "The playbook can install and configure [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:7 +msgid "See the project's [documentation](https://github.com/Sorunome/mx-puppet-twitter/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:9 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:11 +msgid "Make an app on [developer.twitter.com](https://developer.twitter.com/en/apps)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:15 +msgid "To enable the [Twitter](https://twitter.com) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:35 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:37 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:39 +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-mx-puppet-twitter.md:41 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:43 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:45 +msgid "To use the bridge, you need to start a chat with `Twitter Puppet Bridge` with the handle `@_twitterpuppet_bot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:47 +msgid "To log in, use `link` and click the link." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:49 +msgid "Once logged in, send `list` to the bot user to list the available rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:51 +msgid "Clicking rooms in the list will result in you receiving an invitation to the bridged room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-mx-puppet-twitter.md:53 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-postmoogle.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-postmoogle.pot new file mode 100644 index 000000000..ff82d45ee --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-postmoogle.pot @@ -0,0 +1,225 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:1 +msgid "Setting up Postmoogle email bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:3 +msgid "The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:5 +msgid "Postmoogle is a bridge you can use to have its bot user forward emails to Matrix rooms. It runs an SMTP email server and allows you to assign mailbox addresses to the rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:7 +msgid "See the project's [documentation](https://github.com/etkecc/postmoogle/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:11 +msgid "Open the following ports on your server to be able to receive incoming emails:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:13 +msgid "`25/tcp`: SMTP" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:14 +msgid "`587/tcp`: Submission (TLS-encrypted SMTP)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:16 +msgid "If you don't open these ports, you will still be able to send emails, but not receive any." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:18 +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 "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:20 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:22 +msgid "To make Postmoogle enable its email sending features, you need to configure MX and TXT (SPF, DMARC, and DKIM) records. See the table below for values which need to be specified." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "TXT" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`v=spf1 ip4:matrix-server-IP -all`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`_dmarc.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`v=DMARC1; p=quarantine;`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "`postmoogle._domainkey.matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:0 +msgid "get it from `!pm dkim`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:31 +msgid "**Note**: the DKIM record can be retrieved after configuring and installing the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:33 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:35 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:56 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:58 +msgid "There are some additional things you may wish to configure about the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:60 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:62 +msgid "`roles/custom/matrix-bridge-postmoogle/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:64 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:66 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:73 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:75 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create a user account of the bridge's bot." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:77 +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-postmoogle.md:79 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:81 +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 [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:83 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:85 +msgid "To use the bridge, invite the `@postmoogle:example.com` bot user into a room you want to use as a mailbox." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:87 +msgid "Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the email address `NAME@matrix.example.com`. Emails sent to that email address will be forwarded to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:89 +msgid "Send `!pm help` to the bot in the room to see the available commands." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:91 +msgid "You can also refer to the upstream [documentation](https://github.com/etkecc/postmoogle)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:93 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:95 +msgid "As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-postmoogle`" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-postmoogle.md:97 +msgid "The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-bridge-wechat.pot b/i18n/translation-templates/docs/configuring-playbook-bridge-wechat.pot new file mode 100644 index 000000000..9339190f2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-bridge-wechat.pot @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:1 +msgid "Setting up WeChat bridging (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:3 +msgid "The playbook can install and configure [matrix-wechat](https://github.com/duo/matrix-wechat) for you, for bridging to [WeChat](https://www.wechat.com/)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:5 +msgid "See the project's [documentation](https://github.com/duo/matrix-wechat/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:9 +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-wechat.md:15 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:17 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:24 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:26 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:28 +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-wechat.md:30 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:32 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:34 +msgid "To use the bridge, you need to start a chat with `@wechatbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-bridge-wechat.md:36 +msgid "Send `help` to the bot to see the available commands." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-cactus-comments.pot b/i18n/translation-templates/docs/configuring-playbook-cactus-comments.pot new file mode 100644 index 000000000..5e51bc044 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-cactus-comments.pot @@ -0,0 +1,201 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-cactus-comments.md:1 +msgid "Setting up Cactus Comments (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:3 +msgid "The playbook can install and configure the [Cactus Comments](https://cactus.chat) system for you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:5 +msgid "Cactus Comments is a **federated comment system** built on Matrix. It respects your privacy, and puts you in control." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:7 +msgid "See the project's [documentation](https://cactus.chat/docs/getting-started/introduction/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:9 +msgid "The playbook contains 2 roles for configuring different pieces of the Cactus Comments system:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:11 +msgid "`matrix-cactus-comments` — the backend appservice integrating with the Matrix homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:13 +msgid "`matrix-cactus-comments-client` — a static website server serving the [cactus-client](https://cactus.chat/docs/client/introduction/) static assets (`cactus.js` and `styles.css`)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:15 +msgid "You can enable whichever component you need (typically both)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:19 +msgid "By default, this playbook installs Cactus Comments' client on the `matrix.` subdomain, at the `/cactus-comments` path (https://matrix.example.com/cactus-comments). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-cactus-comments-client-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:25 +msgid "To enable Cactus Comments, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:45 +msgid "Adjusting the Cactus Comments' client URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:47 +msgid "By tweaking the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_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-cactus-comments.md:49 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:58 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Cactus Comments' client domain (`cactus.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:60 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:64 +msgid "There are some additional things you may wish to configure about the components." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:66 +msgid "For `matrix-cactus-comments`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:68 +msgid "`roles/custom/matrix-cactus-comments/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:70 +msgid "For `matrix-cactus-comments-client`, take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:72 +msgid "`roles/custom/matrix-cactus-comments-client/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:74 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:76 +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-cactus-comments.md:83 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:85 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.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-cactus-comments.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." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:91 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:93 +msgid "To use the component, you need to start a chat with `@bot.cactusbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:95 +msgid "Then, register a site by sending `register YOUR_SITE_NAME_HERE` (where `YOUR_SITE_NAME_HERE` is a unique identifier you choose. It does not have to match your domain). You will then be invited into a moderation room." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:97 +msgid "Now you are good to go and can embed the comment section on your website!" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:99 +msgid "Embed Cactus Comments" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:101 +msgid "The official [documentation](https://cactus.chat/docs/getting-started/quick-start/) provides a useful guide to embed Cactus Comments on your website." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:103 +msgid "After including the JavaScript and CSS asset files, insert a `
` where you'd like to display the comment section:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:109 +msgid "Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `YOUR_SITE_NAME_HERE` with the one that has been registered above:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:123 +msgid "Adjust the domain name for self-hosting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:125 +msgid "To have the assets served from your homeserver (not from `cactus.chat`), you need to adjust the domain name on the official documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:127 +msgid "Make sure to replace `example.com` with your base domain before you include the following lines, instead of the one provided by the official documentation:" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:134 +msgid "**Note**: if the `matrix_cactus_comments_client_hostname` and `matrix_cactus_comments_client_path_prefix` variables are tweaked, you would need to adjust the URLs of the assets accordingly." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:136 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:138 +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-cactus-comments` for the backend appservice or `journalctl -fu matrix-cactus-comments-client` for the server serving the client assets, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:140 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-cactus-comments.md:142 +msgid "It is possible to increase logging verbosity for `matrix-cactus-comments-client`. The default logging level for this component is `error`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-client-cinny.pot b/i18n/translation-templates/docs/configuring-playbook-client-cinny.pot new file mode 100644 index 000000000..f9fd230f2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-client-cinny.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-client-cinny.md:1 +msgid "Setting up Cinny (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:3 +msgid "The playbook can install and configure the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:5 +msgid "Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of [Element Web](./configuring-playbook-client-element-web.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:7 +msgid "💡 **Note**: the latest version of Cinny is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:9 +msgid "[app.cinny.in](https://app.cinny.in), hosted by the [Cinny](https://cinny.in/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:13 +msgid "By default, this playbook installs Cinny on the `cinny.` subdomain (`cinny.example.com`) and requires you to create a CNAME record for `cinny`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:19 +msgid "To enable Cinny, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:25 +msgid "Adjusting the Cinny URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:27 +msgid "By tweaking the `matrix_client_cinny_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:29 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:39 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Cinny domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:41 +msgid "**Note**: while there is a `matrix_client_cinny_path_prefix` variable for changing the path where Cinny is served, overriding it is [not possible](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3701), because Cinny requires an application rebuild (with a tweaked build config) to be functional under a custom path. You'd need to serve Cinny at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:43 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:45 +msgid "After configuring the playbook and [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-cinny.md:52 +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-cinny.md:54 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-client-element-web.pot b/i18n/translation-templates/docs/configuring-playbook-client-element-web.pot new file mode 100644 index 000000000..524c4b34e --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-client-element-web.pot @@ -0,0 +1,165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-client-element-web.md:1 +msgid "Configuring Element Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:3 +msgid "By default, this playbook installs the [Element Web](https://github.com/element-hq/element-web) Matrix client for you. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:5 +msgid "If you'd like to stop the playbook installing the client, see the section [below](#disabling-element-web) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:7 +msgid "💡 **Note**: the latest version of Element Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Applications, you can consider using it from there and avoiding the (small) overhead of self-hosting (by [disabling Element Web](#disabling-element-web)):" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:9 +msgid "[app.element.io](https://app.element.io/), hosted by [Element](https://element.io/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:10 +msgid "[app.etke.cc](https://app.etke.cc/), hosted by [etke.cc](https://etke.cc/)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:12 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:14 +msgid "By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to create a CNAME record for `element`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:16 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:20 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:22 +msgid "You can change the look of Element Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:24 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:26 +msgid "To pull the themes from the `element-themes` project and use them for your Element Web instance, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:32 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_element_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:34 +msgid "Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:36 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:38 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:45 +msgid "If you define your own themes with it and set `matrix_client_element_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:47 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:49 +msgid "Adjusting the Element Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:51 +msgid "By tweaking the `matrix_client_element_hostname` and `matrix_client_element_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-element-web.md:53 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:64 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Element domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:66 +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-element-web.md:68 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:70 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:72 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:74 +msgid "`roles/custom/matrix-client-element/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:75 +msgid "`roles/custom/matrix-client-element/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_element_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:77 +msgid "For example, to override some Element Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:95 +msgid "Disabling Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:97 +msgid "If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:103 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-element-web.md:105 +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-element-web.md:112 +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-element-web.md:114 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-client-hydrogen.pot b/i18n/translation-templates/docs/configuring-playbook-client-hydrogen.pot new file mode 100644 index 000000000..194c8228b --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-client-hydrogen.pot @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:1 +msgid "Setting up Hydrogen (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:3 +msgid "The playbook can install and configure the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:5 +msgid "Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:7 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:9 +msgid "By default, this playbook installs Hydrogen on the `hydrogen.` subdomain (`hydrogen.example.com`) and requires you to create a CNAME record for `hydrogen`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:11 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:13 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:15 +msgid "To enable Hydrogen, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:21 +msgid "Adjusting the Hydrogen URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:23 +msgid "By tweaking the `matrix_client_hydrogen_hostname` and `matrix_client_hydrogen_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-hydrogen.md:25 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:36 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Hydrogen domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:38 +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-hydrogen.md:40 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-hydrogen.md:42 +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-hydrogen.md:49 +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-hydrogen.md:51 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-client-schildichat-web.pot b/i18n/translation-templates/docs/configuring-playbook-client-schildichat-web.pot new file mode 100644 index 000000000..51d7794c3 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-client-schildichat-web.pot @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:1 +msgid "Setting up SchildiChat Web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:3 +msgid "The playbook can install and configure the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:5 +msgid "SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with some extras and tweaks. It can be installed alongside or instead of Element Web." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:7 +msgid "💡 **Note**: the latest version of SchildiChat Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Application, you can consider using it from there:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:9 +msgid "[app.schildi.chat](https://app.schildi.chat/), hosted by the [SchildiChat](https://schildi.chat/) developers" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:13 +msgid "By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to create a CNAME record for `schildichat`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:19 +msgid "To enable SchildiChat Web, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:25 +msgid "Themes" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:27 +msgid "You can change the look of SchildiChat Web by pulling themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project or defining your own themes manually." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:29 +msgid "Use themes by `element-themes`" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:31 +msgid "To pull the themes from the `element-themes` project and use them for your SchildiChat Web instance, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:37 +msgid "If the variable is set to `true`, all themes found in the repository specified with `matrix_client_schildichat_themes_repository_url` will be installed and enabled automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:39 +msgid "Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:41 +msgid "Define themes manually" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:43 +msgid "You can also define your own themes manually by adding and adjusting the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:50 +msgid "If you define your own themes with it and set `matrix_client_schildichat_themes_enabled` to `true` for the themes by `element-themes`, your themes will be preserved as well." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:52 +msgid "If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:54 +msgid "Adjusting the SchildiChat Web URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:56 +msgid "By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_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-schildichat-web.md:58 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:69 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:71 +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-schildichat-web.md:73 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:75 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:77 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:79 +msgid "`roles/custom/matrix-client-schildichat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:80 +msgid "`roles/custom/matrix-client-schildichat/templates/config.json.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_client_schildichat_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:82 +msgid "For example, to override some SchildiChat Web settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-client-schildichat-web.md:102 +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-schildichat-web.md:109 +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-schildichat-web.md:111 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-conduit.pot b/i18n/translation-templates/docs/configuring-playbook-conduit.pot new file mode 100644 index 000000000..995d482e1 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-conduit.pot @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-conduit.md:1 +msgid "Configuring Conduit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:3 +msgid "The playbook can install and configure the [Conduit](https://conduit.rs) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:5 +msgid "See the project's [documentation](https://docs.conduit.rs/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:9 +msgid "💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:19 +msgid "To use Conduit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:25 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:27 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:29 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:31 +msgid "`roles/custom/matrix-conduit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:32 +msgid "`roles/custom/matrix-conduit/templates/conduit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:34 +msgid "If you'd like to have your own different configuration, feel free to copy and paste the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) and then change the specific host's `vars.yml` file like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:40 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:42 +msgid "Since it is difficult to create the first user account on Conduit (see [famedly/conduit#276](https://gitlab.com/famedly/conduit/-/issues/276) and [famedly/conduit#354](https://gitlab.com/famedly/conduit/-/merge_requests/354)) and it does not support [registering users](registering-users.md) (via the command line or via the playbook) like Synapse and Dendrite do, we recommend the following procedure:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:44 +msgid "Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:45 +msgid "Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` — see [Installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:46 +msgid "Create your first user via Element Web or any other client which supports creating users" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:47 +msgid "Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml`" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:48 +msgid "Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:49 +msgid "You can now use your server safely. Additional users can be created by messaging the internal Conduit bot" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:51 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:53 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:55 +msgid "For Conduit, you will have to manually register appservices using the the [register-appservice](https://gitlab.com/famedly/conduit/-/blob/next/APPSERVICES.md) command." +msgstr "" + +#: ../../../docs/configuring-playbook-conduit.md:57 +msgid "Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`, then pass the content to Conduit:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-conduwuit.pot b/i18n/translation-templates/docs/configuring-playbook-conduwuit.pot new file mode 100644 index 000000000..858c78384 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-conduwuit.pot @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-conduwuit.md:1 +msgid "Configuring conduwuit (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:3 +msgid "The playbook can install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:5 +msgid "See the project's [documentation](https://conduwuit.puppyirl.gay/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:9 +msgid "💡 **Note**: conduwuit is a fork of [Conduit](./configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:11 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:13 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:15 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:19 +msgid "To use conduwuit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:33 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:35 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:37 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:39 +msgid "`roles/custom/matrix-conduwuit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:40 +msgid "`roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2` for the server's default configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:42 +msgid "There are various Ansible variables that control settings in the `conduwuit.toml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:44 +msgid "If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://conduwuit.puppyirl.gay/configuration.html#environment-variables) using `matrix_conduwuit_environment_variables_extension`. For example:" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:52 +msgid "Creating the first user account" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:54 +msgid "Unlike other homeserver implementations (like Synapse and Dendrite), conduwuit does not support creating users via the command line or via the playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:56 +msgid "If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:58 +msgid "This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:60 +msgid "The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:63 +msgid "Configuring bridges / appservices" +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:65 +msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:67 +msgid "For conduwuit, you will have to manually register appservices using the [`!admin appservices register` command](https://conduwuit.puppyirl.gay/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:69 +msgid "The server's bot account has a Matrix ID of `@conduit:example.com` (not `@conduwuit:example.com`!) due to conduwuit's historical legacy. Your first user account would already have been invited to an admin room with this bot." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:72 +msgid "Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-conduwuit.md:74 +msgid "Then, send its content to the existing admin room:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-dendrite.pot b/i18n/translation-templates/docs/configuring-playbook-dendrite.pot new file mode 100644 index 000000000..ee7e64695 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-dendrite.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-dendrite.md:1 +msgid "Configuring Dendrite (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:3 +msgid "The playbook can install and configure the [Dendrite](https://github.com/element-hq/dendrite) Matrix server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:5 +msgid "See the project's [documentation](https://element-hq.github.io/dendrite/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:7 +msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:9 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:11 +msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Dendrite). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:13 +msgid "**Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:17 +msgid "To use Dendrite, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:23 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:25 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:27 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:29 +msgid "`roles/custom/matrix-dendrite/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:30 +msgid "`roles/custom/matrix-dendrite/templates/dendrite.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dendrite_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:32 +msgid "For example, to override some Dendrite settings, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:53 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:55 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:62 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dendrite.md:64 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-dimension.pot b/i18n/translation-templates/docs/configuring-playbook-dimension.pot new file mode 100644 index 000000000..5126a16aa --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-dimension.pot @@ -0,0 +1,210 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-dimension.md:1 +msgid "Setting up Dimension integration manager (optional, unmaintained)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:3 +#: ../../../docs/configuring-playbook-dimension.md:109 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:4 +msgid "Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:5 +msgid "This playbook now supports running Dimension in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_homeserver_federation_enabled`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:7 +msgid "The playbook can install and configure the [Dimension](https://dimension.t2bot.io) integration manager for you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:9 +msgid "See the project's [documentation](https://github.com/turt2live/matrix-dimension/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:15 +msgid "Enabling the Dimension service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:17 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:19 +msgid "Dimension can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:23 +msgid "We recommend that you create a dedicated Matrix user for Dimension (`dimension` is a good username)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:33 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:35 +msgid "Dimension requires an access token to be able to connect to your homeserver. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:37 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:40 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:42 +msgid "By default, this playbook installs Dimension on the `dimension.` subdomain (`dimension.example.com`) and requires you to create a CNAME record for `dimension`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:44 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:46 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:48 +msgid "To enable Dimension, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:56 +msgid "Define admin users" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:58 +msgid "To define admin users who can modify the integrations this Dimension supports, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:66 +msgid "The admin interface is accessible within Element Web by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element Web by the \"Add widgets, bridges, & bots\" link in the room information." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:68 +msgid "Adjusting the Dimension URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:70 +msgid "By tweaking the `matrix_dimension_hostname` and `matrix_dimension_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-dimension.md:72 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:83 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:85 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:87 +msgid "**Note**: while there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You'd need to serve Dimension at a dedicated subdomain." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:89 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:91 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:93 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:95 +msgid "`roles/custom/matrix-dimension/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:96 +msgid "`roles/custom/matrix-dimension/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_dimension_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:98 +msgid "You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:100 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:102 +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-dimension.md:111 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:113 +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-dimension.md:115 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:117 +msgid "After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the room info button (`i`) on the top right corner, and then clicking the \"Add widgets, bridges, & bots\" link." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:119 +msgid "Set up a Jitsi widget" +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:121 +msgid "By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:123 +msgid "To set up the widget, an admin user needs to configure the domain via the admin UI once Dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately." +msgstr "" + +#: ../../../docs/configuring-playbook-dimension.md:125 +msgid "There is unfortunately no way to configure the widget via the playbook. See [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-dynamic-dns.pot b/i18n/translation-templates/docs/configuring-playbook-dynamic-dns.pot new file mode 100644 index 000000000..9a0939cb2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-dynamic-dns.pot @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:1 +msgid "Setting up Dynamic DNS (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:3 +msgid "The playbook can configure Dynamic DNS with [ddclient⁠](https://github.com/ddclient/ddclient) for you. It is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:5 +msgid "Most cloud providers / ISPs will charge you extra for a static IP address. If you're not hosting a highly reliable homeserver you can workaround this via dynamic DNS." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:7 +msgid "Prerequisite" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:9 +msgid "You'll need to get a username and password from your DNS provider. Please consult with the provider about how to retrieve them." +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:13 +msgid "To enable dynamic DNS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:37 +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-dynamic-dns.md:39 +msgid "Additional Reading" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:41 +msgid "Additional resources:" +msgstr "" + +#: ../../../docs/configuring-playbook-dynamic-dns.md:43 +msgid "https://matrix.org/docs/guides/free-small-matrix-server" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-email.pot b/i18n/translation-templates/docs/configuring-playbook-email.pot new file mode 100644 index 000000000..997f2f7cc --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-email.pot @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-email.md:1 +msgid "Adjusting email-sending settings (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:3 +msgid "By default, this playbook sets up an [Exim](https://www.exim.org/) email server through which all Matrix services send emails." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:5 +msgid "The email server would attempt to deliver emails directly to their final destination. This may or may not work, depending on your domain configuration (SPF settings, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:7 +msgid "By default, emails are sent from `matrix@matrix.example.com`, as specified by the `exim_relay_sender_address` playbook variable." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:9 +msgid "[!WARNING] On some cloud providers (Google Cloud, etc.), [port 25 is always blocked](https://cloud.google.com/compute/docs/tutorials/sending-mail/), so sending email directly from your server is not possible. You will need to [relay email through another SMTP server](#relaying-email-through-another-smtp-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:12 +msgid "💡 To improve deliverability, we recommend [relaying email through another SMTP server](#relaying-email-through-another-smtp-server) anyway." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:14 +msgid "Firewall settings" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:16 +msgid "No matter whether you send email directly (the default) or you relay email through another host (see how below), you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:18 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:20 +msgid "Relaying email through another SMTP server" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:22 +msgid "If you'd like to relay email through another SMTP server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:34 +msgid "**Note**: only the secure submission protocol (using `STARTTLS`, usually on port `587`) is supported. **SMTPS** (encrypted SMTP, usually on port `465`) **is not supported**." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:36 +msgid "Sending emails using Sendgrid" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:38 +msgid "An easy and free SMTP service to set up is [Sendgrid](https://sendgrid.com/). Its free tier allows for up to 100 emails per day to be sent." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:40 +msgid "To set it up, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:57 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:59 +msgid "If you're having trouble with email not being delivered, it may be useful to inspect the mailer logs." +msgstr "" + +#: ../../../docs/configuring-playbook-email.md:61 +msgid "To do so, log in to the server with SSH and run `journalctl -f -u matrix-exim-relay`." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-email2matrix.pot b/i18n/translation-templates/docs/configuring-playbook-email2matrix.pot new file mode 100644 index 000000000..351bb45a2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-email2matrix.pot @@ -0,0 +1,273 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-email2matrix.md:1 +msgid "Setting up Email2Matrix (optional, deprecated)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:3 +msgid "**Note**: this component has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, 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). Consider using that component instead of this one." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:5 +msgid "The playbook can install and configure [Email2Matrix](https://github.com/devture/email2matrix) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:7 +msgid "See the project's [documentation](https://github.com/devture/email2matrix/blob/master/docs/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:9 +msgid "Preparation" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:11 +msgid "Port availability" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:13 +msgid "Ensure that port 25 is available on your Matrix server and open in your firewall." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:15 +msgid "If you have `postfix` or some other email server software installed, you may need to manually remove it first (unless you need it, of course)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:17 +msgid "If you really need to run an email server on the Matrix machine for other purposes, it may be possible to run Email2Matrix on another port (with a configuration like `matrix_email2matrix_smtp_host_bind_port: \"127.0.0.01:2525\"`) and have your other email server relay messages there." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:19 +msgid "For details about using Email2Matrix alongside [Postfix](http://www.postfix.org/), see [here](https://github.com/devture/email2matrix/blob/master/docs/setup_with_postfix.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:21 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:23 +msgid "We recommend that you create a dedicated Matrix user for Email2Matrix." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:25 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:27 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:33 +msgid "Take note of the user's ID as it needs to be specified as `MatrixUserId` on your `inventory/host_vars/matrix.example.com/vars.yml` file later." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:35 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:37 +msgid "Email2Matrix requires an access token for the sender user to be able to send messages to the room. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:39 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:42 +msgid "Join to rooms as the sender user manually" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:44 +msgid "ℹ️ **Email2Matrix does not accept room invitations automatically**. To deliver messages to rooms, the sender user must be joined to all rooms manually." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:46 +msgid "For each new room you would like the user to deliver messages to, invite the user to the room." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:48 +msgid "Then, log in as the sender user using any Matrix client of your choosing, accept the room invitation from the user's account." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:50 +msgid "Make sure that you and the sender user are part of the same room and that the sender user has enough privileges in the room to be able to send messages there, then log out." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:52 +msgid "Take note of each room's room ID (different clients show the room ID in a different place). You'll need the room ID when [configuring the playbook](#adjusting-the-playbook-configuration) below." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:54 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:56 +msgid "To increase the chances that incoming emails reach your server, you can set up a `MX` record for `matrix.example.com` that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Type" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Host" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Priority" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Weight" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Port" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "Target" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "MX" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "`matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "10" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "0" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "-" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:0 +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:62 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:64 +msgid "To enable Email2Matrix, add the following configuration to your `vars.yml` file. Make sure to replace `ACCESS_TOKEN_FOR_EMAIL2MATRIX1_HERE` and `ACCESS_TOKEN_FOR_EMAIL2MATRIX2_HERE` with the ones created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:90 +msgid "where:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:92 +msgid "MailboxName — local-part of the email address, through which emails are bridged to the room whose ID is defined with MatrixRoomId" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:93 +msgid "MatrixRoomId — internal ID of the room, to which received emails are sent as Matrix message" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:94 +msgid "MatrixHomeserverUrl — URL of your Matrix homeserver, through which to send Matrix messages. You can also set `MatrixHomeserverUrl` to the container URL where your homeserver's Client-Server API lives by using the `{{ matrix_addons_homeserver_client_api_url }}` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:95 +msgid "MatrixUserId — the full ID of the sender user which sends bridged messages to the room. On this configuration it is `@email2matrix1:example.com` and `@email2matrix2:example.com` (where `example.com` is your base domain, not the `matrix.` domain)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:96 +msgid "MatrixAccessToken — sender user's access token" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:97 +msgid "IgnoreSubject — if set to \"true\", the subject is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:98 +msgid "IgnoreBody — if set to \"true\", the message body is not bridged to Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:99 +msgid "SkipMarkdown — if set to \"true\", emails are bridged as plain text Matrix message instead of Markdown (actually HTML)" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:101 +msgid "Refer to the official documentation [here](https://github.com/devture/email2matrix/blob/master/docs/configuration.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:103 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:105 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:107 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:109 +msgid "`roles/custom/matrix-email2matrix/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:111 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:113 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:120 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:122 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service email2matrix` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:124 +msgid "`just install-service email2matrix` 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 "" + +#: ../../../docs/configuring-playbook-email2matrix.md:126 +msgid "After installation, you may wish to send a test email to the email address assigned to `mailbox1` (default: `mailbox1@matrix.example.com`) to make sure that Email2Matrix works as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:128 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:130 +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-email2matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:132 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-email2matrix.md:134 +msgid "If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-etherpad.pot b/i18n/translation-templates/docs/configuring-playbook-etherpad.pot new file mode 100644 index 000000000..42642e43d --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-etherpad.pot @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-etherpad.md:1 +msgid "Setting up Etherpad (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:3 +msgid "The playbook can install and configure [Etherpad](https://etherpad.org) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:5 +msgid "Etherpad is an open source collaborative text editor. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:7 +msgid "When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:11 +msgid "By default, this playbook installs Etherpad on the `etherpad.` subdomain (`etherpad.example.com`) and requires you to create a CNAME record for `etherpad`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:17 +msgid "To enable Etherpad, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:27 +msgid "Adjusting the Etherpad URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:29 +msgid "By tweaking the `etherpad_hostname` and `etherpad_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-etherpad.md:31 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:42 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:44 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:46 +msgid "Configure the default text (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:48 +msgid "You can also edit the default text on a new pad with the variable `etherpad_default_pad_text`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:50 +msgid "To do so, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:62 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:64 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:66 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:68 +msgid "[etherpad role](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/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 `etherpad_configuration_extension_json` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:70 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:72 +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-etherpad.md:79 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:81 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the Etherpad admin user (`etherpad_admin_username`)." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:83 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:85 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:87 +msgid "If you change the Etherpad admin user's password (`etherpad_admin_password` in your `vars.yml` file) subsequently, the admin user's credentials on the homeserver won't be updated automatically. If you'd like to change the admin user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `etherpad_admin_password` to let the admin user know its new password." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:89 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:91 +msgid "The Etherpad UI should be available at `https://etherpad.example.com`, while the admin UI (if enabled) should then be available at `https://etherpad.example.com/admin`." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:93 +msgid "If you've [decided on another hostname or path-prefix](#adjusting-the-etherpad-url-optional) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before using it." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:95 +msgid "Managing / Deleting old pads" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:97 +msgid "If you want to manage and remove old unused pads from Etherpad, you will first need to create the Etherpad admin user as described above." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:99 +msgid "After logging in to the admin web UI, go to the plugin manager page, and install the `adminpads2` plugin." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:101 +msgid "Once the plugin is installed, you should have a \"Manage pads\" section in the UI." +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:103 +msgid "Integrating a Etherpad widget in a room" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:105 +msgid "**Note**: this is how it works in Element Web. It might work quite similar with other clients:" +msgstr "" + +#: ../../../docs/configuring-playbook-etherpad.md:107 +msgid "To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-external-postgres.pot b/i18n/translation-templates/docs/configuring-playbook-external-postgres.pot new file mode 100644 index 000000000..36d391f14 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-external-postgres.pot @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-external-postgres.md:1 +msgid "Using an external PostgreSQL server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:3 +msgid "By default, this playbook would set up a PostgreSQL database server on your machine, running in a Docker container. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:5 +msgid "**Note**: using **an external Postgres server is currently [not very seamless](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1682#issuecomment-1061461683) when it comes to enabling various other playbook services** — you will need to create a new database/credentials for each service and to point each service to its corresponding database using custom `vars.yml` configuration. **For the best experience with the playbook, stick to using the integrated Postgres server**." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:7 +msgid "If you'd like to use an external Postgres server that you manage, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:23 +msgid "The database (as specified in `matrix_synapse_database_database`) must exist and be accessible with the given credentials. It must be empty or contain a valid Synapse database. If empty, Synapse would populate it the first time it runs." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:25 +msgid "**Note**: the external server that you specify in `matrix_synapse_database_host` must be accessible from within the `matrix-synapse` Docker container (and possibly other containers too). This means that it either needs to be a publicly accessible hostname or that it's a hostname on the same Docker network where all containers installed by this playbook run (a network called `matrix` by default). Using a local PostgreSQL instance on the host (running on the same machine, but not in a container) is not possible." +msgstr "" + +#: ../../../docs/configuring-playbook-external-postgres.md:27 +msgid "The connection to your external Postgres server **will not be SSL encrypted**, as [we don't support that yet](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/89)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-federation.pot b/i18n/translation-templates/docs/configuring-playbook-federation.pot new file mode 100644 index 000000000..05f38f5f7 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-federation.pot @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-federation.md:1 +msgid "Controlling Matrix federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:3 +msgid "By default, your server federates with the whole Matrix network. That is, people on your server can communicate with people on any other Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:5 +msgid "**Note**: in the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), we recommend to use a short user ID like `@alice:example.com` instead of `@alice:matrix.example.com` and set up [server delegation](howto-server-delegation.md) / redirection. Without a proper configuration, your server will effectively not be part of the Matrix network. If you find your server is not federated, make sure to [check whether services work](maintenance-checking-services.md) and your server is properly delegated." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:7 +msgid "Federating only with select servers" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:9 +msgid "To make your server only federate with servers of your choosing, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:17 +msgid "If you wish to disable federation, you can do that with an empty list (`[]`), or better yet by completely disabling federation (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:19 +msgid "Exposing the room directory over federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:21 +msgid "By default, your server's public rooms directory is not exposed to other servers via federation." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:23 +msgid "To expose it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:29 +msgid "Disabling federation" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:31 +msgid "To completely disable federation, isolating your server from the rest of the Matrix network, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:37 +msgid "With that, your server's users will only be able to talk among themselves, but not to anyone who is on another server." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:39 +msgid "**Disabling federation does not necessarily disable the federation port** (`8448`). Services like [Dimension](configuring-playbook-dimension.md) and [ma1sd](configuring-playbook-ma1sd.md) normally rely on `openid` APIs exposed on that port. Even if you disable federation and only if necessary, we may still be exposing the federation port and serving the `openid` APIs there. To override this and completely disable Synapse's federation port use:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:51 +msgid "Changing the federation port from 8448 to a different port to use a CDN that only accepts 443/80 ports" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:53 +msgid "Why? This change could be useful for people running small Synapse instances on small severs/VPSes to avoid being impacted by a simple DOS/DDOS when bandwidth, RAM, an CPU resources are limited and if your hosting provider does not provide a DOS/DDOS protection." +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:55 +msgid "To make it possible to proxy the federation through a CDN such as CloudFlare or any other, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-federation.md:66 +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 without issues.**" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-jitsi.pot b/i18n/translation-templates/docs/configuring-playbook-jitsi.pot new file mode 100644 index 000000000..387e81761 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-jitsi.pot @@ -0,0 +1,501 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-jitsi.md:1 +msgid "Setting up the Jitsi video-conferencing platform (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:3 +msgid "The playbook can install and configure the [Jitsi](https://jitsi.org/) video-conferencing platform for you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:5 +msgid "Jitsi can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:7 +msgid "See the project's [documentation](https://jitsi.github.io/handbook/) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:9 +msgid "**Note**: the configuration by the playbook is similar to the one by [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet). You can refer to the official documentation for Docker deployment [here](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:13 +msgid "You may need to open the following ports to your server:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:15 +msgid "`4443/tcp` — RTP media fallback over TCP" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:16 +msgid "`10000/udp` — RTP media over UDP. Depending on your firewall/NAT configuration, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`jitsi_jvb_stun_servers`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/defaults/main.yml))." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:18 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:20 +msgid "By default, this playbook installs Jitsi on the `jitsi.` subdomain (`jitsi.example.com`) and requires you to create a CNAME record for `jitsi`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:22 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:26 +msgid "To enable Jitsi, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:32 +msgid "Adjusting the Jitsi URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:34 +msgid "By tweaking the `jitsi_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:36 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:43 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Jitsi domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:45 +msgid "Configure Jitsi authentication and guests mode (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:47 +msgid "By default the Jitsi instance does not require for anyone to log in, and is open to use without an account. To control who is allowed to start meetings on your Jitsi instance, you'd need to enable Jitsi's authentication and optionally guests mode." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:49 +msgid "Authentication type must be one of them: `internal` (default), `jwt`, `matrix` or `ldap`. Currently, only `internal`, `matrix` and `ldap` mechanisms are supported by the [Jitsi role](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:51 +msgid "With authentication enabled, all meetings have to be started by a registered user. After the meeting is started by that user, then guests are free to join. If the registered user is not yet present, the guests are put on hold in individual waiting rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:53 +msgid "**Note**: authentication is not tested by the playbook's self-checks. We therefore recommend that you would make sure by yourself that authentication is configured properly. To test it, start a meeting at `jitsi.example.com` on your browser." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:55 +msgid "Authenticate using Jitsi accounts: Auth-Type `internal` (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:57 +msgid "The default authentication mechanism is `internal` auth, which requires a Jitsi account to have been configured. This is a recommended method, as it also works in federated rooms." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:59 +msgid "To enable authentication with a Jitsi account, add the following configuration to your `vars.yml` file. Make sure to replace `USERNAME_…` and `PASSWORD_…` with your own values." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:71 +msgid "**Note**: as Jitsi account removal function is not integrated into the playbook, these accounts will not be able to be removed from the Prosody server automatically, even if they are removed from your `vars.yml` file subsequently." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:73 +msgid "Authenticate using Matrix OpenID: Auth-Type `matrix`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:75 +msgid "[!WARNING] This breaks the Jitsi instance on federated rooms probably and does not allow sharing conference links with guests." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:78 +msgid "This authentication method requires [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service), which can be installed using this [playbook](configuring-playbook-user-verification-service.md). It verifies against Matrix openID, and requires a user-verification-service to run." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:80 +msgid "To enable authentication with Matrix OpenID, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:88 +msgid "For more information see also [https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification](https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:90 +msgid "Authenticate using LDAP: Auth-Type `ldap`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:92 +msgid "To enable authentication with LDAP, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:112 +msgid "For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:114 +msgid "Configure `JVB_ADVERTISE_IPS` for running behind NAT or on a LAN environment (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:116 +msgid "When running Jitsi in a LAN environment, or on the public Internet via NAT, the `JVB_ADVERTISE_IPS` enviornment variable should be set." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:118 +msgid "This variable allows to control which IP addresses the JVB will advertise for WebRTC media traffic. It is necessary to set it regardless of the use of a reverse proxy, since it's the IP address that will receive the media (audio / video) and not HTTP traffic, hence it's oblivious to the reverse proxy." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:120 +msgid "If your users are coming in over the Internet (and not over LAN), this will likely be your public IP address. If this is not set up correctly, calls will crash when more than two users join a meeting." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:122 +msgid "To set the variable, add the following configuration to your `vars.yml` file. Make sure to replace `LOCAL_IP_ADDRESS_OF_THE_HOST_HERE` with a proper value." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:129 +msgid "Check [the official documentation](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/#running-behind-nat-or-on-a-lan-environment) for more details about it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:131 +msgid "Set a maximum number of participants on a Jitsi conference (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:133 +msgid "You can set a maximum number of participants allowed to join a Jitsi conference. By default the number is not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:135 +msgid "To set it, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:141 +msgid "Enable Gravatar (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:143 +msgid "In the default Jisti Meet configuration, `gravatar.com` is enabled as an avatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:145 +msgid "Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our default configuration has disabled the Gravatar service." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:147 +msgid "To enable the Gravatar service, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:153 +msgid "[!WARNING] This will result in third party request leaking data to the Gravatar Service (`gravatar.com`, unless configured otherwise). Besides metadata, the Matrix user_id and possibly the room ID (via `referrer` header) will be also sent to the third party." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:156 +msgid "Fine tune Jitsi (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:158 +msgid "If you'd like to have Jitsi save up resources, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:171 +msgid "These configurations:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:173 +msgid "**limit the maximum video resolution**, to save up resources on both server and clients" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:174 +msgid "**suspend unused video layers** until they are requested again, to save up resources on both server and clients. Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:175 +msgid "**disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:176 +msgid "**limit the number of video feeds forwarded to each client**, to save up resources on both server and clients. As clients’ bandwidth and CPU may not bear the load, use this setting to avoid lag and crashes. This feature is available by default on other webconference applications such as Office 365 Teams (the number is limited to 4). Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/5ff195985edf46c9399dcf263cb07167f0a2c724/doc/allocation.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:178 +msgid "Example configurations" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:180 +msgid "Here is an example set of configurations for running a Jitsi instance with:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:182 +msgid "authentication using a Jitsi account (username: `US3RNAME`, password: `passw0rd`)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:183 +msgid "guests: allowed" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:184 +msgid "maximum participants: 6 people" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:185 +msgid "fine tuning with the configurations presented above" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:186 +msgid "other miscellaneous options (see the official Jitsi documentation [here](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-configuration) and [here](https://jitsi.github.io/handbook/docs/user-guide/user-guide-advanced))" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:206 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:208 +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-jitsi.md:215 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:217 +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-jitsi.md:219 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:221 +msgid "You can use the self-hosted Jitsi server in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:223 +msgid "**by adding a widget to a room via Element Web** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:225 +msgid "**directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:227 +msgid "Set up additional JVBs for more video-conferences (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:229 +msgid "By default, a single JVB ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)) is deployed on the same host as the Matrix server. To allow more video-conferences to happen at the same time, you'd need to provision additional JVB services on other hosts." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:231 +msgid "These settings below will allow you to provision those extra JVB instances. The instances will register themselves with the Prosody service, and be available for Jicofo to route conferences too." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:233 +msgid "Add the `jitsi_jvb_servers` section on `hosts` file" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:235 +msgid "For additional JVBs, you'd need to add the section titled `jitsi_jvb_servers` on the ansible `hosts` file with the details of the JVB hosts as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:242 +msgid "Make sure to replace `jvb-2.example.com` with your hostname for the JVB and `192.168.0.2` with your JVB's external IP address, respectively." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:244 +msgid "You could add JVB hosts as many as you would like. When doing so, add lines with the details of them." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:246 +msgid "Prepare `vars.yml` files for additional JVBs" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:248 +msgid "If the main server is `matrix.example.com` and the additional JVB instance is going to be deployed at `jvb-2.example.com`, the variables for the latter need to be specified on `vars.yml` in its directory (`inventory/host_vars/jvb-2.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:250 +msgid "Note that most (if not all) variables are common for both servers." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:252 +msgid "If you are setting up multiple JVB instances, you'd need to create `vars.yml` files for each of them too (`inventory/host_vars/jvb-3.example.com/vars.yml`, for example)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:254 +msgid "Set the server ID to each JVB" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:256 +msgid "Each JVB requires a server ID to be set, so that it will be uniquely identified. The server ID allows Jitsi to keep track of which conferences are on which JVB." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:258 +msgid "The server ID can be set with the variable `jitsi_jvb_server_id`. It will end up as the `JVB_WS_SERVER_ID` environment variables in the JVB docker container." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:260 +msgid "To set the server ID to `jvb-2`, add the following configuration to either `hosts` or `vars.yml` files (adapt to your needs)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:262 +msgid "On `hosts`:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:264 +msgid "Add `jitsi_jvb_server_id=jvb-2` after your JVB's external IP addresses as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:272 +msgid "On `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:278 +msgid "Alternatively, you can specify the variable as a parameter to [the ansible command](#run-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:280 +msgid "**Note**: the server ID `jvb-1` is reserved for the JVB instance running on the Matrix host, therefore should not be used as the ID of an additional JVB host." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:282 +msgid "Set colibri WebSocket port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:284 +msgid "The additional JVBs will need to expose the colibri WebSocket port." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:286 +msgid "To expose the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:292 +msgid "Set Prosody XMPP server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:294 +msgid "The JVB will also need to know the location of the Prosody XMPP server." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:296 +msgid "Similar to the server ID (`jitsi_jvb_server_id`), this can be set with the variable for the JVB by using the variable `jitsi_xmpp_server`." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:298 +msgid "Set the Matrix domain" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:300 +msgid "The Jitsi Prosody container is deployed on the Matrix server by default, so the value can be set to the Matrix domain. To set the value, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:306 +msgid "Set an IP address of the Matrix server" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:308 +msgid "Alternatively, the IP address of the Matrix server can be set. This can be useful if you would like to use a private IP address." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:310 +msgid "To set the IP address of the Matrix server, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:316 +msgid "Expose XMPP port" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:318 +msgid "By default, the Matrix server does not expose the XMPP port (`5222`); only the XMPP container exposes it internally inside the host. This means that the first JVB (which runs on the Matrix server) can reach it but the additional JVBs cannot. Therefore, the XMPP server needs to expose the port, so that the additional JVBs can connect to it." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:320 +msgid "To expose the port and have Docker forward the port, add the following configuration to your `vars.yml` files:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:326 +msgid "Reverse-proxy with Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:328 +msgid "To make Traefik reverse-proxy to these additional JVBs, add the following configuration to your main `vars.yml` file (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:364 +msgid "Run the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:366 +msgid "After configuring `hosts` and `vars.yml` files, run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:372 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:374 +msgid "`Error: Account creation/modification not supported`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:376 +msgid "If you get an error like `Error: Account creation/modification not supported` with authentication enabled, it's likely that you had previously installed Jitsi without auth/guest support." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:378 +msgid "In this case, you should consider to rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:380 +msgid "Rebuilding your Jitsi installation" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:382 +msgid "If you ever run into any trouble or if you have changed configuration (`jitsi_*` variables) too much, you can rebuild your Jitsi installation." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:384 +msgid "We normally don't recommend manual intervention, but Jitsi services tend to generate a lot of configuration files, and it is often wise to start afresh setting the services up, rather than messing with the existing configuration files. Since not all of those files are managed by Ansible (at least not yet), you may sometimes need to delete them by yourself manually." +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:386 +msgid "To rebuild your Jitsi configuration, follow the procedure below:" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:388 +msgid "run this command locally to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:389 +msgid "log in the server with SSH" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:390 +msgid "run this command remotely to remove all Jitsi configuration & data: `rm -rf /matrix/jitsi`" +msgstr "" + +#: ../../../docs/configuring-playbook-jitsi.md:391 +msgid "run this command locally to set up Jitsi anew and restart services: `just install-service jitsi`" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-ldap-auth.pot b/i18n/translation-templates/docs/configuring-playbook-ldap-auth.pot new file mode 100644 index 000000000..c3f60aca0 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-ldap-auth.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-ldap-auth.md:1 +msgid "Setting up the LDAP authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:3 +msgid "The playbook can install and configure the [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) LDAP Auth password provider for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-synapse-ldap3/blob/main/README.rst) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:7 +msgid "If you decide that you'd like to let this playbook install it for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:24 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:26 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:32 +msgid "Using ma1sd Identity Server for authentication (not recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:34 +msgid "The playbook can instead configure [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for LDAP authentication. However, **we recommend not bothering with installing it** as ma1sd has been unmaintained for years." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:36 +msgid "If you wish to install it anyway, consult the [ma1sd Identity Server configuration](configuring-playbook-ma1sd.md#authentication)." +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:38 +msgid "Handling user registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ldap-auth.md:40 +msgid "If you wish for users to also be able to make new registrations against LDAP, you may **also** wish to [set up the ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-ma1sd.pot b/i18n/translation-templates/docs/configuring-playbook-ma1sd.pot new file mode 100644 index 000000000..daceadecc --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-ma1sd.pot @@ -0,0 +1,221 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-ma1sd.md:1 +msgid "Setting up ma1sd Identity Server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:3 +msgid "**⚠️Note**: ma1sd itself has also been unmaintained for years (the latest commit and release being from 2021). The role of identity servers in the Matrix specification also has an uncertain future. **We recommend not bothering with installing it unless it's the only way you can do what you need to do**. For example, certain things like LDAP integration can also be implemented via [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:5 +msgid "The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you. It is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:7 +msgid "ma1sd is used for 3PIDs (3rd party identifiers like E-mail and phone numbers) and some [enhanced features](https://github.com/ma1uta/ma1sd/#features). It is private by default, potentially at the expense of user discoverability." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:9 +msgid "See the project's [documentation](https://github.com/ma1uta/ma1sd/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:11 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:13 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:15 +msgid "Enabling the ma1sd service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:17 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:19 +msgid "To make the ma1sd Identity Server enable its federation features, set up a SRV record that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:21 +msgid "Name: `_matrix-identity._tcp` (use this text as-is)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:22 +msgid "Content: `10 0 443 matrix.example.com` (replace `example.com` with your own)" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:24 +msgid "See [ma1sd's documentation](https://github.com/ma1uta/ma1sd/wiki/mxisd-and-your-privacy#choices-are-never-easy) for information on the privacy implications of setting up this SRV record." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:26 +msgid "When setting up a SRV record, if you are asked for a service and protocol instead of a hostname split the host value from the table where the period is. For example use service as `_matrix-identity` and protocol as `_tcp`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:28 +msgid "**Note**: This `_matrix-identity._tcp` SRV record for the identity server is different from the `_matrix._tcp` that can be used for Synapse delegation. See [howto-server-delegation.md](howto-server-delegation.md) for more information about delegation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:30 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:32 +msgid "To enable ma1sd, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:38 +msgid "Matrix.org lookup forwarding" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:40 +msgid "To ensure maximum discovery, you can make your identity server also forward lookups to the central matrix.org Identity server (at the cost of potentially leaking all your contacts information)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:42 +msgid "Enabling this is discouraged and you'd better [learn more](https://github.com/ma1uta/ma1sd/blob/master/docs/features/identity.md#lookups) before proceeding." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:44 +msgid "To enable matrix.org forwarding, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:50 +msgid "Additional features" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:52 +msgid "What this playbook configures for your is some bare minimum Identity Server functionality, so that you won't need to rely on external 3rd party services." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:54 +msgid "A few variables can be toggled in this playbook to alter the ma1sd configuration that gets generated." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:56 +msgid "Still, ma1sd can do much more. You can refer to the [ma1sd website](https://github.com/ma1uta/ma1sd) for more details and configuration options." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:58 +msgid "To use a more custom configuration, you can define a `matrix_ma1sd_configuration_extension_yaml` string variable and put your configuration in it. To learn more about how to do this, refer to the information about `matrix_ma1sd_configuration_extension_yaml` in the [default variables file](../roles/custom/matrix-ma1sd/defaults/main.yml) of the ma1sd component." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:60 +msgid "Customizing email templates" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:62 +msgid "If you'd like to change the default email templates used by ma1sd, take a look at the `matrix_ma1sd_threepid_medium_email_custom_` variables (in the `roles/custom/matrix-ma1sd/defaults/main.yml` file." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:64 +msgid "ma1sd-controlled Registration" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:66 +msgid "To use the [Registration](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) feature of ma1sd, you can make use of the following variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:68 +msgid "`matrix_synapse_enable_registration` — to enable user-initiated registration in Synapse" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:70 +msgid "`matrix_synapse_enable_registration_captcha` — to validate registering users using reCAPTCHA, as described in the [enabling reCAPTCHA](configuring-captcha.md) documentation." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:72 +msgid "`matrix_synapse_registrations_require_3pid` — a list of 3pid types (among `'email'`, `'msisdn'`) required by the Synapse server for registering" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:74 +msgid "variables prefixed with `matrix_ma1sd_container_labels_` (e.g. `matrix_ma1sd_container_labels_matrix_client_3pid_registration_enabled`) — to configure the Traefik reverse-proxy to capture and send registration requests to ma1sd (instead of Synapse), so it can apply its additional functionality" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:76 +msgid "`matrix_ma1sd_configuration_extension_yaml` — to configure ma1sd as required. See the [Registration feature's docs](https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md) for inspiration. Also see the [Additional features](#additional-features) section below to learn more about how to use `matrix_ma1sd_configuration_extension_yaml`." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:78 +msgid "**Note**: For this to work, either the homeserver needs to [federate](configuring-playbook-federation.md) or the `openid` APIs need to exposed on the federation port. When federation is disabled and ma1sd is enabled, we automatically expose the `openid` APIs (only!) on the federation port. Make sure the federation port (usually `https://matrix.example.com:8448`) is whitelisted in your firewall (even if you don't actually use/need federation)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:80 +msgid "Authentication" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:82 +msgid "[Authentication](https://github.com/ma1uta/ma1sd/blob/master/docs/features/authentication.md) provides the possibility to use your own [Identity Stores](https://github.com/ma1uta/ma1sd/blob/master/docs/stores/README.md) (for example LDAP) to authenticate users on your Homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:84 +msgid "To enable authentication against an LDAP server, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:104 +msgid "Example: SMS verification" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:106 +msgid "If your use case requires mobile verification, it is quite simple to integrate ma1sd with [Twilio](https://www.twilio.com/), an online telephony services gateway. Their prices are reasonable for low-volume projects and integration can be done with the following configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:120 +msgid "Example: Open Registration for every Domain" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:122 +msgid "If you want to open registration for any domain, you have to setup the allowed domains with ma1sd's `blacklist` and `whitelist`. The default behavior when neither the `blacklist`, nor the `whitelist` match, is to allow registration. Beware: you can't block toplevel domains (aka `.xy`) because the internal architecture of ma1sd doesn't allow that." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:136 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:138 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:145 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:147 +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-ma1sd.md:149 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:151 +msgid "If email address validation emails sent by ma1sd are not reaching you, you should look into [Adjusting email-sending settings](configuring-playbook-email.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:153 +msgid "If you'd like additional logging information, temporarily enable verbose logging for ma1sd." +msgstr "" + +#: ../../../docs/configuring-playbook-ma1sd.md:155 +msgid "To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-matrix-authentication-service.pot b/i18n/translation-templates/docs/configuring-playbook-matrix-authentication-service.pot new file mode 100644 index 000000000..3e94a3a36 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-matrix-authentication-service.pot @@ -0,0 +1,618 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:1 +msgid "Setting up Matrix Authentication Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:3 +msgid "The playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) — a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:5 +msgid "Matrix Authentication Service is an implementation of [MSC3861: Next-generation auth for Matrix, based on OAuth 2.0/OIDC](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) and still work in progress, tracked at the [areweoidcyet.com](https://areweoidcyet.com/) website." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:7 +msgid "**Before going through with starting to use Matrix Authentication Service**, make sure to read:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:9 +msgid "the [Reasons to use Matrix Authentication Service](#reasons-to-use-matrix-authentication-service) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:10 +msgid "the [Expectations](#expectations) section below" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:11 +msgid "the [FAQ section on areweoidcyet.com](https://areweoidcyet.com/#faqs)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:13 +msgid "**If you've already been using Synapse** and have user accounts in its database, you can [migrate to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:15 +msgid "Reasons to use Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:17 +msgid "You may be wondering whether you should make the switch to Matrix Authentication Service (MAS) or keep using your existing authentication flow via Synapse (password-based or [OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)-enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:19 +msgid "Matrix Authentication Service is **still an experimental service** and **not a default** for this Ansible playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:21 +msgid "The [Expectations](#expectations) section contains a list of what works and what doesn't (**some services don't work with MAS yet**), as well as the **relative irreversability** of the migration process." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:23 +msgid "Below, we'll try to **highlight some potential reasons for switching** to Matrix Authentication Service:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:25 +msgid "To use SSO in [Element X](https://element.io/blog/element-x-ignition/). The old [Synapse OIDC](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) login flow is only supported in old Element clients and will not be supported in Element X. Element X will only support the new SSO-based login flow provided by MAS, so if you want to use SSO with Element X, you will need to switch to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:27 +msgid "To help drive adoption of the \"Next-generation auth for Matrix\" by switching to what's ultimately coming anyway" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:29 +msgid "To help discover (and potentially fix) MAS integration issues with this Ansible playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:31 +msgid "To help discover (and potentially fix) MAS integration issues with various other Matrix components (bridges, bots, clients, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:33 +msgid "To reap some of the security benefits that Matrix Authentication Service offers, as outlined in the [Better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/) article." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:35 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:37 +msgid "⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:39 +msgid "⚠️ **email sending** configured (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:41 +msgid "❌ **disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:43 +msgid "Expectations" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:45 +msgid "This section details what you can expect when switching to the Matrix Authentication Service (MAS)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:47 +msgid "❌ **Synapse password providers will need to be disabled**. You can no longer use [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc. When the authentication flow is handled by MAS (not by Synapse anymore), it doesn't make sense to extend the Synapse authentication flow with additional modules. Many bridges used to rely on shared-secret-auth for doing double-puppeting (impersonating other users), but most (at least the mautrix bridges) nowadays use [Appservice Double Puppet](./configuring-playbook-appservice-double-puppet.md) as a better alternative. Older/maintained bridges may still rely on shared-secret-auth, as do other services like [matrix-corporal](./configuring-playbook-matrix-corporal.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:49 +msgid "❌ Certain **tools like [synapse-admin](./configuring-playbook-synapse-admin.md) do not have full compatibility with MAS yet**. synapse-admin already supports [login with access token](https://github.com/etkecc/synapse-admin/pull/58), browsing users (which Synapse will internally fetch from MAS) and updating user avatars. However, editing users (passwords, etc.) now needs to happen directly against MAS using the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html), which synapse-admin cannot interact with yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:51 +msgid "❌ **Some services experience issues when authenticating via MAS**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:53 +msgid "[Postmoogle](./configuring-playbook-bridge-postmoogle.md) works the first time around, but it consistently fails after restarting:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:55 +msgid "cannot initialize matrix bot error=\"olm account is marked as shared, keys seem to have disappeared from the server\"" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:57 +msgid "[matrix-reminder-bot](./configuring-playbook-bot-matrix-reminder-bot.md) fails to start (see [element-hq/matrix-authentication-service#3439](https://github.com/element-hq/matrix-authentication-service/issues/3439))" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:58 +msgid "Other services may be similarly affected. This list is not exhaustive." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:60 +msgid "❌ **Encrypted appservices** do not work yet (related to [MSC4190](https://github.com/matrix-org/matrix-spec-proposals/pull/4190) and [PR 17705 for Synapse](https://github.com/element-hq/synapse/pull/17705)), so all bridges/bots that rely on encryption will fail to start (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3658) for Hookshot). You can use these bridges/bots only if you **keep end-to-bridge encryption disabled** (which is the default setting)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:62 +msgid "⚠️ **You will need to have email sending configured** (see [Adjusting email-sending settings](./configuring-playbook-email.md)), because **Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user** going through the new SSO-based login flow. It's also possible to [work around email deliverability issues](#working-around-email-deliverability-issues) if your email configuration is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:64 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) is **possible**, but requires **some playbook-assisted manual work**. Migration is **reversible with no or minor issues if done quickly enough**, but as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:66 +msgid "⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) does not currently seem to preserve the \"admin\" flag for users (as found in the Synapse database). All users are imported as non-admin — see [element-hq/matrix-authentication-service#3440](https://github.com/element-hq/matrix-authentication-service/issues/3440). You may need update the Matrix Authentication Service's database manually and adjust the `can_request_admin` column in the `users` table to `true` for users that need to be administrators (e.g. `UPDATE users SET can_request_admin = true WHERE username = 'someone';`)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:68 +msgid "⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependant on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:70 +msgid "⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:72 +msgid "⚠️ A [compatibility layer](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) is installed — all `/_matrix/client/*/login` (etc.) requests will be routed to MAS instead of going to the homeserver. This is done both publicly (e.g. `https://matrix.example.com/_matrix/client/*/login`) and on the internal Traefik entrypoint (e.g. `https://matrix-traefik:8008/_matrix/client/*/login`) which helps addon services reach the homeserver's Client-Server API. You typically don't need to do anything to make this work, but it's good to be aware of it, especially if you have a [custom webserver setup](./configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:74 +msgid "✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:76 +msgid "✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element Web](./configuring-playbook-client-element-web.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:78 +msgid "✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:80 +msgid "✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:82 +msgid "✅ Users that are prepared by the playbook (for bots, bridges, etc.) will continue to be registered automatically as expected. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:84 +msgid "Installation flows" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:86 +msgid "New homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:88 +msgid "For new homeservers (which don't have any users in their Synapse database yet), follow the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions and then proceed with [Installing](#installing)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:90 +msgid "Existing homeserver" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:92 +msgid "Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:94 +msgid "For existing Synapse homeservers:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:96 +msgid "when following the [Adjusting the playbook configuration](#adjusting-the-playbook-configuration) instructions, make sure to **disable the integration between Synapse and MAS** by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line as described in the [Marking an existing homeserver for migration](#marking-an-existing-homeserver-for-migration) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:98 +msgid "then follow the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) instructions to perform the installation and migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:100 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:102 +msgid "By default, this playbook installs the Matrix Authentication Service on the `matrix.` subdomain, at the `/auth` path (https://matrix.example.com/auth). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:104 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-authentication-service-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:106 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:108 +msgid "To enable Matrix Authentication Service, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:122 +msgid "In the sub-sections that follow, we'll cover some additional configuration options that you may wish to adjust." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:124 +msgid "There are many other configuration options available. Consult the [`defaults/main.yml` file](../roles/custom/matrix-authentication-service/defaults/main.yml) in the [matrix-authentication-service role](../roles/custom/matrix-authentication-service/) to discover them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:126 +msgid "Adjusting the Matrix Authentication Service URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:128 +msgid "By tweaking the `matrix_authentication_service_hostname` and `matrix_authentication_service_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-matrix-authentication-service.md:130 +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:157 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:138 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Matrix Authentication Service domain (`auth.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:140 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:142 +msgid "Marking an existing homeserver for migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:144 +msgid "The [configuration above](#adjusting-the-playbook-configuration) instructs existing users wishing to migrate to add `matrix_authentication_service_migration_in_progress: true` to their configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:146 +msgid "This is done temporarily. The migration steps are described in more detail in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:148 +msgid "Upstream OAuth2 configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:150 +msgid "To make Matrix Authentication Service delegate to an existing upstream OAuth 2.0/OIDC provider, you can use its [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:152 +msgid "The playbook exposes a `matrix_authentication_service_config_upstream_oauth2_providers` variable for controlling this setting." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:269 +msgid "💡 Refer to the [`upstream_oauth2.providers` setting](https://element-hq.github.io/matrix-authentication-service/reference/configuration.html#upstream_oauth2providers) for the most up-to-date schema and example for providers. The value shown above here may be out of date." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:271 +msgid "⚠️ The syntax for existing [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on) is slightly different, so you will need to adjust your configuration when switching from Synapse OIDC to MAS upstream OAuth2." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:273 +msgid "⚠️ When [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) which contains OIDC-sourced users, you will need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:275 +msgid "[Configure upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:276 +msgid "go through the [migrating an existing homeserver](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) process" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:277 +msgid "remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:279 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:281 +msgid "Now that you've [adjusted the playbook configuration](#adjusting-the-playbook-configuration) and [your DNS records](#adjusting-dns-records), you can run the playbook with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:288 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:290 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:292 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:294 +msgid "If you're in the process of migrating an existing Synapse homeserver to MAS, you should now follow the rest of the steps in the [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:296 +msgid "💡 After installation, you should [verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:298 +msgid "Migrating an existing Synapse homeserver to Matrix Authentication Service" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:300 +msgid "Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:302 +msgid "Migration is done via a tool called `syn2mas`, which the playbook could run for you (in a container)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:304 +msgid "The installation + migration steps are like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:306 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) to **disable the integration between the homeserver and MAS**. This is done by **uncommenting** the `matrix_authentication_service_migration_in_progress: true` line." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:308 +msgid "Perform the initial [installation](#installing). At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:310 +msgid "Matrix Authentication Service will be installed. Its database will be empty, so it cannot validate existing access tokens or authentication users yet." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:312 +msgid "The homeserver will still continue to use its local database for validating existing access tokens." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:314 +msgid "Various [compatibility layer URLs](https://element-hq.github.io/matrix-authentication-service/setup/homeserver.html#set-up-the-compatibility-layer) are not yet installed. New login sessions will still be forwarded to the homeserver, which is capable of completing them." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:316 +msgid "The `matrix-user-creator` role would be suppressed, so that it doesn't automatically attempt to create users (for bots, etc.) in the MAS database. These user accounts likely already exist in Synapse's user database and could be migrated over (via syn2mas, as per the steps below), so creating them in the MAS database would have been unnecessary and potentially problematic (conflicts during the syn2mas migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:318 +msgid "Consider taking a full [backup of your Postgres database](./maintenance-postgres.md#backing-up-postgresql). This is done just in case. The **syn2mas migration tool does not delete any data**, so it should be possible to revert to your previous setup by merely disabling MAS and re-running the playbook (no need to restore a Postgres backup). However, do note that as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:320 +msgid "[Migrate your data from Synapse to Matrix Authentication Service using syn2mas](#migrate-your-data-from-synapse-to-matrix-authentication-service-using-syn2mas)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:322 +msgid "[Adjust your configuration](#adjusting-the-playbook-configuration) again, to:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:324 +msgid "remove the `matrix_authentication_service_migration_in_progress: false` line" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:326 +msgid "if you had been using [OIDC providers configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), remove all Synapse OIDC-related configuration (`matrix_synapse_oidc_*`) to prevent it being in conflict with the MAS OIDC configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:328 +msgid "Perform the [installation](#installing) again. At this point:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:330 +msgid "The homeserver will start delegating authentication to MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:332 +msgid "The compatibility layer URLs will be installed. New login sessions will be completed by MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:334 +msgid "[Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:336 +msgid "Migrate your data from Synapse to Matrix Authentication Service using syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:338 +msgid "We **don't** ask you to [run the `syn2mas` migration advisor command](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#run-the-migration-advisor), because it only gives you the green light if your Synapse configuration (`homeserver.yaml`) is configured in a way that's compatible with MAS (delegating authentication to MAS; disabling Synapse's password config; etc.). Until we migrate your data with the `syn2mas` tool, we intentionally avoid doing these changes to allow existing user sessions to work." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:340 +msgid "You can invoke the `syn2mas` tool via the playbook by running the playbook's `matrix-authentication-service-syn2mas` tag. We recommend first doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:342 +msgid "Configuring syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:344 +msgid "If you're using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to [Configuring upstream OIDC provider mapping for syn2mas](#configuring-upstream-oidc-provider-mapping-for-syn2mas)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:346 +msgid "If you only have local (non-OIDC) users in your Synapse database, you can likely run `syn2mas` as-is (without doing additional configuration changes)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:348 +msgid "When you're done with potentially configuring `syn2mas`, proceed to doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:350 +msgid "Configuring upstream OIDC provider mapping for syn2mas" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:352 +msgid "If you have existing OIDC users in your Synapse user database (which will be the case if when using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)), you may need to pass an additional `--upstreamProviderMapping` argument to the `syn2mas` tool to tell it which provider (on the Synapse side) maps to which other provider on the MAS side." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:354 +msgid "If you don't do this, `syn2mas` would report errors like this one:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:356 +msgid "[FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @alice:example.com: Error: Unknown upstream provider oidc-keycloak]" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:358 +msgid "Below is an example situation and a guide for how to solve it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:360 +msgid "If in `matrix_synapse_oidc_providers` your provider `idp_id` is (was) named `keycloak`, in the Synapse database users would be associated with the `oidc-keycloak` provider (note the `oidc-` prefix that was added automatically by Synapse to your `idp_id` value)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:362 +msgid "The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the MAS side, as defined in `matrix_authentication_service_config_upstream_oauth2_providers` (see the [Upstream OAuth2 configuration](#upstream-oauth2-configuration) section above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:364 +msgid "To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:373 +msgid "Performing a syn2mas dry-run" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:375 +msgid "Having [configured syn2mas](#configuring-syn2mas), we recommend doing a [dry-run](https://en.wikipedia.org/wiki/Dry_run_(testing)) first to verify that everything will work out as expected." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:377 +msgid "A dry-run would not cause downtime, because it avoids stopping Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:379 +msgid "To perform a dry-run, run:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:385 +msgid "Observe the command output (especially the last line of the the syn2mas output). If you are confident that the migration will work out as expected, you can proceed with a [real migration](#performing-a-real-syn2mas-migration)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:387 +msgid "Performing a real syn2mas migration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:389 +msgid "Before performing a real migration make sure:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:391 +msgid "you've familiarized yourself with the [expectations](#expectations)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:393 +msgid "you've performed a Postgres backup, just in case" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:395 +msgid "you're aware of the irreversibility of the migration process without disruption after users have created new login sessions via the new MAS setup" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:397 +msgid "you've [configured syn2mas](#configuring-syn2mas), especially if you've used [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:399 +msgid "you've performed a [syn2mas dry-run](#performing-a-syn2mas-dry-run) and don't see any issues in its output" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:401 +msgid "To perform a real migration, run the `matrix-authentication-service-syn2mas` tag **without** the `matrix_authentication_service_syn2mas_dry_run` variable:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:407 +msgid "Having performed a `syn2mas` migration once, trying to do it again will report errors for users that were already migrated (e.g. \"Error: Unknown upstream provider oauth-delegated\")." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:409 +msgid "Verify that Matrix Authentication Service is installed correctly" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:411 +msgid "After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:413 +msgid "You can do it:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:415 +msgid "either via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag: `just run-tags matrix-authentication-service-mas-cli-doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:417 +msgid "or by running the `mas-cli` script on the server (which invokes the `mas-cli` tool inside a container): `/matrix/matrix-authentication-service/bin/mas-cli doctor`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:419 +msgid "If successful, you should see some output that looks like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:431 +msgid "Management" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:433 +msgid "You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:435 +msgid "This documentation page already mentions:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:437 +msgid "the `mas-cli doctor` sub-command in the [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) section, which you can run via the CLI and via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:439 +msgid "the `mas-cli manage register-user` sub-command in the [Registering users](./registering-users.md) documentation" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:441 +msgid "There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:443 +msgid "User registration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:445 +msgid "After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration))." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:447 +msgid "You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:449 +msgid "Working around email deliverability issues" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:451 +msgid "Because Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user, you may need to work around email deliverability issues if [your email-sending configuration](./configuring-playbook-email.md) is not working." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:453 +msgid "Matrix Authentication Service attempts to verify email addresses by sending a verification email to the address specified by the user whenever they log in to an account without a verified email address." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:455 +msgid "If email delivery is not working, **you can retrieve the email configuration code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-authentication-service.md:457 +msgid "Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com`" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-matrix-corporal.pot b/i18n/translation-templates/docs/configuring-playbook-matrix-corporal.pot new file mode 100644 index 000000000..2281a42ef --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-matrix-corporal.pot @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:1 +msgid "Setting up Matrix Corporal (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:5 +msgid "[!WARNING] This is an advanced feature! It requires prior experience with Matrix and a specific need for using [Matrix Corporal](https://github.com/devture/matrix-corporal). If you're unsure whether you have such a need, you most likely don't." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:10 +msgid "The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:12 +msgid "In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:14 +msgid "See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:16 +msgid "If you decide that you'd like to let this playbook install it for you, you'd need to also:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:17 +msgid "(required) [set up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:18 +msgid "(optional, but encouraged) [set up the REST authentication password provider module](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:22 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:75 +msgid "Matrix Corporal operates with a specific Matrix user on your server. By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:77 +msgid "No matter what Matrix user ID you configure to run it with, make sure that:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:79 +msgid "the Matrix Corporal user is created by [registering it](registering-users.md) **with administrator privileges**. Use a password you remember, as you'll need to log in from time to time to create or join rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:81 +msgid "the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:83 +msgid "Using a locally-stored static policy" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:85 +msgid "If you'd like to use a [static policy file](https://github.com/devture/matrix-corporal/blob/master/docs/policy-providers.md#static-file-pull-style-policy-provider), you can use a configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:117 +msgid "To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:119 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:121 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:128 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just run-tags setup-aux-files,setup-corporal,start` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:130 +msgid "`just run-tags setup-aux-files,setup-corporal,start` 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 "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:132 +msgid "Matrix Corporal files" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:134 +msgid "The following local filesystem paths are mounted in the `matrix-corporal` container and can be used in your configuration (or policy):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:136 +msgid "`/matrix/corporal/config` is mounted at `/etc/matrix-corporal` (read-only)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:138 +msgid "`/matrix/corporal/var` is mounted at `/var/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:140 +msgid "`/matrix/corporal/cache` is mounted at `/var/cache/matrix-corporal` (read and write)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-corporal.md:142 +msgid "As an example: you can create your own configuration files in `/matrix/corporal/config` and they will appear in `/etc/matrix-corporal` in the Docker container. Your configuration (stuff in `matrix_corporal_policy_provider_config`) needs to refer to these files via the local container paths — `/etc/matrix-corporal` (read-only), `/var/matrix-corporal` (read and write), `/var/cache/matrix-corporal` (read and write)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-matrix-ldap-registration-proxy.pot b/i18n/translation-templates/docs/configuring-playbook-matrix-ldap-registration-proxy.pot new file mode 100644 index 000000000..dac8cafae --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-matrix-ldap-registration-proxy.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:1 +msgid "Setting up matrix-ldap-registration-proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:3 +msgid "The playbook can install and configure [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:5 +msgid "This proxy handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:7 +msgid "**Note**: This does support the full Matrix specification for registrations. It only provide a very coarse implementation of a basic password registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:9 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:22 +msgid "If you already use the [synapse external password provider via LDAP](configuring-playbook-ldap-auth.md) (that is, you have `matrix_synapse_ext_password_provider_ldap_enabled: true` and other options in your configuration) you can use the following values as configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:35 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:37 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:44 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-ldap-registration-proxy.md:46 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-matrix-media-repo.pot b/i18n/translation-templates/docs/configuring-playbook-matrix-media-repo.pot new file mode 100644 index 000000000..d5ed3ede6 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-matrix-media-repo.pot @@ -0,0 +1,164 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:1 +msgid "Storing Matrix media files using matrix-media-repo (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:3 +msgid "[matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) (often abbreviated \"MMR\") is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:5 +msgid "Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:7 +msgid "For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:0 +msgid "**Table of Contents**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:0 +msgid "[Quickstart](#quickstart)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:0 +msgid "[Additional configuration options](#configuring-the-media-repo)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:0 +msgid "[Importing data from an existing media store](#importing-data-from-an-existing-media-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:15 +msgid "Quickstart" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file and [re-run the installation process](./installing.md) for the playbook:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:26 +msgid "The repo is pre-configured for integrating with the Postgres database, Traefik proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:28 +msgid "By default, the media-repo will use the local filesystem for data storage. You can alternatively use a `s3` cloud backend as well. Access token caching is also enabled by default since the logout endpoints are proxied through the media repo." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:30 +msgid "Configuring the media-repo" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:32 +msgid "Additional common configuration options:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:91 +msgid "Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](../roles/custom/matrix-media-repo/defaults/main.yml)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:93 +msgid "Signing Keys" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:95 +msgid "Authenticated media endpoints ([MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)) requires MMR to have a configured signing key to authorize outbound federation requests. Additionally, the signing key must be merged with your homeserver's signing key file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:97 +msgid "The playbook default is to generate a MMR signing key when invoking the setup role and merge it with your homeserver if you are using Synapse or Dendrite. This can be disabled if desired by setting the option in your inventory:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:103 +msgid "If you wish to manually generate the signing key and merge it with your homeserver's signing key file, see https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/ for more details." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:105 +msgid "**Note that if you uninstall MMR from the playbook, it will not remove the old MMR signing key from your homeserver's signing key file. You will have to remove it manually.**" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:107 +msgid "Key backup and revoking" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:109 +msgid "Since your homeserver signing key file is modified by the playbook, a backup will be created in `HOMESERVER_DIR/config/example.com.signing.key.backup`. If you need to remove/revoke old keys, you can restore from this backup or remove the MMR key ID from your `example.com.signing.key` file." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:111 +msgid "Additionally, its recommended after revoking a signing key to update your homeserver config file (`old_signing_keys` field for Synapse and `old_private_keys` for Dendrite). See your homeserver config file for further documentation on how to populate the field." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:113 +msgid "Importing data from an existing media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:115 +msgid "If you want to add this repo to an existing homeserver managed by the playbook, you will need to import existing media into MMR's database or you will lose access to older media while it is active. MMR versions up to `v1.3.3` only support importing from Synapse, but newer versions (at time of writing: only `latest`) also support importing from Dendrite." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:117 +msgid "**Before importing**: ensure you have an initial matrix-media-repo deployment by following the [quickstart](#quickstart) guide above" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:119 +msgid "Depending on the homeserver implementation yu're using (Synapse, Dendrite), you'll need to use a different import tool (part of matrix-media-repo) and point it to the homeserver's database." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:121 +msgid "Importing data from the Synapse media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:123 +msgid "To import the Synapse media store, you're supposed to invoke the `import_synapse` tool which is part of the matrix-media-repo container image. Your Synapse database is called `synapse` by default, unless you've changed it by modifying `matrix_synapse_database_database`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:125 +msgid "This guide here is adapted from the [upstream documentation about the import_synapse script](https://github.com/turt2live/matrix-media-repo#importing-media-from-synapse)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:127 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:149 +msgid "Run the following command on the server (after replacing `postgres_connection_password` in it with the value found in your `vars.yml` file):" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:139 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:161 +msgid "Enter `1` for the Machine ID when prompted (you are not doing any horizontal scaling) unless you know what you're doing." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:141 +#: ../../../docs/configuring-playbook-matrix-media-repo.md:163 +msgid "This should output a `msg=\"Import completed\"` when finished successfully!" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:143 +msgid "Importing data from the Dendrite media store" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:145 +msgid "If you're using the [Dendrite](configuring-playbook-dendrite.md) homeserver instead of the default for this playbook (Synapse), follow this importing guide here." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-media-repo.md:147 +msgid "To import the Dendrite media store, you're supposed to invoke the `import_dendrite` tool which is part of the matrix-media-repo container image. Your Dendrite database is called `dendrite_mediaapi` by default, unless you've changed it by modifying `matrix_dendrite_media_api_database`." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-matrix-registration.pot b/i18n/translation-templates/docs/configuring-playbook-matrix-registration.pot new file mode 100644 index 000000000..638eec50f --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-matrix-registration.pot @@ -0,0 +1,153 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-matrix-registration.md:1 +msgid "Setting up matrix-registration (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:4 +msgid "This is a poorly maintained and buggy project. It's better to avoid using it." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:5 +msgid "This is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:7 +msgid "The playbook can install and configure [matrix-registration](https://github.com/ZerataX/matrix-registration) for you. It is a simple python application to have a token based Matrix registration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:9 +msgid "Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows certain people (these having a special link) to register a user account, **keeping your server's registration closed (private)**." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:11 +msgid "**matrix-registration** provides 2 things:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:13 +msgid "**an API for creating registration tokens** (unique registration links). This API can be used via `curl` or via the playbook (see [Usage](#usage) below)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:15 +msgid "**a user registration page**, where people can use these registration tokens. By default, exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:17 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:19 +msgid "By default, this playbook installs the matrix-registration on the `matrix.` subdomain, at the `/matrix-registration` path (https://matrix.example.com/matrix-registration). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:21 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-matrix-registration-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:23 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:25 +msgid "To enable matrix-registration, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:34 +msgid "Adjusting the matrix-registration URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:36 +msgid "By tweaking the `matrix_registration_hostname` and `matrix_registration_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-matrix-registration.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:46 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the matrix-registration domain (`registration.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:48 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:52 +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-matrix-registration.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:61 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:65 +msgid "**matrix-registration** gets exposed at `https://matrix.example.com/matrix-registration`" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:67 +msgid "It provides various [APIs](https://github.com/ZerataX/matrix-registration/wiki/api) — for creating registration tokens, listing tokens, disabling tokens, etc. To make use of all of its capabilities, consider using `curl`." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:69 +msgid "We make the most common APIs easy to use via the playbook (see below)." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:71 +msgid "Creating registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:73 +msgid "To **create a new user registration token (link)**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:81 +msgid "The above command creates and returns a **one-time use** token, which **expires** on the 31st of December 2021. Adjust the `one_time` and `ex_date` variables as you see fit." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:83 +msgid "Share the unique registration link (generated by the command above) with users to let them register on your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:85 +msgid "Listing registration tokens" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:87 +msgid "To **list the existing user registration tokens**, use this command:" +msgstr "" + +#: ../../../docs/configuring-playbook-matrix-registration.md:94 +msgid "The shortcut command with `just` program is also available: `just run-tags list-matrix-registration-tokens`" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-mautrix-bridges.pot b/i18n/translation-templates/docs/configuring-playbook-mautrix-bridges.pot new file mode 100644 index 000000000..f97eeeb58 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-mautrix-bridges.pot @@ -0,0 +1,178 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2024, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-12-20 07:23+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:1 +msgid "Setting up a Generic Mautrix Bridge (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:3 +msgid "The playbook can install and configure various [mautrix](https://github.com/mautrix) bridges (twitter, facebook, instagram, signal, hangouts, googlechat, etc.), as well as many other (non-mautrix) bridges. This is a common guide for configuring mautrix bridges." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:5 +msgid "You can see each bridge's features at in the `ROADMAP.md` file in its corresponding [mautrix](https://github.com/mautrix) repository." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:9 +msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:16 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:18 +msgid "To **configure a user as an administrator for all bridges**, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:24 +msgid "**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:33 +msgid "encryption" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:35 +msgid "Encryption support is off by default. If you would like to enable encryption, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:37 +msgid "**for all bridges with encryption support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:44 +#: ../../../docs/configuring-playbook-mautrix-bridges.md:61 +msgid "**Alternatively**, for a specific bridge:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:51 +msgid "relay mode" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:53 +msgid "Relay mode is off by default. If you would like to enable relay mode, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:55 +msgid "**for all bridges with relay mode support**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:70 +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 "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:82 +msgid "Setting the bot's username" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:88 +msgid "Can be used to set the username for the bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:90 +msgid "Discovering additional configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:92 +msgid "You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` and `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` to find other things you would like to configure." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:94 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:96 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:103 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:105 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:107 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:109 +msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:111 +msgid "Set up Double Puppeting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:113 +msgid "To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:115 +msgid "The bridge automatically performs Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) is configured and enabled on the server for this playbook by adding" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:121 +msgid "This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:123 +msgid "Controlling the logging level" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:129 +msgid "to `vars.yml` to control the logging level, where you may replace WARN with one of the following to control the verbosity of the logs generated: TRACE, DEBUG, INFO, WARN, ERROR, or FATAL." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:131 +msgid "If you have issues with a service, and are requesting support, the higher levels of logging will generally be more helpful." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:133 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:135 +msgid "To use the bridge, you need to start a chat with `@SERVICENAMEbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:137 +msgid "Send `login` to the bridge bot to get started. You can learn more here about authentication from the bridge's official documentation on Authentication: https://docs.mau.fi/bridges/python/SERVICENAME/authentication.html" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:139 +msgid "If you run into trouble, check the [Troubleshooting](#troubleshooting) section below." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:141 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:143 +msgid "For troubleshooting information with a specific bridge, please see the playbook documentation about it (some other document in in `docs/`) and the upstream ([mautrix](https://github.com/mautrix)) bridge documentation for that specific bridge." +msgstr "" + +#: ../../../docs/configuring-playbook-mautrix-bridges.md:145 +msgid "Reporting bridge bugs should happen upstream, in the corresponding mautrix repository, not to us." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-nginx.pot b/i18n/translation-templates/docs/configuring-playbook-nginx.pot new file mode 100644 index 000000000..1c74a6daa --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-nginx.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-nginx.md:1 +msgid "Configure Nginx (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-nginx.md:3 +msgid "Since 2024-01, this playbook no longer uses nginx as its reverse-proxy." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-ntfy.pot b/i18n/translation-templates/docs/configuring-playbook-ntfy.pot new file mode 100644 index 000000000..cf5cfefce --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-ntfy.pot @@ -0,0 +1,233 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-ntfy.md:1 +msgid "Setting up the ntfy push notifications server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:3 +msgid "The playbook can install and configure the [ntfy](https://ntfy.sh/) push notifications server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:5 +msgid "Using the [UnifiedPush](https://unifiedpush.org) standard, ntfy enables self-hosted (Google-free) push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix compatible client apps running on Android and other devices." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:7 +msgid "This role is intended to support UnifiedPush notifications for use with the Matrix and Matrix-related services that this playbook installs. This role is not intended to support all of ntfy's other features." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:9 +msgid "**Note**: In contrast to push notifications using Google's FCM or Apple's APNs, the use of UnifiedPush allows each end-user to choose the push notification server that they prefer. As a consequence, deploying this ntfy server does not by itself ensure any particular user or device or client app will use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:11 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:13 +msgid "By default, this playbook installs ntfy on the `ntfy.` subdomain (`ntfy.example.com`) and requires you to create a CNAME record for `ntfy`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:15 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:19 +msgid "To enable ntfy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:33 +msgid "For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/defaults/main.yml) of the ntfy Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:35 +msgid "For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:37 +msgid "Adjusting the ntfy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:39 +msgid "By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:41 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:48 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:50 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:52 +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-ntfy.md:59 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:61 +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-ntfy.md:63 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:65 +msgid "To make use of your ntfy installation, on Android for example, you need two things:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:67 +msgid "the `ntfy` app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:68 +msgid "a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:70 +msgid "You need to install the `ntfy` app on each device on which you want to receive push notifications through your ntfy server. The `ntfy` app will provide UnifiedPush notifications to any number of UnifiedPush-compatible messaging apps installed on the same device." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:72 +msgid "Setting up the `ntfy` Android app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:74 +msgid "Install the [ntfy Android app](https://ntfy.sh/docs/subscribe/phone/) from F-droid or Google Play." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:75 +msgid "In its Settings -> `General: Default server`, enter your ntfy server URL, such as `https://ntfy.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:76 +msgid "In its Settings -> `Advanced: Connection protocol`, choose `WebSockets`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:78 +msgid "That is all you need to do in the ntfy app. It has many other features, but for our purposes you can ignore them. In particular you do not need to follow any instructions about subscribing to a notification topic as UnifiedPush will do that automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:80 +msgid "Setting up a UnifiedPush-compatible Matrix app" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:82 +msgid "Install any UnifiedPush-enabled Matrix app on that same device. The Matrix app will learn from the `ntfy` app that you have configured UnifiedPush on this device, and then it will tell your Matrix server to use it." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:84 +msgid "Steps needed for specific Matrix apps:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:86 +msgid "FluffyChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:87 +msgid "Should auto-detect and use it. No manual settings." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:89 +msgid "SchildiChat-android:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:90 +msgid "enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:91 +msgid "choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in `ntfy` app, force-close SchildiChat, re-open it.)*" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:92 +msgid "verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the \"Troubleshooting\" section." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:94 +msgid "Element-android v1.4.26+:" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:95 +msgid "choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:96 +msgid "verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings`" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:98 +msgid "If the Matrix app asks, \"Choose a distributor: FCM Fallback or ntfy\", then choose \"ntfy\"." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:100 +msgid "If the Matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:102 +msgid "Web App" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:104 +msgid "ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript)." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:106 +msgid "The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: \"app\"` and re-running Ansible." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:108 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:110 +msgid "First check that the Matrix client app you are using supports UnifiedPush. There may well be different variants of the app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:112 +msgid "Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:114 +msgid "To check if UnifiedPush is correctly configured on the client device, look at \"Settings -> Notifications -> Notification Targets\" in Element Android or SchildiChat Android, or \"Settings -> Notifications -> Devices\" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:116 +msgid "In the \"Notification Targets\" screen in Element Android or SchildiChat Android, two relevant URLs are shown, \"push\\_key\" and \"Url\", and both should begin with your ntfy server's URL. If \"push\\_key\" shows your server but \"Url\" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the \"Usage\" section above." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:118 +msgid "If it is not working, useful tools are \"Settings -> Notifications -> Re-register push distributor\" and \"Settings -> Notifications -> Troubleshoot Notifications\" in SchildiChat Android (possibly also Element Android). In particular the \"Endpoint/FCM\" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app." +msgstr "" + +#: ../../../docs/configuring-playbook-ntfy.md:120 +msgid "The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-own-webserver.pot b/i18n/translation-templates/docs/configuring-playbook-own-webserver.pot new file mode 100644 index 000000000..30f57b0ae --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-own-webserver.pot @@ -0,0 +1,189 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-own-webserver.md:1 +msgid "Using your own webserver, instead of this playbook's Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:3 +msgid "By default, this playbook installs its own [Traefik](https://traefik.io/) reverse-proxy server (in a Docker container) which listens on ports 80 and 443. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:5 +msgid "Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:7 +msgid "[Traefik](https://traefik.io/) is the default reverse-proxy for the playbook since [2023-02-26](../CHANGELOG.md/#2023-02-26) and serves **2 purposes**:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:9 +msgid "serving public traffic and providing SSL-termination with certificates obtained from [Let's Encrypt](https://letsencrypt.org/). See [Adjusting SSL certificate retrieval](./configuring-playbook-ssl-certificates.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:11 +msgid "assists internal communication between addon services (briges, bots, etc.) and the homeserver via an internal entrypoint (`matrix-internal-matrix-client-api`)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:13 +msgid "There are 2 ways to use Traefik with this playbook, as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:15 +msgid "Traefik managed by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:17 +msgid "To have the playbook install and use Traefik, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:25 +msgid "Traefik will manage SSL certificates for all services seamlessly." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:27 +msgid "Traefik managed by you" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:53 +msgid "In this mode all roles will still have Traefik labels attached. You will, however, need to configure your Traefik instance and its entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:55 +msgid "By default, the playbook configured a `default` certificate resolver and multiple entrypoints." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:57 +msgid "You need to configure 4 entrypoints for your Traefik server:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:59 +msgid "`web` (TCP port `80`) — used for redirecting to HTTPS (`web-secure`)" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:60 +msgid "`web-secure` (TCP port `443`) — used for exposing the Matrix Client-Server API and all other services" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:61 +msgid "`matrix-federation` (TCP port `8448`) — used for exposing the Matrix Federation API" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:62 +msgid "`matrix-internal-matrix-client-api` (TCP port `8008`) — used internally for addon services (bridges, bots) to communicate with the homserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:64 +msgid "Below is some configuration for running Traefik yourself, although we recommend using [Traefik managed by the playbook](#traefik-managed-by-the-playbook)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:66 +msgid "Note that this configuration on its own does **not** redirect traffic on port 80 (plain HTTP) to port 443 for HTTPS. If you are not already doing this in Traefik, it can be added to Traefik in a [file provider](https://docs.traefik.io/v2.0/providers/file/) as follows:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:86 +msgid "You can use the following `docker-compose.yml` as example to launch Traefik." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:122 +msgid "Another webserver" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:124 +msgid "If you don't wish to use Traefik, you can also use your own webserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:126 +msgid "Doing this is possible, but requires manual work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:128 +msgid "There are 2 ways to go about it:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:130 +msgid "(recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) — using the playbook-managed reverse-proxy (Traefik), but disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:132 +msgid "(difficult) [Using no reverse-proxy on the Matrix side at all](#using-no-reverse-proxy-on-the-matrix-side-at-all) disabling the playbook-managed reverse-proxy (Traefik), exposing services one by one using `_host_bind_port` variables and forwarding traffic from your own webserver to those ports" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:134 +msgid "Fronting the integrated reverse-proxy webserver with another reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:136 +msgid "This method is about leaving the integrated reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:138 +msgid "If you wish to use another webserver, the integrated reverse-proxy webserver usually gets in the way because it attempts to fetch SSL certificates and binds to ports 80, 443 and 8448 (if Matrix Federation is enabled)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:140 +msgid "You can disable such behavior and make the integrated reverse-proxy webserver only serve traffic locally on the host itself (or over a local network)." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:142 +msgid "This is the recommended way for using another reverse-proxy, because the integrated one would act as a black box and wire all Matrix services correctly. You would then only need to reverse-proxy a few individual domains and ports over to it." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:144 +msgid "To front Traefik with another reverse-proxy, you would need some configuration like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:194 +msgid "Such a configuration would expose all services on a local port `81` and Matrix Federation on a local port `8449`. Your reverse-proxy configuration needs to send traffic to these ports. [`examples/reverse-proxies`](../examples/reverse-proxies/) contains examples for various webservers such as Apache2, Caddy, HAproxy, nginx and Nginx Proxy Manager." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:196 +msgid "It's important that these webservers proxy-pass requests to the correct `ip:port` and also set the `Host` HTTP header appropriately. If you don't pass the `Host` header correctly, Traefik will return a `404 - not found` error." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:198 +msgid "To put it another way:" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:199 +msgid "`curl http://127.0.0.1:81` will result in a `404 - not found` error" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:200 +msgid "but `curl -H 'Host: matrix.example.com' http://127.0.0.1:81` should work." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:202 +msgid "Using no reverse-proxy on the Matrix side at all" +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:204 +msgid "Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way — completely disabling the playbook-managed Traefik reverse-proxy. You would then need to reverse-proxy from your own webserver directly to each individual Matrix service." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:206 +msgid "This is more difficult, as you would need to handle the configuration for each service manually. Enabling additional services would come with extra manual work you need to do." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:208 +msgid "Also, the Traefik reverse-proxy, besides fronting everything is also serving a 2nd purpose of allowing addons services to communicate with the Matrix homeserver thanks to its `matrix-internal-matrix-client-api` entrypoint (read more about it above). Disabling Traefik completely means the playbook would wire services to directly talk to the homeserver. This can work for basic setups, but not for more complex setups involving [matrix-media-repo](./configuring-playbook-matrix-media-repo.md), [matrix-corporal](./configuring-playbook-matrix-corporal.md) or other such services that need to \"steal routes\" from the homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-own-webserver.md:210 +msgid "If your webserver is on the same machine, ensure your web server user (something like `http`, `apache`, `www-data`, `nginx`) is part of the `matrix` group. You should run something like this: `usermod -a -G matrix nginx`. This allows your webserver user to access files owned by the `matrix` group, so that it can serve static files from `/matrix/static-files`." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-pantalaimon.pot b/i18n/translation-templates/docs/configuring-playbook-pantalaimon.pot new file mode 100644 index 000000000..99a4c93e7 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-pantalaimon.pot @@ -0,0 +1,85 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-pantalaimon.md:1 +msgid "Setting up Pantalaimon (E2EE aware proxy daemon) (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:3 +msgid "The playbook can install and configure the [pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/pantalaimon/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:7 +msgid "This role exposes Pantalaimon's API only within the container network, so bots and clients installed on the same machine can use it. In particular the [Draupnir](configuring-playbook-bot-draupnir.md) and [Mjolnir](configuring-playbook-bot-mjolnir.md) roles (and possibly others) can use it." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:17 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:19 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:21 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:23 +msgid "`roles/custom/matrix-pantalaimon/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_pantalaimon_configuration` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:25 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:27 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:34 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:36 +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-pantalaimon.md:38 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:40 +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-pantalaimon`." +msgstr "" + +#: ../../../docs/configuring-playbook-pantalaimon.md:42 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-postgres-backup.pot b/i18n/translation-templates/docs/configuring-playbook-postgres-backup.pot new file mode 100644 index 000000000..29036ff40 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-postgres-backup.pot @@ -0,0 +1,153 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-postgres-backup.md:1 +msgid "Setting up postgres backup (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:3 +msgid "The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you via the [ansible-role-postgres-backup](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:5 +msgid "For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [BorgBackup](configuring-playbook-backup-borg.md) instead." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:9 +msgid "To enable Postgres backup, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:15 +msgid "Refer to the table below for additional configuration variables and their default values." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Default value" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`false`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_schedule`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`'@daily'`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Cron-schedule specifying the interval between postgres backups." +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_keep_days`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`7`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Number of daily backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_keep_weeks`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`4`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Number of weekly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_keep_months`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`12`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Number of monthly backups to keep" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_base_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`\"{{ matrix_base_data_path }}/postgres-backup\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Base path for postgres-backup. Also see `postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`postgres_backup_data_path`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "`\"{{ postgres_backup_base_path }}/data\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:0 +msgid "Storage path for postgres-backup database backups" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-postgres-backup.md:38 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-prometheus-grafana.pot b/i18n/translation-templates/docs/configuring-playbook-prometheus-grafana.pot new file mode 100644 index 000000000..b1e49cb85 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-prometheus-grafana.pot @@ -0,0 +1,341 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:1 +msgid "Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:3 +msgid "The playbook can install [Grafana](https://grafana.com/) with [Prometheus](https://prometheus.io/) and configure performance metrics of your homeserver with graphs for you." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:5 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:7 +msgid "By default, this playbook installs Grafana web user-interface on the `stats.` subdomain (`stats.example.com`) and requires you to create a CNAME record for `stats`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:9 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:13 +msgid "To enable Grafana and/or Prometheus, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:39 +msgid "The retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:41 +msgid "Adjusting the Grafana URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:43 +msgid "By tweaking the `grafana_hostname` variable, you can easily make the service available at a **different hostname** than the default one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:45 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:52 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Grafana domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:54 +msgid "**Note**: It is possible to install Prometheus without installing Grafana. This case it is not required to create the CNAME record." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:56 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:58 +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-prometheus-grafana.md:65 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:67 +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-prometheus-grafana.md:69 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`prometheus_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`prometheus_node_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_prometheus_nginxlog_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "[NGINX Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose NGINX logs to Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`grafana_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`grafana_anonymous_access`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`grafana_default_admin_user`
`grafana_default_admin_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:81 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:83 +msgid "Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:85 +msgid "Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:87 +msgid "Collecting metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:89 +msgid "**If the integrated Prometheus server is enabled** (`prometheus_enabled: true`), metrics are collected by it from each service via communication that happens over the container network. Each service does not need to expose its metrics \"publicly\"." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:91 +msgid "When you'd like **to collect metrics from an external Prometheus server**, you need to expose service metrics outside of the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:93 +msgid "The playbook provides a single endpoint (`https://matrix.example.com/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/hookshot`, etc). To expose all services on this `/metrics/*` feature, use `matrix_metrics_exposure_enabled`. To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), see `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` below." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:95 +msgid "When using `matrix_metrics_exposure_enabled`, you don't need to expose metrics for individual services one by one." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:97 +msgid "The following variables may be of interest:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_metrics_exposure_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to **enable metrics exposure for all services** on `https://matrix.example.com/metrics/*`. If you think this is too much, refer to the helpful (but nonexhaustive) list of individual `matrix_SERVICE_metrics_proxying_enabled` (or similar) variables below for exposing metrics on a per-service basis." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_metrics_exposure_http_basic_auth_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials). When enabled, all endpoints beneath `/metrics` will be protected with the same credentials" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_metrics_exposure_http_basic_auth_users`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_synapse_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to make Synapse expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_synapse_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to expose Synapse's metrics on `https://matrix.example.com/metrics/synapse/main-process` and `https://matrix.example.com/metrics/synapse/worker/TYPE-ID`. Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to enable the node (general system stats) exporter (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`prometheus_node_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_sliding_sync_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_sliding_sync_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.example.com/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_bridge_hookshot_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_bridge_hookshot_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.example.com/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_SERVICE_metrics_proxying_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "`matrix_media_repo_metrics_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:0 +msgid "Set this to `true` to make media-repo expose metrics (locally, on the container network)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:118 +msgid "Collecting Synapse worker metrics to an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:120 +msgid "If you are using workers (`matrix_synapse_workers_enabled: true`) and have enabled `matrix_synapse_metrics_proxying_enabled` as described above, the playbook will also automatically expose all Synapse worker threads' metrics to `https://matrix.example.com/metrics/synapse/worker/ID`, where `ID` corresponds to the worker `id` as exemplified in `matrix_synapse_workers_enabled_list`." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:122 +msgid "The playbook also generates an exemplary config file (`/matrix/synapse/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs. Make sure to edit the specified `password_file` path and contents and path to your `synapse-v2.rules`. It will look a bit like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:150 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:152 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:153 +msgid "[Understanding Synapse Performance Issues Through Grafana Graphs](https://element-hq.github.io/synapse/latest/usage/administration/understanding_synapse_through_grafana_graphs.html) at the Synapse Github Wiki" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:154 +msgid "[The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:155 +msgid "[The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-grafana.md:156 +msgid "[The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs)" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-prometheus-nginxlog.pot b/i18n/translation-templates/docs/configuring-playbook-prometheus-nginxlog.pot new file mode 100644 index 000000000..e80141323 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-prometheus-nginxlog.pot @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:1 +msgid "Enabling metrics and graphs for NginX logs (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:3 +msgid "It can be useful to have some (visual) insight into [nginx](https://nginx.org/) logs." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:5 +msgid "This adds [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) to your Matrix deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:7 +msgid "It will collect access logs from various nginx reverse-proxies which may be used internally (e.g. `matrix-synapse-reverse-proxy-companion`, if Synapse workers are enabled) and will make them available at a Prometheus-compatible `/metrics` endpoint." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:9 +msgid "**Note**: nginx is only used internally by this Ansible playbook. With Traefik being our default reverse-proxy, collecting nginx metrics is less relevant." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:11 +msgid "To make use of this, you need to install [Prometheus](./configuring-playbook-prometheus-grafana.md) either via the playbook or externally. When using an external Prometheus, configuration adjustments are necessary — see [Save metrics on an external Prometheus server](#save-metrics-on-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:13 +msgid "If your setup includes [Grafana](./configuring-playbook-prometheus-grafana.md), a dedicated `NGINX PROXY` Grafana dashboard will be created." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:17 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:23 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:25 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:32 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:34 +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-prometheus-nginxlog.md:36 +msgid "Docker Image Compatibility" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:38 +msgid "At the moment of writing only images for `amd64` and `arm64` architectures are available. The playbook currently does not support [self-building](./self-building.md) a container image on other architectures. You can however use a custom-build image by setting:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:45 +msgid "Security and privacy" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:47 +msgid "Metrics and resulting graphs can contain a lot of information. NginX logs contain information like IP address, URLs, UserAgents and more. This information can reveal usage patterns and could be considered Personally Identifiable Information (PII). Think about this before enabling (anonymous) access. Please make sure you change the default Grafana password." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:49 +msgid "Save metrics on an external Prometheus server" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:51 +msgid "The playbook will automatically integrate the metrics into the [Prometheus](./configuring-playbook-prometheus-grafana.md) server provided with this playbook (if enabled). In such cases, the metrics endpoint is not exposed publicly — it's only available on the container network." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:53 +msgid "When using an external Prometheus server, you'll need to expose metrics publicly. See [Collecting metrics to an external Prometheus server](./configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server)." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:55 +msgid "You can either use `matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled: true` to expose just this one service, or `matrix_metrics_exposure_enabled: true` to expose all services." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:57 +msgid "Whichever way you go with, this service will expose its metrics endpoint **without password-protection** at `https://matrix.example.com/metrics/nginxlog` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-nginxlog.md:59 +msgid "For password-protection, use (`matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users`) or (`matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled` and `matrix_prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users`)." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-prometheus-postgres.pot b/i18n/translation-templates/docs/configuring-playbook-prometheus-postgres.pot new file mode 100644 index 000000000..7fce336a8 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-prometheus-postgres.pot @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:1 +msgid "Enabling metrics and graphs for Postgres (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:3 +msgid "Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:7 +msgid "To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:13 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:15 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:22 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:24 +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-prometheus-postgres.md:26 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "Name" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "Description" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "`prometheus_postgres_exporter_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "`prometheus_postgres_exporter_database_username`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "`prometheus_postgres_exporter_database_password`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:0 +msgid "If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:35 +msgid "More information" +msgstr "" + +#: ../../../docs/configuring-playbook-prometheus-postgres.md:37 +msgid "[The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard)" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-rageshake.pot b/i18n/translation-templates/docs/configuring-playbook-rageshake.pot new file mode 100644 index 000000000..2f9cbd33e --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-rageshake.pot @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-rageshake.md:1 +msgid "Setting up the rageshake bug report server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:3 +msgid "The playbook can install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:7 +msgid "**Note**: most people don't need to install rageshake to collect bug reports. This component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:9 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:11 +msgid "By default, this playbook installs rageshake on the `rageshake.` subdomain (`rageshake.example.com`) and requires you to create a CNAME record for `rageshake`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:13 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:17 +msgid "To enable rageshake, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:23 +msgid "rageshake has various options which don't have dedicated Ansible variables. You can see the full list of options in the [`rageshake.sample.yaml` file](https://github.com/matrix-org/rageshake/blob/master/rageshake.sample.yaml)." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:25 +msgid "To set these, you can make use of the `matrix_rageshake_configuration_extension_yaml` variable like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:35 +msgid "Adjusting the rageshake URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:37 +msgid "By tweaking the `matrix_rageshake_hostname` and `matrix_rageshake_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-rageshake.md:39 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:50 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the rageshake domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:52 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:54 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:56 +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-rageshake.md:63 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:65 +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-rageshake.md:67 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-rageshake.md:69 +msgid "Refer to the project's [documentation](https://github.com/matrix-org/rageshake/blob/main/README.md) for available APIs, etc." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-rest-auth.pot b/i18n/translation-templates/docs/configuring-playbook-rest-auth.pot new file mode 100644 index 000000000..71621b50c --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-rest-auth.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-rest-auth.md:1 +msgid "Setting up the REST authentication password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:5 +msgid "See the project's [documentation](https://github.com/ma1uta/matrix-synapse-rest-password-provider/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:19 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:21 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:27 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:29 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:36 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-rest-auth.md:38 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-riot-web.pot b/i18n/translation-templates/docs/configuring-playbook-riot-web.pot new file mode 100644 index 000000000..b18006ead --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-riot-web.pot @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-riot-web.md:1 +msgid "Configuring Riot-web (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:3 +msgid "By default, this playbook **used to install** the [Riot-web](https://github.com/element-hq/riot-web) Matrix client web application." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:5 +msgid "Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:7 +msgid "to learn more about Element Web and its configuration, see our dedicated [Configuring Element Web](configuring-playbook-client-element-web.md) documentation page" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:8 +msgid "to learn how to migrate from Riot to Element Web, see [Migrating to Element Web](#migrating-to-element-web) below" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:10 +msgid "Migrating to Element Web" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:12 +msgid "Migrating your custom settings" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:14 +msgid "If you have custom `matrix_riot_web_` variables in your `inventory/host_vars/matrix.example.com/vars.yml` file, you'll need to rename them (`matrix_riot_web_` -> `matrix_client_element_`)." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:16 +msgid "Some other playbook variables (but not all) with `riot` in their name are also renamed. The playbook checks and warns if you are using the old name for some commonly used ones." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:18 +msgid "Domain migration" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:20 +msgid "We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element Web at `element.example.com` by default." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:22 +msgid "There are a few options for handling this:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:24 +msgid "(**avoiding changes** — using the old `riot.example.com` domain and avoiding DNS changes) — to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: \"riot.{{ matrix_domain }}\"`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:26 +msgid "(**embracing changes** — using only `element.example.com`) — set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case." +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:28 +msgid "Re-running the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:30 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:37 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-riot-web.md:39 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-s3-goofys.pot b/i18n/translation-templates/docs/configuring-playbook-s3-goofys.pot new file mode 100644 index 000000000..cce65ce00 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-s3-goofys.pot @@ -0,0 +1,178 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-s3-goofys.md:1 +msgid "Storing Matrix media files on Amazon S3 with Goofys (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can let this playbook configure [Goofys](https://github.com/kahing/goofys) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:5 +msgid "Another (and better performing) way to use S3 storage with Synapse is [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:7 +msgid "Using a Goofys-backed media store works, but performance may not be ideal. If possible, try to use a region which is close to your Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:9 +msgid "If you'd like to move your locally-stored media store data to Amazon S3 (or another S3-compatible object store), we also provide some migration instructions below." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:13 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:23 +msgid "You can use any S3-compatible object store by **additionally** configuring these variables:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:30 +msgid "If you have local media store files and wish to migrate to Backblaze B2 subsequently, follow our [migration guide to Backblaze B2](#migrating-to-backblaze-b2) below instead of applying this configuration as-is." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:32 +msgid "Migrating from local filesystem storage to S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:34 +msgid "It's a good idea to [make a complete server backup](faq.md#how-do-i-back-up-the-data-on-my-server) before migrating your local media store to an S3-backed one." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:36 +msgid "After making the backup, follow one of the guides below for a migration path from a locally-stored media store to one stored on S3-compatible storage:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:38 +msgid "[Migrating to any S3-compatible storage (universal, but likely slow)](#migrating-to-any-s3-compatible-storage-universal-but-likely-slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:39 +msgid "[Migrating to Backblaze B2](#migrating-to-backblaze-b2)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:41 +msgid "Migrating to any S3-compatible storage (universal, but likely slow)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:43 +msgid "Proceed with the steps below without stopping Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:45 +msgid "Start by adding the base S3 configuration in your `vars.yml` file (seen above, may be different depending on the S3 provider of your choice)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:47 +msgid "In addition to the base configuration you see above, add this to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:53 +msgid "This enables S3 support, but mounts the S3 storage bucket to `/matrix/s3-media-store` without hooking it to your homeserver yet. Your homeserver will still continue using your local filesystem for its media store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:55 +msgid "Run the playbook to apply the changes: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:57 +msgid "Do an **initial sync of your files** by running this **on the server** (it may take a very long time):" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:63 +msgid "You may need to install `rsync` manually." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:65 +#: ../../../docs/configuring-playbook-s3-goofys.md:106 +msgid "Stop all Matrix services (`ansible-playbook -i inventory/hosts setup.yml --tags=stop`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:67 +msgid "Start the S3 service by running this **on the server**: `systemctl start matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:69 +msgid "Sync the files again by re-running the `rsync` command you see in step #5" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:71 +msgid "Stop the S3 service by running this **on the server**: `systemctl stop matrix-goofys`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:73 +#: ../../../docs/configuring-playbook-s3-goofys.md:114 +msgid "Get the old media store out of the way by running this command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:79 +msgid "Remove the `matrix_s3_media_store_path` configuration from your `vars.yml` file (undoing step #3 above)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:81 +#: ../../../docs/configuring-playbook-s3-goofys.md:122 +msgid "Run the playbook: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:83 +#: ../../../docs/configuring-playbook-s3-goofys.md:124 +msgid "You're done! Verify that loading existing (old) media files works and that you can upload new ones." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:85 +#: ../../../docs/configuring-playbook-s3-goofys.md:126 +msgid "When confident that it all works, get rid of the local media store directory: `rm -rf /matrix/synapse/storage/media-store-local-backup`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:87 +msgid "Migrating to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:89 +msgid "While all Matrix services are running, run the following command on the server:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:91 +msgid "(you need to adjust the 3 `--env` line below with your own data)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:104 +msgid "This is some initial file sync, which may take a very long time." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:108 +msgid "Run the command from step #1 again." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:110 +msgid "Doing this will sync any new files that may have been created locally in the meantime." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:112 +msgid "Now that Matrix services aren't running, we're sure to get Backblaze B2 and your local media store fully in sync." +msgstr "" + +#: ../../../docs/configuring-playbook-s3-goofys.md:120 +msgid "Put the [Backblaze B2 settings](configuring-playbook-s3.md#backblaze-b2) in your `vars.yml` file" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-s3.pot b/i18n/translation-templates/docs/configuring-playbook-s3.pot new file mode 100644 index 000000000..6952ccac2 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-s3.pot @@ -0,0 +1,213 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-s3.md:1 +msgid "Storing Synapse media files on Amazon S3 or another compatible Object Storage (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:3 +msgid "By default, this playbook configures your server to store Synapse's content repository (`media_store`) files on the local filesystem. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:5 +msgid "As an alternative to storing media files on the local filesystem, you can store them on [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object store." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:7 +msgid "You can do this either by sticking to Synapse's media repository and making that use S3 (read below for this method), or by switching to an external media storage implementation like [matrix-media-repo](configuring-playbook-matrix-media-repo.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:9 +msgid "First, [choose an Object Storage provider](#choosing-an-object-storage-provider)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:11 +msgid "Then, [create the S3 bucket](#bucket-creation-and-security-configuration)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:13 +msgid "Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md), [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md), or use s3 datastore with the [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:15 +msgid "Choosing an Object Storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:17 +msgid "You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Storj](https://storj.io), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), etc." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:19 +msgid "Amazon S3, Backblaze B2, and Storj are pay-as-you with no minimum charges for storing too little data." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:21 +msgid "All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:23 +msgid "Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:25 +msgid "Here are some of the important aspects of choosing the right provider:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:27 +msgid "if a provider is a company you like and trust (or dislike less than the others)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:28 +msgid "if a provider implements end-to-end encryption of your data" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:29 +msgid "if a provider has a data region close to your Matrix server (if it's farther away, high latency may cause slowdowns)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:30 +msgid "if a provider's infrastructure such as data center is centralized or distributed" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:31 +msgid "if a provider's price model is transparent (whether it includes hidden costs like minimum charge, minimum storage term, etc.)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:32 +msgid "if a provider has free or cheap egress fee (in case you need to get the data out often, for some reason) — likely not too important for the common use-case" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:34 +msgid "Bucket creation and Security Configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:36 +msgid "Now that you've [chosen an Object Storage provider](#choosing-an-object-storage-provider), you need to create a storage bucket." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:38 +msgid "How you do this varies from provider to provider, with Amazon S3 being the most complicated due to its vast number of services and complicated security policies." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:40 +msgid "Below, we provider some guides for common providers. If you don't see yours, look at the others for inspiration or read some guides online about how to create a bucket. Feel free to contribute to this documentation with an update!" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:42 +msgid "Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:44 +msgid "You'll need an Amazon S3 bucket and some IAM user credentials (access key + secret key) with full write access to the bucket. Example IAM security policy:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:65 +msgid "**Note**: This policy needs to be attached to an IAM user created from the **Security Credentials** menu. This is not a **Bucket Policy**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:67 +msgid "Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:69 +msgid "To use [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html) you first need to sign up." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:71 +msgid "You [can't easily change which region (US, Europe) your Backblaze account stores files in](https://old.reddit.com/r/backblaze/comments/hi1v90/make_the_choice_for_the_b2_data_center_region/), so make sure to carefully choose the region when signing up (hint: it's a hard to see dropdown below the username/password fields in the signup form)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:73 +msgid "After logging in to Backblaze:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:75 +msgid "create a new **private** bucket through its user interface (you can call it something like `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:76 +msgid "note the **Endpoint** for your bucket (something like `s3.us-west-002.backblazeb2.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:77 +msgid "adjust its Lifecycle Rules to: Keep only the last version of the file" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:78 +msgid "go to [App Keys](https://secure.backblaze.com/app_keys.htm) and use the **Add a New Application Key** to create a new one" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:79 +msgid "restrict it to the previously created bucket (e.g. `matrix-example-media-store`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:80 +msgid "give it *Read & Write* access" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:82 +msgid "The `keyID` value is your **Access Key** and `applicationKey` is your **Secret Key**." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:84 +msgid "For configuring [Goofys](configuring-playbook-s3-goofys.md) or [s3-synapse-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) you will need:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:86 +msgid "**Endpoint URL** — this is the **Endpoint** value you saw above, but prefixed with `https://`" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:88 +msgid "**Region** — use the value you see in the Endpoint (e.g. `us-west-002`)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:90 +msgid "**Storage Class** — use `STANDARD`. Backblaze B2 does not have different storage classes, so it doesn't make sense to use any other value." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:92 +msgid "Other providers" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:94 +msgid "For other S3-compatible providers, you may not need to configure security policies, etc. (just like for [Backblaze B2](#backblaze-b2))." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:96 +msgid "You most likely just need to create an S3 bucket and get some credentials (access key and secret key) for accessing the bucket in a read/write manner." +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:98 +msgid "Setting up" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:100 +msgid "To set up Synapse to store files in S3, follow the instructions for the method of your choice:" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:102 +msgid "using [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) (recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:103 +msgid "using [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-s3.md:104 +msgid "using [matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-shared-secret-auth.pot b/i18n/translation-templates/docs/configuring-playbook-shared-secret-auth.pot new file mode 100644 index 000000000..fe700a3c5 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-shared-secret-auth.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:1 +msgid "Setting up the Shared Secret Auth password provider module (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:3 +msgid "The playbook can install and configure [matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:5 +msgid "See the project's [documentation](https://github.com/devture/matrix-synapse-shared-secret-auth/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:9 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:18 +msgid "Authenticating only using a password provider" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:20 +msgid "If you wish for users to **authenticate only against configured password providers** (like this one), **without consulting Synapse's local database**, feel free to disable it:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:26 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:28 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:35 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-shared-secret-auth.md:37 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-sliding-sync-proxy.pot b/i18n/translation-templates/docs/configuring-playbook-sliding-sync-proxy.pot new file mode 100644 index 000000000..43e70b574 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-sliding-sync-proxy.pot @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:1 +msgid "Setting up the Sliding Sync proxy (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:3 +msgid "**Note**: The sliding-sync proxy is **not required** anymore as it's been replaced with a different method (called Simplified Sliding Sync) which is integrated into newer homeservers by default (**Conduit** homeserver from version `0.6.0` or **Synapse** from version `1.114`). This component and documentation remain here for historical purposes, but **installing this old sliding-sync proxy is generally not recommended anymore**." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:5 +msgid "The playbook can install and configure [sliding-sync](https://github.com/matrix-org/sliding-sync) proxy for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:7 +msgid "Sliding Sync is an implementation of [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md) and a prerequisite for running Element X clients ([Element X iOS](https://github.com/element-hq/element-x-ios) and [Element X Android](https://github.com/element-hq/element-x-android)). See the project's [documentation](https://github.com/matrix-org/sliding-sync) to learn more." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:11 +msgid "By default, this playbook installs the Sliding Sync proxy on the `matrix.` subdomain, at the `/sliding-sync` path (https://matrix.example.com/sliding-sync). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-sliding-sync-proxy-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:17 +msgid "To enable Sliding Sync proxy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:23 +msgid "Adjusting the Sliding Sync proxy URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:25 +msgid "By tweaking the `matrix_sliding_sync_hostname` and `matrix_sliding_sync_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-sliding-sync-proxy.md:27 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:35 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Sliding Sync proxy domain (`ss.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:37 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:39 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:41 +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-sliding-sync-proxy.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-sliding-sync-proxy.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-sliding-sync-proxy.md:52 +msgid "External databases" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:54 +msgid "Please note that, if your setup utilizes an external database, you must also establish configuration for the sliding sync proxy. Alter the defaults below to suit your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:64 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:66 +msgid "You **don't need to do anything special** to make use of the Sliding Sync proxy. Simply open your client which supports Sliding Sync (like Element X) and log in." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:68 +msgid "When the Sliding Sync proxy is [installed](#installing), your `/.well-known/matrix/client` file is also updated. A new `org.matrix.msc3575.proxy` section and `url` property are added there and made to point to your Sliding Sync proxy's base URL (e.g. `https://matrix.example.com/sliding-sync`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sliding-sync-proxy.md:70 +msgid "This allows clients which support Sliding Sync to detect the Sliding Sync proxy's URL and make use of it." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-ssl-certificates.pot b/i18n/translation-templates/docs/configuring-playbook-ssl-certificates.pot new file mode 100644 index 000000000..7a34d19f9 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-ssl-certificates.pot @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:1 +msgid "Adjusting SSL certificate retrieval (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:3 +msgid "By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:5 +msgid "This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:7 +msgid "Using staging Let's Encrypt certificates instead of real ones" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:9 +msgid "For testing purposes, you may wish to use staging certificates provide by Let's Encrypt." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:17 +msgid "Disabling SSL termination" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:19 +msgid "For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:21 +msgid "Add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:27 +msgid "Using self-signed SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:29 +msgid "If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)):" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:31 +msgid "generate your self-signed certificate files" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:32 +msgid "follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:34 +msgid "Using your own SSL certificates" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:36 +msgid "To use your own SSL certificates with Traefik, you need to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:38 +msgid "disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:39 +msgid "put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:40 +msgid "register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:41 +msgid "put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:89 +msgid "Using a DNS-01 ACME challenge type, instead of HTTP-01" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:91 +msgid "You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but it can be helpful to:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:93 +msgid "hide your public IP from Let's Encrypt logs" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:94 +msgid "allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:96 +msgid "This is an example for how to edit the `vars.yml` file if you're using Cloudflare:" +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:111 +msgid "Make sure to change the value of \"provider\" to your particular DNS solution, and provide the appropriate environment variables. The full list of supported providers is available [here](https://doc.traefik.io/traefik/https/acme/#providers)." +msgstr "" + +#: ../../../docs/configuring-playbook-ssl-certificates.md:113 +msgid "This example assumes you're using Cloudflare to manage your DNS zone. Note that it requires the use of two tokens: one for reading all zones (`CF_ZONE_API_TOKEN`) and another that must be able to edit the particular domain you're using (`CF_DNS_API_TOKEN`). For security, it's recommended that you create two fine-grained tokens for this purpose, but you might choose to use the same token for both." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-sygnal.pot b/i18n/translation-templates/docs/configuring-playbook-sygnal.pot new file mode 100644 index 000000000..2739bd544 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-sygnal.pot @@ -0,0 +1,145 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-sygnal.md:1 +msgid "Setting up the Sygnal push gateway (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:3 +msgid "The playbook can install and configure the [Sygnal](https://github.com/matrix-org/sygnal) push gateway for you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/sygnal/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:7 +msgid "**Note**: most people don't need to install their own gateway. As Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) documentation says:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:9 +msgid "It is not feasible to allow end-users to configure their own Sygnal instance, because the Sygnal instance needs the appropriate FCM or APNs secrets that belong to the application." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:11 +msgid "This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:13 +msgid "Adjusting DNS records" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:15 +msgid "By default, this playbook installs Sygnal on the `sygnal.` subdomain (`sygnal.example.com`) and requires you to create a CNAME record for `sygnal`, which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:17 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:19 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:21 +msgid "To enable Sygnal, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:49 +msgid "Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:51 +msgid "To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files. To do that, the above example configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:53 +msgid "makes use of the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) (and its `aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml) of the `aux` role for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `aux`." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:55 +msgid "references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/…` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:57 +msgid "Adjusting the Sygnal URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:59 +msgid "By tweaking the `matrix_sygnal_hostname` and `matrix_sygnal_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-sygnal.md:61 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:72 +msgid "After changing the domain, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:74 +msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:76 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:78 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:80 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:82 +msgid "`roles/custom/matrix-sygnal/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:83 +msgid "`roles/custom/matrix-sygnal/templates/config.yaml.j2` for the component's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_sygnal_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:87 +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-sygnal.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:96 +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-sygnal.md:98 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:100 +msgid "To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is to your Sygnal URL endpoint (e.g. `https://sygnal.example.com`)." +msgstr "" + +#: ../../../docs/configuring-playbook-sygnal.md:102 +msgid "Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-admin.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-admin.pot new file mode 100644 index 000000000..185f0811f --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-admin.pot @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-admin.md:1 +msgid "Setting up Synapse Admin (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:3 +msgid "The playbook can install and configure [etkecc/synapse-admin](https://github.com/etkecc/synapse-admin) (a [feature-rich](https://github.com/etkecc/synapse-admin#fork-differences) fork of [Awesome-Technologies/synapse-admin](https://github.com/Awesome-Technologies/synapse-admin), community room: [#synapse-admin:etke.cc](https://matrix.to/#/#synapse-admin:etke.cc)) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:5 +msgid "synapse-admin is a web UI tool you can use to **administrate users, rooms, media, etc. on your Matrix server**. It's designed to work with the Synapse homeserver implementation and WON'T work with Dendrite because [Dendrite Admin API](https://element-hq.github.io/dendrite/administration/adminapi) differs from [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:7 +msgid "💡 **Note**: the latest version of synapse-admin is hosted by [etke.cc](https://etke.cc/) at [admin.etke.cc](https://admin.etke.cc/). If you only need this service occasionally and trust giving your admin credentials to a 3rd party Single Page Application, you can consider using it from there and avoiding the (small) overhead of self-hosting." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:9 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:11 +msgid "By default, this playbook installs Synapse Admin on the `matrix.` subdomain, at the `/synapse-admin` path (https://matrix.example.com/synapse-admin). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:13 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-admin-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:15 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:17 +msgid "To enable Synapse Admin, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:23 +msgid "**Note**: Synapse Admin requires Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, the playbook **automatically** exposes the Synapse Admin API publicly for you. Depending on the homeserver implementation you're using (Synapse, Dendrite), this is equivalent to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:25 +msgid "for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:26 +msgid "for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:28 +msgid "By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/etkecc/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) — the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:30 +msgid "[!WARNING] If you're using [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS) for authentication, you will be able to [log into synapse-admin with an access token](https://github.com/etkecc/synapse-admin/pull/58), but certain synapse-admin features (especially those around user management) will be limited or not work at all." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:33 +msgid "Adjusting the Synapse Admin URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:35 +msgid "By tweaking the `matrix_synapse_admin_hostname` and `matrix_synapse_admin_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-synapse-admin.md:37 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:45 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the Synapse Admin domain (`admin.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:47 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:49 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:51 +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-synapse-admin.md:58 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:60 +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-synapse-admin.md:62 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:64 +msgid "After installation, Synapse Admin will be accessible at: `https://matrix.example.com/synapse-admin/`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-admin.md:66 +msgid "To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-auto-accept-invite.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-auto-accept-invite.pot new file mode 100644 index 000000000..e63740241 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-auto-accept-invite.pot @@ -0,0 +1,69 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:1 +msgid "Setting up Synapse Auto Invite Accept (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:3 +msgid "The playbook can install and configure [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:5 +msgid "In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite/blob/main/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:9 +msgid "**Note**: Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the same feature [has been merged](https://github.com/element-hq/synapse/pull/17147) into Synapse (see the [Native alternative](#native-alternative) section below). You'd better use the native feature, instead of the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:11 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:13 +msgid "If you decide that you'd like to let this playbook install the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite module for you, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:21 +msgid "Synapse worker deployments" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:23 +msgid "In a [workerized Synapse deployment](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/c9a842147e09647c355799ca024d65a5de66b099/docs/configuring-playbook-synapse.md#load-balancing-with-workers) it is possible to run this module on a worker to reduce the load on the main process (Default is `null`). For example, add this to your configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:29 +msgid "There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:31 +msgid "Native alternative" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:33 +msgid "Since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the functionality provided by the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module [has been made](https://github.com/element-hq/synapse/pull/17147) part of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-accept-invite.md:35 +msgid "Here's example configuration for using the **native** Synapse feature:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-auto-compressor.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-auto-compressor.pot new file mode 100644 index 000000000..bf9e2a645 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-auto-compressor.pot @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:1 +msgid "Setting up synapse-auto-compressor (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:3 +msgid "The playbook can install and configure [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:5 +msgid "It's a CLI tool that automatically compresses Synapse's `state_groups` database table in the background." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:7 +msgid "See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/blob/master/README.md#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:17 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:19 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:26 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:28 +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-synapse-auto-compressor.md:30 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:32 +msgid "After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_calendar` by default)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:34 +msgid "Manually execute compression" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:36 +msgid "Sometimes it can be helpful to execute compression as you'd like, avoiding to wait until 00:00, like when you test your configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:38 +msgid "If you want to execute it immediately, log in to the server with SSH and run `systemctl start matrix-synapse-auto-compressor`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-auto-compressor.md:40 +msgid "This will not return until the compression is done, so it can possibly take a long time. Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-s3-storage-provider.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-s3-storage-provider.pot new file mode 100644 index 000000000..692d53c2a --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-s3-storage-provider.pot @@ -0,0 +1,273 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:1 +msgid "Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:3 +msgid "If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service), you can use the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) media provider module for Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:5 +msgid "An alternative (which has worse performance) is to use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:7 +msgid "How it works?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:9 +msgid "Summarized writings here are inspired by [this article](https://quentin.dufour.io/blog/2021-09-14/matrix-synapse-s3-storage/)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:11 +msgid "The way media storage providers in Synapse work has some caveats:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:13 +msgid "Synapse still continues to use locally-stored files (for creating thumbnails, serving files, etc)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:14 +msgid "the media storage provider is just an extra storage mechanism (in addition to the local filesystem)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:15 +msgid "all files are stored locally at first, and then copied to the media storage provider (either synchronously or asynchronously)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:16 +msgid "if a file is not available on the local filesystem, it's pulled from a media storage provider" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:18 +msgid "You may be thinking **if all files are stored locally as well, what's the point**?" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:20 +msgid "You can run some scripts to delete the local files once in a while (which we do automatically by default — see [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem)), thus freeing up local disk space. If these files are needed in the future (for serving them to users, etc.), Synapse will pull them from the media storage provider on demand." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:22 +msgid "While you will need some local disk space around, it's only to accommodate usage, etc., and won't grow as large as your S3 store." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:24 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:26 +msgid "After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:48 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:50 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:52 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:54 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:56 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:58 +msgid "If you have existing files in Synapse's media repository (`/matrix/synapse/storage/media-store/…`):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:60 +msgid "new files will start being stored both locally and on the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:61 +msgid "the existing files will remain on the local filesystem only until [migrating them to the S3 store](#migrating-your-existing-media-files-to-the-s3-store)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:62 +msgid "at some point (and periodically in the future), you can delete local files which have been uploaded to the S3 store already" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:64 +msgid "Regardless of whether you need to [Migrate your existing files to the S3 store](#migrating-your-existing-media-files-to-the-s3-store) or not, make sure you've familiarized yourself with [How it works?](#how-it-works) above and [Periodically cleaning up the local filesystem](#periodically-cleaning-up-the-local-filesystem) below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:66 +msgid "Migrating your existing media files to the S3 store" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:68 +msgid "Migrating your existing data can happen in multiple ways:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:70 +msgid "[using the `s3_media_upload` script from `synapse-s3-storage-provider`](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (very slow when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:71 +msgid "[using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload) (quicker when dealing with lots of data)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:73 +msgid "💡 **Note**: instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:75 +msgid "Using the `s3_media_upload` script from `synapse-s3-storage-provider`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:77 +msgid "To copy your existing files, SSH into the server and run `/matrix/synapse/ext/s3-storage-provider/bin/shell`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:79 +msgid "This launches a Synapse container, which has access to the local media store, Postgres database, S3 store and has some convenient environment variables configured for you to use (`MEDIA_PATH`, `BUCKET`, `ENDPOINT`, `UPDATE_DB_DAYS`, etc)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:81 +msgid "Then use the following commands (`$` values come from environment variables — they're **not placeholders** that you need to substitute):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:83 +msgid "`s3_media_upload update-db $UPDATE_DB_DURATION` — create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:84 +msgid "`$UPDATE_DB_DURATION` is influenced by the `matrix_synapse_ext_synapse_s3_storage_provider_update_db_day_count` variable (defaults to `0`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:85 +msgid "`$UPDATE_DB_DURATION` defaults to `0d` (0 days), which means **include files which haven't been accessed for more than 0 days** (that is, **all files will be included**)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:86 +msgid "`s3_media_upload check-deleted $MEDIA_PATH` — check whether files in the local cache still exist in the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:87 +msgid "`s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` — uploads locally-stored files to S3 and deletes them from the local media repository directory" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:89 +msgid "The `s3_media_upload upload` command may take a lot of time to complete." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:91 +msgid "Instead of running the above commands manually in the shell, you can also run the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script which will run the same commands automatically. We demonstrate how to do it manually, because:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:93 +msgid "it's what the upstream project demonstrates and it teaches you how to use the `s3_media_upload` tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:94 +msgid "allows you to check and verify the output of each command, to catch mistakes" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:95 +msgid "includes progress bars and detailed output for each command" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:96 +msgid "allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill …`)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:98 +msgid "Using another tool in combination with `s3_media_upload`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:100 +msgid "To migrate your existing local data to S3, we recommend to:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:102 +msgid "**first** use another tool ([`aws s3`](#copying-data-to-amazon-s3) or [`b2 sync`](#copying-data-to-backblaze-b2), etc.) to copy the local files to the S3 bucket" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:104 +msgid "**only then** [use the `s3_media_upload` tool to finish the migration](#using-the-s3_media_upload-script-from-synapse-s3-storage-provider) (this checks to ensure all files are uploaded and then deletes the local files)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:106 +msgid "Copying data to Amazon S3" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:108 +msgid "To copy to AWS S3, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:120 +msgid "Copying data to an S3 alternative using the aws-s3 tool" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:122 +msgid "To copy to a provider other than AWS S3 (e.g. Storj, Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:124 +msgid "Add this argument to the command **as-is** (`$ENDPOINT` is an environment variable corresponding to `matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url`, so you don't need to touch it). Make sure to add the argument **before** the final quote (`'`) of the command." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:126 +msgid "Copying data to Backblaze B2" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:128 +msgid "You can copy files to Backblaze B2 either by following the [Copying data to an S3 alternative using the aws-s3 tool](#copying-data-to-an-s3-alternative-using-the-aws-s3-tool) or by using the B2-specific [b2 command-line tool](https://www.backblaze.com/b2/docs/quick_command_line.html) as described below." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:130 +msgid "To copy the data using the `b2` tool, start a container on the Matrix server like this:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:144 +msgid "Periodically cleaning up the local filesystem" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:146 +msgid "As described in [How it works?](#how-it-works) above, when new media is uploaded to the Synapse homeserver, it's first stored locally and then also stored on the remote S3 storage." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:148 +msgid "By default, we periodically ensure that all local files are uploaded to S3 and are then removed from the local filesystem. This is done automatically using:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:150 +msgid "the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:151 +msgid "… invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:152 +msgid "… triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-s3-storage-provider.md:154 +msgid "So… you don't need to perform any maintenance yourself." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-simple-antispam.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-simple-antispam.pot new file mode 100644 index 000000000..0933ef731 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-simple-antispam.pot @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:1 +msgid "Setting up Synapse Simple Antispam (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:3 +msgid "The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:5 +msgid "It lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:7 +msgid "See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:9 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-simple-antispam.md:11 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file (adapt to your needs):" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse-usage-exporter.pot b/i18n/translation-templates/docs/configuring-playbook-synapse-usage-exporter.pot new file mode 100644 index 000000000..28f37115b --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse-usage-exporter.pot @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:1 +msgid "Enabling synapse-usage-exporter for Synapse usage statistics (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:3 +msgid "[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:5 +msgid "Synapse does not include usage statistics in its Prometheus metrics. They can be reported to an HTTP `PUT` endpoint 5 minutes after startup and from then on at a fixed interval of once every three hours. This role integrates a simple [Flask](https://flask.palletsprojects.com) project that offers an HTTP `PUT` endpoint and holds the most recent received record available to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:7 +msgid "Enabling this service will automatically:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:9 +msgid "install the synapse-usage-exporter service" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:10 +msgid "re-configure Synapse to push (via HTTP `PUT`) usage statistics information to synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:11 +msgid "re-configure [Prometheus](./configuring-playbook-prometheus-grafana.md) (if Prometheus is enabled), to periodically scrape metrics from synapse-usage-exporter" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:12 +msgid "add a new [Grafana](./configuring-playbook-prometheus-grafana.md) dashboard (if Grafana is enabled) containing Synapse usage statistics" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:14 +msgid "Adjusting DNS records (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:16 +msgid "By default, this playbook installs synapse-usage-exporter on the `matrix.` subdomain, at the `/report-usage-stats/push` path (https://matrix.example.com/report-usage-stats/push). This makes it easy to install it, because it **doesn't require additional DNS records to be set up**. If that's okay, you can skip this section." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:18 +msgid "If you wish to adjust it, see the section [below](#adjusting-the-synapse-usage-exporter-url-optional) for details about DNS configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:20 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:22 +msgid "To enable synapse-usage-exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:34 +msgid "Adjusting the synapse-usage-exporter URL (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:36 +msgid "By tweaking the `matrix_synapse_usage_exporter_hostname` and `matrix_synapse_usage_exporter_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-synapse-usage-exporter.md:38 +msgid "Example additional configuration for your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:47 +msgid "If you've changed the default hostname, you may need to create a CNAME record for the synapse-usage-exporter domain (`sue.example.com`), which targets `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:49 +msgid "When setting, replace `example.com` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:51 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:53 +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-synapse-usage-exporter.md:60 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse-usage-exporter.md:62 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-synapse.pot b/i18n/translation-templates/docs/configuring-playbook-synapse.pot new file mode 100644 index 000000000..5fa37a2ab --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-synapse.pot @@ -0,0 +1,273 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-synapse.md:1 +msgid "Configuring Synapse (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:3 +msgid "By default, this playbook configures the [Synapse](https://github.com/element-hq/synapse) Matrix server, so that it works for the general case. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:5 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:7 +msgid "Load balancing with workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:9 +msgid "To have Synapse gracefully handle thousands of users, worker support should be enabled. It factors out some homeserver tasks and spreads the load of incoming client and server-to-server traffic between multiple processes. More information can be found in the [official Synapse workers documentation](https://github.com/element-hq/synapse/blob/master/docs/workers.md) and [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:11 +msgid "To enable Synapse worker support, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:19 +msgid "By default, this enables the `one-of-each` [worker preset](#worker-presets), but you may wish to use another preset or [control the number of worker instances](#controlling-the-number-of-worker-instances)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:21 +msgid "Worker presets" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:23 +msgid "We support a few configuration presets (`matrix_synapse_workers_preset: one-of-each` being the default configuration right now):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:25 +msgid "(federation-only) `little-federation-helper` — a very minimal worker configuration to improve federation performance" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:26 +msgid "(generic) `one-of-each` — defaults to one worker of each supported type — no smart routing, just generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:27 +msgid "(specialized) `specialized-workers` — defaults to one worker of each supported type, but disables generic workers and uses [specialized workers](#specialized-workers) instead" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:29 +msgid "These presets represent a few common configurations. There are many worker types which can be mixed and matched based on your needs." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:31 +msgid "Generic workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:33 +msgid "Previously, the playbook only supported the most basic type of load-balancing. We call it **generic load-balancing** below, because incoming HTTP requests are sent to a generic worker. Load-balancing was done based on the requestor's IP address. This is simple, but not necessarily optimal. If you're accessing your account from multiple IP addresses (e.g. your mobile phone being on a different network than your PC), these separate requests may potentially be routed to different workers, each of which would need to cache roughly the same data." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:35 +msgid "This is **still the default load-balancing method (preset) used by the playbook**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:37 +msgid "To use generic load-balancing, do not specify `matrix_synapse_workers_preset` to make it use the default value (`one-of-each`), or better yet — explicitly set it as `one-of-each`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:39 +msgid "You may also consider [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:41 +msgid "Specialized workers" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:43 +msgid "The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requestor and/or on the resource (room, etc.) being requested." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:45 +msgid "The playbook supports these **4 types** of specialized workers:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:47 +msgid "Room workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) & [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs dedicated to handling specific rooms" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:48 +msgid "Sync workers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs related to synchronization (most notably [the `/sync` endpoint](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv3sync))" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:49 +msgid "Client readers — handles various [Client-Server](https://spec.matrix.org/v1.9/client-server-api/) APIs which are not for specific rooms (handled by **room workers**) or for synchronization (handled by **sync workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:50 +msgid "Federation readers — handles various [Federation](https://spec.matrix.org/v1.9/server-server-api) APIs which are not for specific rooms (handled by **room workers**)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:52 +msgid "To use specialized load-balancing, consider enabling the `specialized-workers` [worker preset](#worker-presets) and potentially [tweaking the number of workers of each type](#controlling-the-number-of-worker-instances) from the default (one of each)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:54 +msgid "Controlling the number of worker instances" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:56 +msgid "If you'd like more customization power, you can start with one of the [worker presets](#worker-presets) and then tweak various `matrix_synapse_workers_*_count` variables manually." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:58 +msgid "To find what variables are available for you to override in your own `vars.yml` configuration file, see the [`defaults/main.yml` file for the `matrix-synapse` Ansible role](../roles/custom/matrix-synapse/defaults/main.yml)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:60 +msgid "The only thing you **cannot** do is mix [generic workers](#generic-workers) and [specialized workers](#specialized-workers)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:62 +msgid "Effect of enabling workers on the rest of your server" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:64 +msgid "When Synapse workers are enabled, the integrated [Postgres database is tuned](maintenance-postgres.md#tuning-postgresql), so that the maximum number of Postgres connections are increased from `200` to `500`. If you need to decrease or increase the number of maximum Postgres connections further, use the `postgres_max_connections` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:66 +msgid "A separate Ansible role (`matrix-synapse-reverse-proxy-companion`) and component handles load-balancing for workers. This role/component is automatically enabled when you enable workers. Make sure to use the `setup-all` tag (not `install-all`!) during the playbook's [installation](./installing.md) process, especially if you're disabling workers, so that components may be installed/uninstalled correctly." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:68 +msgid "In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/element-hq/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:70 +msgid "Synapse + OpenID Connect for Single-Sign-On" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:72 +msgid "💡 An alternative to setting up OIDC in Synapse is to use [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) (MAS). Newer clients (like Element X) only support SSO-based authentication via MAS and not via the legacy Synapse OIDC setup described below. That said, MAS is still a new experimental service which comes with its own downsides. Consult its documentation to learn if it will be a good fit for your deployment." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:74 +msgid "If you'd like to use OpenID Connect authentication with Synapse, you'll need some additional configuration." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:76 +msgid "This example configuration is for [keycloak](https://www.keycloak.org/), an opensource Identity Provider maintained by Red Hat." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:78 +msgid "For more detailed documentation on available options and how to setup keycloak, see the [Synapse documentation on OpenID Connect with keycloak](https://github.com/element-hq/synapse/blob/develop/docs/openid.md#keycloak)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:80 +msgid "In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ;" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:101 +msgid "Customizing templates" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:103 +msgid "[Templates](https://github.com/element-hq/synapse/blob/develop/docs/templates.md) are used by Synapse for showing **certain web pages** handled by the server, as well as for **email notifications**." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:105 +msgid "This playbook allows you to customize the default templates (see the [`synapse/res/templates` directory](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates))." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:107 +msgid "If template customization is enabled, the playbook will build a custom container image based on the official one." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:109 +msgid "Your custom templates need to live in a public or private git repository. This repository will be cloned during Synapse image customization (during the playbook run)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:111 +msgid "To enable template customizations, add the following configuration to your `vars.yml` file (adapt to your needs):" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:137 +msgid "As mentioned in Synapse's Templates documentation, Synapse will fall back to its own templates if a template is not found in that directory. Due to this, it's recommended to only store and maintain template files in your repository if you need to make custom changes. Other files (which you don't need to change), should not be duplicated, so that you don't need to worry about getting out-of-sync with the original Synapse templates." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:139 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:141 +msgid "There are some additional things you may wish to configure about the server." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:143 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:145 +msgid "`roles/custom/matrix-synapse/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:146 +msgid "`roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2` for the server's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_synapse_configuration_extension_yaml` variable" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:148 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:150 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:157 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:159 +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-synapse.md:161 +msgid "Usage" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:163 +msgid "Synapse Admin" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:165 +msgid "With [Synapse Admin](configuring-playbook-synapse-admin.md), certain Synapse administration tasks (managing users and rooms, etc.) can be performed via a web user-interace." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:167 +msgid "The playbook can install and configure Synapse Admin for you. For details about it, see [this page](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:169 +msgid "Monitoring Synapse Metrics with Prometheus and Grafana" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:171 +msgid "This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse." +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:173 +msgid "To enable Synapse runtime metrics see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook-synapse.md:175 +msgid "To enable Synapse usage metrics, see: [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-telemetry.pot b/i18n/translation-templates/docs/configuring-playbook-telemetry.pot new file mode 100644 index 000000000..e18e4a6c0 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-telemetry.pot @@ -0,0 +1,49 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-telemetry.md:1 +msgid "Enabling Telemetry for your Matrix server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:3 +msgid "By default, this playbook configures your Matrix homeserver to not send any telemetry data anywhere." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:5 +msgid "The [matrix.org](https://matrix.org) team would really appreciate it if you could help the project out by reporting usage statistics from your homeserver. Enabling usage statistics helps track the growth of the Matrix community, and helps to make Matrix a success." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:9 +msgid "If you'd like to **help by enabling submission of general usage statistics** for your homeserver, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:17 +msgid "Usage statistics being submitted" +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:19 +msgid "When enabled, your homeserver will regularly upload a few dozen statistics about your server. This data includes your homeserver's domain, the total number of users, the number of active users, the total number of rooms, and the number of messages sent per day on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook-telemetry.md:21 +msgid "See [Synapse's documentation](https://github.com/element-hq/synapse/blob/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md#available-statistics) or [Dendrite's documentation](https://github.com/element-hq/dendrite/blob/main/docs/FAQ.md#what-is-being-reported-when-enabling-phone-home-statistics) for the full list of statistics that are reported." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-traefik.pot b/i18n/translation-templates/docs/configuring-playbook-traefik.pot new file mode 100644 index 000000000..291f07bde --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-traefik.pot @@ -0,0 +1,134 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-traefik.md:1 +msgid "Configuring the Traefik reverse-proxy (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:3 +msgid "By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [ansible-role-traefik](https://github.com/mother-of-all-self-hosting/ansible-role-traefik) Ansible role." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:5 +msgid "This Ansible role support various configuration options. Feel free to consult its `default/main.yml` variables file." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:7 +msgid "Adjusting SSL certificate retrieval" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:9 +msgid "See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:11 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:17 +msgid "Disable access logs" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:19 +msgid "This will disable access logging." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:25 +msgid "Enable Traefik Dashboard" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:27 +msgid "This will enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:37 +msgid "[!WARNING] Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:40 +msgid "Additional configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:42 +msgid "Use the `traefik_configuration_extension_yaml` variable provided by the Traefik Ansible role to override or inject additional settings, even when no dedicated variable exists." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:52 +msgid "Reverse-proxying another service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:54 +msgid "The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:56 +msgid "However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:58 +msgid "Reverse-proxying a remote HTTP/HTTPS service behind Traefik" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:60 +msgid "If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://:` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:62 +msgid "Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:64 +msgid "First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:78 +msgid "If you are using a self-signed certificate on your webserver, you can tell Traefik to trust your own backend servers by adding more configuration to the static configuration file. If you do so, bear in mind the security implications of disabling the certificate validity checks towards your back end." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:92 +msgid "Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:111 +#: ../../../docs/configuring-playbook-traefik.md:134 +msgid "Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:113 +msgid "Reverse-proxying another service behind Traefik without terminating SSL" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:115 +msgid "If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file:" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:136 +msgid "With these changes, all TCP traffic will be reverse-proxied to the target system." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:138 +msgid "[!WARNING] This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```." +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:141 +msgid "Traefik behind a `proxy_protocol` reverse-proxy" +msgstr "" + +#: ../../../docs/configuring-playbook-traefik.md:143 +msgid "If you run a reverse-proxy which speaks `proxy_protocol`, add the following to your configuration file:" +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook-turn.pot b/i18n/translation-templates/docs/configuring-playbook-turn.pot new file mode 100644 index 000000000..434f1f4ea --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-turn.pot @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-turn.md:1 +msgid "Configuring a TURN server (optional, advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:3 +msgid "By default, this playbook installs and configures the [coturn](https://github.com/coturn/coturn) as a TURN server, through which clients can make audio/video calls even from [NAT](https://en.wikipedia.org/wiki/Network_address_translation)-ed networks. It also configures the Synapse chat server by default, so that it points to the coturn TURN server installed by the playbook. If that's okay, you can skip this document." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:5 +msgid "If you'd like to stop the playbook installing the server, see the section [below](#disabling-coturn) to check the configuration for disabling it." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:7 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:9 +msgid "Define public IP manually (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:11 +msgid "In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:13 +msgid "If you'd rather use a local IP for `ansible_host`, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_PUBLIC_IP` with the pubic IP used by the server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:19 +msgid "If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:21 +msgid "If your server has multiple external IP addresses, the coturn role offers a different variable for specifying them:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:28 +msgid "Change the authentication mechanism (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:30 +msgid "The playbook uses the [`auth-secret` authentication method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L186-L199) by default, but you may switch to the [`lt-cred-mech` method](https://github.com/coturn/coturn/blob/873cabd6a2e5edd7e9cc5662cac3ffe47fe87a8e/README.turnserver#L178) which [some report](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3191) to be working better." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:32 +msgid "To do so, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:38 +msgid "Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and coturn." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:40 +msgid "If [Jitsi](configuring-playbook-jitsi.md) is installed, note that switching to `lt-cred-mech` will disable the integration between Jitsi and your coturn server, as Jitsi seems to support the `auth-secret` authentication method only." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:42 +msgid "Use your own external coturn server (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:44 +msgid "If you'd like to use another TURN server (be it coturn or some other one), add the following configuration to your `vars.yml` file. Make sure to replace `HOSTNAME_OR_IP` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:58 +msgid "If you have or want to enable Jitsi, you might want to enable the TURN server there too. If you do not do it, Jitsi will fall back to an upstream service." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:65 +msgid "You can put multiple host/port combinations if you'd like to." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:67 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:69 +msgid "There are some additional things you may wish to configure about the TURN server." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:71 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:73 +msgid "`roles/custom/matrix-coturn/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:75 +msgid "Disabling coturn" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:77 +msgid "If, for some reason, you'd like for the playbook to not install coturn (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:83 +msgid "In that case, Synapse would not point to any coturn servers and audio/video call functionality may fail." +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:85 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:87 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:94 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-turn.md:96 +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 "" diff --git a/i18n/translation-templates/docs/configuring-playbook-user-verification-service.pot b/i18n/translation-templates/docs/configuring-playbook-user-verification-service.pot new file mode 100644 index 000000000..ed5328346 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook-user-verification-service.pot @@ -0,0 +1,229 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook-user-verification-service.md:1 +msgid "Setting up Matrix User Verification Service (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:3 +msgid "The playbook can install and configure [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) for you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:5 +msgid "See the project's [documentation](https://github.com/matrix-org/matrix-user-verification-service/blob/master/README.md) to learn what it does and why it might be useful to you." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:7 +msgid "Currently, the main purpose of this role is to allow Jitsi to authenticate Matrix users and check if they are authorized to join a conference. If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:9 +msgid "What does it do?" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:11 +msgid "UVS can be used to verify two claims:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:13 +msgid "(A) Whether a given OpenID token is valid for a given server and" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:14 +msgid "(B) whether a user is member of a given room and the corresponding PowerLevel" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:16 +msgid "Verifying an OpenID token ID done by finding the corresponding Homeserver via `/.well-known/matrix/server` for the given domain. The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this. By default, this playbook only checks against `matrix_server_fqn_matrix`. Therefore, the request will be made against the public `openid` API for `matrix_server_fqn_matrix`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:18 +msgid "Verifying RoomMembership and PowerLevel is done against `matrix_user_verification_service_uvs_homeserver_url` which is by default done via the docker network. UVS will verify the validity of the token beforehand though." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:20 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:22 +msgid "Open Matrix Federation port" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:24 +msgid "Enabling the UVS service will automatically reconfigure your Synapse homeserver to expose the `openid` API endpoints on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. If you enable the component, make sure that the port is accessible." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:26 +msgid "Install Matrix services" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:28 +msgid "UVS can only be installed after Matrix services are installed and running. If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) and come back here later." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:30 +msgid "Register a dedicated Matrix user (optional, recommended)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:32 +msgid "We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username). **Because UVS requires an access token as an admin user, that user needs to be an admin.**" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:34 +msgid "Generate a strong password for the user. You can create one with a command like `pwgen -s 64 1`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:36 +msgid "You can use the playbook to [register a new user](registering-users.md):" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:42 +msgid "Obtain an access token" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:44 +msgid "UVS requires an access token as an admin user to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:46 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:49 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:51 +msgid "To enable UVS, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `ACCESS_TOKEN_HERE` with the one created [above](#obtain-an-access-token)." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:59 +msgid "In the default configuration, the UVS Server is only reachable via the docker network, which is fine if e.g. Jitsi is also running in a container on the host. However, it is possible to expose UVS via setting `matrix_user_verification_service_container_http_host_bind_port`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:61 +msgid "Custom Auth Token (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:63 +msgid "It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header `Authorization: Bearer YOUR_TOKEN_HERE`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:65 +msgid "By default, the token (`YOUR_TOKEN_HERE`) will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:67 +msgid "To set your own token, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_TOKEN_HERE` with your own." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:73 +msgid "If a Jitsi instance is also managed by this playbook and [`matrix` authentication](configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix) is enabled there, this collection will automatically configure Jitsi to use the configured auth token." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:75 +msgid "Disable Authorization (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:77 +msgid "Authorization is enabled by default. To disable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:83 +msgid "Federation (optional)" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:85 +msgid "In theory (however currently untested), UVS can handle federation. To enable it, add the following configuration to your `vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:91 +msgid "This will instruct UVS to verify the OpenID token against any domain given in a request. Homeserver discovery is done via `.well-known/matrix/server` of the given domain." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:93 +msgid "Extending the configuration" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:95 +msgid "There are some additional things you may wish to configure about the component." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:97 +msgid "Take a look at:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:99 +msgid "`roles/custom/matrix-user-verification-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:101 +msgid "Installing" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:103 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:110 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service matrix-user-verification-service` or `just setup-all`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:112 +msgid "`just install-service matrix-user-verification-service` 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 "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:114 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:116 +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-user-verification-service`." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:118 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:120 +msgid "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:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:127 +msgid "TLS Certificate Checking" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:129 +msgid "If the Matrix Homeserver does not provide a valid TLS certificate, UVS will fail with the following error message:" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:131 +msgid "message: 'No response received: [object Object]'," +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:133 +msgid "This also applies to self-signed and Let's Encrypt staging certificates." +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:135 +msgid "To disable certificate validation altogether (INSECURE! Not suitable for production use!) set: `NODE_TLS_REJECT_UNAUTHORIZED=0`" +msgstr "" + +#: ../../../docs/configuring-playbook-user-verification-service.md:137 +msgid "Alternatively, it is possible to inject your own CA certificates into the container by mounting a PEM file with additional trusted CAs into the container and pointing the `NODE_EXTRA_CA_CERTS` environment variable to it." +msgstr "" diff --git a/i18n/translation-templates/docs/configuring-playbook.pot b/i18n/translation-templates/docs/configuring-playbook.pot new file mode 100644 index 000000000..0d05eeda4 --- /dev/null +++ b/i18n/translation-templates/docs/configuring-playbook.pot @@ -0,0 +1,541 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-playbook.md:1 +msgid "Configuring the playbook" +msgstr "" + +#: ../../../docs/configuring-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > Configuring the playbook > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:5 +msgid "If you've configured your DNS records and retrieved the playbook's source code to your computer, you can start configuring the playbook. To do so, follow these steps inside the playbook directory:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:7 +msgid "create a directory to hold your configuration (`mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\")" +msgstr "" + +#: ../../../docs/configuring-playbook.md:9 +msgid "copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:11 +msgid "edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file." +msgstr "" + +#: ../../../docs/configuring-playbook.md:13 +msgid "copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:15 +msgid "edit the inventory hosts file (`inventory/hosts`) to your liking" +msgstr "" + +#: ../../../docs/configuring-playbook.md:17 +msgid "(optional, advanced) you may wish to keep your `inventory` directory under version control with [git](https://git-scm.com/) or any other version-control system." +msgstr "" + +#: ../../../docs/configuring-playbook.md:19 +msgid "(optional, advanced) to run Ansible against multiple servers with different `sudo` credentials, you can copy the sample inventory hosts yaml file for each of your hosts: (`cp examples/host.yml inventory/my_host1.yml` …) and use the [`ansible-all-hosts.sh`](../bin/ansible-all-hosts.sh) script [in the installation step](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:21 +msgid "For a basic Matrix installation, that's all you need." +msgstr "" + +#: ../../../docs/configuring-playbook.md:23 +msgid "For a more custom setup, see the [Other configuration options](#other-configuration-options) below." +msgstr "" + +#: ../../../docs/configuring-playbook.md:25 +msgid "[▶️](installing.md) When you're done with all the configuration you'd like to do, continue with [Installing](installing.md)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:27 +msgid "Other configuration options" +msgstr "" + +#: ../../../docs/configuring-playbook.md:29 +msgid "**Note**: some of the roles like one for integrating Etherpad or Jitsi are managed by their own repositories, and the configuration files for them cannot be found locally (in `roles/galaxy`) until those roles are fetched from the upstream projects. Check [requirements.yml](../requirements.yml) for the URLs of those roles." +msgstr "" + +#: ../../../docs/configuring-playbook.md:31 +msgid "Core service adjustments" +msgstr "" + +#: ../../../docs/configuring-playbook.md:33 +msgid "Homeserver configuration:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:34 +msgid "[Configuring Synapse](configuring-playbook-synapse.md), if you're going with the default/recommended homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:36 +msgid "[Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:38 +msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:40 +msgid "[Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation" +msgstr "" + +#: ../../../docs/configuring-playbook.md:42 +msgid "Server components:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:43 +msgid "[Using an external PostgreSQL server](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:45 +msgid "[Configuring a TURN server](configuring-playbook-turn.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:47 +msgid "[Configuring the Traefik reverse-proxy](configuring-playbook-traefik.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:49 +msgid "[Using your own webserver, instead of this playbook's Traefik reverse-proxy](configuring-playbook-own-webserver.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:51 +msgid "[Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:53 +msgid "[Adjusting email-sending settings](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:55 +msgid "[Setting up ma1sd Identity Server](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:57 +msgid "[Setting up Dynamic DNS](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:59 +msgid "Server connectivity:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:60 +msgid "[Enabling Telemetry for your Matrix server](configuring-playbook-telemetry.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:62 +msgid "[Controlling Matrix federation](configuring-playbook-federation.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:64 +msgid "Clients" +msgstr "" + +#: ../../../docs/configuring-playbook.md:66 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/configuring-playbook.md:68 +msgid "[Configuring Element Web](configuring-playbook-client-element-web.md), if you're going with the default/recommended client" +msgstr "" + +#: ../../../docs/configuring-playbook.md:70 +msgid "[Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/configuring-playbook.md:72 +msgid "[Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface" +msgstr "" + +#: ../../../docs/configuring-playbook.md:74 +msgid "[Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:76 +msgid "Authentication and user-related" +msgstr "" + +#: ../../../docs/configuring-playbook.md:78 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/configuring-playbook.md:80 +msgid "[Setting up Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (Next-generation auth for Matrix, based on OAuth 2.0/OIDC)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:82 +msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:84 +msgid "[Setting up Synapse Admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:86 +msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:88 +msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:90 +msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:92 +msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:94 +msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:96 +msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:98 +msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:100 +msgid "File Storage" +msgstr "" + +#: ../../../docs/configuring-playbook.md:102 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/configuring-playbook.md:104 +msgid "[Storing Matrix media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:106 +msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:108 +msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:110 +msgid "Bridging other networks" +msgstr "" + +#: ../../../docs/configuring-playbook.md:112 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/configuring-playbook.md:114 +msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges" +msgstr "" + +#: ../../../docs/configuring-playbook.md:116 +msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:118 +msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:120 +msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:122 +msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:124 +msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:126 +msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:128 +msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:130 +msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:132 +msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:134 +msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:136 +msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:138 +msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:140 +msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:142 +msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:144 +msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:146 +msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:148 +msgid "[Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira)." +msgstr "" + +#: ../../../docs/configuring-playbook.md:150 +msgid "[Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:152 +msgid "[Setting up MX Puppet Instagram bridging](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:154 +msgid "[Setting up MX Puppet Twitter bridging](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:156 +msgid "[Setting up MX Puppet Discord bridging](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:158 +msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:160 +msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:162 +msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:164 +msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:166 +msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:168 +msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:170 +msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:172 +msgid "Bots" +msgstr "" + +#: ../../../docs/configuring-playbook.md:174 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:176 +msgid "[Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:178 +msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff" +msgstr "" + +#: ../../../docs/configuring-playbook.md:180 +msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users" +msgstr "" + +#: ../../../docs/configuring-playbook.md:182 +msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/configuring-playbook.md:184 +msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:186 +msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot" +msgstr "" + +#: ../../../docs/configuring-playbook.md:188 +msgid "[Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer" +msgstr "" + +#: ../../../docs/configuring-playbook.md:190 +msgid "[Setting up Draupnir for all/D4A](configuring-playbook-appservice-draupnir-for-all.md) — like the [Draupnir bot](configuring-playbook-bot-draupnir.md) mentioned above, but running in appservice mode and supporting multiple instances" +msgstr "" + +#: ../../../docs/configuring-playbook.md:192 +msgid "[Setting up Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room" +msgstr "" + +#: ../../../docs/configuring-playbook.md:194 +msgid "Administration" +msgstr "" + +#: ../../../docs/configuring-playbook.md:196 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/configuring-playbook.md:198 +msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:200 +msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:202 +msgid "[Enabling metrics and graphs for NginX logs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:204 +msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:206 +msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:208 +msgid "Backups:" +msgstr "" + +#: ../../../docs/configuring-playbook.md:209 +msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database" +msgstr "" + +#: ../../../docs/configuring-playbook.md:211 +msgid "[Setting up postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:213 +msgid "Other specialized services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:215 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/configuring-playbook.md:217 +msgid "[Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:219 +msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers" +msgstr "" + +#: ../../../docs/configuring-playbook.md:221 +msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:223 +msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:225 +msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:227 +msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/configuring-playbook.md:229 +msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:231 +msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:233 +msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:235 +msgid "Deprecated / unmaintained / removed services" +msgstr "" + +#: ../../../docs/configuring-playbook.md:237 +msgid "**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless." +msgstr "" + +#: ../../../docs/configuring-playbook.md:239 +msgid "[Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/configuring-playbook.md:241 +msgid "[Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:243 +msgid "[Setting up the Dimension integration manager](configuring-playbook-dimension.md) ([unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299); after [installing](installing.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:245 +msgid "[Setting up Email2Matrix](configuring-playbook-email2matrix.md) (unmaintained; the author suggests taking a look at [Postmoogle](https://github.com/etkecc/postmoogle) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-postmoogle.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:247 +msgid "[Setting up Go-NEB](configuring-playbook-bot-go-neb.md) (unmaintained; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-hookshot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:249 +msgid "[Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) (unmaintained; the bridge's author suggests taking a look at [baibot](https://github.com/etkecc/baibot) as a replacement, which can also be installed using [this playbook](configuring-playbook-bot-baibot.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:251 +msgid "[Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:253 +msgid "[Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (deprecated in favor of the Google Chat bridge with [mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:255 +msgid "[Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/configuring-playbook.md:257 +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 "" diff --git a/i18n/translation-templates/docs/configuring-well-known.pot b/i18n/translation-templates/docs/configuring-well-known.pot new file mode 100644 index 000000000..39428a23e --- /dev/null +++ b/i18n/translation-templates/docs/configuring-well-known.pot @@ -0,0 +1,253 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/configuring-well-known.md:1 +msgid "Configuring Service Discovery via .well-known" +msgstr "" + +#: ../../../docs/configuring-well-known.md:3 +msgid "This documentation page explains how to configure Service discovery via `/.well-known/` files. Service discovery is a way for the Matrix network to discover where a Matrix server is." +msgstr "" + +#: ../../../docs/configuring-well-known.md:5 +msgid "Types of well-known service discovery mechanism" +msgstr "" + +#: ../../../docs/configuring-well-known.md:7 +msgid "There are 3 types of well-known service discovery mechanism that Matrix makes use of:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:9 +msgid "(important) **Federation Server discovery** (`/.well-known/matrix/server`) — assists other servers in the Matrix network with finding your server. With the default playbook configuration specified on the sample `vars.yml` ([`examples/vars.yml`](../examples/vars.yml)), this is necessary for federation to work. Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/configuring-well-known.md:11 +msgid "(less important) **Client Server discovery** (`/.well-known/matrix/client`) — assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the \"Homeserver URL\" and \"Identity Server URL\" addresses." +msgstr "" + +#: ../../../docs/configuring-well-known.md:13 +msgid "(optional) **Support service discovery** (`/.well-known/matrix/support`) — returns server admin contact and support page of the domain." +msgstr "" + +#: ../../../docs/configuring-well-known.md:15 +msgid "Federation Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:17 +msgid "All services created by this playbook are meant to be installed on their own server (such as `matrix.example.com`), instead of the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:19 +msgid "As [per the Server-Server specification](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), in order to use a short Matrix user ID like `@alice:example.com` instead of `@alice:matrix.example.com` while hosting services on a subdomain such as `matrix.example.com`, the Matrix network needs to be instructed of [server delegation](howto-server-delegation.md) / redirection." +msgstr "" + +#: ../../../docs/configuring-well-known.md:21 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:23 +msgid "If you set up the DNS SRV record for server delegation instead, take a look at this documentation for more information: [Server Delegation via a DNS SRV record (advanced)](howto-server-delegation.md#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:25 +msgid "Client Server Discovery" +msgstr "" + +#: ../../../docs/configuring-well-known.md:27 +msgid "Client Server Service discovery lets various client programs which support it, to receive a full user ID (e.g. `@alice:example.com`) and determine where the Matrix server is automatically (e.g. `https://matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:29 +msgid "This lets you (and your users) easily connect to your Matrix server without having to customize connection URLs. When using client programs that support it, you won't need to point them to `https://matrix.example.com` in Custom Server options manually anymore. The connection URL would be discovered automatically from your full username." +msgstr "" + +#: ../../../docs/configuring-well-known.md:31 +msgid "Without /.well-known/matrix/client, the client will make the wrong \"homeserver URL\" assumption (it will default to using https://example.com, and users will need to notice and adjust it manually (changing it to https://matrix.example.com)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:33 +msgid "As [per the Client-Server specification](https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery) Matrix does Client Server service discovery using a `/.well-known/matrix/client` file hosted on the base domain (e.g. `example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:35 +msgid "However, this playbook installs your Matrix server on another domain (e.g. `matrix.example.com`) and not on the base domain (e.g. `example.com`), so it takes a little extra manual effort to set up the file." +msgstr "" + +#: ../../../docs/configuring-well-known.md:37 +msgid "Support Service Discovery (optional)" +msgstr "" + +#: ../../../docs/configuring-well-known.md:39 +msgid "[MSC 1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929), which was added to [Matrix Specification version v1.10](https://spec.matrix.org/v1.10/client-server-api/#getwell-knownmatrixsupport), specifies a way to add contact details of admins, as well as a link to a support page for users who are having issues with the service. Automated services may also index this information and use it for abuse reports, etc." +msgstr "" + +#: ../../../docs/configuring-well-known.md:41 +msgid "To enable it, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:62 +msgid "Installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:64 +msgid "To implement the service discovery mechanisms, your base domain's server (e.g. `example.com`) needs to run an HTTPS-capable webserver." +msgstr "" + +#: ../../../docs/configuring-well-known.md:66 +msgid "Serving the base domain from the Matrix server via the playbook" +msgstr "" + +#: ../../../docs/configuring-well-known.md:68 +msgid "If you don't have a server for your base domain at all, you can use the Matrix server for this. If you don't need the base domain (e.g. `example.com`) for anything else (hosting a website, etc.), you can point it to the Matrix server's IP address and tell the playbook to configure it." +msgstr "" + +#: ../../../docs/configuring-well-known.md:70 +msgid "**This is the easiest way to set up well-known serving** — letting the playbook handle the whole base domain for you (including SSL certificates, etc.) and take care to serve the appropriate well-known files automatically." +msgstr "" + +#: ../../../docs/configuring-well-known.md:72 +msgid "If you decide to go this route, you don't need to read ahead in this document. Instead, go to [Serving the base domain](configuring-playbook-base-domain-serving.md) to learn how the playbook can help you set it up." +msgstr "" + +#: ../../../docs/configuring-well-known.md:74 +msgid "However, if you need to use the base domain for other things, this method is less suitable than the one explained below." +msgstr "" + +#: ../../../docs/configuring-well-known.md:76 +msgid "Manually installing well-known files on the base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:78 +msgid "If you're managing the base domain by yourself somehow, you'll need to set up serving of some `/.well-known/matrix/*` files from it via HTTPS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:80 +msgid "To make things easy for you to set up, this playbook generates and hosts a few well-known files on the Matrix domain's server. The files are generated at the `/matrix/static-files/public/.well-known/matrix/` path on the server and hosted at URLs like `https://matrix.example.com/.well-known/matrix/server` and `https://matrix.example.com/.well-known/matrix/client`, even though this is the wrong place to host them." +msgstr "" + +#: ../../../docs/configuring-well-known.md:82 +msgid "You have two options when it comes to installing the files on the base domain's server:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:84 +msgid "(Option 1): **Copying the files manually** to your base domain's server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:86 +msgid "**Hint**: Option 2 is generally a better way to do this. Make sure to go with it, if possible." +msgstr "" + +#: ../../../docs/configuring-well-known.md:88 +msgid "All you need to do is:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:90 +msgid "copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:92 +msgid "set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element Web) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS." +msgstr "" + +#: ../../../docs/configuring-well-known.md:94 +msgid "This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server. It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again." +msgstr "" + +#: ../../../docs/configuring-well-known.md:96 +msgid "(Option 2): **Setting up reverse-proxying** of the well-known files from the base domain's server to the Matrix server" +msgstr "" + +#: ../../../docs/configuring-well-known.md:98 +msgid "This option is less fragile and generally better." +msgstr "" + +#: ../../../docs/configuring-well-known.md:100 +msgid "On the base domain's server (e.g. `example.com`), you can set up reverse-proxying, so that any access for the `/.well-known/matrix` location prefix is forwarded to the Matrix domain's server (e.g. `matrix.example.com`)." +msgstr "" + +#: ../../../docs/configuring-well-known.md:102 +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 "" + +#: ../../../docs/configuring-well-known.md:104 +msgid "**For nginx**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:121 +msgid "**For Apache2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:135 +msgid "**For Caddy 2**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:145 +msgid "**For HAProxy**, it would be something like this:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:164 +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 "" + +#: ../../../docs/configuring-well-known.md:170 +msgid "**For AWS CloudFront**" +msgstr "" + +#: ../../../docs/configuring-well-known.md:172 +msgid "Add a custom origin with matrix.example.com to your distribution" +msgstr "" + +#: ../../../docs/configuring-well-known.md:173 +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 "" + +#: ../../../docs/configuring-well-known.md:175 +msgid "Make sure to:" +msgstr "" + +#: ../../../docs/configuring-well-known.md:177 +msgid "**replace `example.com`** in the server configuration with your actual domain name" +msgstr "" + +#: ../../../docs/configuring-well-known.md:178 +msgid "and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be" +msgstr "" + +#: ../../../docs/configuring-well-known.md:180 +msgid "Confirming it works" +msgstr "" + +#: ../../../docs/configuring-well-known.md:182 +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 "" + +#: ../../../docs/configuring-well-known.md:184 +msgid "`https://example.com/.well-known/matrix/server`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:185 +msgid "`https://example.com/.well-known/matrix/client`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:186 +msgid "`https://example.com/.well-known/matrix/support`" +msgstr "" + +#: ../../../docs/configuring-well-known.md:188 +msgid "You can also check if everything is configured correctly, by [checking if services work](maintenance-checking-services.md)." +msgstr "" diff --git a/i18n/translation-templates/docs/container-images.pot b/i18n/translation-templates/docs/container-images.pot new file mode 100644 index 000000000..16c488a54 --- /dev/null +++ b/i18n/translation-templates/docs/container-images.pot @@ -0,0 +1,1165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/container-images.md:1 +msgid "Container images used by the playbook" +msgstr "" + +#: ../../../docs/container-images.md:3 +msgid "This page summarizes the container ([Docker](https://www.docker.com/)) images used by the playbook when setting up your server." +msgstr "" + +#: ../../../docs/container-images.md:5 +msgid "We try to stick to official images (provided by their respective projects) as much as possible." +msgstr "" + +#: ../../../docs/container-images.md:7 +msgid "Homeserver" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Service" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Container image" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Default?" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Description" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Synapse](configuring-playbook-synapse.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[element-hq/synapse](https://ghcr.io/element-hq/synapse)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "✅" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Conduit](configuring-playbook-conduit.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "❌" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[conduwuit](configuring-playbook-conduwuit.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Dendrite](configuring-playbook-dendrite.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse." +msgstr "" + +#: ../../../docs/container-images.md:16 +msgid "Clients" +msgstr "" + +#: ../../../docs/container-images.md:18 +msgid "Web clients for Matrix that you can host on your own domains." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Element Web](configuring-playbook-client-element-web.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Default Matrix web client, configured to connect to your own Synapse server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Hydrogen](configuring-playbook-client-hydrogen.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[element-hq/hydrogen-web](https://ghcr.io/element-hq/hydrogen-web)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Lightweight Matrix client with legacy and mobile browser support" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Cinny](configuring-playbook-client-cinny.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ajbura/cinny](https://hub.docker.com/r/ajbura/cinny)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Simple, elegant and secure web client" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[SchildiChat Web](configuring-playbook-client-schildichat-web.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/schildichat-web](https://ghcr.io/etkecc/schildichat-web)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Based on Element Web, with a more traditional instant messaging experience" +msgstr "" + +#: ../../../docs/container-images.md:27 +msgid "Server Components" +msgstr "" + +#: ../../../docs/container-images.md:29 +msgid "Services that run on the server to make the various parts of your installation work." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[PostgreSQL](configuring-playbook-external-postgres.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[postgres](https://hub.docker.com/_/postgres/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Database for Synapse. [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) is also possible." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[coturn](configuring-playbook-turn.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[coturn/coturn](https://hub.docker.com/r/coturn/coturn/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "STUN/TURN server for WebRTC audio/video calls" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Traefik](configuring-playbook-traefik.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Traefik](https://hub.docker.com/_/traefik/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Web server, listening on ports 80, 443 and 8448 — standing in front of all the other services. Using your own webserver [is possible](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Let's Encrypt](configuring-playbook-ssl-certificates.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[certbot/certbot](https://hub.docker.com/r/certbot/certbot/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "The [certbot](https://certbot.eff.org/) tool for obtaining SSL certificates from [Let's Encrypt](https://letsencrypt.org/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Exim](configuring-playbook-email.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ma1sd](configuring-playbook-ma1sd.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Matrix Identity Server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ddclient](configuring-playbook-dynamic-dns.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider" +msgstr "" + +#: ../../../docs/container-images.md:41 +msgid "Authentication" +msgstr "" + +#: ../../../docs/container-images.md:43 +msgid "Extend and modify how users are authenticated on your homeserver." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-synapse-rest-auth](configuring-playbook-rest-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "(N/A)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "REST authentication password provider module" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-synapse-shared-secret-auth](configuring-playbook-shared-secret-auth.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Password provider module" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-synapse-ldap3](configuring-playbook-ldap-auth.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "LDAP Auth password provider module" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[activism.international/matrix_ldap_registration_proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A proxy that handles Matrix registration requests and forwards them to LDAP." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-registration](configuring-playbook-matrix-registration.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[zeratax/matrix-registration](https://hub.docker.com/r/devture/zeratax-matrix-registration/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A simple python application to have a token based Matrix registration" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Matrix User Verification Service](configuring-playbook-user-verification-service.md) (UVS)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/matrix-user-verification-service](https://hub.docker.com/r/atrixdotorg/matrix-user-verification-service)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Service to verify details of a user based on an Open ID token" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse-simple-antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A spam checker module" +msgstr "" + +#: ../../../docs/container-images.md:55 +msgid "File Storage" +msgstr "" + +#: ../../../docs/container-images.md:57 +msgid "Use alternative file storage to the default `media_store` folder." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Goofys](configuring-playbook-s3-goofys.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ewoutp/goofys](https://hub.docker.com/r/ewoutp/goofys/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse-s3-storage-provider](configuring-playbook-s3.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-media-repo](configuring-playbook-matrix-media-repo.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[t2bot/matrix-media-repo](https://ghcr.io/t2bot/matrix-media-repo)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification." +msgstr "" + +#: ../../../docs/container-images.md:65 +msgid "Bridges" +msgstr "" + +#: ../../../docs/container-images.md:67 +msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-discord](configuring-playbook-bridge-mautrix-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/discord](https://mau.dev/mautrix/discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Discord](https://discord.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-slack](configuring-playbook-bridge-mautrix-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/slack](https://mau.dev/mautrix/slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Slack](https://slack.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-telegram](configuring-playbook-bridge-mautrix-telegram.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Telegram](https://telegram.org/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-gmessages](configuring-playbook-bridge-mautrix-gmessages.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Google Messages](https://messages.google.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [WhatsApp](https://www.whatsapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/wsproxy](https://mau.dev/mautrix/wsproxy/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to Android SMS or Apple iMessage" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Twitter](https://twitter.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/googlechat](https://mau.dev/mautrix/googlechat/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "mautrix-meta (for [Messenger](configuring-playbook-bridge-mautrix-meta-messenger.md) and [Instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/meta](https://mau.dev/mautrix/meta/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-signal](configuring-playbook-bridge-mautrix-signal.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/signal](https://mau.dev/mautrix/signal/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Signal](https://www.signal.org/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[beeper/linkedin](https://ghcr.io/beeper/linkedin)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [LinkedIn](https://www.linkedin.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +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 +msgid "[matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Discord](https://discordapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/matrix-appservice-slack](https://hub.docker.com/r/matrixdotorg/matrix-appservice-slack)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-hookshot](configuring-playbook-bridge-hookshot.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to SMS" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-wechat](configuring-playbook-bridge-wechat.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[lxduo/matrix-wechat](https://hub.docker.com/r/lxduo/matrix-wechat)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [WeChat](https://www.wechat.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Heisenbridge](configuring-playbook-bridge-heisenbridge.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[hif1/heisenbridge](https://hub.docker.com/r/hif1/heisenbridge)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[nodefyme/go-skype-bridge](https://hub.docker.com/r/nodefyme/go-skype-bridge)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Skype](https://www.skype.com)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet/slack/mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Slack](https://slack.com)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-instagram](configuring-playbook-bridge-mx-puppet-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[sorunome/mx-puppet-instagram](https://hub.docker.com/r/sorunome/mx-puppet-instagram)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/))" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[sorunome/mx-puppet-twitter](https://hub.docker.com/r/sorunome/mx-puppet-twitter)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge for Twitter-DMs ([Twitter](https://twitter.com/))" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet/discord/mx-puppet-discord](https://gitlab.com/mx-puppet/discord/mx-puppet-discord/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-groupme](configuring-playbook-bridge-mx-puppet-groupme.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[xangelix/mx-puppet-groupme](https://hub.docker.com/r/xangelix/mx-puppet-groupme)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [GroupMe](https://groupme.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mx-puppet-steam](configuring-playbook-bridge-mx-puppet-steam.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[icewind1991/mx-puppet-steam](https://hub.docker.com/r/icewind1991/mx-puppet-steam)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Steam](https://steamapp.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Postmoogle](configuring-playbook-bridge-postmoogle.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/postmoogle](https://github.com/etkecc/postmoogle/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Email to Matrix bridge" +msgstr "" + +#: ../../../docs/container-images.md:99 +msgid "Bots" +msgstr "" + +#: ../../../docs/container-images.md:101 +msgid "Bots provide various additional functionality to your installation." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[baibot](configuring-playbook-bot-baibot.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/baibot](https://ghcr.io/etkecc/baibot)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A bot that exposes the power of [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) to you" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[anoa/matrix-reminder-bot](https://hub.docker.com/r/anoa/matrix-reminder-bot)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bot for scheduling one-off & recurring reminders and alarms" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[moanos/matrix-registration-bot](https://hub.docker.com/r/moanos/matrix-registration-bot/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bot for invitations by creating and managing registration tokens" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[maubot](configuring-playbook-bot-maubot.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[dock.mau.dev/maubot/maubot](https://mau.dev/maubot/maubot/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A plugin-based Matrix bot system" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Honoroit](configuring-playbook-bot-honoroit.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/honoroit](https://github.com/etkecc/honoroit/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A helpdesk bot" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Mjolnir](configuring-playbook-bot-mjolnir.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/mjolnir](https://hub.docker.com/r/matrixdotorg/mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A moderation tool for Matrix" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Draupnir](configuring-playbook-bot-draupnir.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[gnuxie/draupnir](https://hub.docker.com/r/gnuxie/draupnir)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A moderation tool for Matrix (Fork of Mjolnir)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Buscarron](configuring-playbook-bot-buscarron.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/buscarron](https://ghcr.io/etkecc/buscarron)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Web forms (HTTP POST) to Matrix" +msgstr "" + +#: ../../../docs/container-images.md:114 +msgid "Administration" +msgstr "" + +#: ../../../docs/container-images.md:116 +msgid "Services that help you in administrating and monitoring your Matrix installation." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[metio/matrix-alertmanager-receiver](https://hub.docker.com/r/metio/matrix-alertmanager-receiver)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) client" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[element-hq/matrix-authentication-service](https://ghcr.io/element-hq/matrix-authentication-service)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "OAuth 2.0 and OpenID Provider server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse-admin](configuring-playbook-synapse-admin.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/synapse-admin](https://ghcr.io/etkecc/synapse-admin)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A web UI tool for administrating users and rooms on your Matrix server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Metrics and Graphs](configuring-playbook-prometheus-grafana.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[prom/prometheus](https://hub.docker.com/r/prom/prometheus/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Prometheus](https://prometheus.io) time-series database server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[prom/node-exporter](https://hub.docker.com/r/prom/node-exporter/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[grafana/grafana](https://hub.docker.com/r/grafana/grafana/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Graphing tool that works well with the above two images. Our playbook also adds two dashboards for [Synapse](https://github.com/element-hq/synapse/tree/master/contrib/grafana) and [Node Exporter](https://github.com/rfrail3/grafana-dashboards)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Metrics and Graphs](configuring-playbook-prometheus-nginxlog.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[martin-helmich/prometheus-nginxlog-exporter/exporter](https://ghcr.io/martin-helmich/prometheus-nginxlog-exporter/exporter)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Addon for Prometheus that gathers access logs from various nginx reverse-proxies" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Borg](configuring-playbook-backup-borg.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Backups" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[rageshake](configuring-playbook-rageshake.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-org/rageshake](https://ghcr.io/matrix-org/rageshake)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bug report server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." +msgstr "" + +#: ../../../docs/container-images.md:131 +msgid "Misc" +msgstr "" + +#: ../../../docs/container-images.md:133 +msgid "Various services that don't fit any other categories." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[sliding-sync](configuring-playbook-sliding-sync-proxy.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-org/sliding-sync](https://ghcr.io/matrix-org/sliding-sync)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Sliding Sync support for clients which require it (like old Element X versions, before it got switched to Simplified Sliding Sync)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse_auto_accept_invite](configuring-playbook-synapse-auto-accept-invite.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A Synapse module to automatically accept invites." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[synapse_auto_compressor](configuring-playbook-synapse-auto-compressor.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etke.cc/rust-synapse-compress-state](https://gitlab.com/etke.cc/rust-synapse-compress-state/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A cli tool that automatically compresses `state_groups` database table in background." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[devture/matrix-corporal](https://hub.docker.com/r/devture/matrix-corporal/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Reconciliator and gateway for a managed Matrix server" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Etherpad](configuring-playbook-etherpad.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[etherpad/etherpad](https://hub.docker.com/r/etherpad/etherpad/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "An open source collaborative text editor" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Jitsi](configuring-playbook-jitsi.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[jitsi/web](https://hub.docker.com/r/jitsi/web)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "the [Jitsi](https://jitsi.org/) web UI" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[jitsi/jicofo](https://hub.docker.com/r/jitsi/jicofo)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "the [Jitsi](https://jitsi.org/) Focus component" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[jitsi/prosody](https://hub.docker.com/r/jitsi/prosody)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "the [Jitsi](https://jitsi.org/) Prosody XMPP server component" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[jitsi/jvb](https://hub.docker.com/r/jitsi/jvb)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "the [Jitsi](https://jitsi.org/) Video Bridge component" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Cactus Comments](configuring-playbook-cactus-comments.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[cactuscomments/cactus-appservice](https://hub.docker.com/r/cactuscomments/cactus-appservice/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A federated comment system built on Matrix" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[joseluisq/static-web-server](https://hub.docker.com/r/joseluisq/static-web-server)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Pantalaimon](configuring-playbook-pantalaimon.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "An E2EE aware proxy daemon" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Sygnal](configuring-playbook-sygnal.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Reference Push Gateway for Matrix" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[ntfy](configuring-playbook-ntfy.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Self-hosted, UnifiedPush-compatible push notifications server" +msgstr "" + +#: ../../../docs/container-images.md:152 +msgid "Container images of deprecated / unmaintained services" +msgstr "" + +#: ../../../docs/container-images.md:154 +msgid "The list of the deprecated or unmaintained services is available [here](configuring-playbook.md#deprecated--unmaintained--removed-services)." +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Dimension](configuring-playbook-dimension.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "An open source integration manager for Matrix clients" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Email2Matrix](configuring-playbook-email2matrix.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge for relaying emails to Matrix rooms" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[Go-NEB](configuring-playbook-bot-go-neb.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "A multi functional bot written in Go" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Accessing ChatGPT via your favourite Matrix client" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Facebook](https://facebook.com/)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-hangouts](configuring-playbook-bridge-mautrix-hangouts.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "[mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry)" +msgstr "" + +#: ../../../docs/container-images.md:0 +msgid "Bridge to [Instagram](https://instagram.com/)" +msgstr "" diff --git a/i18n/translation-templates/docs/faq.pot b/i18n/translation-templates/docs/faq.pot new file mode 100644 index 000000000..96ada43bb --- /dev/null +++ b/i18n/translation-templates/docs/faq.pot @@ -0,0 +1,890 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/faq.md:1 +msgid "Frequently Asked Questions" +msgstr "" + +#: ../../../docs/faq.md:3 +msgid "This documentation page tries to answer various Frequently Asked Questions about all things [Matrix](https://matrix.org/), with a focus on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work))." +msgstr "" + +#: ../../../docs/faq.md:5 +msgid "This FAQ page does not intend to replace the [matrix.org FAQ](https://matrix.org/faq/) (please see that one too)." +msgstr "" + +#: ../../../docs/faq.md:7 +msgid "We've only started this FAQ recently, so it's still somewhat empty." +msgstr "" + +#: ../../../docs/faq.md:9 +msgid "Also, we encourage you to not dig yourself into a hole by reading way too much. When you've heard enough, proceed to installation. To get started, see [below](#how-do-i-run-the-installation) about our installation guides." +msgstr "" + +#: ../../../docs/faq.md:11 +msgid "Introductory" +msgstr "" + +#: ../../../docs/faq.md:13 +msgid "Where do I find more questions and answers about Matrix?" +msgstr "" + +#: ../../../docs/faq.md:15 +msgid "This is a Frequently Asked Questions page focused on this [Ansible](https://www.ansible.com/) playbook ([What is Ansible? How does it work?](#what-is-ansible-how-does-it-work)) for deploying a [Matrix](https://matrix.org/) server." +msgstr "" + +#: ../../../docs/faq.md:17 +msgid "For a lot more generic questions and answers, see the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:19 +msgid "What is Matrix? What is Element? What is Synapse? Why are you confusing me with so many terms?" +msgstr "" + +#: ../../../docs/faq.md:21 +msgid "[Matrix](https://matrix.org/) is a new type of realtime communication (chat) network, the closest analogy to which is probably \"email\"." +msgstr "" + +#: ../../../docs/faq.md:23 +msgid "You don't just use the \"email\" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these \"email\" protocols via some *client* program (Outlook, Thunderbird, some website, etc)." +msgstr "" + +#: ../../../docs/faq.md:25 +msgid "In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element Desktop on your desktop, but Fluffychat on your phone, etc)." +msgstr "" + +#: ../../../docs/faq.md:27 +msgid "Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`)." +msgstr "" + +#: ../../../docs/faq.md:29 +msgid "If someone else is hosting your Matrix server (you being `@alice:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android." +msgstr "" + +#: ../../../docs/faq.md:31 +msgid "If you'd like to host your own server (you being `@alice:example.com`), you'd need to set up a Matrix server program, like Synapse." +msgstr "" + +#: ../../../docs/faq.md:33 +msgid "In short:" +msgstr "" + +#: ../../../docs/faq.md:35 +msgid "Matrix is the protocol — a set of rules about how the chat network operates" +msgstr "" + +#: ../../../docs/faq.md:36 +msgid "Element is a client program you can use to participate on the Matrix chat network via some server (yours or someone else's). There are also [many other client programs](https://matrix.org/clients/)." +msgstr "" + +#: ../../../docs/faq.md:37 +msgid "Synapse is a server program you can use to host your very own Matrix server." +msgstr "" + +#: ../../../docs/faq.md:39 +msgid "This FAQ here mostly focuses on installing various Matrix services using the Ansible automation tool. You can learn much more about Matrix in the [matrix.org FAQ](https://matrix.org/faq/)." +msgstr "" + +#: ../../../docs/faq.md:41 +msgid "People I wish to talk to are not on Matrix. Can I talk to them?" +msgstr "" + +#: ../../../docs/faq.md:43 +msgid "You most likely can. Besides Matrix-native chats, Matrix also supports the concept of \"bridging\", which allows you to plug other networks into it." +msgstr "" + +#: ../../../docs/faq.md:45 +msgid "This Ansible playbook can help you install [tens of bridges for various networks](configuring-playbook.md#bridging-other-networks)." +msgstr "" + +#: ../../../docs/faq.md:47 +msgid "Besides setting up your own bridges (preferable), you can also use some [public bridges hosted by others](https://publiclist.anchel.nl/#bridges)." +msgstr "" + +#: ../../../docs/faq.md:49 +msgid "How do I get started with Matrix?" +msgstr "" + +#: ../../../docs/faq.md:51 +msgid "One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to other chat networks) is its decentralized nature. There's not just one entity (company, organization) controlling the servers. Rather there's thousands of servers operated by different people — one server being insecure, slow or disrespective toward its users does not affect the rest of the network. To participate in that decentralization in its fullest, consider hosting your own server or using some public server other than the largest/default one (`matrix.org`)." +msgstr "" + +#: ../../../docs/faq.md:53 +msgid "There are 3 ways to get into Matrix, depending on your technical ability and needs:" +msgstr "" + +#: ../../../docs/faq.md:55 +msgid "**using the existing default server** — the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting." +msgstr "" + +#: ../../../docs/faq.md:57 +msgid "**using some other server** — instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login." +msgstr "" + +#: ../../../docs/faq.md:59 +msgid "**using your own server** — running your own server puts you in ultimate control of your data. It also lets you have your own user IDs (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server)." +msgstr "" + +#: ../../../docs/faq.md:61 +msgid "How do I set up my own Matrix server?" +msgstr "" + +#: ../../../docs/faq.md:63 +msgid "Normally, you'd first choose the [Matrix](https://matrix.org/) server software you'd like to run. At the time of this writing (January/2021), there's only one fully-featured server program, so there's only one reasonable choice. That's [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:65 +msgid "There are [many guides about installing Synapse](https://matrix.org/docs/guides/#installing-synapse). Using this Ansible playbook is just one way of doing it." +msgstr "" + +#: ../../../docs/faq.md:67 +msgid "Naturally, we're biased, so our usual recommendation is to go with this [Ansible](https://www.ansible.com/) playbook, instead of installing Synapse (and many many other things around it) manually." +msgstr "" + +#: ../../../docs/faq.md:69 +msgid "To get started with the playbook, check out the [Quick start](quick-start.md) or full installation guide (starting at the [Prerequisites](prerequisites.md) page)." +msgstr "" + +#: ../../../docs/faq.md:71 +msgid "What is Ansible? How does it work?" +msgstr "" + +#: ../../../docs/faq.md:73 +msgid "[Ansible](https://www.ansible.com/) is an automation program. This \"playbook\" is a collection of tasks/scripts that will set up a [Matrix](https://matrix.org/) server for you, so you don't have to perform these tasks manually." +msgstr "" + +#: ../../../docs/faq.md:75 +msgid "We have written these automated tasks for you and all you need to do is execute them using the Ansible program." +msgstr "" + +#: ../../../docs/faq.md:77 +msgid "You can install Ansible and this playbook code repository on your own computer and tell it to install Matrix services at the server living at `matrix.example.com`. We recommend installing Ansible on your own computer." +msgstr "" + +#: ../../../docs/faq.md:79 +msgid "Alternatively, you can download Ansible and the playbook itself directly on the `matrix.example.com` server." +msgstr "" + +#: ../../../docs/faq.md:81 +msgid "To learn more, see our [dedicated Ansible documentation page](ansible.md)." +msgstr "" + +#: ../../../docs/faq.md:83 +msgid "What is `just`?" +msgstr "" + +#: ../../../docs/faq.md:85 +msgid "[`just`](https://github.com/casey/just) is a modern command-runner alternative to [make](https://www.gnu.org/software/make/). It can be used to invoke commands with less typing." +msgstr "" + +#: ../../../docs/faq.md:87 +msgid "The `just` utility executes shortcut commands (called \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile)." +msgstr "" + +#: ../../../docs/faq.md:89 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/faq.md:91 +msgid "The playbook also contains a `Makefile` for the `make` tool, but most of the just recipes are not available as targets in the `Makefile`." +msgstr "" + +#: ../../../docs/faq.md:93 +msgid "Why use this playbook and not install Synapse and other things manually?" +msgstr "" + +#: ../../../docs/faq.md:95 +msgid "There are various guides telling you how easy it is to install [Synapse](https://github.com/element-hq/synapse)." +msgstr "" + +#: ../../../docs/faq.md:97 +msgid "Reading the documentation of this Ansible playbook, you may also be thinking:" +msgstr "" + +#: ../../../docs/faq.md:99 +msgid "I don't know what [Ansible](https://www.ansible.com/) is. I don't know what [Docker](https://www.docker.com/) is. This looks more complicated." +msgstr "" + +#: ../../../docs/faq.md:101 +msgid "… so you may be leaning toward [installing Synapse manually](https://github.com/element-hq/synapse/blob/master/INSTALL.md)." +msgstr "" + +#: ../../../docs/faq.md:103 +msgid "The problem with a manual installation is:" +msgstr "" + +#: ../../../docs/faq.md:105 +msgid "Synapse is written in Python. If not packaged for your distribution, you'd need to install various Python modules, etc., and keep them updated." +msgstr "" + +#: ../../../docs/faq.md:106 +msgid "Synapse requires a [Postgres](https://www.postgresql.org/) database (it can run on SQLite, but that's very much discouraged). So you'd need to install Postgres as well." +msgstr "" + +#: ../../../docs/faq.md:107 +msgid "you may also need a reverse-proxy server in front of it (nginx, Apache), so you'd need to be familiar with that" +msgstr "" + +#: ../../../docs/faq.md:108 +msgid "SSL is required, so you'd need to obtain Let's Encrypt (or other free or non-free) certificates for one or more domain names. You'd need to be familiar with [certbot](https://certbot.eff.org/) (when using Let's Encrypt) or similar software." +msgstr "" + +#: ../../../docs/faq.md:109 +msgid "for each additional component you'd like to add (client like [Element](https://element.io), bridge to some other chat network, integration manager (stickers, other services, Identity Manager, etc.), you'll need to spend extra time installing and wiring it with the rest of the system in a way that works." +msgstr "" + +#: ../../../docs/faq.md:110 +msgid "you'll likely get slower updates for all of these components, depending on your distro packaging or your own time and ability" +msgstr "" + +#: ../../../docs/faq.md:112 +msgid "The playbook, on the other hand, installs a bunch of components for you by default, obtains SSL certificates for you, etc. If you'd like, you can enable various bridges and other services with very little effort. All the components are wired to work together." +msgstr "" + +#: ../../../docs/faq.md:114 +msgid "All services run in Docker containers (most being officially provided by each component's developers), so we're not at the mercy of distro packaging." +msgstr "" + +#: ../../../docs/faq.md:116 +msgid "Why use this playbook and not just use the Docker image directly?" +msgstr "" + +#: ../../../docs/faq.md:118 +msgid "Reasons are similar to the reasons for not installing manually." +msgstr "" + +#: ../../../docs/faq.md:120 +msgid "Besides Synapse, you'd need other things — a Postgres database, likely the [Element](https://element.io) client, etc., etc." +msgstr "" + +#: ../../../docs/faq.md:122 +msgid "Using the playbook, you get all these components in a way that works well together out of the box." +msgstr "" + +#: ../../../docs/faq.md:124 +msgid "Occasionally I see some people are talking about \"MDAD\". What is it?" +msgstr "" + +#: ../../../docs/faq.md:126 +msgid "It is the acronym of us: **m**atrix-**d**ocker-**a**nsible-**d**eploy." +msgstr "" + +#: ../../../docs/faq.md:128 +msgid "What's different about this Ansible playbook compared to [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy)?" +msgstr "" + +#: ../../../docs/faq.md:130 +msgid "This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EMnify/matrix-synapse-auto-deploy) Ansible deployment, but:" +msgstr "" + +#: ../../../docs/faq.md:132 +msgid "this one is a complete Ansible playbook (instead of just a role), so it's **easier to run** — especially for folks not familiar with Ansible" +msgstr "" + +#: ../../../docs/faq.md:134 +msgid "this one installs and hooks together **a lot more Matrix-related services** for you (see above)" +msgstr "" + +#: ../../../docs/faq.md:136 +msgid "this one **can be executed more than once** without causing trouble" +msgstr "" + +#: ../../../docs/faq.md:138 +msgid "works on various distros: **CentOS** (7.0+), Debian-based distributions (**Debian** 10/Buster+, **Ubuntu** 18.04+), **Archlinux**" +msgstr "" + +#: ../../../docs/faq.md:140 +msgid "this one installs everything in a single directory (`/matrix` by default) and **doesn't \"contaminate\" your server** with files all over the place" +msgstr "" + +#: ../../../docs/faq.md:142 +msgid "this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up [Traefik](https://doc.traefik.io/traefik/) for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)" +msgstr "" + +#: ../../../docs/faq.md:144 +msgid "this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](container-images.md))" +msgstr "" + +#: ../../../docs/faq.md:146 +msgid "this one retrieves and automatically renews free [Let's Encrypt](https://letsencrypt.org/) **SSL certificates** for you" +msgstr "" + +#: ../../../docs/faq.md:148 +msgid "this one optionally can store the `media_store` content repository files on [Amazon S3](https://aws.amazon.com/s3/) (but defaults to storing files on the server's filesystem)" +msgstr "" + +#: ../../../docs/faq.md:150 +msgid "this one optionally **allows you to use an external PostgreSQL server** for Synapse's database (but defaults to running one in a container)" +msgstr "" + +#: ../../../docs/faq.md:152 +msgid "helps you **import data from a previous installation** (so you can migrate your manual virtualenv/Docker setup to a more managed one)" +msgstr "" + +#: ../../../docs/faq.md:154 +msgid "this one is actually **maintained**" +msgstr "" + +#: ../../../docs/faq.md:156 +msgid "Server-related" +msgstr "" + +#: ../../../docs/faq.md:158 +msgid "What kind of server do I need to install Matrix using this Ansible playbook?" +msgstr "" + +#: ../../../docs/faq.md:160 +msgid "We list our server requirements in [Prerequisites](prerequisites.md)." +msgstr "" + +#: ../../../docs/faq.md:162 +msgid "Why not run Matrix on Kubernetes?" +msgstr "" + +#: ../../../docs/faq.md:164 +msgid "There's no reason not to run Matrix on [Kubernetes](https://kubernetes.io/)." +msgstr "" + +#: ../../../docs/faq.md:166 +msgid "However, that's overly complicated for thousands of us who just want to run a single small (and sometimes not so small) Matrix server, either using \"cloud\" servers or even a [Raspberry Pi](https://www.raspberrypi.org/) at home." +msgstr "" + +#: ../../../docs/faq.md:168 +msgid "For us, a Kubernetes-based setup which requires a cluster of multiple computers and is more technically-involved is a no-go." +msgstr "" + +#: ../../../docs/faq.md:170 +msgid "There are others working on automating a Matrix-on-Kubernetes setup, such as this [Helm](https://helm.sh/) chart: https://github.com/dacruz21/matrix-chart." +msgstr "" + +#: ../../../docs/faq.md:172 +msgid "Why don't you use Podman instead of Docker?" +msgstr "" + +#: ../../../docs/faq.md:174 +msgid "We like the philosophy of a daemonless container runtime, but [Podman](https://podman.io) is just not ready for our use case yet." +msgstr "" + +#: ../../../docs/faq.md:176 +msgid "Learn more about our past experiences/attempts to give Podman a chance, by reading [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/520)." +msgstr "" + +#: ../../../docs/faq.md:178 +msgid "In short, `alias podman=docker` is a lie (for us)." +msgstr "" + +#: ../../../docs/faq.md:180 +msgid "Why use Docker?" +msgstr "" + +#: ../../../docs/faq.md:182 +msgid "[Docker](https://www.docker.com/) is one of our 2 hard dependencies (the other one being [systemd](https://systemd.io/))." +msgstr "" + +#: ../../../docs/faq.md:184 +msgid "It lets us run services in an isolated manner and independently of the (usually old) packages available for distributions." +msgstr "" + +#: ../../../docs/faq.md:186 +msgid "It also lets us have a unified setup which runs the same across various supported distros (see them on [Prerequisites](prerequisites.md))." +msgstr "" + +#: ../../../docs/faq.md:188 +msgid "Is Docker a hard requirement?" +msgstr "" + +#: ../../../docs/faq.md:190 +msgid "Yes. See [Why don't you use Podman instead of Docker?](#why-dont-you-use-podman-instead-of-docker) for why we're not using another container runtime." +msgstr "" + +#: ../../../docs/faq.md:192 +msgid "All of our services run in containers. It's how we achieve predictability and also how we support tens of different services across lots of distros." +msgstr "" + +#: ../../../docs/faq.md:194 +msgid "The only thing we need on the distro is systemd and Python (we install Docker ourselves, unless you ask us not to)." +msgstr "" + +#: ../../../docs/faq.md:196 +msgid "Why don't you use docker-compose?" +msgstr "" + +#: ../../../docs/faq.md:198 +msgid "Instead of using [docker-compose](https://docs.docker.com/compose/), we prefer installing systemd services and scheduling those independently." +msgstr "" + +#: ../../../docs/faq.md:200 +msgid "There are people who have worked on turning this setup into a docker-compose-based one. See these experiments [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/64#issuecomment-603164625). There is also a demo project ([element-docker-demo](https://github.com/element-hq/element-docker-demo)) by Element." +msgstr "" + +#: ../../../docs/faq.md:202 +msgid "Can I run this on a distro without systemd?" +msgstr "" + +#: ../../../docs/faq.md:204 +msgid "No. [systemd](https://systemd.io/) is one of our 2 hard dependencies (the other one being [Docker](https://www.docker.com/))." +msgstr "" + +#: ../../../docs/faq.md:206 +msgid "Can I install this on a Raspberry Pi?" +msgstr "" + +#: ../../../docs/faq.md:208 +msgid "Yes, you can. See our [Alternative Architectures](alternative-architectures.md) documentation page." +msgstr "" + +#: ../../../docs/faq.md:210 +msgid "Whether a Raspberry Pi has enough power to give you a good experience is another question. It depends on your use case." +msgstr "" + +#: ../../../docs/faq.md:212 +msgid "Also see: [What kind of server specs do I need?](#what-kind-of-server-specs-do-i-need)." +msgstr "" + +#: ../../../docs/faq.md:214 +msgid "What kind of server specs do I need?" +msgstr "" + +#: ../../../docs/faq.md:216 +msgid "This largely depends on your use case. It's not so much the number of users that you plan to host, but rather the number of large rooms they will join." +msgstr "" + +#: ../../../docs/faq.md:218 +msgid "Federated rooms with lots of history and containing hundreds of other servers are very heavy CPU-wise and memory-wise." +msgstr "" + +#: ../../../docs/faq.md:220 +msgid "You can probably use a 1 CPU + 1GB memory server to host hundreds of local users just fine, but as soon as one of them joins a federated room like `#matrix:matrix.org` (Matrix HQ) or some IRC-bridged room (say `##linux`), your server will get the need for a lot more power (at least 2GB RAM, etc)." +msgstr "" + +#: ../../../docs/faq.md:222 +msgid "Running Matrix on a server with 1GB of memory is possible (especially if you disable some not-so-important services). See [How do I optimize this setup for a low-power server?](#how-do-i-optimize-this-setup-for-a-low-power-server)." +msgstr "" + +#: ../../../docs/faq.md:224 +msgid "**We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea." +msgstr "" + +#: ../../../docs/faq.md:226 +msgid "Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferrably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage." +msgstr "" + +#: ../../../docs/faq.md:228 +msgid "Can I run this in an LXC container?" +msgstr "" + +#: ../../../docs/faq.md:230 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/faq.md:232 +msgid "Configuration" +msgstr "" + +#: ../../../docs/faq.md:234 +msgid "Why install my server at matrix.example.com and not at the base domain?" +msgstr "" + +#: ../../../docs/faq.md:236 +msgid "It's the same with email servers. Your email address is likely `name@company.com`, not `name@mail.company.com`, even though it's `mail.company.com` that is really handling your data for `@company.com` email to work." +msgstr "" + +#: ../../../docs/faq.md:238 +msgid "Using a separate domain name is easier to manage (although it's a little hard to get right at first) and keeps your Matrix server isolated from your website (if you have one), from your email server (if you have one), etc. Therefore, this playbook sets up services on your Matrix server (`matrix.example.com`) by default." +msgstr "" + +#: ../../../docs/faq.md:240 +msgid "I don't control anything on the base domain and can't set up delegation to matrix.example.com. What do I do?" +msgstr "" + +#: ../../../docs/faq.md:242 +msgid "If you're not in control of your base domain (or the server handling it) at all, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:244 +msgid "I can't set up HTTPS on the base domain. How will I get Matrix federating?" +msgstr "" + +#: ../../../docs/faq.md:246 +msgid "If you really can't obtain an HTTPS certificate for your base domain, you can take a look at [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:248 +msgid "How do I install on matrix.example.com without involving the base domain?" +msgstr "" + +#: ../../../docs/faq.md:250 +msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:271 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/faq.md:278 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/faq.md:280 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/faq.md:282 +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/faq.md:284 +msgid "Without setting up [server delegation](howto-server-delegation.md) to `matrix.example.com`, your user IDs will be like `@alice:matrix.example.com`. This is equivalent to having an email address like `bob@mail.company.com`, instead of just `bob@company.com`." +msgstr "" + +#: ../../../docs/faq.md:286 +msgid "I don't use the base domain for anything. How am I supposed to set up Server Delegation for Matrix services?" +msgstr "" + +#: ../../../docs/faq.md:288 +msgid "If you don't use your base domain for anything, then it's hard for you to \"serve files over HTTPS\" on it — something we ask you to do for the [.well-known](configuring-well-known.md) setup (needed for [Server Delegation](howto-server-delegation.md))." +msgstr "" + +#: ../../../docs/faq.md:290 +msgid "Luckily, the playbook can set up your Matrix server (at `matrix.example.com`) to also handle traffic for the base domain (`example.com`)." +msgstr "" + +#: ../../../docs/faq.md:292 +msgid "See [Serving the base domain](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/faq.md:294 +msgid "How do I optimize this setup for a low-power server?" +msgstr "" + +#: ../../../docs/faq.md:296 +msgid "You can disable some not-so-important services to save on memory." +msgstr "" + +#: ../../../docs/faq.md:318 +msgid "You can also consider implementing a restriction on room complexity, in order to prevent users from joining very heavy rooms:" +msgstr "" + +#: ../../../docs/faq.md:328 +msgid "If you've installed [Jitsi](configuring-playbook-jitsi.md) (not installed by default), there are additional optimizations listed on its documentation page that you can perform." +msgstr "" + +#: ../../../docs/faq.md:330 +msgid "I already have Docker on my server. Can you stop installing Docker via the playbook?" +msgstr "" + +#: ../../../docs/faq.md:332 +msgid "Yes, we can stop installing Docker ourselves. Just use this in your `vars.yml` file:" +msgstr "" + +#: ../../../docs/faq.md:338 +msgid "I run another webserver on the same server where I wish to install Matrix. What now?" +msgstr "" + +#: ../../../docs/faq.md:340 +msgid "By default, we install a webserver for you ([Traefik](https://doc.traefik.io/traefik/)), but you can also use [your own webserver](configuring-playbook-own-webserver.md)." +msgstr "" + +#: ../../../docs/faq.md:342 +msgid "How is the effective configuration determined?" +msgstr "" + +#: ../../../docs/faq.md:344 +msgid "Configuration variables are defined in multiple places in this playbook and are considered in this order:" +msgstr "" + +#: ../../../docs/faq.md:346 +msgid "there are defaults coming from each role's defaults file (`role/matrix*/defaults/main.yml`). These variable values aim to be good defaults for when the role is used standalone (outside of this collection of roles, also called playbook)." +msgstr "" + +#: ../../../docs/faq.md:348 +msgid "then, there are overrides in `group_vars/matrix_servers`, which aim to adjust these \"standalone role defaults\" to something which better fits the playbook in its entirety." +msgstr "" + +#: ../../../docs/faq.md:350 +msgid "finally, there's your `inventory/host_vars/matrix.example.com/vars.yml` file, which is the ultimate override" +msgstr "" + +#: ../../../docs/faq.md:352 +msgid "What configuration variables are available?" +msgstr "" + +#: ../../../docs/faq.md:354 +msgid "You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`)." +msgstr "" + +#: ../../../docs/faq.md:356 +msgid "As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`." +msgstr "" + +#: ../../../docs/faq.md:358 +msgid "Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.example.com/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features)." +msgstr "" + +#: ../../../docs/faq.md:360 +#: ../../../docs/faq.md:372 +msgid "**Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`)." +msgstr "" + +#: ../../../docs/faq.md:362 +msgid "I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?" +msgstr "" + +#: ../../../docs/faq.md:364 +msgid "The playbook doesn't aim to expose all configuration settings for all services using variables. Doing so would amount to hundreds of variables that we have to create and maintain." +msgstr "" + +#: ../../../docs/faq.md:366 +msgid "Instead, we only try to make some important basics configurable using dedicated variables you can see in each role. See [What configuration variables are available?](#what-configuration-variables-are-available)." +msgstr "" + +#: ../../../docs/faq.md:368 +msgid "Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_configuration_extension_yaml` (or `matrix_SOME_COMPONENT_configuration_extension_json`) variable, which can be used to override the configuration." +msgstr "" + +#: ../../../docs/faq.md:370 +msgid "Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable and an example for how use it." +msgstr "" + +#: ../../../docs/faq.md:374 +msgid "Installation" +msgstr "" + +#: ../../../docs/faq.md:376 +msgid "How do I run the installation?" +msgstr "" + +#: ../../../docs/faq.md:378 +msgid "See [Installing](installing.md) to learn how to use Ansible to install Matrix services." +msgstr "" + +#: ../../../docs/faq.md:380 +msgid "However, we recommend you to follow our installation guide, instead of jumping straight to installing." +msgstr "" + +#: ../../../docs/faq.md:382 +msgid "There are two guides available:" +msgstr "" + +#: ../../../docs/faq.md:384 +msgid "⚡ **[Quick start](quick-start.md)** (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with \"opinionated defaults\"." +msgstr "" + +#: ../../../docs/faq.md:386 +msgid "**Full installation guide (for advanced users)**: if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the **[Prerequisites](prerequisites.md)** documentation page." +msgstr "" + +#: ../../../docs/faq.md:388 +msgid "I installed Synapse some other way. Can I migrate such a setup to the playbook?" +msgstr "" + +#: ../../../docs/faq.md:390 +msgid "Yes, you can." +msgstr "" + +#: ../../../docs/faq.md:392 +msgid "You generally need to do a playbook installation. It's recommended to follow the full installation guide (starting at the [Prerequisites](prerequisites.md) page), not the [Quick start](quick-start.md) guide. The full installation guide will tell you when it's time to import your existing data into the newly-prepared server." +msgstr "" + +#: ../../../docs/faq.md:394 +msgid "This Ansible playbook guides you into installing a server for `example.com` (user IDs are like this: `@alice:example.com`), while the server is at `matrix.example.com`. If your existing setup has a server name (`server_name` configuration setting in Synapse's `homeserver.yaml` file) other than the base `example.com`, you may need to tweak some additional variables. This FAQ entry may be of use if you're dealing with a more complicated setup — [How do I install on matrix.example.com without involving the base domain?](#how-do-i-install-on-matrixexamplecom-without-involving-the-base-domain)" +msgstr "" + +#: ../../../docs/faq.md:396 +msgid "After configuring the playbook and installing and **before starting** services (done with `ansible-playbook … --tags=start`) you'd import [your SQLite](importing-synapse-sqlite.md) (or [Postgres](importing-postgres.md)) database and also [import your media store](importing-synapse-media-store.md)." +msgstr "" + +#: ../../../docs/faq.md:398 +msgid "I've downloaded Ansible and the playbook on the server. It can't connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:400 +msgid "If you're using the playbook directly on the server, then Ansible doesn't need to connect using SSH." +msgstr "" + +#: ../../../docs/faq.md:402 +msgid "It can perform a local connection instead. Just set `ansible_connection=local` at the end of the server line in `inventory/hosts` and re-run the playbook." +msgstr "" + +#: ../../../docs/faq.md:404 +msgid "If you're running Ansible from within a container (one of the possibilities we list on our [dedicated Ansible documentation page](ansible.md)), then using `ansible_connection=local` is not possible." +msgstr "" + +#: ../../../docs/faq.md:406 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/faq.md:408 +msgid "I get \"Error response from daemon: configured logging driver does not support reading\" when I do `docker logs matrix-synapse`." +msgstr "" + +#: ../../../docs/faq.md:410 +msgid "See [How can I see the logs?](#how-can-i-see-the-logs)." +msgstr "" + +#: ../../../docs/faq.md:412 +msgid "How can I see the logs?" +msgstr "" + +#: ../../../docs/faq.md:414 +msgid "We utilize [systemd/journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Description) for logging." +msgstr "" + +#: ../../../docs/faq.md:416 +msgid "To see logs for Synapse, run `journalctl -fu matrix-synapse.service`. You may wish to see the [manual page for journalctl](https://www.commandlinux.com/man-page/man1/journalctl.1.html)." +msgstr "" + +#: ../../../docs/faq.md:418 +msgid "Available service names can be seen by doing `ls /etc/systemd/system/matrix*.service` on the server." +msgstr "" + +#: ../../../docs/faq.md:420 +msgid "Some services also log to files in `/matrix/*/data/..`, but we're slowly moving away from that." +msgstr "" + +#: ../../../docs/faq.md:422 +msgid "We also disable Docker logging, so you can't use `docker logs matrix-*` either. We do this to prevent useless double (or even triple) logging and to avoid having to rotate log files." +msgstr "" + +#: ../../../docs/faq.md:424 +msgid "We just simply delegate logging to journald and it takes care of persistence and expiring old data." +msgstr "" + +#: ../../../docs/faq.md:426 +msgid "Also see: [How long do systemd/journald logs persist for?](#how-long-do-systemdjournald-logs-persist-for)" +msgstr "" + +#: ../../../docs/faq.md:428 +msgid "How long do systemd/journald logs persist for?" +msgstr "" + +#: ../../../docs/faq.md:430 +msgid "On some distros, the journald logs are just in-memory and not persisted to disk." +msgstr "" + +#: ../../../docs/faq.md:432 +msgid "Consult (and feel free to adjust) your distro's journald logging configuration in `/etc/systemd/journald.conf`." +msgstr "" + +#: ../../../docs/faq.md:434 +msgid "To enable persistence and put some limits on how large the journal log files can become, adjust your configuration like this:" +msgstr "" + +#: ../../../docs/faq.md:445 +msgid "Maintenance" +msgstr "" + +#: ../../../docs/faq.md:447 +msgid "Do I need to do anything to keep my Matrix server updated?" +msgstr "" + +#: ../../../docs/faq.md:449 +msgid "Yes. We don't update anything for you automatically." +msgstr "" + +#: ../../../docs/faq.md:451 +msgid "See our [documentation page about upgrading services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/faq.md:453 +msgid "How do I move my existing installation to another (VM) server?" +msgstr "" + +#: ../../../docs/faq.md:455 +msgid "If you have an existing installation done using this Ansible playbook, you can easily migrate that to another server using [our dedicated server migration guide](maintenance-migrating.md)." +msgstr "" + +#: ../../../docs/faq.md:457 +msgid "If your previous installation is done in some other way (not using this Ansible playbook), see [I installed Synapse some other way. Can I migrate such a setup to the playbook?](#i-installed-synapse-some-other-way-can-i-migrate-such-a-setup-to-the-playbook)." +msgstr "" + +#: ../../../docs/faq.md:459 +msgid "How do I back up the data on my server?" +msgstr "" + +#: ../../../docs/faq.md:461 +msgid "We haven't documented this properly yet, but the general advice is to:" +msgstr "" + +#: ../../../docs/faq.md:463 +msgid "back up Postgres by making a database dump. See [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql)" +msgstr "" + +#: ../../../docs/faq.md:465 +msgid "back up all `/matrix` files, except for `/matrix/postgres/data` (you already have a dump) and `/matrix/postgres/data-auto-upgrade-backup` (this directory may exist and contain your old data if you've [performed a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql))." +msgstr "" + +#: ../../../docs/faq.md:467 +msgid "You can later restore these by:" +msgstr "" + +#: ../../../docs/faq.md:469 +msgid "Restoring the `/matrix` directory and files on the new server manually" +msgstr "" + +#: ../../../docs/faq.md:470 +msgid "Following the instruction described on [Installing a server into which you'll import old data](installing.md#installing-a-server-into-which-youll-import-old-data)" +msgstr "" + +#: ../../../docs/faq.md:472 +msgid "If your server's IP address has changed, you may need to [set up DNS](configuring-dns.md) again." +msgstr "" + +#: ../../../docs/faq.md:474 +msgid "What is this `/matrix/postgres/data-auto-upgrade-backup` directory that is taking up so much space?" +msgstr "" + +#: ../../../docs/faq.md:476 +msgid "When you [perform a major Postgres upgrade](maintenance-postgres.md#upgrading-postgresql), we save the the old data files in `/matrix/postgres/data-auto-upgrade-backup`, just so you could easily restore them should something have gone wrong." +msgstr "" + +#: ../../../docs/faq.md:478 +msgid "After verifying that everything still works after the Postgres upgrade, you can safely delete `/matrix/postgres/data-auto-upgrade-backup`" +msgstr "" + +#: ../../../docs/faq.md:480 +msgid "How do I debug or force SSL certificate renewal?" +msgstr "" + +#: ../../../docs/faq.md:482 +msgid "SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server." +msgstr "" + +#: ../../../docs/faq.md:484 +msgid "If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`)." +msgstr "" + +#: ../../../docs/faq.md:486 +msgid "If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way." +msgstr "" + +#: ../../../docs/faq.md:488 +msgid "Miscellaneous" +msgstr "" + +#: ../../../docs/faq.md:490 +msgid "I would like to see this favorite service of mine integrated and become available on my Matrix server. How can I request it?" +msgstr "" + +#: ../../../docs/faq.md:492 +msgid "You can freely create an issue for feature request on the repository at GitHub [here](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/new). Note this is a community project with no financial backing, and there is not assurance that your request would be eventually picked up by others and the requested feature would become available. The easiest way to get a feature into this project is to just develop it yourself." +msgstr "" + +#: ../../../docs/faq.md:494 +msgid "Also, please note that this playbook intends to focus solely on Matrix and Matrix-related services. If your request is not specific to Matrix, you may as well to consider to submit it to the [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), maintained by the members behind this matrix-docker-ansible-deploy project. [This document on the interoperability](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md) describes how to deploy services along with the Matrix services easily." +msgstr "" diff --git a/i18n/translation-templates/docs/getting-the-playbook.pot b/i18n/translation-templates/docs/getting-the-playbook.pot new file mode 100644 index 000000000..8138929a9 --- /dev/null +++ b/i18n/translation-templates/docs/getting-the-playbook.pot @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/getting-the-playbook.md:1 +msgid "Getting the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > Getting the playbook > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:5 +msgid "This Ansible playbook is meant to be executed on your own computer (not the Matrix server)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:7 +msgid "In special cases (if your computer cannot run Ansible, etc.) you may put the playbook on the server as well." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:9 +msgid "You can retrieve the playbook's source code by:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:11 +msgid "[Using git to get the playbook](#using-git-to-get-the-playbook) (recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:13 +msgid "[Downloading the playbook as a ZIP archive](#downloading-the-playbook-as-a-zip-archive) (not recommended)" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:15 +msgid "Using git to get the playbook" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:17 +msgid "We recommend using the [git](https://git-scm.com/) tool to get the playbook's source code, because it lets you easily keep up to date in the future when [Maintaining services](maintenance-upgrading-services.md)." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:19 +msgid "Once you've installed git on your computer, you can go to any directory of your choosing and run the following command to retrieve the playbook's source code:" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:25 +msgid "This will create a new `matrix-docker-ansible-deploy` directory. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:27 +msgid "Downloading the playbook as a ZIP archive" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:29 +msgid "Alternatively, you can download the playbook as a ZIP archive. This is not recommended, as it's not easy to keep up to date with future updates. We suggest you [use git](#using-git-to-get-the-playbook) instead." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:31 +msgid "The latest version is always at the following URL: https://github.com/spantaleev/matrix-docker-ansible-deploy/archive/master.zip" +msgstr "" + +#: ../../../docs/getting-the-playbook.md:33 +msgid "You can extract this archive anywhere. You'll get a directory called `matrix-docker-ansible-deploy-master`. You're supposed to execute all other installation commands inside that directory." +msgstr "" + +#: ../../../docs/getting-the-playbook.md:37 +msgid "[▶️](configuring-playbook.md) No matter which method you've used to download the playbook, you can proceed by [Configuring the playbook](configuring-playbook.md)." +msgstr "" diff --git a/i18n/translation-templates/docs/howto-server-delegation.pot b/i18n/translation-templates/docs/howto-server-delegation.pot new file mode 100644 index 000000000..0808068c2 --- /dev/null +++ b/i18n/translation-templates/docs/howto-server-delegation.pot @@ -0,0 +1,185 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/howto-server-delegation.md:1 +msgid "Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:3 +msgid "By default, this playbook sets up services on your Matrix server (`matrix.example.com`). To have this server officially be responsible for Matrix services for the base domain (`example.com`), you need to set up server delegation / redirection." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:5 +msgid "Server delegation can be configured in either of these ways:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:7 +msgid "[Setting up a `/.well-known/matrix/server` file](#server-delegation-via-a-well-known-file) on the base domain (`example.com`)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:8 +msgid "[Setting up a `_matrix._tcp` DNS SRV record](#server-delegation-via-a-dns-srv-record-advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:10 +msgid "Both methods have their place and will continue to do so. You only need to use just one of these delegation methods." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:12 +msgid "For simplicity reasons, this playbook recommends you to set up server delegation via a `/.well-known/matrix/server` file. However, that method may have some downsides that are not to your liking. Hence this guide about alternative ways to set up Server Delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:14 +msgid "**Note**: as an alternative, it is possible to install the server such that it uses only the `matrix.example.com` domain (instead of identifying as the shorter base domain — `example.com`). This should be helpful if you are not in control of anything on the base domain (`example.com`). In this case, you would not need to configure server delegation, but you would need to add other configuration. 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 "" + +#: ../../../docs/howto-server-delegation.md:16 +msgid "Server Delegation via a well-known file" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:18 +msgid "This playbook recommends you to set up server delegation by means of a `/.well-known/matrix/server` file served from the base domain (`example.com`), as this is the most straightforward way to set up the delegation." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:20 +msgid "To configure server delegation with the well-known file, check this section on [Configuring Service Discovery via .well-known](configuring-well-known.md): [Installing well-known files on the base domain's server](configuring-well-known.md#installing-well-known-files-on-the-base-domain-s-server)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:22 +msgid "Downsides of well-known-based Server Delegation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:24 +msgid "Server Delegation by means of a `/.well-known/matrix/server` file is the most straightforward, but suffers from the following downsides:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:26 +msgid "you need to have a working HTTPS server for the base domain (`example.com`). If you don't have any server for the base domain at all, you can easily solve it by making the playbook [serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:28 +msgid "any downtime on the base domain (`example.com`) or network trouble between the Matrix subdomain (`matrix.example.com`) and the base `example.com` may cause Matrix Federation outages. As the [Server-Server spec says](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery):" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:30 +msgid "Errors are recommended to be cached for up to an hour, and servers are encouraged to exponentially back off for repeated failures." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:32 +msgid "**For most people, this is a reasonable tradeoff** given that it's easy and straightforward to set up. We recommend you stay on this path." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:34 +msgid "Otherwise, you can decide to go against the default for this playbook, and instead set up [Server Delegation via a DNS SRV record (advanced)](#server-delegation-via-a-dns-srv-record-advanced) (much more complicated)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:36 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:38 +msgid "**Note**: doing Server Delegation via a DNS SRV record is a more **advanced** way to do it and is not the default for this playbook. This is usually **much more complicated** to set up, so **we don't recommend it**. If you're not an experienced sysadmin, you'd better stay away from this." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:40 +msgid "As per the [Server-Server spec](https://matrix.org/docs/spec/server_server/r0.1.0.html#server-discovery), it's possible to do Server Delegation using only a SRV record (without a `/.well-known/matrix/server` file)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:42 +msgid "This prevents you from suffering the [Downsides of well-known-based Server Delegation](#downsides-of-well-known-based-server-delegation)." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:44 +msgid "To use DNS SRV record validation, you need to:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:46 +msgid "ensure that `/.well-known/matrix/server` is **not served** from the base domain, as that would interfere with DNS SRV record Server Delegation. To make the playbook **not** generate and serve the file, use the following configuration: `matrix_static_files_file_matrix_server_enabled: false`." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:48 +msgid "ensure that you have a `_matrix._tcp` DNS SRV record for your base domain (`example.com`) with a value of `10 0 8448 matrix.example.com`" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:50 +msgid "ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `example.com` (not `matrix.example.com`!). Getting this certificate to the `matrix.example.com` server may be complicated. The playbook's automatic SSL obtaining/renewal flow will likely not work and you'll need to copy certificates around manually. See below." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:52 +msgid "For more details on how to configure the playbook to work with SRV delegation, take a look at this documentation: [Server Delegation via a DNS SRV record (advanced)](howto-srv-server-delegation.md)" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:54 +msgid "Obtain certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:56 +msgid "How you can obtain a valid certificate for `example.com` on the `matrix.example.com` server is up to you." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:58 +msgid "If `example.com` and `matrix.example.com` are hosted on the same machine, you can let the playbook obtain the certificate for you, by following our [Obtaining SSL certificates for additional domains](configuring-playbook-ssl-certificates.md#obtaining-ssl-certificates-for-additional-domains) guide." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:60 +msgid "If `example.com` and `matrix.example.com` are not hosted on the same machine, you can copy over the certificate files manually. Don't forget that they may get renewed once in a while, so you may also have to transfer them periodically. How often you do that is up to you, as long as the certificate files don't expire." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:62 +msgid "Serving the Federation API with your certificates" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:64 +msgid "Regardless of which method for obtaining certificates you've used, once you've managed to get certificates for your base domain onto the `matrix.example.com` machine you can put them to use." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:66 +msgid "Based on your setup, you have different ways to go about it:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:68 +msgid "Serving the Federation API with your certificates and Synapse handling Federation" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:70 +msgid "You can let Synapse handle Federation by itself." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:72 +msgid "To do that, make sure the certificate files are mounted into the Synapse container:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:79 +msgid "You can then tell Synapse to serve Federation traffic over TLS on `tcp/8448`:" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:87 +msgid "Make sure to reload Synapse once in a while (`systemctl reload matrix-synapse`), so that newer certificates can kick in. Reloading doesn't cause any downtime." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:89 +msgid "Serving the Federation API with your certificates and another webserver" +msgstr "" + +#: ../../../docs/howto-server-delegation.md:91 +msgid "**Alternatively**, if you are using another webserver, you can set up reverse-proxying for the `tcp/8448` port by yourself. Make sure to use the proper certificates for `example.com` (not for `matrix.example.com`) when serving the `tcp/8448` port." +msgstr "" + +#: ../../../docs/howto-server-delegation.md:93 +msgid "As recommended in our [Fronting the integrated reverse-proxy webserver with another reverse-proxy](./configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) documentation section, we recommend you to expose the Matrix Federation entrypoint from traffic at a local port (e.g. `127.0.0.1:8449`), so your reverese-proxy should send traffic there." +msgstr "" diff --git a/i18n/translation-templates/docs/howto-srv-server-delegation.pot b/i18n/translation-templates/docs/howto-srv-server-delegation.pot new file mode 100644 index 000000000..62abff6ab --- /dev/null +++ b/i18n/translation-templates/docs/howto-srv-server-delegation.pot @@ -0,0 +1,145 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/howto-srv-server-delegation.md:1 +msgid "Server Delegation via a DNS SRV record (advanced)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:3 +msgid "**Reminder** : unless you are affected by the [Downsides of well-known-based Server Delegation](howto-server-delegation.md#downsides-of-well-known-based-server-delegation), we suggest you **stay on the simple/default path**: [Server Delegation](howto-server-delegation.md) by [configuring well-known files](configuring-well-known.md) at the base domain." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:5 +msgid "This guide is about configuring Server Delegation using DNS SRV records (for the [Traefik](https://doc.traefik.io/traefik/) webserver). This method has special requirements when it comes to SSL certificates, so various changes are required." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:7 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:9 +msgid "SRV delegation while still using the playbook provided Traefik to get / renew the certificate requires a wildcard certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:11 +msgid "To obtain / renew one from [Let's Encrypt](https://letsencrypt.org/), one needs to use a [DNS-01 challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) method instead of the default [HTTP-01](https://letsencrypt.org/docs/challenge-types/#http-01-challenge)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:13 +msgid "This means that this is **limited to the list of DNS providers supported by Traefik**, unless you bring in your own certificate." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:15 +msgid "The up-to-date list can be accessed on [traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:17 +msgid "Adjusting the playbook configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:19 +msgid "**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:21 +msgid "if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md) or [Dendrite](./configuring-playbook-dendrite.md))" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:22 +msgid "if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:24 +msgid "Also, all instructions below are from an older version of the playbook and may not work anymore." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:26 +msgid "Federation Endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:33 +msgid "This is because with SRV federation, some servers / tools (one of which being the federation tester) try to access the federation API using the resolved IP address instead of the domain name (or they are not using SNI). This change will make Traefik route all traffic for which the path match this rule go to the federation endpoint." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:35 +msgid "Tell Traefik which certificate to serve for the federation endpoint" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:37 +msgid "Now that the federation endpoint is not bound to a domain anymore we need to explicitely tell Traefik to use a wildcard certificate in addition to one containing the base name." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:39 +msgid "This is because the Matrix specification expects the federation endpoint to be served using a certificate compatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:48 +msgid "Configure the DNS-01 challenge for let's encrypt" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:50 +msgid "Since we're now requesting a wildcard certificate, we need to change the ACME challenge method. To request a wildcard certificate from Let's Encrypt we are required to use the DNS-01 challenge." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:52 +msgid "This will need 3 changes:" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:53 +msgid "Add a new certificate resolver that works with DNS-01" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:54 +msgid "Configure the resolver to allow access to the DNS zone to configure the records to answer the challenge (refer to [Traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers) to know which environment variables to set)" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:55 +msgid "Tell the playbook to use the new resolver as default" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:57 +msgid "We cannot just disable the default resolver as that would disable SSL in quite a few places in the playbook." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:86 +msgid "Adjust coturn's configuration" +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:88 +msgid "The last step is to alter the generated coturn configuration." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:90 +msgid "By default, coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent coturn from starting." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:92 +msgid "We also need to indicate to coturn where the wildcard certificate is." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:94 +msgid "⚠️ **Warning** : On first start of the services, coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the coturn service (`just start-group coturn`)." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:96 +msgid "This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the coturn service is setup to restart periodically." +msgstr "" + +#: ../../../docs/howto-srv-server-delegation.md:122 +msgid "Full example of a working configuration" +msgstr "" diff --git a/i18n/translation-templates/docs/importing-postgres.pot b/i18n/translation-templates/docs/importing-postgres.pot new file mode 100644 index 000000000..7f1432e78 --- /dev/null +++ b/i18n/translation-templates/docs/importing-postgres.pot @@ -0,0 +1,145 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/importing-postgres.md:1 +msgid "Importing an existing Postgres database from another installation (optional)" +msgstr "" + +#: ../../../docs/importing-postgres.md:3 +msgid "Run this if you'd like to import your database from a previous installation. (don't forget to import your Synapse `media_store` files as well — see [the importing-synape-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-postgres.md:6 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-postgres.md:8 +msgid "For this to work, **the database name in Postgres must match** what this playbook uses. This playbook uses a Postgres database name of `synapse` by default (controlled by the `matrix_synapse_database_database` variable). If your database name differs, be sure to change `matrix_synapse_database_database` to your desired name and to re-run the playbook before proceeding." +msgstr "" + +#: ../../../docs/importing-postgres.md:10 +msgid "The playbook supports importing Postgres dump files in **text** (e.g. `pg_dump > dump.sql`) or **gzipped** formats (e.g. `pg_dump | gzip -c > dump.sql.gz`). Importing multiple databases (as dumped by `pg_dumpall`) is also supported." +msgstr "" + +#: ../../../docs/importing-postgres.md:12 +msgid "The migration might be a good moment, to \"reset\" a not properly working bridge. Be aware, that it might affect all users (new link to bridge, new rooms, …)" +msgstr "" + +#: ../../../docs/importing-postgres.md:14 +msgid "Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-postgres.md:16 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-postgres.md:18 +msgid "To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-postgres.md:26 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-postgres.md:28 +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 "" + +#: ../../../docs/importing-postgres.md:29 +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 "" + +#: ../../../docs/importing-postgres.md:30 +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 "" + +#: ../../../docs/importing-postgres.md:32 +msgid "Troubleshooting" +msgstr "" + +#: ../../../docs/importing-postgres.md:34 +msgid "Table Ownership" +msgstr "" + +#: ../../../docs/importing-postgres.md:36 +msgid "A table ownership issue can occur if you are importing from a Synapse installation which was both:" +msgstr "" + +#: ../../../docs/importing-postgres.md:38 +msgid "migrated from SQLite to Postgres, and" +msgstr "" + +#: ../../../docs/importing-postgres.md:39 +msgid "used a username other than 'synapse'" +msgstr "" + +#: ../../../docs/importing-postgres.md:41 +msgid "In this case you may run into the following error during the import task:" +msgstr "" + +#: ../../../docs/importing-postgres.md:47 +msgid "where `synapse_user` is the database username from the previous Synapse installation." +msgstr "" + +#: ../../../docs/importing-postgres.md:49 +msgid "This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:" +msgstr "" + +#: ../../../docs/importing-postgres.md:61 +msgid "It can be worked around by changing the username to `synapse`, for example by using `sed`:" +msgstr "" + +#: ../../../docs/importing-postgres.md:67 +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 "" + +#: ../../../docs/importing-postgres.md:69 +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 "" + +#: ../../../docs/importing-postgres.md:75 +msgid "Repeat import" +msgstr "" + +#: ../../../docs/importing-postgres.md:77 +msgid "In this case you can use the command suggested in the import task to clear the database before retrying the import:" +msgstr "" + +#: ../../../docs/importing-postgres.md:85 +msgid "Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc." +msgstr "" + +#: ../../../docs/importing-postgres.md:87 +msgid "If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database." +msgstr "" + +#: ../../../docs/importing-postgres.md:93 +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 "" + +#: ../../../docs/importing-postgres.md:95 +msgid "Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)" +msgstr "" + +#: ../../../docs/importing-postgres.md:101 +msgid "Hints" +msgstr "" + +#: ../../../docs/importing-postgres.md:103 +msgid "To open psql terminal run `/matrix/postgres/bin/cli`" +msgstr "" diff --git a/i18n/translation-templates/docs/importing-synapse-media-store.pot b/i18n/translation-templates/docs/importing-synapse-media-store.pot new file mode 100644 index 000000000..7a06764e8 --- /dev/null +++ b/i18n/translation-templates/docs/importing-synapse-media-store.pot @@ -0,0 +1,57 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/importing-synapse-media-store.md:1 +msgid "Importing `media_store` data files from an existing Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:3 +msgid "Run this if you'd like to import your `media_store` files from a previous installation of Synapse." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:5 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:7 +msgid "Before doing the actual data restore, **you need to upload your media store directory to the server** (any path is okay)." +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:9 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:11 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:13 +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 "" + +#: ../../../docs/importing-synapse-media-store.md:15 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:17 +msgid "Run this command (make sure to replace `` with a path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-media-store.md:23 +msgid "**Note**: `` must be a file path to a `media_store` directory on the server (not on your local machine!)." +msgstr "" diff --git a/i18n/translation-templates/docs/importing-synapse-sqlite.pot b/i18n/translation-templates/docs/importing-synapse-sqlite.pot new file mode 100644 index 000000000..93ddd975e --- /dev/null +++ b/i18n/translation-templates/docs/importing-synapse-sqlite.pot @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/importing-synapse-sqlite.md:1 +msgid "Importing an existing SQLite database from another Synapse installation (optional)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:3 +msgid "Run this if you'd like to import your database from a previous default installation of Synapse (don't forget to import your `media_store` files as well — see [the importing-synapse-media-store guide](importing-synapse-media-store.md))." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:5 +msgid "While this playbook only supports running Synapse in combination with PostgreSQL, a Synapse instance installed manually usually defaults to using an SQLite database." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:7 +msgid "If you have such a Synapse setup and wish to migrate it to one managed by the playbook (and over to PostgreSQL), this documentation page is for you." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:9 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:11 +msgid "Before doing the actual import:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:13 +msgid "**ensure you have NOT started Synapse yet**. That is, make sure you have followed the [Installing step](installing.md), but haven't run the playbook's `start` tag yet. If you had started your new Synapse instance, it may have already initialized your Postgres database and importing onto it may not work. In such cases, you may need to clean up the `synapse` database first." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:14 +msgid "**ensure you have uploaded your SQLite database file to the server** (any path is okay)" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:15 +msgid "if you're using the integrated Postgres server (**by default, you are** using it, unless you've explicitly switched to [Using an external PostgreSQL server](configuring-playbook-external-postgres.md)), **make sure Postgres is started** by running `just start-group postgres`" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:17 +msgid "Importing" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:19 +msgid "Run this command (make sure to replace `` with a file path on your server):" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:25 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:27 +msgid "`` must be replaced with a file path to a `homeserver.db` **file on the server** (not on your local machine!)." +msgstr "" + +#: ../../../docs/importing-synapse-sqlite.md:28 +msgid "if the SQLite database is from an older version of Synapse, the **importing procedure may run migrations on it to bring it up to date**. That is, your SQLite database file may get modified and become unusable with your older Synapse version. Keeping a copy of the original is probably wise." +msgstr "" diff --git a/i18n/translation-templates/docs/installing.pot b/i18n/translation-templates/docs/installing.pot new file mode 100644 index 000000000..8dc026129 --- /dev/null +++ b/i18n/translation-templates/docs/installing.pot @@ -0,0 +1,301 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/installing.md:1 +msgid "Installing" +msgstr "" + +#: ../../../docs/installing.md:3 +msgid "[Prerequisites](prerequisites.md) > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > Installing" +msgstr "" + +#: ../../../docs/installing.md:5 +msgid "If you've configured your DNS records and the playbook, you can start the installation procedure." +msgstr "" + +#: ../../../docs/installing.md:7 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/installing.md:9 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/installing.md:11 +msgid "To update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file), run:" +msgstr "" + +#: ../../../docs/installing.md:13 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/installing.md:14 +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 "" + +#: ../../../docs/installing.md:16 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/installing.md:18 +msgid "For details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/installing.md:20 +msgid "Install Matrix server and services" +msgstr "" + +#: ../../../docs/installing.md:22 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/installing.md:24 +msgid "The general command syntax for installation (and also maintenance) is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`. It is recommended to get yourself familiar with the [playbook tags](playbook-tags.md) before proceeding." +msgstr "" + +#: ../../../docs/installing.md:26 +msgid "If you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:28 +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 all Ansible commands." +msgstr "" + +#: ../../../docs/installing.md:30 +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 "" + +#: ../../../docs/installing.md:32 +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 "" + +#: ../../../docs/installing.md:34 +msgid "Installing a brand new server (without importing data)" +msgstr "" + +#: ../../../docs/installing.md:36 +msgid "If this is **a brand new** Matrix server and you **won't be importing old data into it**, run all these tags:" +msgstr "" + +#: ../../../docs/installing.md:42 +msgid "This will do a full installation and start all Matrix services." +msgstr "" + +#: ../../../docs/installing.md:44 +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 "" + +#: ../../../docs/installing.md:46 +msgid "Installing a server into which you'll import old data" +msgstr "" + +#: ../../../docs/installing.md:48 +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 "" + +#: ../../../docs/installing.md:50 +msgid "To do the installation **without** starting services, run `ansible-playbook` with the `install-all` tag only:" +msgstr "" + +#: ../../../docs/installing.md:56 +msgid "[!WARNING] 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 "" + +#: ../../../docs/installing.md:59 +msgid "When this command completes, services won't be running yet." +msgstr "" + +#: ../../../docs/installing.md:61 +msgid "You can now:" +msgstr "" + +#: ../../../docs/installing.md:63 +msgid "[Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:65 +msgid "[Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:67 +msgid "[Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)" +msgstr "" + +#: ../../../docs/installing.md:69 +msgid "… and then proceed to starting all services:" +msgstr "" + +#: ../../../docs/installing.md:75 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/installing.md:77 +msgid "ℹ️ *You can skip this step if you have installed a server and imported old data to it.*" +msgstr "" + +#: ../../../docs/installing.md:79 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/installing.md:81 +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 "" + +#: ../../../docs/installing.md:83 +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 "" + +#: ../../../docs/installing.md:85 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/installing.md:86 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/installing.md:87 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/installing.md:88 +msgid "Use `admin=yes` to make your user account an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/installing.md:96 +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 "" + +#: ../../../docs/installing.md:98 +msgid "For more information, see the documentation for [registering users](registering-users.md)." +msgstr "" + +#: ../../../docs/installing.md:100 +msgid "Finalize the installation" +msgstr "" + +#: ../../../docs/installing.md:102 +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 "" + +#: ../../../docs/installing.md:104 +msgid "This is required for federation to work! Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/installing.md:106 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/installing.md:108 +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 "" + +#: ../../../docs/installing.md:109 +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 "" + +#: ../../../docs/installing.md:111 +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 "" + +#: ../../../docs/installing.md:117 +msgid "After configuring the playbook, run the command below:" +msgstr "" + +#: ../../../docs/installing.md:123 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/installing.md:125 +msgid "After finilizing the installation, you can:" +msgstr "" + +#: ../../../docs/installing.md:127 +msgid "[check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/installing.md:128 +msgid "or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)" +msgstr "" + +#: ../../../docs/installing.md:129 +msgid "or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:130 +msgid "or learn how to [maintain your server](faq.md#maintenance)" +msgstr "" + +#: ../../../docs/installing.md:131 +msgid "or join some Matrix rooms:" +msgstr "" + +#: ../../../docs/installing.md:132 +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." +msgstr "" + +#: ../../../docs/installing.md:133 +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 "" + +#: ../../../docs/installing.md:134 +msgid "or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))" +msgstr "" + +#: ../../../docs/installing.md:136 +msgid "Maintaining your setup in the future" +msgstr "" + +#: ../../../docs/installing.md:138 +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 "" + +#: ../../../docs/installing.md:140 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities." +msgstr "" + +#: ../../../docs/installing.md:142 +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 "" + +#: ../../../docs/installing.md:144 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" + +#: ../../../docs/installing.md:146 +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 "" + +#: ../../../docs/installing.md:152 +msgid "**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/installing.md:154 +msgid "Make full use of `just` shortcut commands" +msgstr "" + +#: ../../../docs/installing.md:156 +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 "" + +#: ../../../docs/installing.md:158 +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 "" + +#: ../../../docs/installing.md:160 +msgid "You can learn about the shortcut commands on this page: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/just.pot b/i18n/translation-templates/docs/just.pot new file mode 100644 index 000000000..65a4e7e1c --- /dev/null +++ b/i18n/translation-templates/docs/just.pot @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/just.md:1 +msgid "Running `just` commands" +msgstr "" + +#: ../../../docs/just.md:3 +msgid "We have previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers [`ansible-galaxy`](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html)). Our [`Makefile`](../Makefile) is still around, and you can still run these commands." +msgstr "" + +#: ../../../docs/just.md:5 +msgid "In addition, we have added support for running commands via [`just`](https://github.com/casey/just) — a more modern command-runner alternative to `make`. It can be used to invoke `ansible-playbook` commands with less typing." +msgstr "" + +#: ../../../docs/just.md:7 +msgid "The `just` utility executes shortcut commands (called as \"recipes\"), which invoke `ansible-playbook`, `ansible-galaxy` or [`agru`](https://github.com/etkecc/agru) (depending on what is available in your system). The targets of the recipes are defined in [`justfile`](../justfile). Most of the just recipes have no corresponding `Makefile` targets." +msgstr "" + +#: ../../../docs/just.md:9 +msgid "For some recipes such as `just update`, our `justfile` recommends installing [`agru`](https://github.com/etkecc/agru) (a faster alternative to `ansible-galaxy`) to speed up the process." +msgstr "" + +#: ../../../docs/just.md:11 +msgid "Here are some examples of shortcuts:" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Shortcut" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Result" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just roles`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Install the necessary Ansible roles pinned in [`requirements.yml`](../requirements.yml)" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just update`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run `git pull` (to update the playbook) and install the Ansible roles" +msgstr "" + +#: ../../../docs/just.md:0 +#: ../../../docs/just.md:33 +msgid "`just install-all`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just setup-all`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just install-all --ask-vault-pass`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run commands with additional arguments (`--ask-vault-pass` will be appended to the above installation command)" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just run-tags install-mautrix-slack,start`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run specific playbook tags (here `install-mautrix-slack` and `start`)" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just install-service mautrix-slack`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Run `just run-tags install-mautrix-slack,start` with even less typing" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just start-all`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "(Re-)starts all services" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just stop-group postgres`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Stop only the Postgres service" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "`just register-user alice secret-password yes`" +msgstr "" + +#: ../../../docs/just.md:0 +msgid "Registers an `alice` user with the `secret-password` password and admin access (admin = `yes`)" +msgstr "" + +#: ../../../docs/just.md:26 +msgid "While [our documentation on prerequisites](prerequisites.md) lists `just` as one of the requirements for installation, using `just` is optional. If you find it difficult to install it, do not find it useful, or want to prefer raw `ansible-playbook` commands for some reason, feel free to run all commands manually. For example, you can run `ansible-galaxy` directly to install the Ansible roles: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`." +msgstr "" + +#: ../../../docs/just.md:28 +msgid "Difference between playbook tags and shortcuts" +msgstr "" + +#: ../../../docs/just.md:30 +msgid "It is worth noting that `just` \"recipes\" are different from [playbook tags](playbook-tags.md). The recipes are shortcuts of commands defined in `justfile` and can be executed by the `just` program only, while the playbook tags are available for the raw `ansible-playbook` commands as well. Please be careful not to confuse them." +msgstr "" + +#: ../../../docs/just.md:32 +msgid "For example, these two commands are different:" +msgstr "" + +#: ../../../docs/just.md:34 +msgid "`ansible-playbook -i inventory/hosts setup.yml --tags=install-all`" +msgstr "" + +#: ../../../docs/just.md:36 +msgid "The just recipe runs `ensure-matrix-users-created` and `start` tags after `install-all`, while the latter runs only `install-all` tag. The correct shortcut of the latter is `just run-tags install-all`." +msgstr "" + +#: ../../../docs/just.md:38 +msgid "Such kind of difference sometimes matters. For example, when you install a Matrix server into which you will import old data (see [here](installing.md#installing-a-server-into-which-youll-import-old-data)), you are not supposed to run `just install-all` or `just setup-all`, because these commands start services immediately after installing components which may prevent your from importing old data." +msgstr "" diff --git a/i18n/translation-templates/docs/maintenance-and-troubleshooting.pot b/i18n/translation-templates/docs/maintenance-and-troubleshooting.pot new file mode 100644 index 000000000..d6f179db5 --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-and-troubleshooting.pot @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-and-troubleshooting.md:1 +msgid "Maintenance and Troubleshooting" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:3 +msgid "How to see the current status of your services" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:5 +msgid "You can check the status of your services by using `systemctl status`. Example:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:15 +msgid "Docker containers that the playbook configures are supervised by [systemd](https://wiki.archlinux.org/title/Systemd) and their logs are configured to go to [systemd-journald](https://wiki.archlinux.org/title/Systemd/Journal)." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:17 +msgid "To prevent double-logging, Docker logging is disabled by explicitly passing `--log-driver=none` to all containers. Due to this, you **cannot** view logs using `docker logs`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:19 +msgid "To view systemd-journald logs using [journalctl](https://man.archlinux.org/man/journalctl.1), run a command like this:" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:25 +msgid "Increase logging verbosity" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:27 +msgid "Because the [Synapse](https://github.com/element-hq/synapse) Matrix server is originally very chatty when it comes to logging, we intentionally reduce its [logging level](https://docs.python.org/3/library/logging.html#logging-levels) from `INFO` to `WARNING`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:29 +msgid "If you'd like to debug an issue or [report a Synapse bug](https://github.com/element-hq/synapse/issues/new/choose) to the developers, it'd be better if you temporarily increasing the logging level to `INFO`." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:31 +msgid "Example configuration (`inventory/host_vars/matrix.example.com/vars.yml`):" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:39 +msgid "Re-run the playbook after making these configuration changes." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:41 +msgid "Remove unused Docker data" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:43 +msgid "You can free some disk space from Docker, see [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) for more information." +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags run-docker-prune`" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:51 +msgid "Postgres" +msgstr "" + +#: ../../../docs/maintenance-and-troubleshooting.md:53 +msgid "See the dedicated [PostgreSQL Maintenance](maintenance-postgres.md) documentation page." +msgstr "" diff --git a/i18n/translation-templates/docs/maintenance-checking-services.pot b/i18n/translation-templates/docs/maintenance-checking-services.pot new file mode 100644 index 000000000..9293929bd --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-checking-services.pot @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-checking-services.md:1 +msgid "Checking if services work" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:3 +msgid "The playbook can perform a check to ensure that you've configured things correctly and that services are running." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:5 +msgid "To perform the check, run:" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:11 +msgid "The shortcut command with `just` program is also available: `just run-tags self-check`" +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:13 +msgid "If it's all green, everything is probably running correctly." +msgstr "" + +#: ../../../docs/maintenance-checking-services.md:15 +msgid "Besides this self-check, 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 "" diff --git a/i18n/translation-templates/docs/maintenance-migrating.pot b/i18n/translation-templates/docs/maintenance-migrating.pot new file mode 100644 index 000000000..5cd731bdf --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-migrating.pot @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-migrating.md:1 +msgid "Migrating to new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:3 +msgid "This documentation explains how to migrate your Matrix services (server, client, bridges, etc.) and data **from an old server to a new server**." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:6 +msgid "This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`)." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:8 +msgid "If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is **not** possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:9 +msgid "If you have any questions about migration or encountered an issue during migration, do not hesitate to ask for help on [our Matrix room](https://matrix.to/#/%23matrix-docker-ansible-deploy:devture.com). You probably might want to prepare a temporary/sub account on another Matrix server in case it becomes impossible to use your server due to migration failure by any chance." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:11 +msgid "You can't change the domain (specified in the `matrix_domain` variable) after the initial deployment." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:13 +msgid "Lower DNS TTL" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:15 +msgid "Prepare by lowering DNS TTL for your domains (`matrix.example.com`, etc.), so that DNS record changes would happen faster, leading to less downtime." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:17 +msgid "Stop services on the old server completely" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:19 +msgid "Before migrating, you need to stop all services on the old server and make sure they won't be starting again." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:21 +msgid "To do so, it is recommended to run the `systemctl` command on the server. Running the playbook's `stop` tag also stops the services, but just once; they will start again if you reboot the server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:23 +msgid "Log in to the old server and run the command as `root` (or a user that can run it with `sudo`):" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:29 +msgid "Copy data directory to the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:31 +msgid "After you've confirmed that all services were stopped, copy the `/matrix` directory from the old server to the new server. When copying, make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)!" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:33 +msgid "Adjust DNS records" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:35 +msgid "Make sure your DNS records are adjusted to point to the new server's IP address." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:37 +msgid "Update `inventory/hosts` file" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:39 +msgid "Having adjusted DNS records, replace the old server's external IP address on the `inventory/hosts` file with that of the new server." +msgstr "" + +#: ../../../docs/maintenance-migrating.md:41 +msgid "Create `matrix` user and group on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:43 +msgid "Then, run the command below on your local computer to create the `matrix` user and group on the new server:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:49 +msgid "The shortcut command with `just` program is also available: `just run-tags setup-system-user`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:51 +msgid "**Note**: because the `matrix` user and group are created dynamically on each server, the user/group ID may differ between the old and new server. We suggest that you adjust ownership of `/matrix` files. To adjust the ownership, log in to the new server and run the command:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:57 +msgid "Install and start all services on the new server" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:59 +msgid "Finally, run the command below on your local computer to finish the installation and start all services:" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:65 +msgid "The shortcut command with `just` program is also available: `just run-tags install-all,start`" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:67 +msgid "Check if services work" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:69 +msgid "After starting the services, you probably might want to ensure that you've migrated things correctly and that services are running. For instructions, see: [check if services work](maintenance-checking-services.md)" +msgstr "" + +#: ../../../docs/maintenance-migrating.md:71 +msgid "Having make sure that both services and federation work as expected, you can safely shutdown the old server." +msgstr "" diff --git a/i18n/translation-templates/docs/maintenance-postgres.pot b/i18n/translation-templates/docs/maintenance-postgres.pot new file mode 100644 index 000000000..fd6ebc337 --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-postgres.pot @@ -0,0 +1,217 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-postgres.md:1 +msgid "PostgreSQL maintenance" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Postgres database server used by Matrix." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:7 +msgid "[Getting a database terminal](#getting-a-database-terminal), for when you wish to execute SQL queries" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:9 +msgid "[Vacuuming PostgreSQL](#vacuuming-postgresql), for when you wish to run a Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) (optimizing disk space)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:11 +msgid "[Backing up PostgreSQL](#backing-up-postgresql), for when you wish to make a backup" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:13 +msgid "[Upgrading PostgreSQL](#upgrading-postgresql), for upgrading to new major versions of PostgreSQL. Such **manual upgrades are sometimes required**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:15 +msgid "[Tuning PostgreSQL](#tuning-postgresql) to make it run faster" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:17 +msgid "Getting a database terminal" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:19 +msgid "You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:21 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:23 +msgid "By default, this tool puts you in the `matrix` database, which contains nothing." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:25 +msgid "To see the available databases, run `\\list` (or just `\\l`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:27 +msgid "To change to another database (for example `synapse`), run `\\connect synapse` (or just `\\c synapse`)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:29 +msgid "You can then proceed to write queries. Example: `SELECT COUNT(*) FROM users;`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:31 +msgid "**Be careful**. Modifying the database directly (especially as services are running) is dangerous and may lead to irreversible database corruption. When in doubt, consider [making a backup](#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:33 +msgid "Vacuuming PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:35 +msgid "Deleting lots data from Postgres does not make it release disk space, until you perform a [`VACUUM` operation](https://www.postgresql.org/docs/current/sql-vacuum.html)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:37 +msgid "You can run different `VACUUM` operations via the playbook, with the default preset being `vacuum-complete`:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:39 +msgid "(default) `vacuum-complete`: stops all services temporarily and runs `VACUUM FULL VERBOSE ANALYZE`." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:40 +msgid "`vacuum-full`: stops all services temporarily and runs `VACUUM FULL VERBOSE`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:41 +msgid "`vacuum`: runs `VACUUM VERBOSE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:42 +msgid "`vacuum-analyze` runs `VACUUM VERBOSE ANALYZE` without stopping any services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:43 +msgid "`analyze` runs `ANALYZE VERBOSE` without stopping any services (this is just [ANALYZE](https://www.postgresql.org/docs/current/sql-analyze.html) without doing a vacuum, so it's faster)" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:45 +msgid "**Note**: for the `vacuum-complete` and `vacuum-full` presets, you'll need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`). These presets also stop all services (e.g. Synapse, etc.) while the vacuum operation is running." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:47 +msgid "Example playbook invocations:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:49 +msgid "`just run-tags run-postgres-vacuum`: runs the default `vacuum-complete` preset and restarts all services" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:50 +msgid "`just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze`: runs the `analyze` preset with all services remaining operational at all times" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:52 +msgid "Backing up PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:54 +msgid "To automatically make Postgres database backups on a fixed schedule, see [Setting up postgres backup](configuring-playbook-postgres-backup.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:56 +msgid "To make a one off back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:67 +msgid "If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because neither the credentials file (`/matrix/postgres/env-postgres-psql`), nor the `matrix-postgres` container is available." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:69 +msgid "Restoring a backup made this way can be done by [importing it](importing-postgres.md)." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:71 +msgid "Upgrading PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:73 +msgid "Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:75 +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 "" + +#: ../../../docs/maintenance-postgres.md:77 +msgid "Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:79 +msgid "The playbook can upgrade your existing Postgres setup with the following command:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:85 +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 "" + +#: ../../../docs/maintenance-postgres.md:87 +msgid "The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:89 +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 "" + +#: ../../../docs/maintenance-postgres.md:91 +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 "" + +#: ../../../docs/maintenance-postgres.md:93 +msgid "**All databases, roles, etc. on the Postgres server are migrated**." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:95 +msgid "Tuning PostgreSQL" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:97 +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 "" + +#: ../../../docs/maintenance-postgres.md:99 +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_auto` variable." +msgstr "" + +#: ../../../docs/maintenance-postgres.md:101 +msgid "Most users should be fine with the automatically-done tuning. However, you may wish to:" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:103 +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_auto` variable" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:105 +msgid "**turn automatically-performed tuning off**: override it like this: `postgres_postgres_process_extra_arguments_auto: []`" +msgstr "" + +#: ../../../docs/maintenance-postgres.md:107 +msgid "**add additional tuning parameters**: define your additional Postgres configuration parameters in `postgres_postgres_process_extra_arguments_custom`. See `postgres_postgres_process_extra_arguments_auto` 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 "" diff --git a/i18n/translation-templates/docs/maintenance-synapse.pot b/i18n/translation-templates/docs/maintenance-synapse.pot new file mode 100644 index 000000000..8d3b68999 --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-synapse.pot @@ -0,0 +1,197 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-synapse.md:1 +msgid "Synapse maintenance" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:3 +msgid "This document shows you how to perform various maintenance tasks related to the Synapse chat server." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:7 +msgid "[Purging old data with the Purge History API](#purging-old-data-with-the-purge-history-api), for when you wish to delete in-use (but old) data from the Synapse database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:9 +msgid "[Compressing state with rust-synapse-compress-state](#compressing-state-with-rust-synapse-compress-state)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:11 +msgid "[Browse and manipulate the database](#browse-and-manipulate-the-database), for when you really need to take matters into your own hands" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:13 +msgid "[Make Synapse faster](#make-synapse-faster)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:15 +msgid "Purging old data with the Purge History API" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:17 +msgid "You can use the **[Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md)** to delete old messages on a per-room basis. **This is destructive** (especially for non-federated rooms), because it means **people will no longer have access to history past a certain point**." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:19 +msgid "To make use of this Synapse Admin API, **you'll need an admin access token** first. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:21 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:24 +msgid "Synapse's Admin API is not exposed to the internet by default, following [official Synapse reverse-proxying recommendations](https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). To expose it you will need to add `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:26 +msgid "Follow the [Purge History API](https://github.com/element-hq/synapse/blob/master/docs/admin_api/purge_history_api.md) documentation page for the actual purging instructions." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:28 +msgid "After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:30 +msgid "Compressing state with rust-synapse-compress-state" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:32 +msgid "[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:34 +msgid "**Note**: besides running the `rust-synapse-compress-state` tool manually, you can also enable its `synapse-auto-compressor` tool by [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md). The automatic tool will run on a schedule every day and you won't have to compress state manually ever again." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:36 +msgid "`rust-synapse-compress-state` should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:38 +msgid "To ask the playbook to run rust-synapse-compress-state, execute:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:44 +msgid "The shortcut command with `just` program is also available: `just run-tags rust-synapse-compress-state`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:46 +msgid "By default, all rooms with more than `100000` state group rows will be compressed. If you need to adjust this, pass: `--extra-vars='matrix_synapse_rust_synapse_compress_state_min_state_groups_required=SOME_NUMBER_HERE'` to the command above." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:48 +msgid "After state compression, you may wish to run a [`FULL` Postgres `VACUUM`](./maintenance-postgres.md#vacuuming-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:50 +msgid "Browse and manipulate the database" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:52 +msgid "When the [Synapse Admin API](https://github.com/element-hq/synapse/tree/master/docs/admin_api) and the other tools do not provide a more convenient way, having a look at synapse's postgresql database can satisfy a lot of admins' needs." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:54 +msgid "Editing the database manually is not recommended or supported by the Synapse developers. If you are going to do so you should [make a database backup](./maintenance-postgres.md#backing-up-postgresql)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:56 +msgid "First, set up an SSH tunnel to your Matrix server (skip if it is your local machine):" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:63 +msgid "Then start up an ephemeral [adminer](https://www.adminer.org/) container on the Matrix server, connecting it to the `matrix` network and linking the postgresql container:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:69 +msgid "You should then be able to browse the adminer database administration GUI at http://localhost:1799/ after entering your DB credentials (found in the `host_vars` or on the server in `{{matrix_synapse_config_dir_path}}/homeserver.yaml` under `database.args`)" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:71 +msgid "⚠️️ Be **very careful** with this, there is **no undo** for impromptu DB operations." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:73 +msgid "Make Synapse faster" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:75 +msgid "Synapse's presence feature which tracks which users are online and which are offline can use a lot of processing power. You can disable presence by adding `matrix_synapse_presence_enabled: false` to your `vars.yml` file." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:77 +msgid "If you have enough compute resources (CPU & RAM), you can make Synapse better use of them by [enabling load-balancing with workers](configuring-playbook-synapse.md#load-balancing-with-workers)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:79 +msgid "[Tuning your PostgreSQL database](maintenance-postgres.md#tuning-postgresql) could also improve Synapse performance. The playbook tunes the integrated Postgres database automatically, but based on your needs you may wish to adjust tuning variables manually. If you're using an [external Postgres database](configuring-playbook-external-postgres.md), you will also need to tune Postgres manually." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:81 +msgid "Tuning caches and cache autotuning" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:83 +msgid "Tuning Synapse's cache factor is useful for performance increases but also as part of controlling Synapse's memory use. Use the variable `matrix_synapse_caches_global_factor` to set the cache factor as part of this process." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:85 +msgid "**The playbook defaults the global cache factor to a large value** (e.g. `10`). A smaller value (e.g. `0.5`) will decrease the amount used for caches, but will [not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:87 +msgid "Tuning the cache factor is useful only to a limited degree (as its crude to do in isolation) and therefore users who are tuning their cache factor should likely look into tuning autotune variables as well (see below)." +msgstr "" + +#: ../../../docs/maintenance-synapse.md:89 +msgid "Cache autotuning is **enabled by default** and controlled via the following variables:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:91 +msgid "`matrix_synapse_cache_autotuning_max_cache_memory_usage` — defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:92 +msgid "`matrix_synapse_cache_autotuning_target_cache_memory_usage` — defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:93 +msgid "`matrix_synapse_cache_autotuning_min_cache_ttl` — defaults to `30s`" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:95 +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 "" + +#: ../../../docs/maintenance-synapse.md:97 +msgid "To **disable cache auto-tuning**, unset all values:" +msgstr "" + +#: ../../../docs/maintenance-synapse.md:105 +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 "" + +#: ../../../docs/maintenance-synapse.md:107 +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 "" diff --git a/i18n/translation-templates/docs/maintenance-upgrading-services.pot b/i18n/translation-templates/docs/maintenance-upgrading-services.pot new file mode 100644 index 000000000..c1ba9faf7 --- /dev/null +++ b/i18n/translation-templates/docs/maintenance-upgrading-services.pot @@ -0,0 +1,125 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/maintenance-upgrading-services.md:1 +msgid "Upgrading the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:3 +msgid "This playbook not only installs the various Matrix services for you, but can also upgrade them as new versions are made available." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:5 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:7 +msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities (for example, see [here](https://github.com/element-hq/element-web/security) for known ones on Element Web)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:9 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:11 +msgid "The developers of this playbook strive to maintain the playbook updated, so that you can re-run the playbook to address such vulnerabilities. It is **your responsibility** to keep your server and the services on it up-to-date." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:13 +msgid "If you want to be notified when new versions of Synapse are released, you should join the Synapse Homeowners room: [#homeowners:matrix.org](https://matrix.to/#/#homeowners:matrix.org)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:15 +msgid "Steps to upgrade the Matrix services" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:17 +msgid "Check the changelog" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:19 +msgid "Before updating the playbook and the Ansible roles in the playbook, take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:21 +msgid "Update the playbook and the Ansible roles" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:23 +msgid "If it looks good to you, go to the `matrix-docker-ansible-deploy` directory, update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) by running:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:25 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:26 +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 "" + +#: ../../../docs/maintenance-upgrading-services.md:28 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:30 +msgid "**Note**: for details about `just` commands, take a look at: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:32 +msgid "Re-run the playbook setup" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:34 +msgid "After updating the Ansible roles, then re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:40 +msgid "If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:46 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:48 +msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:50 +msgid "Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:52 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:54 +msgid "See [this page on the playbook tags](playbook-tags.md) for more information about those tags." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:56 +msgid "PostgreSQL major version upgrade" +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:58 +msgid "Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually." +msgstr "" + +#: ../../../docs/maintenance-upgrading-services.md:60 +msgid "For details about upgrading it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql)." +msgstr "" diff --git a/i18n/translation-templates/docs/obtaining-access-tokens.pot b/i18n/translation-templates/docs/obtaining-access-tokens.pot new file mode 100644 index 000000000..ae33c546c --- /dev/null +++ b/i18n/translation-templates/docs/obtaining-access-tokens.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/obtaining-access-tokens.md:1 +msgid "Obtaining an Access Token" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:3 +msgid "When setting up some optional features like bots and bridges you will need to provide an access token for some user. This document provides documentation on how to obtain such an access token." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:5 +msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:8 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:10 +msgid "The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:12 +msgid "Below, we describe 2 ways to generate an access token for a user — using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:14 +msgid "Obtain an access token via Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:16 +msgid "In a private browsing session (incognito window), open Element Web." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:17 +msgid "Log in with the user's credentials." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:18 +msgid "In the settings page, choose \"Help & About\", scroll down to the bottom and expand the `Access Token` section (see screenshot below)." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:19 +msgid "Copy the access token to your configuration." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:20 +msgid "Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "![Obtaining an access token with Element Web](assets/obtain_admin_access_token_element_web.png)" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:22 +msgid "Obtaining an access token with Element Web" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:24 +msgid "Obtain an access token via curl" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:26 +msgid "You can use the following command to get an access token for your user directly from the [Matrix Client-Server API](https://www.matrix.org/docs/guides/client-server-api#login):" +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:36 +msgid "Change `USERNAME`, `PASSWORD`, and `example.com` accordingly." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:38 +msgid "`YOURDEVICEID` is optional and can be used to more easily identify the session later. When omitted (mind the commas in the JSON payload if you'll be omitting it), a random device ID will be generated." +msgstr "" + +#: ../../../docs/obtaining-access-tokens.md:40 +msgid "Your response will look like this (prettified):" +msgstr "" diff --git a/i18n/translation-templates/docs/playbook-tags.pot b/i18n/translation-templates/docs/playbook-tags.pot new file mode 100644 index 000000000..020dd51b1 --- /dev/null +++ b/i18n/translation-templates/docs/playbook-tags.pot @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/playbook-tags.md:1 +msgid "Playbook tags" +msgstr "" + +#: ../../../docs/playbook-tags.md:3 +msgid "The Ansible playbook's tasks are tagged, so that certain parts of the Ansible playbook can be run without running all other tasks." +msgstr "" + +#: ../../../docs/playbook-tags.md:5 +msgid "The general command syntax is: `ansible-playbook -i inventory/hosts setup.yml --tags=COMMA_SEPARATED_TAGS_GO_HERE`" +msgstr "" + +#: ../../../docs/playbook-tags.md:7 +msgid "Here are some playbook tags that you should be familiar with:" +msgstr "" + +#: ../../../docs/playbook-tags.md:9 +msgid "`setup-all` — runs all setup tasks (installation and uninstallation) for all components, but does not start/restart services" +msgstr "" + +#: ../../../docs/playbook-tags.md:11 +msgid "`install-all` — like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed" +msgstr "" + +#: ../../../docs/playbook-tags.md:13 +msgid "`setup-SERVICE` (e.g. `setup-postmoogle`) — runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag)." +msgstr "" + +#: ../../../docs/playbook-tags.md:15 +msgid "`install-SERVICE` (e.g. `install-postmoogle`) — like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information." +msgstr "" + +#: ../../../docs/playbook-tags.md:17 +msgid "`start` — starts all systemd services and makes them start automatically in the future" +msgstr "" + +#: ../../../docs/playbook-tags.md:19 +msgid "`stop` — stops all systemd services" +msgstr "" + +#: ../../../docs/playbook-tags.md:21 +msgid "`ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created" +msgstr "" + +#: ../../../docs/playbook-tags.md:23 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/playbook-tags.md:24 +msgid "`setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc." +msgstr "" + +#: ../../../docs/playbook-tags.md:25 +msgid "Please be careful not to confuse the playbook tags with the `just` shortcut commands (\"recipes\"). For details about `just` commands, see: [Running `just` commands](just.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/prerequisites.pot b/i18n/translation-templates/docs/prerequisites.pot new file mode 100644 index 000000000..adb4809b8 --- /dev/null +++ b/i18n/translation-templates/docs/prerequisites.pot @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/prerequisites.md:1 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/prerequisites.md:3 +msgid "Prerequisites > [Configuring your DNS settings](configuring-dns.md) > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)" +msgstr "" + +#: ../../../docs/prerequisites.md:5 +msgid "To install Matrix services using this Ansible playbook, you need to prepare several requirements both on your local computer (where you will run the playbook to configure the server) and the server (where the playbook will install the Matrix services for you). **These requirements need to be set up manually** before proceeding to the next step." +msgstr "" + +#: ../../../docs/prerequisites.md:7 +msgid "We will be using `example.com` as the domain in the following instruction. Please remember to replace it with your own domain before running any commands." +msgstr "" + +#: ../../../docs/prerequisites.md:9 +msgid "**Note**: if you do not have an existing Matrix server and want to start quickly with \"opinionated defaults\", we suggest you to follow ⚡ **[Quick start](quick-start.md)** installation guide." +msgstr "" + +#: ../../../docs/prerequisites.md:11 +msgid "Your local computer" +msgstr "" + +#: ../../../docs/prerequisites.md:13 +msgid "[Ansible](http://ansible.com/) program. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible." +msgstr "" + +#: ../../../docs/prerequisites.md:15 +msgid "[passlib](https://passlib.readthedocs.io/en/stable/index.html) Python library. See [this official documentation](https://passlib.readthedocs.io/en/stable/install.html#installation-instructions) for an instruction to install it. On most distros, you need to install some `python-passlib` or `py3-passlib` package, etc." +msgstr "" + +#: ../../../docs/prerequisites.md:17 +msgid "[`git`](https://git-scm.com/) as the recommended way to download the playbook. `git` may also be required on the server if you will be [self-building](self-building.md) components." +msgstr "" + +#: ../../../docs/prerequisites.md:19 +msgid "[`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually. Take at look at this documentation for more information: [Running `just` commands](just.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:21 +msgid "Strong password (random strings) generator. The playbook often requires you to create a strong password and use it for settings on `vars.yml`, components, etc. As any tools should be fine, this playbook has adopted [`pwgen`](https://linux.die.net/man/1/pwgen) (running `pwgen -s 64 1`). [Password Tech](https://pwgen-win.sourceforge.io/), formerly known as \"PWGen for Windows\", is available as free and open source password generator for Windows. Generally, using a random generator available on the internet is not recommended." +msgstr "" + +#: ../../../docs/prerequisites.md:23 +msgid "Server" +msgstr "" + +#: ../../../docs/prerequisites.md:25 +msgid "(Recommended) An **x86** server ([What kind of server specs do I need?](faq.md#what-kind-of-server-specs-do-i-need)) running one of these operating systems that make use of [systemd](https://systemd.io/):" +msgstr "" + +#: ../../../docs/prerequisites.md:26 +msgid "**Archlinux**" +msgstr "" + +#: ../../../docs/prerequisites.md:27 +msgid "**CentOS**, **Rocky Linux**, **AlmaLinux**, or possibly other RHEL alternatives (although your mileage may vary)" +msgstr "" + +#: ../../../docs/prerequisites.md:28 +msgid "**Debian** (10/Buster or newer)" +msgstr "" + +#: ../../../docs/prerequisites.md:29 +msgid "**Ubuntu** (18.04 or newer, although [20.04 may be problematic](ansible.md#supported-ansible-versions) if you run the Ansible playbook on it)" +msgstr "" + +#: ../../../docs/prerequisites.md:31 +msgid "Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. The playbook can take over your whole server or co-exist with other services that you have there." +msgstr "" + +#: ../../../docs/prerequisites.md:33 +msgid "This playbook somewhat supports running on non-`amd64` architectures like ARM. See [Alternative Architectures](alternative-architectures.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:35 +msgid "If your distro runs within an [LXC container](https://linuxcontainers.org/), you may hit [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/703). It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container." +msgstr "" + +#: ../../../docs/prerequisites.md:37 +msgid "`root` access to your server (or a user capable of elevating to `root` via `sudo`)." +msgstr "" + +#: ../../../docs/prerequisites.md:39 +msgid "[Python](https://www.python.org/). Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`)" +msgstr "" + +#: ../../../docs/prerequisites.md:41 +msgid "[sudo](https://www.sudo.ws/), even when you've configured Ansible to log in as `root`. Some distributions, like a minimal Debian net install, do not include the `sudo` package by default." +msgstr "" + +#: ../../../docs/prerequisites.md:43 +msgid "An HTTPS-capable web server at the base domain name (`example.com`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md)." +msgstr "" + +#: ../../../docs/prerequisites.md:45 +msgid "Properly configured DNS records for `example.com` (details in [Configuring DNS](configuring-dns.md))." +msgstr "" + +#: ../../../docs/prerequisites.md:47 +msgid "Some TCP/UDP ports open. This playbook (actually [Docker itself](https://docs.docker.com/network/iptables/)) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports:" +msgstr "" + +#: ../../../docs/prerequisites.md:49 +msgid "`80/tcp`: HTTP webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:50 +msgid "`443/tcp` and `443/udp`: HTTPS webserver" +msgstr "" + +#: ../../../docs/prerequisites.md:51 +msgid "`3478/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:52 +msgid "`3478/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:53 +msgid "`5349/tcp`: TURN over TCP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:54 +msgid "`5349/udp`: TURN over UDP (used by coturn)" +msgstr "" + +#: ../../../docs/prerequisites.md:55 +msgid "`8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**." +msgstr "" + +#: ../../../docs/prerequisites.md:56 +msgid "the range `49152-49172/udp`: TURN over UDP" +msgstr "" + +#: ../../../docs/prerequisites.md:57 +msgid "potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that." +msgstr "" + +#: ../../../docs/prerequisites.md:61 +msgid "[▶️](configuring-dns.md) When ready to proceed, continue with [Configuring DNS](configuring-dns.md)." +msgstr "" diff --git a/i18n/translation-templates/docs/quick-start.pot b/i18n/translation-templates/docs/quick-start.pot new file mode 100644 index 000000000..2dde01c63 --- /dev/null +++ b/i18n/translation-templates/docs/quick-start.pot @@ -0,0 +1,429 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/quick-start.md:1 +msgid "Quick start" +msgstr "" + +#: ../../../docs/quick-start.md:9 +msgid "This page explains how to use this Ansible playbook to install Matrix services on your server with a minimal set of core services." +msgstr "" + +#: ../../../docs/quick-start.md:11 +msgid "We will be using `example.com` as the \"base domain\" in the following instruction." +msgstr "" + +#: ../../../docs/quick-start.md:13 +msgid "By following the instruction on this page, you will set up:" +msgstr "" + +#: ../../../docs/quick-start.md:15 +msgid "**your own Matrix server** on a `matrix.example.com` server, which is configured to present itself as `example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:16 +msgid "**your user account** like `@alice:example.com` on the server" +msgstr "" + +#: ../../../docs/quick-start.md:17 +msgid "a **self-hosted Matrix client**, [Element Web](configuring-playbook-client-element-web.md) with the default subdomain at `element.example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:18 +msgid "Matrix delegation, so that your `matrix.example.com` server (presenting itself as `example.com`) can join the Matrix Federation and communicate with any other server in the Matrix network" +msgstr "" + +#: ../../../docs/quick-start.md:20 +msgid "Please remember to replace `example.com` with your own domain before running any commands." +msgstr "" + +#: ../../../docs/quick-start.md:22 +msgid "Prerequisites" +msgstr "" + +#: ../../../docs/quick-start.md:24 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Prerequisites](prerequisites.md)" +msgstr "" + +#: ../../../docs/quick-start.md:26 +msgid "At first, **check prerequisites** and prepare for installation by setting up programs [on your own computer](prerequisites.md#your-local-computer) and [your server](prerequisites.md#server). You also need `root` access on your server (a user that could elevate to `root` via `sudo` also works)." +msgstr "" + +#: ../../../docs/quick-start.md:28 +msgid "When preparing your server, make sure to check [the server specs you need](faq.md#what-kind-of-server-specs-do-i-need). We recommend starting with a server having at least 2GB of memory." +msgstr "" + +#: ../../../docs/quick-start.md:34 +msgid "If you encounter an error during installation, please make sure that you have installed and configured programs correctly." +msgstr "" + +#: ../../../docs/quick-start.md:36 +msgid "One of the main reasons of basic errors is using an incompatible version of required software such as Ansible. Take a look at [our guide about Ansible](ansible.md) for more information. In short: installing the latest available version is recommended." +msgstr "" + +#: ../../../docs/quick-start.md:38 +msgid "Configure your DNS settings" +msgstr "" + +#: ../../../docs/quick-start.md:40 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring your DNS settings](configuring-dns.md)" +msgstr "" + +#: ../../../docs/quick-start.md:42 +msgid "After installing and configuring prerequisites, you will need to **configure DNS records**." +msgstr "" + +#: ../../../docs/quick-start.md:44 +msgid "To configure Matrix services in the default settings, go to your DNS service provider, and adjust DNS records as below." +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Type" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Host" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Priority" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Weight" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Port" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "Target" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "A" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "`matrix`" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "-" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "`matrix-server-IP`" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "CNAME" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "`element`" +msgstr "" + +#: ../../../docs/quick-start.md:0 +msgid "`matrix.example.com`" +msgstr "" + +#: ../../../docs/quick-start.md:51 +msgid "As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine)." +msgstr "" + +#: ../../../docs/quick-start.md:53 +msgid "It might take some time for the DNS records to propagate after creation." +msgstr "" + +#: ../../../docs/quick-start.md:55 +msgid "**💡 Note**: if you are using Cloudflare DNS, make sure to disable the proxy and set all records to \"DNS only\"" +msgstr "" + +#: ../../../docs/quick-start.md:57 +msgid "Get the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:59 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Getting the playbook](getting-the-playbook.md)" +msgstr "" + +#: ../../../docs/quick-start.md:61 +msgid "Next, let's **get the playbook's source code**." +msgstr "" + +#: ../../../docs/quick-start.md:63 +msgid "We recommend to do so with [git](https://git-scm.com/) as it enables you to keep it up to date with the latest source code. While it is possible to download the playbook as a ZIP archive, it is not recommended." +msgstr "" + +#: ../../../docs/quick-start.md:65 +msgid "To get the playbook with git, install git on your computer, go to a directory, and run the command:" +msgstr "" + +#: ../../../docs/quick-start.md:71 +msgid "It will fetch the playbook to a new `matrix-docker-ansible-deploy` directory underneath the directory you are currently in." +msgstr "" + +#: ../../../docs/quick-start.md:73 +msgid "Configure the playbook" +msgstr "" + +#: ../../../docs/quick-start.md:75 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Configuring the playbook](configuring-playbook.md)" +msgstr "" + +#: ../../../docs/quick-start.md:77 +msgid "Now that the playbook was fetched, it is time to **configure** it per your needs." +msgstr "" + +#: ../../../docs/quick-start.md:79 +msgid "To install Matrix services with this playbook, you would at least need 2 configuration files." +msgstr "" + +#: ../../../docs/quick-start.md:81 +msgid "For your convenience, we have prepared example files of them ([`vars.yml`](../examples/vars.yml) and [`hosts`](../examples/hosts))." +msgstr "" + +#: ../../../docs/quick-start.md:83 +msgid "To start quickly based on these example files, go into the `matrix-docker-ansible-deploy` directory and follow the instructions below:" +msgstr "" + +#: ../../../docs/quick-start.md:85 +msgid "Create a directory to hold your configuration: `mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\"" +msgstr "" + +#: ../../../docs/quick-start.md:86 +msgid "Copy the sample configuration file: `cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`" +msgstr "" + +#: ../../../docs/quick-start.md:87 +msgid "Copy the sample inventory hosts file: `cp examples/hosts inventory/hosts`" +msgstr "" + +#: ../../../docs/quick-start.md:88 +msgid "Edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`)" +msgstr "" + +#: ../../../docs/quick-start.md:89 +msgid "Edit the inventory hosts file (`inventory/hosts`)" +msgstr "" + +#: ../../../docs/quick-start.md:91 +msgid "Before editing these 2 files, make sure to read explanations on them to understand what needs to be configured." +msgstr "" + +#: ../../../docs/quick-start.md:93 +msgid "**💡 Notes:**" +msgstr "" + +#: ../../../docs/quick-start.md:94 +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 "" + +#: ../../../docs/quick-start.md:95 +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 "" + +#: ../../../docs/quick-start.md:96 +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 "" + +#: ../../../docs/quick-start.md:98 +msgid "Install" +msgstr "" + +#: ../../../docs/quick-start.md:100 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Installing](installing.md)" +msgstr "" + +#: ../../../docs/quick-start.md:102 +msgid "After editing `vars.yml` and `hosts` files, let's start the **installation** procedure." +msgstr "" + +#: ../../../docs/quick-start.md:104 +msgid "Update Ansible roles" +msgstr "" + +#: ../../../docs/quick-start.md:106 +msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." +msgstr "" + +#: ../../../docs/quick-start.md:108 +msgid "To update your playbook directory and all upstream Ansible roles, run:" +msgstr "" + +#: ../../../docs/quick-start.md:110 +msgid "either: `just update`" +msgstr "" + +#: ../../../docs/quick-start.md:111 +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 "" + +#: ../../../docs/quick-start.md:113 +msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`" +msgstr "" + +#: ../../../docs/quick-start.md:115 +msgid "Run installation command" +msgstr "" + +#: ../../../docs/quick-start.md:117 +msgid "Then, run the command below to start installation:" +msgstr "" + +#: ../../../docs/quick-start.md:123 +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 "" + +#: ../../../docs/quick-start.md:125 +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 "" + +#: ../../../docs/quick-start.md:127 +msgid "Wait until the command completes. If it's all green, everything should be running properly." +msgstr "" + +#: ../../../docs/quick-start.md:129 +msgid "Create your user account" +msgstr "" + +#: ../../../docs/quick-start.md:131 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Registering users](registering-users.md)" +msgstr "" + +#: ../../../docs/quick-start.md:133 +msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." +msgstr "" + +#: ../../../docs/quick-start.md:135 +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 "" + +#: ../../../docs/quick-start.md:137 +msgid "**💡 Notes**:" +msgstr "" + +#: ../../../docs/quick-start.md:138 +msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/quick-start.md:139 +msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/quick-start.md:151 +msgid "Finalize server installation" +msgstr "" + +#: ../../../docs/quick-start.md:153 +msgid "This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Server Delegation](howto-server-delegation.md)" +msgstr "" + +#: ../../../docs/quick-start.md:155 +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 "" + +#: ../../../docs/quick-start.md:157 +msgid "**This is required for federation to work!** Without a proper configuration, your server will effectively not be part of the Matrix network." +msgstr "" + +#: ../../../docs/quick-start.md:159 +msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." +msgstr "" + +#: ../../../docs/quick-start.md:161 +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 "" + +#: ../../../docs/quick-start.md:162 +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 "" + +#: ../../../docs/quick-start.md:164 +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 "" + +#: ../../../docs/quick-start.md:170 +msgid "After configuring the playbook, run the command below and wait until it finishes:" +msgstr "" + +#: ../../../docs/quick-start.md:176 +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 "" + +#: ../../../docs/quick-start.md:178 +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 "" + +#: ../../../docs/quick-start.md:180 +msgid "Re-run the full setup command any time" +msgstr "" + +#: ../../../docs/quick-start.md:182 +msgid "If you think something is wrong with the server configuration, feel free to re-run the setup command any time:" +msgstr "" + +#: ../../../docs/quick-start.md:188 +msgid "Log in to your user account" +msgstr "" + +#: ../../../docs/quick-start.md:190 +msgid "Finally, let's make sure that you can log in to the created account with the specified password." +msgstr "" + +#: ../../../docs/quick-start.md:192 +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 "" + +#: ../../../docs/quick-start.md:194 +msgid "**If you successfully logged in to your account, installing and configuring is complete**🎉" +msgstr "" + +#: ../../../docs/quick-start.md:196 +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 "" + +#: ../../../docs/quick-start.md:198 +msgid "Things to do next" +msgstr "" + +#: ../../../docs/quick-start.md:200 +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 "" + +#: ../../../docs/quick-start.md:202 +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 "" + +#: ../../../docs/quick-start.md:204 +msgid "⚠️Keep the playbook and services up-to-date" +msgstr "" + +#: ../../../docs/quick-start.md:206 +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 "" + +#: ../../../docs/quick-start.md:208 +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 "" + +#: ../../../docs/quick-start.md:210 +msgid "For more information about upgrading or maintaining services with the playbook, take at look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" +msgstr "" diff --git a/i18n/translation-templates/docs/registering-users.pot b/i18n/translation-templates/docs/registering-users.pot new file mode 100644 index 000000000..f90cc2c40 --- /dev/null +++ b/i18n/translation-templates/docs/registering-users.pot @@ -0,0 +1,242 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/registering-users.md:1 +msgid "Registering users" +msgstr "" + +#: ../../../docs/registering-users.md:3 +msgid "This documentation page tells you how to create user accounts on your Matrix server." +msgstr "" + +#: ../../../docs/registering-users.md:5 +msgid "Table of contents:" +msgstr "" + +#: ../../../docs/registering-users.md:7 +msgid "[Registering users](#registering-users)" +msgstr "" + +#: ../../../docs/registering-users.md:8 +msgid "[Registering users manually](#registering-users-manually)" +msgstr "" + +#: ../../../docs/registering-users.md:9 +msgid "[Managing users via a Web UI](#managing-users-via-a-web-ui)" +msgstr "" + +#: ../../../docs/registering-users.md:10 +msgid "[Letting certain users register on your private server](#letting-certain-users-register-on-your-private-server)" +msgstr "" + +#: ../../../docs/registering-users.md:11 +msgid "[Enabling public user registration](#enabling-public-user-registration)" +msgstr "" + +#: ../../../docs/registering-users.md:12 +msgid "[Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user)" +msgstr "" + +#: ../../../docs/registering-users.md:14 +msgid "Registering users manually" +msgstr "" + +#: ../../../docs/registering-users.md:16 +#: ../../../docs/registering-users.md:121 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/registering-users.md:17 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/registering-users.md:18 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/registering-users.md:19 +msgid "Use `admin=yes` or `admin=no` depending on whether you wish to make the user an administrator of the Matrix server" +msgstr "" + +#: ../../../docs/registering-users.md:21 +msgid "After registering a user (using one of the methods below), **you can log in with that user** via the [Element Web](configuring-playbook-client-element-web.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/registering-users.md:23 +msgid "Registering users via the Ansible playbook" +msgstr "" + +#: ../../../docs/registering-users.md:25 +msgid "It's best to register users via the Ansible playbook, because it works regardless of homeserver implementation (Synapse, Dendrite, etc) or usage of [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (MAS)." +msgstr "" + +#: ../../../docs/registering-users.md:27 +msgid "To register a user via this Ansible playbook:" +msgstr "" + +#: ../../../docs/registering-users.md:35 +msgid "**or** by invoking `ansible-playbook` manually:" +msgstr "" + +#: ../../../docs/registering-users.md:43 +msgid "Feel free to register as many users (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your user account only (with `admin=yes`), and others should be created with `admin=no`." +msgstr "" + +#: ../../../docs/registering-users.md:45 +msgid "[!WARNING] If you're registering users against Matrix Authentication Service, do note that it [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:48 +msgid "Registering users manually for Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:50 +msgid "If you're using the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default), you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:58 +msgid "Registering users manually for Dendrite" +msgstr "" + +#: ../../../docs/registering-users.md:60 +msgid "If you're using the [Dendrite](./configuring-playbook-dendrite.md) homeserver implementation, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:68 +msgid "Registering users manually for Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:70 +msgid "If you're using the [Matrix Authentication Service](./configuring-playbook-matrix-authentication-service.md) and your existing homeserver (most likely [Synapse](./configuring-playbook-synapse.md)) is delegating authentication to it, you can register users via the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#install-matrix-server-and-services)):" +msgstr "" + +#: ../../../docs/registering-users.md:78 +msgid "This `register-user` script actually invokes the `mas-cli manage register-user` command under the hood. If you'd like more control over the registration process, consider invoking the `mas-cli` command directly:" +msgstr "" + +#: ../../../docs/registering-users.md:84 +msgid "[!WARNING] Matrix Authentication Service [still insists](https://github.com/element-hq/matrix-authentication-service/issues/1505) on having a verified email address for each user. Upon a user's first login, they will be asked to confirm their email address. This requires that email sending is [configured](./configuring-playbook-email.md). You can also consult the [Working around email deliverability issues](./configuring-playbook-matrix-authentication-service.md#working-around-email-deliverability-issues) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:87 +msgid "Managing users via a Web UI" +msgstr "" + +#: ../../../docs/registering-users.md:89 +msgid "To manage users more easily (via a web user-interace), you can install [Synapse Admin](configuring-playbook-synapse-admin.md)." +msgstr "" + +#: ../../../docs/registering-users.md:91 +msgid "[!WARNING] If you're using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), note that user management via synapse-admin is not fully working yet. See the [Expectations](configuring-playbook-matrix-authentication-service.md#expectations) section for more information." +msgstr "" + +#: ../../../docs/registering-users.md:94 +msgid "Letting certain users register on your private server" +msgstr "" + +#: ../../../docs/registering-users.md:96 +msgid "If you'd rather **keep your server private** (public registration closed, as is the default), and **let certain people create accounts by themselves** (instead of creating user accounts manually like this), consider installing and making use of [matrix-registration](configuring-playbook-matrix-registration.md)." +msgstr "" + +#: ../../../docs/registering-users.md:98 +msgid "Enabling public user registration" +msgstr "" + +#: ../../../docs/registering-users.md:100 +msgid "To **open up user registration publicly** (usually **not recommended**), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" +msgstr "" + +#: ../../../docs/registering-users.md:102 +msgid "For Synapse:" +msgstr "" + +#: ../../../docs/registering-users.md:108 +msgid "For Dendrite:" +msgstr "" + +#: ../../../docs/registering-users.md:114 +msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" +msgstr "" + +#: ../../../docs/registering-users.md:123 +msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" +msgstr "" + +#: ../../../docs/registering-users.md:125 +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/registering-users.md:127 +msgid "If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md)." +msgstr "" + +#: ../../../docs/registering-users.md:129 +msgid "Adding/Removing Administrator privileges to an existing user" +msgstr "" + +#: ../../../docs/registering-users.md:131 +msgid "Adding/Removing Administrator privileges to an existing user in Synapse" +msgstr "" + +#: ../../../docs/registering-users.md:133 +msgid "To change the admin privileges for a user in Synapse's local database, you need to run an SQL query like this against the `synapse` database:" +msgstr "" + +#: ../../../docs/registering-users.md:139 +msgid "where:" +msgstr "" + +#: ../../../docs/registering-users.md:141 +msgid "`ADMIN_VALUE` being either `0` (regular user) or `1` (admin)" +msgstr "" + +#: ../../../docs/registering-users.md:142 +msgid "`USER` and `example.com` pointing to a valid user on your server" +msgstr "" + +#: ../../../docs/registering-users.md:144 +msgid "If you're using the integrated Postgres server and not an [external Postgres server](configuring-playbook-external-postgres.md), you can launch a Postgres into the `synapse` database by:" +msgstr "" + +#: ../../../docs/registering-users.md:146 +msgid "running `/matrix/postgres/bin/cli` — to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html)" +msgstr "" + +#: ../../../docs/registering-users.md:147 +msgid "running `\\c synapse` — to change to the `synapse` database" +msgstr "" + +#: ../../../docs/registering-users.md:149 +msgid "You can then proceed to run the query above." +msgstr "" + +#: ../../../docs/registering-users.md:151 +msgid "**Note**: directly modifying the raw data of Synapse (or any other software) could cause the software to break. You've been warned!" +msgstr "" + +#: ../../../docs/registering-users.md:153 +msgid "Adding/Removing Administrator privileges to an existing user in Matrix Authentication Service" +msgstr "" + +#: ../../../docs/registering-users.md:155 +msgid "Promoting/demoting a user in Matrix Authentication Service cannot currently (2024-10-19) be done via the [`mas-cli` Management tool](./configuring-playbook-matrix-authentication-service.md#management)." +msgstr "" + +#: ../../../docs/registering-users.md:157 +msgid "You can do it via the [MAS Admin API](https://element-hq.github.io/matrix-authentication-service/api/index.html)'s `POST /api/admin/v1/users/{id}/set-admin` endpoint." +msgstr "" diff --git a/i18n/translation-templates/docs/self-building.pot b/i18n/translation-templates/docs/self-building.pot new file mode 100644 index 000000000..6430f8b15 --- /dev/null +++ b/i18n/translation-templates/docs/self-building.pot @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/self-building.md:1 +msgid "Self-building" +msgstr "" + +#: ../../../docs/self-building.md:3 +msgid "**Caution: self-building does not have to be used on its own. See the [Alternative Architectures](alternative-architectures.md) page.**" +msgstr "" + +#: ../../../docs/self-building.md:5 +msgid "The playbook supports self-building of various components, which don't have a container image for your architecture (see the [container images we use](container-images.md)). For `amd64`, self-building is not required." +msgstr "" + +#: ../../../docs/self-building.md:7 +msgid "For other architectures (e.g. `arm32`, `arm64`), ready-made container images are used when available. If there's no ready-made image for a specific component and said component supports self-building, an image will be built on the host. Building images like this takes more time and resources (some build tools need to get installed by the playbook to assist building)." +msgstr "" + +#: ../../../docs/self-building.md:9 +msgid "To make use of self-building, you don't need to do anything. If a component has an image for the specified architecture, the playbook will use it directly. If not, it will build the image on the server itself." +msgstr "" + +#: ../../../docs/self-building.md:11 +msgid "Note that **not all components support self-building yet**." +msgstr "" + +#: ../../../docs/self-building.md:13 +msgid "Possibly outdated list of roles where self-building the Docker image is currently possible:" +msgstr "" + +#: ../../../docs/self-building.md:14 +msgid "`matrix-synapse`" +msgstr "" + +#: ../../../docs/self-building.md:15 +msgid "`matrix-synapse-admin`" +msgstr "" + +#: ../../../docs/self-building.md:16 +msgid "`matrix-client-element`" +msgstr "" + +#: ../../../docs/self-building.md:17 +msgid "`matrix-client-hydrogen`" +msgstr "" + +#: ../../../docs/self-building.md:18 +msgid "`matrix-client-cinny`" +msgstr "" + +#: ../../../docs/self-building.md:19 +msgid "`matrix-registration`" +msgstr "" + +#: ../../../docs/self-building.md:20 +msgid "`matrix-coturn`" +msgstr "" + +#: ../../../docs/self-building.md:21 +msgid "`matrix-corporal`" +msgstr "" + +#: ../../../docs/self-building.md:22 +msgid "`matrix-dimension`" +msgstr "" + +#: ../../../docs/self-building.md:23 +msgid "`matrix-ma1sd`" +msgstr "" + +#: ../../../docs/self-building.md:24 +msgid "`exim-relay`" +msgstr "" + +#: ../../../docs/self-building.md:25 +msgid "`matrix-bridge-hookshot`" +msgstr "" + +#: ../../../docs/self-building.md:26 +msgid "`matrix-bridge-appservice-irc`" +msgstr "" + +#: ../../../docs/self-building.md:27 +msgid "`matrix-bridge-appservice-slack`" +msgstr "" + +#: ../../../docs/self-building.md:28 +msgid "`matrix-bridge-appservice-webhooks`" +msgstr "" + +#: ../../../docs/self-building.md:29 +msgid "`matrix-bridge-beeper-linkedin`" +msgstr "" + +#: ../../../docs/self-building.md:30 +msgid "`matrix-bridge-mautrix-facebook`" +msgstr "" + +#: ../../../docs/self-building.md:31 +msgid "`matrix-bridge-mautrix-hangouts`" +msgstr "" + +#: ../../../docs/self-building.md:32 +msgid "`matrix-bridge-mautrix-googlechat`" +msgstr "" + +#: ../../../docs/self-building.md:33 +msgid "`matrix-bridge-mautrix-telegram`" +msgstr "" + +#: ../../../docs/self-building.md:34 +msgid "`matrix-bridge-mautrix-signal`" +msgstr "" + +#: ../../../docs/self-building.md:35 +msgid "`matrix-bridge-mautrix-gmessages`" +msgstr "" + +#: ../../../docs/self-building.md:36 +msgid "`matrix-bridge-mautrix-whatsapp`" +msgstr "" + +#: ../../../docs/self-building.md:37 +msgid "`matrix-bridge-mx-puppet-steam`" +msgstr "" + +#: ../../../docs/self-building.md:38 +msgid "`matrix-bot-mjolnir`" +msgstr "" + +#: ../../../docs/self-building.md:39 +msgid "`matrix-bot-honoroit`" +msgstr "" + +#: ../../../docs/self-building.md:40 +msgid "`matrix-bot-matrix-reminder-bot`" +msgstr "" + +#: ../../../docs/self-building.md:41 +msgid "`matrix-bot-maubot`" +msgstr "" + +#: ../../../docs/self-building.md:42 +msgid "`matrix-email2matrix`" +msgstr "" + +#: ../../../docs/self-building.md:43 +msgid "`matrix-pantalaimon`" +msgstr "" + +#: ../../../docs/self-building.md:45 +msgid "Adding self-building support to other roles is welcome. Feel free to contribute!" +msgstr "" + +#: ../../../docs/self-building.md:47 +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 "" diff --git a/i18n/translation-templates/docs/uninstalling.pot b/i18n/translation-templates/docs/uninstalling.pot new file mode 100644 index 000000000..b5abf1eb1 --- /dev/null +++ b/i18n/translation-templates/docs/uninstalling.pot @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/uninstalling.md:1 +msgid "Uninstalling" +msgstr "" + +#: ../../../docs/uninstalling.md:3 +msgid "⚠️ **Warnings**:" +msgstr "" + +#: ../../../docs/uninstalling.md:4 +msgid "If your server federates with others, make sure to **leave any federated rooms before nuking your Matrix server's data**. Otherwise, the next time you set up a Matrix server for this domain (regardless of the installation method you use), you'll encounter trouble federating." +msgstr "" + +#: ../../../docs/uninstalling.md:5 +msgid "If you have some trouble with your installation, you can just [re-run the playbook](installing.md) and it will try to set things up again. **Uninstalling and then installing anew rarely solves anything**." +msgstr "" + +#: ../../../docs/uninstalling.md:9 +msgid "Uninstalling using a script" +msgstr "" + +#: ../../../docs/uninstalling.md:11 +msgid "Installing places a `/matrix/bin/remove-all` script on the server." +msgstr "" + +#: ../../../docs/uninstalling.md:13 +msgid "You can run it to to have it uninstall things for you automatically (see below). **Use with caution!**" +msgstr "" + +#: ../../../docs/uninstalling.md:15 +msgid "Uninstalling manually" +msgstr "" + +#: ../../../docs/uninstalling.md:17 +msgid "If you prefer to uninstall manually, run these commands (most are meant to be executed on the Matrix server itself):" +msgstr "" + +#: ../../../docs/uninstalling.md:19 +msgid "ensure all Matrix services are stopped: `ansible-playbook -i inventory/hosts setup.yml --tags=stop` (if you can't get Ansible working to run this command, you can run `systemctl stop 'matrix*'` manually on the server)" +msgstr "" + +#: ../../../docs/uninstalling.md:21 +msgid "delete the Matrix-related systemd `.service` and `.timer` files (`rm -f /etc/systemd/system/matrix*.{service,timer}`) and reload systemd (`systemctl daemon-reload`)" +msgstr "" + +#: ../../../docs/uninstalling.md:23 +msgid "delete some cached Docker images (`docker system prune -a`) or just delete them all (`docker rmi $(docker images -aq)`)" +msgstr "" + +#: ../../../docs/uninstalling.md:25 +msgid "delete the Docker networks: `docker network rm matrix matrix-coturn` (might have been deleted already if you ran the `docker system prune` command)" +msgstr "" + +#: ../../../docs/uninstalling.md:27 +msgid "uninstall Docker itself, if necessary" +msgstr "" + +#: ../../../docs/uninstalling.md:29 +msgid "delete the `/matrix` directory (`rm -rf /matrix`)" +msgstr "" diff --git a/i18n/translation-templates/docs/updating-users-passwords.pot b/i18n/translation-templates/docs/updating-users-passwords.pot new file mode 100644 index 000000000..2de15287e --- /dev/null +++ b/i18n/translation-templates/docs/updating-users-passwords.pot @@ -0,0 +1,89 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../docs/updating-users-passwords.md:1 +msgid "Updating users passwords" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:3 +msgid "Option 1 (if you are using the integrated Postgres database):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:5 +msgid "**Notes**:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:6 +msgid "Make sure to adjust `USERNAME_HERE` and `PASSWORD_HERE`" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:7 +msgid "For `USERNAME_HERE`, use a plain username like `alice`, not a full ID (`@alice:example.com`)" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:9 +msgid "You can reset a user's password via the Ansible playbook:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:15 +msgid "**You can then log in with that user** via Element Web that this playbook has created for you at a URL like this: `https://element.example.com/`." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:17 +msgid "Option 2 (if you are using an external Postgres server):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:19 +msgid "You can manually generate the password hash by using the command-line after **SSH**-ing to your server (requires that [all services have been started](installing.md#finalize-the-installation):" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:25 +msgid "and then connecting to the postgres server and executing:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:31 +msgid "where `` is the hash returned by the docker command above." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:33 +msgid "Option 3:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:35 +msgid "Use the Synapse User Admin API as described here: https://github.com/element-hq/synapse/blob/master/docs/admin_api/user_admin_api.rst#reset-password" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:37 +msgid "This requires an [access token](obtaining-access-tokens.md) from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:39 +msgid "If you didn't make your account a server admin when you created it, you can learn how to switch it now by reading about it in [Adding/Removing Administrator privileges to an existing user in Synapse](registering-users.md#addingremoving-administrator-privileges-to-an-existing-user-in-synapse)." +msgstr "" + +#: ../../../docs/updating-users-passwords.md:41 +msgid "Example:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:43 +msgid "To set @alice:example.com's password to `correct_horse_battery_staple` you could use this curl command:" +msgstr "" + +#: ../../../docs/updating-users-passwords.md:49 +msgid "Make sure to replace `ACCESS_TOKEN_HERE` with the access token of the server admin account." +msgstr "" diff --git a/i18n/translation-templates/i18n/README.pot b/i18n/translation-templates/i18n/README.pot new file mode 100644 index 000000000..f7d1a72eb --- /dev/null +++ b/i18n/translation-templates/i18n/README.pot @@ -0,0 +1,216 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2018-2025, Slavi Pantaleev, Aine Etke, MDAD community members +# This file is distributed under the same license as the matrix-docker-ansible-deploy package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: matrix-docker-ansible-deploy \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-27 09:54+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../README.md:8 +msgid "Internationalization" +msgstr "" + +#: ../../README.md:10 +msgid "Translated documentation files are published and maintained in [`translations/`](translations/) directory." +msgstr "" + +#: ../../README.md:12 +msgid "Currently, we support translation of:" +msgstr "" + +#: ../../README.md:14 +msgid "Markdown files found at the top level project directory" +msgstr "" + +#: ../../README.md:15 +msgid "Markdown files found in the [`docs`](../docs/) directory (this is where the bulk of the documentation is)" +msgstr "" + +#: ../../README.md:16 +msgid "this current document in the `i18n` directory" +msgstr "" + +#: ../../README.md:18 +msgid "💡 For readers' sake, we only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold (requiring that at least the project README and core installation guides are translated)." +msgstr "" + +#: ../../README.md:20 +msgid "Organization of this `i18n` directory is as follows:" +msgstr "" + +#: ../../README.md:22 +msgid "[PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory)" +msgstr "" + +#: ../../README.md:23 +msgid "[.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionaly ignore translated results (`translations/` directories) for languages taht are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold." +msgstr "" + +#: ../../README.md:24 +msgid "[justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner" +msgstr "" + +#: ../../README.md:25 +msgid "[requirements.txt](requirements.txt): a list of Python packages required to work with translations" +msgstr "" + +#: ../../README.md:26 +msgid "[translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files" +msgstr "" + +#: ../../README.md:27 +msgid "[locales/](locales/): localization files for languages" +msgstr "" + +#: ../../README.md:28 +msgid "[translations/](translations/): translated documents for published languages (see [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) and [publish translations in a new language](#publish-translations-in-a-new-language))" +msgstr "" + +#: ../../README.md:30 +msgid "Guide for translators" +msgstr "" + +#: ../../README.md:32 +msgid "This project uses [Sphinx](https://www.sphinx-doc.org/) to generate translated documents." +msgstr "" + +#: ../../README.md:34 +msgid "For details about using Sphinx for translation, refer [this official document](https://www.sphinx-doc.org/en/master/usage/advanced/intl.html) as well." +msgstr "" + +#: ../../README.md:36 +msgid "For now, translations are handled manually by editing `.po` files in the `locales/` directory. In the future, we plan on integrating with [Weblate](https://weblate.org/) to allow for translating from a web interface." +msgstr "" + +#: ../../README.md:38 +msgid "(Recommended) Using the uv package manager and just command runner" +msgstr "" + +#: ../../README.md:40 +msgid "If you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed, you can use our [justfile](justfile) recipes to easily manage translation files and build translated documents." +msgstr "" + +#: ../../README.md:42 +msgid "The recipes will use [uv](https://github.com/astral-sh/uv) to auto-create [a Python virtual environment](https://docs.astral.sh/uv/pip/environments/) in the `.venv` directory and install the required Python packages (as per [requirements.txt](requirements.txt)) to it." +msgstr "" + +#: ../../README.md:44 +#: ../../README.md:71 +msgid "Preparation" +msgstr "" + +#: ../../README.md:46 +msgid "Make sure you have the [uv](https://docs.astral.sh/uv/) package manager and [just](https://github.com/casey/just) command runner installed." +msgstr "" + +#: ../../README.md:48 +#: ../../README.md:79 +msgid "Translation" +msgstr "" + +#: ../../README.md:50 +#: ../../README.md:81 +msgid "Recommended flow when working on a new language (replace `` with the language code, e.g. `bg`):" +msgstr "" + +#: ../../README.md:52 +msgid "Update the locale files for your language: `just sync-for-language ` (internally, this automatically runs `just extract-translation-templates` to make sure the translation templates are up-to-date)" +msgstr "" + +#: ../../README.md:54 +#: ../../README.md:87 +msgid "Use an editor to translate the files in the `locales/` directory" +msgstr "" + +#: ../../README.md:56 +msgid "Build translated documents: `just build-for-language `" +msgstr "" + +#: ../../README.md:58 +#: ../../README.md:91 +msgid "Preview the result in the `translations/` directory" +msgstr "" + +#: ../../README.md:60 +#: ../../README.md:93 +msgid "Commit your changes done to the `locales/` directory" +msgstr "" + +#: ../../README.md:62 +#: ../../README.md:95 +msgid "If you have progressed with the translation beyond a certain threshold, consider [Publishing translations in a new language](#publish-translations-in-a-new-language)" +msgstr "" + +#: ../../README.md:64 +msgid "Using any other package manager and manual scripts" +msgstr "" + +#: ../../README.md:66 +msgid "If you cannot use [uv](https://docs.astral.sh/uv/) and/or [just](https://github.com/casey/just), you can:" +msgstr "" + +#: ../../README.md:68 +msgid "manage Python packages in another way ([pip](https://pip.pypa.io/en/stable/), [Poetry](https://python-poetry.org/), etc.)" +msgstr "" + +#: ../../README.md:69 +msgid "manage translation strings and build translated documents manually by invoking scripts from the [bin](bin/) directory" +msgstr "" + +#: ../../README.md:73 +msgid "virtualenv and pip" +msgstr "" + +#: ../../README.md:75 +msgid "Create a Python virtual environment in the `.venv` directory: `virtualenv .venv`" +msgstr "" + +#: ../../README.md:76 +msgid "Activate the virtual environment: `source .venv/bin/activate`" +msgstr "" + +#: ../../README.md:77 +msgid "Install the required Python packages using [pip](https://pip.pypa.io/en/stable/): `pip install -r requirements.txt`" +msgstr "" + +#: ../../README.md:83 +msgid "Ensure the English translation templates ([translation-templates/](translation-templates/)) are extracted: `./bin/extract-translation-templates.sh`" +msgstr "" + +#: ../../README.md:85 +msgid "Update the locale files for your language: `./bin/sync-translation-templates-to-locales.sh `" +msgstr "" + +#: ../../README.md:89 +msgid "Build translated documents: `./bin/build-translated-result.sh `" +msgstr "" + +#: ../../README.md:97 +msgid "Publish translations in a new language" +msgstr "" + +#: ../../README.md:99 +msgid "To publish prebuilt documents translated in a new language to the `translations/` directory:" +msgstr "" + +#: ../../README.md:101 +msgid "add its language code to the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file" +msgstr "" + +#: ../../README.md:102 +msgid "whitelist its `translations/` directory by adding a `!translations/` rule to the [.gitignore](.gitignore) file" +msgstr "" + +#: ../../README.md:104 +msgid "💡 Leave a trailing new line at the end of the [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES) file." +msgstr "" diff --git a/jitsi_jvb.yml b/jitsi_jvb.yml index 16acd0ee6..d57c15a97 100644 --- a/jitsi_jvb.yml +++ b/jitsi_jvb.yml @@ -1,5 +1,12 @@ +# SPDX-FileCopyrightText: 2022 Warren Bailey +# SPDX-FileCopyrightText: 2023 Antonis Christofides +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -- name: "Set up additional Jitsi JVB servers" +- name: "Set up additional Jitsi Videobridge (JVB) servers" hosts: "jitsi_jvb_servers" become: true diff --git a/justfile b/justfile index 95a8e1006..a2bab08f2 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,12 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # Shows help default: - @just --list --justfile {{ justfile() }} + @{{ just_executable() }} --list --justfile {{ justfile() }} # Pulls external Ansible roles roles: @@ -17,18 +23,18 @@ roles: update *flags: update-playbook-only #!/usr/bin/env sh 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 {{ flags }} 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 "Installing roles..." + echo "Installing roles…" rm -rf roles/galaxy ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force fi # Updates the playbook without installing/updating Ansible roles update-playbook-only: - @echo "Updating playbook..." + @echo "Updating playbook…" @git stash -q @git pull -q @-git stash pop -q @@ -42,7 +48,7 @@ install-all *extra_args: (run-tags "install-all,ensure-matrix-users-created,star # Runs installation tasks for a single service install-service service *extra_args: - just --justfile {{ justfile() }} run \ + {{ just_executable() }} --justfile {{ justfile() }} run \ --tags=install-{{ service }},start-group \ --extra-vars=group={{ service }} \ --extra-vars=devture_systemd_service_manager_service_restart_mode=one-by-one {{ extra_args }} @@ -56,7 +62,7 @@ run +extra_args: # Runs the playbook with the given list of comma-separated tags and optional arguments run-tags tags *extra_args: - just --justfile {{ justfile() }} run --tags={{ tags }} {{ extra_args }} + {{ just_executable() }} --justfile {{ justfile() }} run --tags={{ tags }} {{ extra_args }} # Runs the playbook in user-registration mode register-user username password admin_yes_or_no *extra_args: @@ -67,14 +73,14 @@ start-all *extra_args: (run-tags "start-all" extra_args) # Starts a specific service group start-group group *extra_args: - @just --justfile {{ justfile() }} run-tags start-group --extra-vars="group={{ group }}" {{ extra_args }} + @{{ just_executable() }} --justfile {{ justfile() }} run-tags start-group --extra-vars="group={{ group }}" {{ extra_args }} # Stops all services stop-all *extra_args: (run-tags "stop-all" extra_args) # Stops a specific service group stop-group group *extra_args: - @just --justfile {{ justfile() }} run-tags stop-group --extra-vars="group={{ group }}" {{ extra_args }} + @{{ just_executable() }} --justfile {{ justfile() }} run-tags stop-group --extra-vars="group={{ group }}" {{ extra_args }} # Rebuilds the mautrix-meta-instagram Ansible role using the mautrix-meta-messenger role as a source rebuild-mautrix-meta-instagram: diff --git a/requirements.yml b/requirements.yml index 0ed10a4fd..556634277 100644 --- a/requirements.yml +++ b/requirements.yml @@ -4,34 +4,31 @@ version: v1.0.0-5 name: auxiliary - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git - version: v1.4.0-1.9.2-1 + version: v1.4.0-1.9.13-0 name: backup_borg -- src: git+https://github.com/devture/com.devture.ansible.role.container_socket_proxy.git - version: v0.2.0-0 +- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy.git + version: v0.3.0-4 name: container_socket_proxy - src: git+https://github.com/geerlingguy/ansible-role-docker - version: 7.4.2 + version: 7.4.5 name: docker - src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git version: 129c8590e106b83e6f4c259649a613c6279e937a name: docker_sdk_for_python - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git - version: v2.2.6-0 + version: v2.2.7-4 name: etherpad - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git - version: v4.98-r0-1-1 + version: v4.98.1-r0-2-0 name: exim_relay - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git - version: v11.3.1-0 + version: v11.5.2-2 name: grafana - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git - version: v9823-1 + version: v10078-1-0 name: jitsi -- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-keydb.git - version: v6.3.4-3 - name: keydb - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git - version: v2.11.0-0 + version: v2.11.0-4 name: ntfy - src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git version: 201c939eed363de269a83ba29784fc3244846048 @@ -43,25 +40,22 @@ version: ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16 name: playbook_state_preserver - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git - version: v17.0-2 + version: v17.4-0 name: postgres - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git - version: v16-0 + version: v17-3 name: postgres_backup - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git - version: v2.55.1-0 + version: v2.55.1-3 name: prometheus - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git - version: v1.8.2-2 + version: v1.8.2-5 name: prometheus_node_exporter - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git - version: v0.14.0-6 + version: v0.14.0-9 name: prometheus_postgres_exporter -- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-redis.git - version: v7.2.5-1 - name: redis - src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git - version: v1.3.0-0 + version: v1.4.0-0 name: systemd_docker_base - src: git+https://github.com/devture/com.devture.ansible.role.systemd_service_manager.git version: v1.0.0-4 @@ -70,11 +64,11 @@ version: v1.0.0-0 name: timesync - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git - version: v3.2.1-0 + version: v3.3.4-0 name: traefik - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git - version: v2.8.3-5 + version: v2.10.0-0 name: traefik_certs_dumper - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-valkey.git - version: v8.0.1-0 + version: v8.0.1-3 name: valkey diff --git a/roles/custom/matrix-alertmanager-receiver/defaults/main.yml b/roles/custom/matrix-alertmanager-receiver/defaults/main.yml index c2967cce5..3bd6107f4 100644 --- a/roles/custom/matrix-alertmanager-receiver/defaults/main.yml +++ b/roles/custom/matrix-alertmanager-receiver/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-alertmanager-receiver is a service which receives webhook payloads from Prometheus' Alertmanager and forwards them to a Matrix room. @@ -6,7 +11,7 @@ matrix_alertmanager_receiver_enabled: true # renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver -matrix_alertmanager_receiver_version: 2024.11.20 +matrix_alertmanager_receiver_version: 2025.3.5 matrix_alertmanager_receiver_scheme: https @@ -25,11 +30,12 @@ matrix_alertmanager_receiver_container_image_self_build_repo: https://github.com matrix_alertmanager_receiver_container_image_self_build_repo_version: "{{ 'main' if matrix_alertmanager_receiver_version == 'main' else matrix_alertmanager_receiver_version }}" matrix_alertmanager_receiver_container_src_path: "{{ matrix_alertmanager_receiver_base_path }}/container-src" -matrix_alertmanager_receiver_container_image: "{{ matrix_alertmanager_receiver_container_image_name_prefix }}metio/matrix-alertmanager-receiver:{{ matrix_alertmanager_receiver_container_image_tag }}" -matrix_alertmanager_receiver_container_image_name_prefix: "{{ 'localhost/' if matrix_alertmanager_receiver_container_image_self_build else matrix_alertmanager_receiver_container_image_registry_prefix }}" +matrix_alertmanager_receiver_container_image: "{{ matrix_alertmanager_receiver_container_image_registry_prefix }}metio/matrix-alertmanager-receiver:{{ matrix_alertmanager_receiver_container_image_tag }}" matrix_alertmanager_receiver_container_image_tag: "{{ matrix_alertmanager_receiver_version }}" matrix_alertmanager_receiver_container_image_force_pull: "{{ matrix_alertmanager_receiver_container_image.endswith(':main') }}" -matrix_alertmanager_receiver_container_image_registry_prefix: docker.io/ +matrix_alertmanager_receiver_container_image_registry_prefix: "{{ matrix_alertmanager_receiver_container_image_registry_prefix_upstream }}" +matrix_alertmanager_receiver_container_image_registry_prefix_upstream: "{{ matrix_alertmanager_receiver_container_image_registry_prefix_upstream_default }}" +matrix_alertmanager_receiver_container_image_registry_prefix_upstream_default: "docker.io/" # The base container network. It will be auto-created by this role if it doesn't exist already. matrix_alertmanager_receiver_container_network: '' @@ -218,7 +224,7 @@ matrix_alertmanager_receiver_config_templating_resolved_template: |- # # For a more advanced customization, you can extend the default (see `matrix_alertmanager_receiver_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_alertmanager_receiver_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}" +matrix_alertmanager_receiver_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_alertmanager_receiver_configuration_extension_yaml: | # Your custom YAML configuration for matrix-alertmanager-receiver goes here. diff --git a/roles/custom/matrix-alertmanager-receiver/tasks/install.yml b/roles/custom/matrix-alertmanager-receiver/tasks/install.yml index 50bb44627..a710fcdf3 100644 --- a/roles/custom/matrix-alertmanager-receiver/tasks/install.yml +++ b/roles/custom/matrix-alertmanager-receiver/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-alertmanager-receiver paths exist diff --git a/roles/custom/matrix-alertmanager-receiver/tasks/main.yml b/roles/custom/matrix-alertmanager-receiver/tasks/main.yml index b6ff76aca..ac7500030 100644 --- a/roles/custom/matrix-alertmanager-receiver/tasks/main.yml +++ b/roles/custom/matrix-alertmanager-receiver/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-alertmanager-receiver/tasks/uninstall.yml b/roles/custom/matrix-alertmanager-receiver/tasks/uninstall.yml index f0a82acbf..71b76298d 100644 --- a/roles/custom/matrix-alertmanager-receiver/tasks/uninstall.yml +++ b/roles/custom/matrix-alertmanager-receiver/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-alertmanager-receiver service diff --git a/roles/custom/matrix-alertmanager-receiver/tasks/validate_config.yml b/roles/custom/matrix-alertmanager-receiver/tasks/validate_config.yml index 83591a956..77ecdce2a 100644 --- a/roles/custom/matrix-alertmanager-receiver/tasks/validate_config.yml +++ b/roles/custom/matrix-alertmanager-receiver/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-alertmanager-receiver settings not defined ansible.builtin.fail: @@ -12,3 +16,11 @@ - {'name': 'matrix_alertmanager_receiver_container_network', when: true} - {'name': 'matrix_alertmanager_receiver_metrics_proxying_hostname', when: "{{ matrix_alertmanager_receiver_metrics_proxying_enabled }}"} - {'name': 'matrix_alertmanager_receiver_metrics_proxying_path_prefix', when: "{{ matrix_alertmanager_receiver_metrics_proxying_enabled }}"} + +- name: (Deprecation) Catch and report renamed matrix-alertmanager-receiver variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_alertmanager_receiver_container_image_name_prefix', 'new': 'matrix_alertmanager_receiver_container_image_registry_prefix'} diff --git a/roles/custom/matrix-alertmanager-receiver/templates/config.yml.j2 b/roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2 similarity index 100% rename from roles/custom/matrix-alertmanager-receiver/templates/config.yml.j2 rename to roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2 diff --git a/roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2.license b/roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2.license new file mode 100644 index 000000000..401253ee1 --- /dev/null +++ b/roles/custom/matrix-alertmanager-receiver/templates/config.yaml.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-alertmanager-receiver/templates/labels.j2 b/roles/custom/matrix-alertmanager-receiver/templates/labels.j2 index 8bf7d22b9..77dc78e8b 100644 --- a/roles/custom/matrix-alertmanager-receiver/templates/labels.j2 +++ b/roles/custom/matrix-alertmanager-receiver/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_alertmanager_receiver_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2 b/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2 index 4d7e43c54..2f0b6622d 100644 --- a/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2 +++ b/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-alertmanager-receiver 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-alertmanager-receiver -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-alertmanager-receiver 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2.license b/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-alertmanager-receiver/templates/systemd/matrix-alertmanager-receiver.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-appservice-double-puppet/defaults/main.yml b/roles/custom/matrix-appservice-double-puppet/defaults/main.yml index a8a0c8e51..33907875d 100644 --- a/roles/custom/matrix-appservice-double-puppet/defaults/main.yml +++ b/roles/custom/matrix-appservice-double-puppet/defaults/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_appservice_double_puppet_enabled: true diff --git a/roles/custom/matrix-appservice-double-puppet/tasks/install.yml b/roles/custom/matrix-appservice-double-puppet/tasks/install.yml index c0818477b..a0a427aae 100644 --- a/roles/custom/matrix-appservice-double-puppet/tasks/install.yml +++ b/roles/custom/matrix-appservice-double-puppet/tasks/install.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-appservice-double-puppet paths exist diff --git a/roles/custom/matrix-appservice-double-puppet/tasks/main.yml b/roles/custom/matrix-appservice-double-puppet/tasks/main.yml index c7860d03b..fda0c1b13 100644 --- a/roles/custom/matrix-appservice-double-puppet/tasks/main.yml +++ b/roles/custom/matrix-appservice-double-puppet/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-appservice-double-puppet/tasks/uninstall.yml b/roles/custom/matrix-appservice-double-puppet/tasks/uninstall.yml index cc22920cc..0fd5d561c 100644 --- a/roles/custom/matrix-appservice-double-puppet/tasks/uninstall.yml +++ b/roles/custom/matrix-appservice-double-puppet/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-appservice-double-puppet paths don't exist diff --git a/roles/custom/matrix-appservice-double-puppet/tasks/validate_config.yml b/roles/custom/matrix-appservice-double-puppet/tasks/validate_config.yml index 0151b1db1..abe7b371b 100644 --- a/roles/custom/matrix-appservice-double-puppet/tasks/validate_config.yml +++ b/roles/custom/matrix-appservice-double-puppet/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-appservice-double-puppet settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-appservice-double-puppet/templates/registration.yaml.j2 b/roles/custom/matrix-appservice-double-puppet/templates/registration.yaml.j2 index e3d19ee1f..7702b2585 100644 --- a/roles/custom/matrix-appservice-double-puppet/templates/registration.yaml.j2 +++ b/roles/custom/matrix-appservice-double-puppet/templates/registration.yaml.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # The ID doesn't really matter, put whatever you want. id: {{ matrix_appservice_double_puppet_registration_id | to_json }} # The URL is intentionally left empty (null), as the homeserver shouldn't diff --git a/roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml b/roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml index a5680809d..a1eebf5af 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml +++ b/roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 - 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # A moderation tool for Matrix # Project source code URL: https://github.com/the-draupnir-project/Draupnir @@ -5,13 +11,15 @@ matrix_appservice_draupnir_for_all_enabled: true # renovate: datasource=docker depName=gnuxie/draupnir -matrix_appservice_draupnir_for_all_version: "1.87.0" +matrix_appservice_draupnir_for_all_version: "v2.2.0" matrix_appservice_draupnir_for_all_container_image_self_build: false matrix_appservice_draupnir_for_all_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git" -matrix_appservice_draupnir_for_all_docker_image: "{{ matrix_appservice_draupnir_for_all_docker_image_name_prefix }}gnuxie/draupnir:{{ matrix_appservice_draupnir_for_all_version }}" -matrix_appservice_draupnir_for_all_docker_image_name_prefix: "{{ 'localhost/' if matrix_appservice_draupnir_for_all_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_appservice_draupnir_for_all_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_draupnir_for_all_container_image_self_build else matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream }}" +matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream: "{{ matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_draupnir_for_all_docker_image_registry_prefix_upstream_default: "docker.io/" +matrix_appservice_draupnir_for_all_docker_image: "{{ matrix_appservice_draupnir_for_all_docker_image_registry_prefix }}gnuxie/draupnir:{{ matrix_appservice_draupnir_for_all_version }}" matrix_appservice_draupnir_for_all_docker_image_force_pull: "{{ matrix_appservice_draupnir_for_all_docker_image.endswith(':latest') }}" matrix_appservice_draupnir_for_all_base_path: "{{ matrix_base_data_path }}/draupnir-for-all" diff --git a/roles/custom/matrix-appservice-draupnir-for-all/tasks/main.yml b/roles/custom/matrix-appservice-draupnir-for-all/tasks/main.yml index 8048ee95a..5e4af332b 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/tasks/main.yml +++ b/roles/custom/matrix-appservice-draupnir-for-all/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_install.yml b/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_install.yml index 6dc2bf95e..e4d51b7f7 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_install.yml +++ b/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_uninstall.yml b/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_uninstall.yml index f81cbfef3..da78634d6 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-appservice-draupnir-for-all/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-draupnir-for-all service diff --git a/roles/custom/matrix-appservice-draupnir-for-all/tasks/validate_config.yml b/roles/custom/matrix-appservice-draupnir-for-all/tasks/validate_config.yml index f0a1daf49..8d8d1168c 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/tasks/validate_config.yml +++ b/roles/custom/matrix-appservice-draupnir-for-all/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-bot-draupnir variables are undefined @@ -7,3 +13,12 @@ - "matrix_appservice_draupnir_for_all_master_control_room_alias" - "matrix_bot_draupnir_container_network" when: "vars[item] == '' or vars[item] is none" + +- name: (Deprecation) Catch and report renamed matrix-appservice-draupnir-for-all settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_appservice_draupnir_for_all_docker_image_name_prefix', 'new': 'matrix_appservice_draupnir_for_all_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-appservice-draupnir-for-all/templates/production-appservice.yaml.j2 b/roles/custom/matrix-appservice-draupnir-for-all/templates/production-appservice.yaml.j2 index e10952ef4..346b57e96 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/templates/production-appservice.yaml.j2 +++ b/roles/custom/matrix-appservice-draupnir-for-all/templates/production-appservice.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2024 MDAD project contributors +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + homeserver: # The Matrix server name, this will be the name of the server in your Matrix ID. domain: "{{ matrix_domain }}" diff --git a/roles/custom/matrix-appservice-draupnir-for-all/templates/production-bots.yaml.j2 b/roles/custom/matrix-appservice-draupnir-for-all/templates/production-bots.yaml.j2 index a40d7a105..de581ed8e 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/templates/production-bots.yaml.j2 +++ b/roles/custom/matrix-appservice-draupnir-for-all/templates/production-bots.yaml.j2 @@ -1,23 +1,19 @@ +{# +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # The log level of terminal (or container) output, # can be one of DEBUG, INFO, WARN and ERROR, in increasing order of importance and severity. # # This should be at INFO or DEBUG in order to get support for Draupnir problems. logLevel: "INFO" -# Whether or not Draupnir should synchronize policy lists immediately after startup. -# Equivalent to running '!draupnir sync'. -syncOnStartup: true - # Whether or not Draupnir should check moderation permissions in all protected rooms on startup. # Equivalent to running `!draupnir verify`. verifyPermissionsOnStartup: true -# Whether Draupnir should check member lists quicker (by using a different endpoint), -# keep in mind that enabling this will miss invited (but not joined) users. -# -# Turn on if your bot is in (very) large rooms, or in large amounts of rooms. -fasterMembershipChecks: false - # A case-insensitive list of ban reasons to have the bot also automatically redact the user's messages for. # # If the bot sees you ban a user with a reason that is an (exact case-insensitive) match to this list, @@ -70,14 +66,10 @@ commands: - "draupnir_bot" - "draupnir" - # Whether or not commands with a wildcard (*) will require an additional `--force` argument - # in the command to be able to be submitted. - confirmWildcardBan: true - # The default reasons to be prompted with if the reason is missing from a ban command. ban: - defaultReasons: + defaultReasons: - "spam" - "brigading" - "harassment" - - "disagreement" \ No newline at end of file + - "disagreement" diff --git a/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2 b/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2 index 303e9e614..008d0feb1 100644 --- a/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2 +++ b/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-draupnir-for-all 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-draupnir-for-all 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-draupnir-for-all 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-draupnir-for-all -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-draupnir-for-all 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-draupnir-for-all 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-draupnir-for-all 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2.license b/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2.license new file mode 100644 index 000000000..c66c5baed --- /dev/null +++ b/roles/custom/matrix-appservice-draupnir-for-all/templates/systemd/matrix-appservice-draupnir-for-all.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2024 MDAD project contributors +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/defaults/main.yml b/roles/custom/matrix-authentication-service/defaults/main.yml index 9e7780e34..c6c441d34 100644 --- a/roles/custom/matrix-authentication-service/defaults/main.yml +++ b/roles/custom/matrix-authentication-service/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-authentication-service (MAS) is an OAuth 2.0 and OpenID Provider server for Matrix. @@ -17,9 +22,11 @@ matrix_authentication_service_container_repo_version: "{{ 'main' if matrix_authe matrix_authentication_service_container_src_files_path: "{{ matrix_base_data_path }}/matrix-authentication-service/container-src" # renovate: datasource=docker depName=ghcr.io/element-hq/matrix-authentication-service -matrix_authentication_service_version: 0.12.0 -matrix_authentication_service_container_image: "{{ matrix_authentication_service_container_image_name_prefix }}element-hq/matrix-authentication-service:{{ matrix_authentication_service_version }}" -matrix_authentication_service_container_image_name_prefix: "{{ 'localhost/' if matrix_authentication_service_container_image_self_build else 'ghcr.io/' }}" +matrix_authentication_service_version: 0.14.1 +matrix_authentication_service_container_image_registry_prefix: "{{ 'localhost/' if matrix_authentication_service_container_image_self_build else matrix_authentication_service_container_image_registry_prefix_upstream }}" +matrix_authentication_service_container_image_registry_prefix_upstream: "{{ matrix_authentication_service_container_image_registry_prefix_upstream_default }}" +matrix_authentication_service_container_image_registry_prefix_upstream_default: "ghcr.io/" +matrix_authentication_service_container_image: "{{ matrix_authentication_service_container_image_registry_prefix }}element-hq/matrix-authentication-service:{{ matrix_authentication_service_version }}" matrix_authentication_service_container_image_force_pull: "{{ matrix_authentication_service_container_image.endswith(':latest') }}" matrix_authentication_service_base_path: "{{ matrix_base_data_path }}/matrix-authentication-service" @@ -161,13 +168,13 @@ matrix_authentication_service_config_email_reply_to_address: "{{ matrix_authenti # Controls the `email.transport` configuration setting. # -# Valid options are: blackhole, smtp, aws_ses +# Valid values: blackhole, smtp, aws_ses # Upstream reports that `sendmail` is supported as well, # but this is not true when running it in a container image due to the `sendmail` binary not being included. matrix_authentication_service_config_email_transport: blackhole # Controls the `email.mode` configuration setting for SMTP. -# Options are 'plain', 'tls', or 'starttls'. +# Valid values: plain, tls, starttls matrix_authentication_service_config_email_mode: plain # Controls the `email.hostname` configuration setting for SMTP. @@ -220,7 +227,7 @@ matrix_authentication_service_config_account_password_change_allowed: true # Controls the `account.password_recovery_enabled` configuration setting. # -# Whether email-based password recovery is enabled +# Whether email-based password recovery is enabled. # This has no effect if password login is disabled. matrix_authentication_service_config_account_password_recovery_enabled: false @@ -340,7 +347,7 @@ matrix_authentication_service_config_http_trusted_proxies: matrix_authentication_service_config_matrix_homeserver: "" # Controls the `matrix.endpoint` configuration setting. -# URL to which the homeserver is accessible from the service +# URL to which the homeserver is accessible from the service. matrix_authentication_service_config_matrix_endpoint: "" # Controls the `matrix.secret` configuration setting. @@ -361,20 +368,20 @@ matrix_authentication_service_config_matrix_secret: "" # Controls the `passwords.enabled` configuration setting. # Whether to enable the password database. -# If disabled, users will only be able to log in using upstream OIDC providers +# If disabled, users will only be able to log in using upstream OIDC providers. matrix_authentication_service_config_passwords_enabled: true # Controls the `passwords.schemes` configuration setting. # List of password hashing schemes being used. -# Only change this if you know what you're doing +# Only change this if you know what you're doing. matrix_authentication_service_config_passwords_schemes: - version: 1 algorithm: argon2id # Controls the `passwords.minimum_complexity` configuration setting. -# Minimum complexity required for passwords, estimated by the zxcvbn algorithm -# Must be between 0 and 4, default is 3 -# See https://github.com/dropbox/zxcvbn#usage for more information +# Minimum complexity required for passwords, estimated by the zxcvbn algorithm. +# Must be between 0 and 4. Default is 3. +# See https://github.com/dropbox/zxcvbn#usage for more information. matrix_authentication_service_config_passwords_minimum_complexity: 3 ######################################################################################## @@ -502,7 +509,7 @@ matrix_authentication_service_container_labels_public_main_tls_certResolver: "{{ # - https://element-hq.github.io/matrix-authentication-service/setup/reverse-proxy.html#compatibility-layer # # Regardless of whether this is enabled, it may or may not take effect due to the value of other variables. -# See `matrix_authentication_service_container_labels_traefik_enabled` +# See `matrix_authentication_service_container_labels_traefik_enabled`. matrix_authentication_service_container_labels_public_compatibility_layer_enabled: false matrix_authentication_service_container_labels_public_compatibility_layer_hostname: "" matrix_authentication_service_container_labels_public_compatibility_layer_path_regexp: "^/_matrix/client/(?P([^/]+))/(?P(login|logout|refresh))" @@ -555,7 +562,7 @@ matrix_authentication_service_syn2mas_start_wait_time_seconds: 5 matrix_authentication_service_syn2mas_dry_run: false # renovate: datasource=docker depName=ghcr.io/element-hq/matrix-authentication-service/syn2mas -matrix_authentication_service_syn2mas_version: 0.12.0 +matrix_authentication_service_syn2mas_version: 0.14.1 matrix_authentication_service_syn2mas_container_image: "{{ matrix_authentication_service_container_image_name_prefix }}element-hq/matrix-authentication-service/syn2mas:{{ matrix_authentication_service_syn2mas_version }}" matrix_authentication_service_syn2mas_container_image_name_prefix: "{{ 'localhost/' if matrix_authentication_service_container_image_self_build else 'ghcr.io/' }}" matrix_authentication_service_syn2mas_container_image_force_pull: "{{ matrix_authentication_service_syn2mas_container_image.endswith(':latest') }}" diff --git a/roles/custom/matrix-authentication-service/tasks/install.yml b/roles/custom/matrix-authentication-service/tasks/install.yml index b766c1cb6..2b04b6708 100644 --- a/roles/custom/matrix-authentication-service/tasks/install.yml +++ b/roles/custom/matrix-authentication-service/tasks/install.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix Authentication Service paths exist diff --git a/roles/custom/matrix-authentication-service/tasks/main.yml b/roles/custom/matrix-authentication-service/tasks/main.yml index c5a7e9c80..6b6a07718 100644 --- a/roles/custom/matrix-authentication-service/tasks/main.yml +++ b/roles/custom/matrix-authentication-service/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-authentication-service/tasks/mas_cli_doctor.yml b/roles/custom/matrix-authentication-service/tasks/mas_cli_doctor.yml index 96689d6e2..a172f8629 100644 --- a/roles/custom/matrix-authentication-service/tasks/mas_cli_doctor.yml +++ b/roles/custom/matrix-authentication-service/tasks/mas_cli_doctor.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix Authentication Service is started diff --git a/roles/custom/matrix-authentication-service/tasks/register_user.yml b/roles/custom/matrix-authentication-service/tasks/register_user.yml index 9aef7ab47..34abb6b7a 100644 --- a/roles/custom/matrix-authentication-service/tasks/register_user.yml +++ b/roles/custom/matrix-authentication-service/tasks/register_user.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-authentication-service/tasks/syn2mas.yml b/roles/custom/matrix-authentication-service/tasks/syn2mas.yml index 46ae2688c..fd30158a4 100644 --- a/roles/custom/matrix-authentication-service/tasks/syn2mas.yml +++ b/roles/custom/matrix-authentication-service/tasks/syn2mas.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: @@ -106,7 +111,7 @@ # See: https://ansibledaily.com/print-to-standard-output-without-escaping/ # # We want to run `debug: msg=".."`, but that dumps it as JSON and escapes double quotes within it, -# which ruins the command (`matrix_authentication_service_syn2mas_migration_command`) +# which ruins the command (`matrix_authentication_service_syn2mas_migration_command`). - name: Note about syn2mas migration ansible.builtin.set_fact: dummy: true diff --git a/roles/custom/matrix-authentication-service/tasks/uninstall.yml b/roles/custom/matrix-authentication-service/tasks/uninstall.yml index e7e0dfe43..4d7938fbd 100644 --- a/roles/custom/matrix-authentication-service/tasks/uninstall.yml +++ b/roles/custom/matrix-authentication-service/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-authentication-service service diff --git a/roles/custom/matrix-authentication-service/tasks/util/prepare_key.yml b/roles/custom/matrix-authentication-service/tasks/util/prepare_key.yml index 79fdc2e73..1c1877ccd 100644 --- a/roles/custom/matrix-authentication-service/tasks/util/prepare_key.yml +++ b/roles/custom/matrix-authentication-service/tasks/util/prepare_key.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Prepare Matrix Authentication Service private key file path ({{ private_key_definition.key_file }}) diff --git a/roles/custom/matrix-authentication-service/tasks/validate_config.yml b/roles/custom/matrix-authentication-service/tasks/validate_config.yml index 70cf3662d..d2adbe56c 100644 --- a/roles/custom/matrix-authentication-service/tasks/validate_config.yml +++ b/roles/custom/matrix-authentication-service/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-authentication-service settings not defined @@ -29,3 +34,12 @@ ansible.builtin.fail: 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']" + +- name: (Deprecation) Catch and report renamed matrix-authentication-service settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_authentication_service_container_image_name_prefix', 'new': 'matrix_authentication_service_container_image_registry_prefix'} diff --git a/roles/custom/matrix-authentication-service/templates/bin/mas-cli.j2.license b/roles/custom/matrix-authentication-service/templates/bin/mas-cli.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/bin/mas-cli.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/bin/register-user.j2.license b/roles/custom/matrix-authentication-service/templates/bin/register-user.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/bin/register-user.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/config.yaml.j2.license b/roles/custom/matrix-authentication-service/templates/config.yaml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/config.yaml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/env.j2 b/roles/custom/matrix-authentication-service/templates/env.j2 index 80c4290de..3a0423c61 100644 --- a/roles/custom/matrix-authentication-service/templates/env.j2 +++ b/roles/custom/matrix-authentication-service/templates/env.j2 @@ -1 +1,7 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {{ matrix_authentication_service_environment_variables_extension }} diff --git a/roles/custom/matrix-authentication-service/templates/labels.j2 b/roles/custom/matrix-authentication-service/templates/labels.j2 index 461c7abd7..f66cf4c7f 100644 --- a/roles/custom/matrix-authentication-service/templates/labels.j2 +++ b/roles/custom/matrix-authentication-service/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_authentication_service_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-authentication-service/templates/provider/anthropic-config.yml.j2.license b/roles/custom/matrix-authentication-service/templates/provider/anthropic-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/provider/anthropic-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/provider/groq-config.yml.j2.license b/roles/custom/matrix-authentication-service/templates/provider/groq-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/provider/groq-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/provider/mistral-config.yml.j2.license b/roles/custom/matrix-authentication-service/templates/provider/mistral-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/provider/mistral-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/provider/openai-config.yml.j2.license b/roles/custom/matrix-authentication-service/templates/provider/openai-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/provider/openai-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2 b/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2 index c8b487138..1f03c6b4f 100644 --- a/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2 +++ b/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-authentication-service 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-authentication-service 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-authentication-service 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-authentication-service -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-authentication-service 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-authentication-service 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-authentication-service 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2.license b/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-authentication-service/templates/systemd/matrix-authentication-service.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-authentication-service/vars/main.yml b/roles/custom/matrix-authentication-service/vars/main.yml index 4bedfdbfc..45e7ad639 100644 --- a/roles/custom/matrix-authentication-service/vars/main.yml +++ b/roles/custom/matrix-authentication-service/vars/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Like `matrix_authentication_service_config_http_public_base` but a private base URL only accessible from within the container network. diff --git a/roles/custom/matrix-base/defaults/main.yml b/roles/custom/matrix-base/defaults/main.yml index c3f2ffd07..31ccaad86 100644 --- a/roles/custom/matrix-base/defaults/main.yml +++ b/roles/custom/matrix-base/defaults/main.yml @@ -1,7 +1,36 @@ +# SPDX-FileCopyrightText: 2019 - 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Edgars Voroboks +# SPDX-FileCopyrightText: 2019 Lyubomir Popov +# SPDX-FileCopyrightText: 2019 Stuart Mumford +# SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Alin Trăistaru +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2020 Tobias Küchel +# SPDX-FileCopyrightText: 2021 Blaž Tomažič +# SPDX-FileCopyrightText: 2021 Krisztian Szegi +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Charles Wright +# SPDX-FileCopyrightText: 2022 Julian Foad +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# SPDX-FileCopyrightText: 2023 Jayesh Nirve +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 László Várady +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # The bare domain name which represents your Matrix identity. -# Matrix user IDs for your server will be of the form (`@user:example.com`). +# Matrix user IDs for your server will be of the form (`@alice:example.com`). # # Note: this playbook does not touch the server referenced here. # Installation happens on another server ("matrix.example.com", see `matrix_server_fqn_matrix`). @@ -10,7 +39,7 @@ matrix_domain: ~ # The optional Matrix admin MXID, used in bridges' configs to set bridge admin user -# Example value: "@someone:{{ matrix_domain }}" +# Example value: "@alice:{{ matrix_domain }}" matrix_admin: '' # Global var to enable/disable encryption across all bridges with encryption support @@ -49,7 +78,7 @@ matrix_monitoring_container_network: matrix-monitoring matrix_homeserver_enabled: true # This will contain the homeserver implementation that is in use. -# Valid values: synapse, dendrite, conduit +# Valid values: synapse, dendrite, conduit, conduwuit # # By default, we use Synapse, because it's the only full-featured Matrix server at the moment. # @@ -80,6 +109,9 @@ matrix_server_fqn_cinny: "cinny.{{ matrix_domain }}" # This is where you access the SchildiChat Web from (if enabled via matrix_client_schildichat_enabled; disabled by default). matrix_server_fqn_schildichat: "schildichat.{{ matrix_domain }}" +# This is where you access the FluffyChat Web from (if enabled via matrix_client_fluffychat_enabled; disabled by default). +matrix_server_fqn_fluffychat: "fluffychat.{{ matrix_domain }}" + # This is where you access the Buscarron bot from (if enabled via matrix_bot_buscarron_enabled; disabled by default). matrix_server_fqn_buscarron: "buscarron.{{ matrix_domain }}" @@ -133,7 +165,12 @@ matrix_architecture: "{{ 'amd64' if ansible_architecture == 'x86_64' else ('arm6 # We just remap from our `matrix_architecture` values to what Debian and possibly other distros call things. matrix_debian_arch: "{{ 'armhf' if matrix_architecture == 'arm32' else matrix_architecture }}" -matrix_container_global_registry_prefix: "docker.io/" +# If specified, the playbook will override the default registry prefix for all components. +# +# This is to be used when you've mirrored all the necessary container images (from their respective registries) by yourself. +# +# Example value: "registry.example.com/" (note the trailing `/`). +matrix_container_global_registry_prefix_override: "" matrix_user_username: "matrix" matrix_user_groupname: "matrix" @@ -217,7 +254,6 @@ matrix_metrics_exposure_http_basic_auth_users: '' # - `playbook-managed-traefik` # - the playbook will run a managed Traefik instance (matrix-traefik) # - Traefik will do SSL termination, unless you disable it (e.g. `traefik_config_entrypoint_web_secure_enabled: false`) -# - if SSL termination is enabled (as it is by default), you need to populate: `traefik_config_certificatesResolvers_acme_email` # # - `other-traefik-container` # - this playbook will not install Traefik @@ -234,7 +270,7 @@ matrix_metrics_exposure_http_basic_auth_users: '' matrix_playbook_reverse_proxy_type: '' # Specifies the network that the reverse-proxy is operating at -matrix_playbook_reverse_proxy_container_network: 'traefik' +matrix_playbook_reverse_proxy_container_network: "{{ 'traefik' if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] else '' }}" # Specifies the hostname that the reverse-proxy is available at matrix_playbook_reverse_proxy_hostname: 'matrix-traefik' @@ -271,7 +307,7 @@ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_name: "{{ matrix matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port: "{{ matrix_federation_public_port }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: "{{ matrix_federation_public_port }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_advertisedPort if matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled else '' }}" -matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config: "{{ (matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_default | combine (matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto)) | combine(matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom, recursive=True) }}" +matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config: "{{ (matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_default | combine(matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto)) | combine(matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom, recursive=True) }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: true matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_advertisedPort: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port }}" # noqa var-naming matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_transport_respondingTimeouts_readTimeout: "{{ traefik_config_entrypoint_web_secure_transport_respondingTimeouts_readTimeout }}" # noqa var-naming diff --git a/roles/custom/matrix-base/tasks/ensure_fuse_installed.yml b/roles/custom/matrix-base/tasks/ensure_fuse_installed.yml index 8f768bd13..3a30837cf 100644 --- a/roles/custom/matrix-base/tasks/ensure_fuse_installed.yml +++ b/roles/custom/matrix-base/tasks/ensure_fuse_installed.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This is for both RedHat 7 and 8 diff --git a/roles/custom/matrix-base/tasks/ensure_fuse_installed_archlinux.yml b/roles/custom/matrix-base/tasks/ensure_fuse_installed_archlinux.yml index 676543d83..6abff8bf9 100644 --- a/roles/custom/matrix-base/tasks/ensure_fuse_installed_archlinux.yml +++ b/roles/custom/matrix-base/tasks/ensure_fuse_installed_archlinux.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure fuse installed (Archlinux) diff --git a/roles/custom/matrix-base/tasks/ensure_fuse_installed_debian.yml b/roles/custom/matrix-base/tasks/ensure_fuse_installed_debian.yml index b9491eb49..8f3637dd4 100644 --- a/roles/custom/matrix-base/tasks/ensure_fuse_installed_debian.yml +++ b/roles/custom/matrix-base/tasks/ensure_fuse_installed_debian.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure fuse installed (Debian/Raspbian) diff --git a/roles/custom/matrix-base/tasks/ensure_fuse_installed_redhat.yml b/roles/custom/matrix-base/tasks/ensure_fuse_installed_redhat.yml index 878fb5682..be2888030 100644 --- a/roles/custom/matrix-base/tasks/ensure_fuse_installed_redhat.yml +++ b/roles/custom/matrix-base/tasks/ensure_fuse_installed_redhat.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure fuse installed (RedHat) diff --git a/roles/custom/matrix-base/tasks/ensure_openssl_installed.yml b/roles/custom/matrix-base/tasks/ensure_openssl_installed.yml index d0cd8edea..11a25fbc9 100644 --- a/roles/custom/matrix-base/tasks/ensure_openssl_installed.yml +++ b/roles/custom/matrix-base/tasks/ensure_openssl_installed.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure openssl installed diff --git a/roles/custom/matrix-base/tasks/main.yml b/roles/custom/matrix-base/tasks/main.yml index 7351d1b8a..d6d4d8f26 100644 --- a/roles/custom/matrix-base/tasks/main.yml +++ b/roles/custom/matrix-base/tasks/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Warren Bailey +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-base/tasks/setup_matrix_base.yml b/roles/custom/matrix-base/tasks/setup_matrix_base.yml index 448ac7693..337017a46 100644 --- a/roles/custom/matrix-base/tasks/setup_matrix_base.yml +++ b/roles/custom/matrix-base/tasks/setup_matrix_base.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2017 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2018 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 Stuart Mumford +# SPDX-FileCopyrightText: 2020 Béla Becker +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 László Várady +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix base paths exists diff --git a/roles/custom/matrix-base/tasks/setup_matrix_user.yml b/roles/custom/matrix-base/tasks/setup_matrix_user.yml index 0c9086e59..146452302 100644 --- a/roles/custom/matrix-base/tasks/setup_matrix_user.yml +++ b/roles/custom/matrix-base/tasks/setup_matrix_user.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix group is created diff --git a/roles/custom/matrix-base/tasks/validate_config.yml b/roles/custom/matrix-base/tasks/validate_config.yml index fd389cd1c..730b0d1d8 100644 --- a/roles/custom/matrix-base/tasks/validate_config.yml +++ b/roles/custom/matrix-base/tasks/validate_config.yml @@ -1,15 +1,25 @@ +# SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 - 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2020 Christian Wolf +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2022 Charles Wright +# SPDX-FileCopyrightText: 2022 Warren Bailey +# SPDX-FileCopyrightText: 2023 Jayesh Nirve +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if invalid homeserver implementation ansible.builtin.fail: msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`" - when: "matrix_homeserver_implementation not in ['synapse', 'dendrite', 'conduit']" + when: "matrix_homeserver_implementation not in ['synapse', 'dendrite', 'conduit', 'conduwuit']" - name: (Deprecation) Catch and report renamed settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'host_specific_hostname_identity', 'new': 'matrix_domain'} @@ -21,6 +31,7 @@ - {'old': 'matrix_client_element_e2ee_default', 'new': 'matrix_static_files_file_matrix_client_property_io_element_e2ee_default'} - {'old': 'matrix_client_element_e2ee_secure_backup_required', 'new': 'matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required'} - {'old': 'matrix_client_element_e2ee_secure_backup_setup_methods', 'new': 'matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_setup_methods'} + - {'old': 'matrix_container_global_registry_prefix', 'new': ''} # We have a dedicated check for this variable, because we'd like to have a custom (friendlier) message. - name: Fail if matrix_homeserver_generic_secret_key is undefined diff --git a/roles/custom/matrix-base/templates/bin/remove-all.j2 b/roles/custom/matrix-base/templates/bin/remove-all.j2 index 0a557c245..5a0579586 100644 --- a/roles/custom/matrix-base/templates/bin/remove-all.j2 +++ b/roles/custom/matrix-base/templates/bin/remove-all.j2 @@ -6,7 +6,7 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -echo "WARNING! You are about to remove everything the playbook installs for {{ matrix_server_fqn_matrix }}: matrix, docker images,..." +echo "WARNING! You are about to remove everything the playbook installs for {{ matrix_server_fqn_matrix }}: matrix, docker images, …" echo -n "If you're sure you want to do this, type: 'Yes, I really want to remove everything!'" read sure diff --git a/roles/custom/matrix-base/templates/bin/remove-all.j2.license b/roles/custom/matrix-base/templates/bin/remove-all.j2.license new file mode 100644 index 000000000..34a0c1266 --- /dev/null +++ b/roles/custom/matrix-base/templates/bin/remove-all.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2018 - 2023 MDAD project contributors +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-baibot/defaults/main.yml b/roles/custom/matrix-bot-baibot/defaults/main.yml index 792e98abb..2ce998d0d 100644 --- a/roles/custom/matrix-bot-baibot/defaults/main.yml +++ b/roles/custom/matrix-bot-baibot/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # baibot is a bot exposing the power of Large Language Models to you. @@ -11,9 +17,11 @@ matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_versio matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src" # renovate: datasource=docker depName=ghcr.io/etkecc/baibot -matrix_bot_baibot_version: v1.4.0 -matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_name_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}" -matrix_bot_baibot_container_image_name_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else 'ghcr.io/' }}" +matrix_bot_baibot_version: v1.5.0 +matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}" +matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}" +matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}" +matrix_bot_baibot_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_baibot_container_image_force_pull: "{{ matrix_bot_baibot_container_image.endswith(':latest') }}" matrix_bot_baibot_base_path: "{{ matrix_base_data_path }}/baibot" @@ -87,6 +95,10 @@ matrix_bot_baibot_config_user_encryption_recovery_reset_allowed: false # If you leave this empty, the bot will use the default (!bai). matrix_bot_baibot_config_command_prefix: "!bai" +# Controls the `room.post_join_self_introduction_enabled` configuration setting. +# Influences whether the bot should send an introduction message after joining a room. +matrix_bot_baibot_config_room_post_join_self_introduction_enabled: true + # Controls the `access.admin_patterns` configuration setting. # A space-separated list of MXID patterns which specify who is an admin. # @@ -167,7 +179,7 @@ matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled: false matrix_bot_baibot_config_agents_static_definitions_anthropic_id: anthropic matrix_bot_baibot_config_agents_static_definitions_anthropic_provider: anthropic -matrix_bot_baibot_config_agents_static_definitions_anthropic_config: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension, recursive=True)}}" +matrix_bot_baibot_config_agents_static_definitions_anthropic_config: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml: "{{ lookup('template', 'templates/provider/anthropic-config.yml.j2') }}" @@ -193,7 +205,7 @@ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_enabled: true # For valid model choices, see: https://platform.anthropic.com/docs/models -matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-5-sonnet-20240620 +matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-7-sonnet-20250219 # The prompt text to use (can be null or empty to not use a prompt). # See: https://huggingface.co/docs/transformers/en/tasks/prompting matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" @@ -220,7 +232,7 @@ matrix_bot_baibot_config_agents_static_definitions_groq_enabled: false matrix_bot_baibot_config_agents_static_definitions_groq_id: groq matrix_bot_baibot_config_agents_static_definitions_groq_provider: groq -matrix_bot_baibot_config_agents_static_definitions_groq_config: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_groq_config_extension, recursive=True)}}" +matrix_bot_baibot_config_agents_static_definitions_groq_config: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_groq_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml: "{{ lookup('template', 'templates/provider/groq-config.yml.j2') }}" @@ -276,7 +288,7 @@ matrix_bot_baibot_config_agents_static_definitions_mistral_enabled: false matrix_bot_baibot_config_agents_static_definitions_mistral_id: mistral matrix_bot_baibot_config_agents_static_definitions_mistral_provider: mistral -matrix_bot_baibot_config_agents_static_definitions_mistral_config: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension, recursive=True)}}" +matrix_bot_baibot_config_agents_static_definitions_mistral_config: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml: "{{ lookup('template', 'templates/provider/mistral-config.yml.j2') }}" @@ -329,7 +341,7 @@ matrix_bot_baibot_config_agents_static_definitions_openai_enabled: false matrix_bot_baibot_config_agents_static_definitions_openai_id: openai matrix_bot_baibot_config_agents_static_definitions_openai_provider: openai -matrix_bot_baibot_config_agents_static_definitions_openai_config: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_openai_config_extension, recursive=True)}}" +matrix_bot_baibot_config_agents_static_definitions_openai_config: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_openai_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml: "{{ lookup('template', 'templates/provider/openai-config.yml.j2') }}" @@ -364,6 +376,7 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation # See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens: 16384 +matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens: ~ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens: 128000 matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled: true @@ -461,7 +474,7 @@ matrix_bot_baibot_configuration: "{{ matrix_bot_baibot_configuration_yaml | from # # For a more advanced customization, you can extend the default (see `matrix_bot_baibot_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_bot_baibot_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}" +matrix_bot_baibot_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_bot_baibot_configuration_extension_yaml: | # Your custom YAML configuration for baibot goes here. diff --git a/roles/custom/matrix-bot-baibot/tasks/install.yml b/roles/custom/matrix-bot-baibot/tasks/install.yml index f74ab3442..c2d781e59 100644 --- a/roles/custom/matrix-bot-baibot/tasks/install.yml +++ b/roles/custom/matrix-bot-baibot/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure baibot paths exist @@ -70,6 +75,7 @@ enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" name: "{{ matrix_bot_baibot_container_network }}" driver: bridge + driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" - name: Ensure matrix-bot-baibot.service installed ansible.builtin.template: diff --git a/roles/custom/matrix-bot-baibot/tasks/main.yml b/roles/custom/matrix-bot-baibot/tasks/main.yml index 1b9d9c5b5..348c11d08 100644 --- a/roles/custom/matrix-bot-baibot/tasks/main.yml +++ b/roles/custom/matrix-bot-baibot/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-baibot/tasks/uninstall.yml b/roles/custom/matrix-bot-baibot/tasks/uninstall.yml index 176edaa6a..f9f53f9f7 100644 --- a/roles/custom/matrix-bot-baibot/tasks/uninstall.yml +++ b/roles/custom/matrix-bot-baibot/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-baibot service diff --git a/roles/custom/matrix-bot-baibot/tasks/validate_config.yml b/roles/custom/matrix-bot-baibot/tasks/validate_config.yml index 43e4cb8fc..ee4eae03c 100644 --- a/roles/custom/matrix-bot-baibot/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-baibot/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required baibot settings not defined @@ -26,3 +31,12 @@ msg: >- You need to define a required configuration setting (`matrix_bot_baibot_config_access_admin_patterns`) to specify which users are bot administrators. when: "matrix_bot_baibot_config_access_admin_patterns | length == 0" + +- name: (Deprecation) Catch and report renamed baibot settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_bot_baibot_container_image_name_prefix', 'new': 'matrix_bot_baibot_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-baibot/templates/config.yml.j2 b/roles/custom/matrix-bot-baibot/templates/config.yaml.j2 similarity index 92% rename from roles/custom/matrix-bot-baibot/templates/config.yml.j2 rename to roles/custom/matrix-bot-baibot/templates/config.yaml.j2 index d7e3a4771..4b4838192 100644 --- a/roles/custom/matrix-bot-baibot/templates/config.yml.j2 +++ b/roles/custom/matrix-bot-baibot/templates/config.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # Default configuration for baibot. # To extend it, use `matrix_bot_baibot_configuration_extension_yaml`. @@ -35,6 +42,10 @@ user: # Command prefix. Leave empty to use the default (!bai). command_prefix: {{ matrix_bot_baibot_config_command_prefix | to_json }} +room: + # Whether the bot should send an introduction message after joining a room. + post_join_self_introduction_enabled: {{ matrix_bot_baibot_config_room_post_join_self_introduction_enabled | to_json }} + access: # Space-separated list of MXID patterns which specify who is an admin. admin_patterns: {{ matrix_bot_baibot_config_access_admin_patterns | to_json }} diff --git a/roles/custom/matrix-bot-baibot/templates/env.j2 b/roles/custom/matrix-bot-baibot/templates/env.j2 index fb26fe3df..fe4733ab2 100644 --- a/roles/custom/matrix-bot-baibot/templates/env.j2 +++ b/roles/custom/matrix-bot-baibot/templates/env.j2 @@ -1 +1,7 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {{ matrix_bot_baibot_environment_variables_extension }} diff --git a/roles/custom/matrix-bot-baibot/templates/provider/anthropic-config.yml.j2.license b/roles/custom/matrix-bot-baibot/templates/provider/anthropic-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-bot-baibot/templates/provider/anthropic-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-baibot/templates/provider/groq-config.yml.j2.license b/roles/custom/matrix-bot-baibot/templates/provider/groq-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-bot-baibot/templates/provider/groq-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-baibot/templates/provider/mistral-config.yml.j2.license b/roles/custom/matrix-bot-baibot/templates/provider/mistral-config.yml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-bot-baibot/templates/provider/mistral-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 index 56cf47fdd..aada4234e 100644 --- a/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 +++ b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 @@ -8,7 +8,12 @@ text_generation: model_id: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id | to_json }} prompt: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt | to_json }} temperature: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_temperature | to_json }} + {% if matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens %} max_response_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens | int | to_json }} + {% endif %} + {% if matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens %} + max_completion_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens | int | to_json }} + {% endif %} max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens | int | to_json }} {% endif %} diff --git a/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2.license b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2 b/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2 index 346925c4a..01b6c0a06 100644 --- a/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2 +++ b/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-baibot 2>/dev/null || true' {# @@ -43,7 +43,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-baibot -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-baibot 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-baibot 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2.license b/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2.license new file mode 100644 index 000000000..53f94a9fa --- /dev/null +++ b/roles/custom/matrix-bot-baibot/templates/systemd/matrix-bot-baibot.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-buscarron/defaults/main.yml b/roles/custom/matrix-bot-buscarron/defaults/main.yml index e8e2fa3e9..bf715808c 100644 --- a/roles/custom/matrix-bot-buscarron/defaults/main.yml +++ b/roles/custom/matrix-bot-buscarron/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Buscarron is a Web forms (HTTP POST) to Matrix service. @@ -29,8 +36,10 @@ matrix_bot_buscarron_docker_repo: "https://github.com/etkecc/buscarron.git" matrix_bot_buscarron_docker_repo_version: "{{ matrix_bot_buscarron_version }}" matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src" -matrix_bot_buscarron_docker_image: "{{ matrix_bot_buscarron_docker_image_name_prefix }}etkecc/buscarron:{{ matrix_bot_buscarron_version }}" -matrix_bot_buscarron_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_buscarron_container_image_self_build else 'ghcr.io/' }}" +matrix_bot_buscarron_docker_image: "{{ matrix_bot_buscarron_docker_image_registry_prefix }}etkecc/buscarron:{{ matrix_bot_buscarron_version }}" +matrix_bot_buscarron_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_buscarron_container_image_self_build else matrix_bot_buscarron_docker_image_registry_prefix_upstream }}" +matrix_bot_buscarron_docker_image_registry_prefix_upstream: "{{ matrix_bot_buscarron_docker_image_registry_prefix_upstream_default }}" +matrix_bot_buscarron_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_buscarron_docker_image_force_pull: "{{ matrix_bot_buscarron_docker_image.endswith(':latest') }}" # The base container network. It will be auto-created by this role if it doesn't exist already. diff --git a/roles/custom/matrix-bot-buscarron/tasks/main.yml b/roles/custom/matrix-bot-buscarron/tasks/main.yml index fbf5c96ac..adfc56db8 100644 --- a/roles/custom/matrix-bot-buscarron/tasks/main.yml +++ b/roles/custom/matrix-bot-buscarron/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-buscarron/tasks/setup_install.yml b/roles/custom/matrix-bot-buscarron/tasks/setup_install.yml index a011a016b..35d583f8c 100644 --- a/roles/custom/matrix-bot-buscarron/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-buscarron/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: matrix_bot_buscarron_requires_restart: false diff --git a/roles/custom/matrix-bot-buscarron/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-buscarron/tasks/setup_uninstall.yml index 7a47471ef..5769de2d3 100644 --- a/roles/custom/matrix-bot-buscarron/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-buscarron/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-buscarron service diff --git a/roles/custom/matrix-bot-buscarron/tasks/validate_config.yml b/roles/custom/matrix-bot-buscarron/tasks/validate_config.yml index 0e968e55a..45e6690e2 100644 --- a/roles/custom/matrix-bot-buscarron/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-buscarron/tasks/validate_config.yml @@ -1,15 +1,22 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed Buscarron settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_bot_buscarron_noencryption', 'new': ''} - {'old': 'matrix_bot_buscarron_spam_hosts', 'new': ''} - {'old': 'matrix_bot_buscarron_spam_emails', 'new': ''} - {'old': 'matrix_bot_buscarron_spam_localparts', 'new': ''} + - {'old': 'matrix_bot_buscarron_container_image_name_prefix', 'new': 'matrix_bot_buscarron_container_image_registry_prefix'} - name: Fail if required Buscarron settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-bot-buscarron/templates/env.j2 b/roles/custom/matrix-bot-buscarron/templates/env.j2 index 11a4f6bd6..db9b903c4 100644 --- a/roles/custom/matrix-bot-buscarron/templates/env.j2 +++ b/roles/custom/matrix-bot-buscarron/templates/env.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + BUSCARRON_LOGIN={{ matrix_bot_buscarron_login }} BUSCARRON_PASSWORD={{ matrix_bot_buscarron_password }} BUSCARRON_HOMESERVER={{ matrix_bot_buscarron_homeserver }} diff --git a/roles/custom/matrix-bot-buscarron/templates/labels.j2 b/roles/custom/matrix-bot-buscarron/templates/labels.j2 index b5f020a17..6376a5412 100644 --- a/roles/custom/matrix-bot-buscarron/templates/labels.j2 +++ b/roles/custom/matrix-bot-buscarron/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_bot_buscarron_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2 b/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2 index aa4314a13..c5ed0f3e0 100644 --- a/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2 +++ b/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-buscarron 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-buscarron 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-buscarron 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-buscarron -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-buscarron 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-buscarron 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-buscarron 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2.license b/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2.license new file mode 100644 index 000000000..2195e952c --- /dev/null +++ b/roles/custom/matrix-bot-buscarron/templates/systemd/matrix-bot-buscarron.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-chatgpt/defaults/main.yml b/roles/custom/matrix-bot-chatgpt/defaults/main.yml index 0cd01b518..aa65a7ae4 100644 --- a/roles/custom/matrix-bot-chatgpt/defaults/main.yml +++ b/roles/custom/matrix-bot-chatgpt/defaults/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Joe Kappus +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # chatgpt is a bot for chatting to openAI chatgpt Matrix bot # Project source code URL: https://github.com/matrixgpt/matrix-chatgpt-bot @@ -11,11 +20,12 @@ matrix_bot_chatgpt_container_image_self_build: false matrix_bot_chatgpt_container_image_self_build_repo: "https://github.com/matrixgpt/matrix-chatgpt-bot" matrix_bot_chatgpt_container_image_self_build_repo_version: "{{ 'main' if matrix_bot_chatgpt_version == 'latest' else matrix_bot_chatgpt_version }}" -matrix_bot_chatgpt_container_image: "{{ matrix_bot_chatgpt_container_image_name_prefix }}matrixgpt/matrix-chatgpt-bot:{{ matrix_bot_chatgpt_container_image_tag }}" -matrix_bot_chatgpt_container_image_name_prefix: "{{ 'localhost/' if matrix_bot_chatgpt_container_image_self_build else matrix_bot_chatgpt_container_image_registry_prefix }}" +matrix_bot_chatgpt_container_image: "{{ matrix_bot_chatgpt_container_image_registry_prefix }}matrixgpt/matrix-chatgpt-bot:{{ matrix_bot_chatgpt_container_image_tag }}" +matrix_bot_chatgpt_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_chatgpt_container_image_self_build else matrix_bot_chatgpt_container_image_registry_prefix_upstream }}" +matrix_bot_chatgpt_container_image_registry_prefix_upstream: "{{ matrix_bot_chatgpt_container_image_registry_prefix_upstream_default }}" +matrix_bot_chatgpt_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_chatgpt_container_image_tag: "{{ matrix_bot_chatgpt_version }}" matrix_bot_chatgpt_container_image_force_pull: "{{ matrix_bot_chatgpt_container_image.endswith(':latest') }}" -matrix_bot_chatgpt_container_image_registry_prefix: ghcr.io/ matrix_bot_chatgpt_base_path: "{{ matrix_base_data_path }}/chatgpt" matrix_bot_chatgpt_config_path: "{{ matrix_bot_chatgpt_base_path }}/config" @@ -57,7 +67,7 @@ matrix_bot_chatgpt_keyv_bot_storage: true # Matrix Static Settings (required, see notes) # Defaults to "https://matrix.org" matrix_bot_chatgpt_matrix_homeserver_url: "" # MATRIX_HOMESERVER_URL= -# With the @ and :example.com, ie @SOMETHING:example.com, needs to be set, created manually beforehand. +# With the @ and :example.com, ie @bot.chatgpt:example.com, needs to be set, created manually beforehand. matrix_bot_chatgpt_matrix_bot_username_localpart: 'bot.chatgpt' matrix_bot_chatgpt_matrix_bot_username: "@{{ matrix_bot_chatgpt_matrix_bot_username_localpart }}:{{ matrix_domain }}" # MATRIX_BOT_USERNAME= # Set `MATRIX_BOT_PASSWORD` the bot will print an `MATRIX_ACCESS_TOKEN` to the terminal @@ -87,8 +97,8 @@ matrix_bot_chatgpt_matrix_rich_text: true # MATRIX_RICH_TEXT=true # A list of admins # Example set of rules: # matrix_bot_chatgpt_admins: -# - @someone:example.com -# - @another:example.com +# - @alice:example.com +# - @bob:example.com # - @bot.*:example.com # - @*:example.net # matrix_bot_chatgpt_admins: "{{ [matrix_admin] if matrix_admin else [] }}" diff --git a/roles/custom/matrix-bot-chatgpt/tasks/install.yml b/roles/custom/matrix-bot-chatgpt/tasks/install.yml index af9550f15..1f2beae64 100644 --- a/roles/custom/matrix-bot-chatgpt/tasks/install.yml +++ b/roles/custom/matrix-bot-chatgpt/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure chatgpt paths exist diff --git a/roles/custom/matrix-bot-chatgpt/tasks/main.yml b/roles/custom/matrix-bot-chatgpt/tasks/main.yml index 3f5a7b7ec..3160fde32 100644 --- a/roles/custom/matrix-bot-chatgpt/tasks/main.yml +++ b/roles/custom/matrix-bot-chatgpt/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - diff --git a/roles/custom/matrix-bot-chatgpt/tasks/uninstall.yml b/roles/custom/matrix-bot-chatgpt/tasks/uninstall.yml index 4a50d7337..e6b488789 100644 --- a/roles/custom/matrix-bot-chatgpt/tasks/uninstall.yml +++ b/roles/custom/matrix-bot-chatgpt/tasks/uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-chatgpt service diff --git a/roles/custom/matrix-bot-chatgpt/tasks/validate_config.yml b/roles/custom/matrix-bot-chatgpt/tasks/validate_config.yml index 44f103e01..d9c266dad 100644 --- a/roles/custom/matrix-bot-chatgpt/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-chatgpt/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Chatgpt settings not defined @@ -26,7 +32,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_bot_chatgpt_docker_image', 'new': 'matrix_bot_chatgpt_container_image'} @@ -35,3 +41,4 @@ - {'old': 'matrix_bot_chatgpt_docker_repo', 'new': 'matrix_bot_chatgpt_container_image_self_build_repo'} - {'old': 'matrix_bot_chatgpt_docker_repo_version', 'new': 'matrix_bot_chatgpt_container_image_self_build_repo_version'} - {'old': 'matrix_bot_chatgpt_docker_src_files_path', 'new': 'matrix_bot_chatgpt_container_src_path'} + - {'old': 'matrix_bot_chatgpt_container_image_name_prefix', 'new': 'matrix_bot_chatgpt_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-chatgpt/templates/env.j2 b/roles/custom/matrix-bot-chatgpt/templates/env.j2 index a6f62cc67..2abf4327b 100644 --- a/roles/custom/matrix-bot-chatgpt/templates/env.j2 +++ b/roles/custom/matrix-bot-chatgpt/templates/env.j2 @@ -1,3 +1,12 @@ +{# +SPDX-FileCopyrightText: 2023 Joe Kappus +SPDX-FileCopyrightText: 2023 MDAD project contributors +SPDX-FileCopyrightText: 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + MATRIX_HOMESERVER_URL={{ matrix_bot_chatgpt_matrix_homeserver_url }} MATRIX_ACCESS_TOKEN={{ matrix_bot_chatgpt_matrix_access_token }} @@ -10,7 +19,7 @@ KEYV_URL={{ matrix_bot_chatgpt_keyv_url }} KEYV_BOT_ENCRYPTION={{ matrix_bot_chatgpt_keyv_bot_encryption|lower }} KEYV_BOT_STORAGE={{ matrix_bot_chatgpt_keyv_bot_storage|lower }} -# With the @ and :example.com, ie @SOMETHING:example.com +# With the @ and :example.com, ie @bot.chatgpt:example.com MATRIX_BOT_USERNAME={{ matrix_bot_chatgpt_matrix_bot_username }} MATRIX_BOT_PASSWORD={{ matrix_bot_chatgpt_matrix_bot_password }} diff --git a/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2 b/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2 index 01b0763a4..a3a3ba219 100644 --- a/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2 +++ b/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ matrix_bot_chatgpt_container_stop_grace_time_seconds }} matrix-bot-chatgpt 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ matrix_bot_chatgpt_container_stop_grace_time_seconds }} matrix-bot-chatgpt 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-chatgpt 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-chatgpt -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ matrix_bot_chatgpt_container_stop_grace_time_seconds }} matrix-bot-chatgpt 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ matrix_bot_chatgpt_container_stop_grace_time_seconds }} matrix-bot-chatgpt 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-chatgpt 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2.license b/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2.license new file mode 100644 index 000000000..8970217f2 --- /dev/null +++ b/roles/custom/matrix-bot-chatgpt/templates/systemd/matrix-bot-chatgpt.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 MDAD project contributors +SPDX-FileCopyrightText: 2023 Vladimir Panteleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-draupnir/defaults/main.yml b/roles/custom/matrix-bot-draupnir/defaults/main.yml index aafdfb129..8bb6ae8b4 100644 --- a/roles/custom/matrix-bot-draupnir/defaults/main.yml +++ b/roles/custom/matrix-bot-draupnir/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # A moderation tool for Matrix # Project source code URL: https://github.com/the-draupnir-project/Draupnir @@ -5,13 +11,15 @@ matrix_bot_draupnir_enabled: true # renovate: datasource=docker depName=gnuxie/draupnir -matrix_bot_draupnir_version: "v1.87.0" +matrix_bot_draupnir_version: "v2.2.0" matrix_bot_draupnir_container_image_self_build: false matrix_bot_draupnir_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git" -matrix_bot_draupnir_docker_image: "{{ matrix_bot_draupnir_docker_image_name_prefix }}gnuxie/draupnir:{{ matrix_bot_draupnir_version }}" -matrix_bot_draupnir_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_draupnir_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_bot_draupnir_docker_image: "{{ matrix_bot_draupnir_docker_image_registry_prefix }}gnuxie/draupnir:{{ matrix_bot_draupnir_version }}" +matrix_bot_draupnir_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_draupnir_container_image_self_build else matrix_bot_draupnir_docker_image_registry_prefix_upstream }}" +matrix_bot_draupnir_docker_image_registry_prefix_upstream: "{{ matrix_bot_draupnir_docker_image_registry_prefix_upstream_default }}" +matrix_bot_draupnir_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_bot_draupnir_docker_image_force_pull: "{{ matrix_bot_draupnir_docker_image.endswith(':latest') }}" matrix_bot_draupnir_base_path: "{{ matrix_base_data_path }}/draupnir" @@ -49,17 +57,39 @@ matrix_bot_draupnir_systemd_wanted_services_list: [] # Whether Draupnir should talk to the homeserver through Pantalaimon # If true, then other variables must be provided including pointing # `matrix_bot_draupnir_homeserver_url` to the Pantalaimon URL. +# +# The upstream project discourages enabling this option, because it is +# known that running Draupnir along with Pantalaimon breaks all workflows that involve +# answering prompts with reactions. (Hint: a lot of workflows rely on them.) matrix_bot_draupnir_pantalaimon_use: false -# The access token for the bot user. Required when NOT using Pantalaimon. +# If you choose to accept the risks of using Pantalaimon in your installation +# against the upstream advice, you can enable this to disable the warning about using it. +matrix_bot_draupnir_pantalaimon_breakage_ignore: false + +# Tells the bot if it should use its native E2EE support in the form of experimental Rust Crypto in the bot SDK. +# This option is mutually exclusive with `matrix_bot_draupnir_pantalaimon_use`. +# Rust Crypto requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. +matrix_bot_draupnir_enable_experimental_rust_crypto: false + +# The access token for the bot user. Required if Pantalaimon is NOT used. # (Otherwise provide `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password` instead.) matrix_bot_draupnir_access_token: "" -# User name and password for the bot. Required when using Pantalaimon. +# Username and password for the bot. Required if Pantalaimon is used. # (Otherwise provide `matrix_bot_draupnir_access_token` instead.) matrix_bot_draupnir_pantalaimon_username: "" matrix_bot_draupnir_pantalaimon_password: "" +# Username and password the bot uses for logging in directly. If Pantalaimon is used, +# these values become the values of `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password` +matrix_bot_draupnir_login: "{{ matrix_bot_draupnir_pantalaimon_username if matrix_bot_draupnir_pantalaimon_use == 'true' else 'bot.draupnir' }}" +matrix_bot_draupnir_password: "{{ matrix_bot_draupnir_pantalaimon_password }}" + +# Controls if we activate the config block for Pantalaimon for now. Its name will +# probably be changed for our usecase due to Draupnir's push to scrub Pantalaimon from the codebase. +matrix_bot_draupnir_login_native: "" + # The room ID where people can use the bot. The bot has no access controls, so # anyone in this room can use the bot - secure your room! # This should be a room alias or room ID - not a matrix.to URL. @@ -67,23 +97,28 @@ matrix_bot_draupnir_pantalaimon_password: "" matrix_bot_draupnir_management_room: "" # Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API). -# Set this to the pantalaimon URL if you're using that. +# Set this to the Pantalaimon URL if you're using that. matrix_bot_draupnir_homeserver_url: "" -# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/), -# only set this to the public-internet homeserver client API URL, do NOT set this to the pantalaimon URL. +# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/). +# Only set this to the public-internet homeserver client API URL. Do NOT set this to the Pantalaimon URL. matrix_bot_draupnir_raw_homeserver_url: "" -# Disable Server ACL is used if you want to not give the bot the right to apply Server ACLs in rooms without complaints from the bot. -# This setting is described the following way in the Configuration. +# Disable Server ACL is used if you do not want to give the bot the right to apply Server ACLs in rooms without complaints from the bot. +# This setting is described the following way in the configuration. # # Whether or not Draupnir should apply `m.room.server_acl` events. # DO NOT change this to `true` unless you are very confident that you know what you are doing. +# It is recommended to consult with people from the upstream project beforehand. # -# Please follow the advice of upstream and only change this value if you know what your doing. -# Its Exposed here because its common enough to be valid to expose. +# It is exposed here because it is common enough to be valid to expose. matrix_bot_draupnir_disable_server_acl: "false" +# Controls if the room state backing store is activated. +# Room state backing store makes restarts of the bot lightning fast as the bot does not suffer from amnesia. +# This config option has diminished improvements for bots on extremely fast homeservers or very very small bots on fast homeservers. +matrix_bot_draupnir_enable_room_state_backing_store: "true" + # Default configuration template which covers the generic use case. # You can customize it by controlling the various variables inside it. # diff --git a/roles/custom/matrix-bot-draupnir/tasks/main.yml b/roles/custom/matrix-bot-draupnir/tasks/main.yml index 66c7cd06e..e379c5e21 100644 --- a/roles/custom/matrix-bot-draupnir/tasks/main.yml +++ b/roles/custom/matrix-bot-draupnir/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-draupnir/tasks/setup_install.yml b/roles/custom/matrix-bot-draupnir/tasks/setup_install.yml index 0ddf994e7..140d6e7e6 100644 --- a/roles/custom/matrix-bot-draupnir/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-draupnir/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bot-draupnir/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-draupnir/tasks/setup_uninstall.yml index 10583a0bc..78f577a56 100644 --- a/roles/custom/matrix-bot-draupnir/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-draupnir/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-bot-draupnir service diff --git a/roles/custom/matrix-bot-draupnir/tasks/validate_config.yml b/roles/custom/matrix-bot-draupnir/tasks/validate_config.yml index efc5e7ddc..53f6dc3ea 100644 --- a/roles/custom/matrix-bot-draupnir/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-draupnir/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-bot-draupnir variables are undefined @@ -5,6 +10,7 @@ msg: "The `{{ item.name }}` variable must be defined and have a non-null value." with_items: - {'name': 'matrix_bot_draupnir_access_token', when: "{{ not matrix_bot_draupnir_pantalaimon_use }}"} + - {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_enable_experimental_rust_crypto }}"} - {'name': 'matrix_bot_draupnir_management_room', when: true} - {'name': 'matrix_bot_draupnir_container_network', when: true} - {'name': 'matrix_bot_draupnir_homeserver_url', when: true} @@ -18,4 +24,28 @@ msg: "The `{{ item.name }}` variable must be undefined or have a null value." with_items: - {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"} + - {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_login_native }}"} + - {'name': 'matrix_bot_draupnir_pantalaimon_use', when: "{{ matrix_bot_draupnir_enable_experimental_rust_crypto }}"} when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)" + +- when: "matrix_bot_draupnir_pantalaimon_use == 'true' and matrix_bot_draupnir_pantalaimon_breakage_ignore == 'false'" + block: + - name: Inject warning if Pantalaimon is used together with Draupnir + ansible.builtin.set_fact: + devture_playbook_runtime_messages_list: | + {{ + devture_playbook_runtime_messages_list | default([]) + + + [ + "Note: Draupnir does not support running with Pantalaimon as it would break all workflows that involve answering prompts with reactions. To enable E2EE for Draupnir, it is recommended to use matrix_bot_draupnir_enable_experimental_rust_crypto instead. This warning can be disabled by setting matrix_bot_draupnir_pantalaimon_breakage_ignore to true." + ] + }} + +- name: (Deprecation) Catch and report renamed Draupnir settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_bot_draupnir_container_image_name_prefix', 'new': 'matrix_bot_draupnir_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-draupnir/templates/labels.j2 b/roles/custom/matrix-bot-draupnir/templates/labels.j2 index f24a77ddf..aeab96277 100644 --- a/roles/custom/matrix-bot-draupnir/templates/labels.j2 +++ b/roles/custom/matrix-bot-draupnir/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_bot_draupnir_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bot-draupnir/templates/production.yaml.j2 b/roles/custom/matrix-bot-draupnir/templates/production.yaml.j2 index 90df739cb..147472936 100644 --- a/roles/custom/matrix-bot-draupnir/templates/production.yaml.j2 +++ b/roles/custom/matrix-bot-draupnir/templates/production.yaml.j2 @@ -1,5 +1,12 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API), -# set this to the pantalaimon URL if you're using that. homeserverUrl: {{ matrix_bot_draupnir_homeserver_url | to_json }} # Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/), @@ -7,29 +14,36 @@ homeserverUrl: {{ matrix_bot_draupnir_homeserver_url | to_json }} rawHomeserverUrl: {{ matrix_bot_draupnir_raw_homeserver_url | to_json }} # Matrix Access Token to use, Draupnir will only use this if pantalaimon.use is false. +# This option can be loaded from a file by passing "--access-token-path " at the command line, +# which would allow using secret management systems such as systemd's service credentials. accessToken: {{ matrix_bot_draupnir_access_token | to_json }} -{% if matrix_bot_draupnir_pantalaimon_use %} +{% if matrix_bot_draupnir_pantalaimon_use or matrix_bot_draupnir_login_native %} # Options related to Pantalaimon (https://github.com/matrix-org/pantalaimon) pantalaimon: - # Whether or not Draupnir will use pantalaimon to access the Matrix homeserver, - # set to `true` if you're using pantalaimon. - # - # Be sure to point homeserverUrl to the pantalaimon instance. + # Set to `true` when the bot is to login and fetch the access token on its own. # # Draupnir will log in using the given username and password once, # then store the resulting access token in a file under dataPath. use: true # The username to login with. - username: {{ matrix_bot_draupnir_pantalaimon_username | to_json }} + username: {{ matrix_bot_draupnir_login | to_json }} # The password Draupnir will login with. # # After successfully logging in once, this will be ignored, so this value can be blanked after first startup. - password: {{ matrix_bot_draupnir_pantalaimon_password | to_json }} + # This option can be loaded from a file by passing "--password-path " at the command line, + # which would allow using secret management systems such as systemd's service credentials. + password: {{ matrix_bot_draupnir_password | to_json }} {% endif %} +# Experimental usage of the matrix-bot-sdk rust crypto. This can not be used with Pantalaimon. +# Make sure Pantalaimon is disabled in Draupnir's configuration. +# +# Warning: At this time this is not considered production safe. +experimentalRustCrypto: {{ matrix_bot_draupnir_enable_experimental_rust_crypto | to_json }} + # The path Draupnir will store its state/data in, leave default ("/data/storage") when using containers. dataPath: "/data" @@ -57,7 +71,7 @@ managementRoom: {{ matrix_bot_draupnir_management_room | to_json }} # Running with verboseLogging is unsupported. # Whether Draupnir should log a lot more messages in the room, # mainly involves "all-OK" messages, and debugging messages for when Draupnir checks bans in a room. -#verboseLogging: false +verboseLogging: false # The log level of terminal (or container) output, # can be one of DEBUG, INFO, WARN and ERROR, in increasing order of importance and severity. @@ -81,12 +95,6 @@ noop: false # DO NOT change this to `true` unless you are very confident that you know what you are doing. disableServerACL: {{ matrix_bot_draupnir_disable_server_acl | to_json }} -# Whether Draupnir should check member lists quicker (by using a different endpoint), -# keep in mind that enabling this will miss invited (but not joined) users. -# -# Turn on if your bot is in (very) large rooms, or in large amounts of rooms. -fasterMembershipChecks: false - # A case-insensitive list of ban reasons to have the bot also automatically redact the user's messages for. # # If the bot sees you ban a user with a reason that is an (exact case-insensitive) match to this list, @@ -102,15 +110,6 @@ automaticallyRedactForReasons: - "spam" - "advertising" -# A list of rooms to protect. Draupnir will add this to the list it knows from its account data. -# -# It won't, however, add it to the account data. -# Manually add the room via '!draupnir rooms add' to have it stay protected regardless if this config value changes. -# -# Note: These must be matrix.to URLs -#protectedRooms: -# - "https://matrix.to/#/#matrix:example.org" - # Whether or not to add all joined rooms to the "protected rooms" list # (excluding the management room and watched policy list rooms, see below). # @@ -131,15 +130,18 @@ protectAllJoinedRooms: false # of the homeserver may be more impacted. backgroundDelayMS: 500 +# FIXME: This configuration option is currently broken in the playbook as admin APIs cannot +# be accessed from containers. See https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3389 +# and https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3308 # Server administration commands, these commands will only work if Draupnir is # a global server administrator, and the bot's server is a Synapse instance. -admin: - # Whether or not Draupnir can temporarily take control of any eligible account from the local homeserver who's in the room - # (with enough permissions) to "make" a user an admin. - # - # This only works if a local user with enough admin permissions is present in the room. - enableMakeRoomAdminCommand: false - +#admin: +# # Whether or not Draupnir can temporarily take control of any eligible account from the local homeserver who's in the room +# # (with enough permissions) to "make" a user an admin. +# # +# # This only works if a local user with enough admin permissions is present in the room. +# enableMakeRoomAdminCommand: false +# # Misc options for command handling and commands commands: # Whether or not the `!draupnir` prefix is necessary to submit commands. @@ -157,10 +159,6 @@ commands: - "draupnir_bot" - "draupnir" - # Whether or not commands with a wildcard (*) will require an additional `--force` argument - # in the command to be able to be submitted. - confirmWildcardBan: true - # The default reasons to be prompted with if the reason is missing from a ban command. ban: defaultReasons: @@ -178,10 +176,9 @@ commands: # # # # WordList will ban users who use these words when first joining a room, so take caution when selecting them. # # -# # For advanced usage, regex can also be used, see the following links for more information; -# # - https://www.digitalocean.com/community/tutorials/an-introduction-to-regular-expressions -# # - https://regexr.com/ -# # - https://regexone.com/ +# # The word list protection does not support regular expressions at this time. +# # The configuration in the past stated support for Regex erroneously. +# # # words: # - "LoReM" # - "IpSuM" @@ -196,6 +193,31 @@ commands: # # (users will always be banned if they say a bad word) # minutesBeforeTrusting: 20 +# The room state backing store writes a copy of the room state for all protected +# rooms to the data directory. +# It is recommended to enable this option unless you deploy Draupnir close to the +# homeserver and know that Draupnir is starting up quickly. If your homeserver can +# respond quickly to Draupnir's requests for `/state` then you might not need this option. +roomStateBackingStore: + enabled: {{ matrix_bot_draupnir_enable_room_state_backing_store | to_json }} + +# Safe mode provides recovery options for some failure modes when Draupnir +# fails to start. For example, if the bot fails to resolve a room alias in +# a watched list, or if the server has parted from a protected room and can't +# find a way back in. Safe mode will provide different options to recover from +# these. Such as unprotecting the room or unwatching the policy list. +# By default Draupnir will boot into safe mode only when the failure mode +# is recoverable. +# It may be desirable to prevent the bot from starting into safe mode if you have +# a pager system when Draupnir is down, as Draupnir could prevent your monitoring +# system from identifying a failure to start. +#safeMode: +# # The option for entering safe mode when Draupnir fails to start up. +# # - "RecoveryOnly" will only start the bot in safe mode when there are recovery options available. This is the default. +# # - "Never" will never start the bot in safe mode when Draupnir fails to start normally. +# # - "Always" will always start the bot in safe mode when Draupnir fails to start normally. +# bootOption: RecoveryOnly + # Options for advanced monitoring of the health of the bot. health: # healthz options. These options are best for use in container environments @@ -227,6 +249,18 @@ health: # Defaults to 418. unhealthyStatus: 418 + # Sentry options. Sentry is a tool used to receive/collate/triage runtime + # errors and performance issues. Skip this section if you do not wish to use + # Sentry. + sentry: + # The key used to upload Sentry data to the server. + # dsn: "https://XXXXXXXXX@example.com/YYY + + # Frequency of performance monitoring. + # A number in [0.0, 1.0], where 0.0 means "don't bother with tracing" + # and 1.0 means "trace performance at every opportunity". + # tracesSampleRate: 0.5 + {% if matrix_bot_draupnir_web_enabled %} # Options for exposing web APIs. web: @@ -238,7 +272,12 @@ web: # The address to listen for requests on. Defaults to only the current # computer. - address: 0.0.0.0 + address: "0.0.0.0" + + # Alternative setting to open to the entire web. Be careful, + # as this will increase your security perimeter: + # + # address: "0.0.0.0" # A web API designed to intercept Matrix API # POST /_matrix/client/r0/rooms/{roomId}/report/{eventId} @@ -251,10 +290,13 @@ web: enabled: {{ matrix_bot_draupnir_abuse_reporting_enabled | to_json }} {% endif %} +# FIXME: This configuration option is currently broken in the playbook as admin APIs cannot +# be accessed from containers. See https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3389 +# and https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3308 # Whether or not to actively poll synapse for abuse reports, to be used # instead of intercepting client calls to synapse's abuse endpoint, when that # isn't possible/practical. -pollReports: false +#pollReports: false # Whether or not new reports, received either by webapi or polling, # should be printed to our managementRoom. diff --git a/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2 b/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2 index d83f088f2..1c9c72de1 100644 --- a/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2 +++ b/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-draupnir 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-draupnir 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-draupnir 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -42,7 +42,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-draupnir -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-draupnir 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-draupnir 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-draupnir 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2.license b/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2.license new file mode 100644 index 000000000..ff638a924 --- /dev/null +++ b/roles/custom/matrix-bot-draupnir/templates/systemd/matrix-bot-draupnir.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-go-neb/defaults/main.yml b/roles/custom/matrix-bot-go-neb/defaults/main.yml index 359101bba..5d5e8b97f 100644 --- a/roles/custom/matrix-bot-go-neb/defaults/main.yml +++ b/roles/custom/matrix-bot-go-neb/defaults/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Go-NEB is a Matrix bot written in Go. It is the successor to Matrix-NEB, the original Matrix bot written in Python. @@ -28,7 +37,9 @@ matrix_bot_go_neb_data_store_path: "{{ matrix_bot_go_neb_data_path }}/store" matrix_bot_go_neb_container_image: "{{ matrix_bot_go_neb_container_image_registry_prefix }}matrixdotorg/go-neb:{{ matrix_bot_go_neb_container_image_tag }}" matrix_bot_go_neb_container_image_tag: "{{ matrix_bot_go_neb_version }}" matrix_bot_go_neb_container_image_force_pull: "{{ matrix_bot_go_neb_container_image.endswith(':latest') }}" -matrix_bot_go_neb_container_image_registry_prefix: docker.io/ +matrix_bot_go_neb_container_image_registry_prefix: "{{ matrix_bot_go_neb_container_image_registry_prefix_upstream }}" +matrix_bot_go_neb_container_image_registry_prefix_upstream: "{{ matrix_bot_go_neb_container_image_registry_prefix_upstream_default }}" +matrix_bot_go_neb_container_image_registry_prefix_upstream_default: "docker.io/" # The base container network. It will be auto-created by this role if it doesn't exist already. matrix_bot_go_neb_container_network: matrix-bot-go-neb @@ -200,7 +211,7 @@ matrix_bot_go_neb_realms: [] matrix_bot_go_neb_sessions: [] # - SessionID: "your_github_session" # RealmID: "github_realm" -# UserID: "@YOUR_USER_ID:{{ matrix_domain }}" # This needs to be the username of the person that's allowed to use the !github commands +# UserID: "@alice:{{ matrix_domain }}" # This needs to be the username of the person that's allowed to use the !github commands # Config: # # Populate these fields by generating a "Personal Access Token" on github.com # AccessToken: "YOUR_GITHUB_ACCESS_TOKEN" @@ -286,7 +297,7 @@ matrix_bot_go_neb_services: [] # UserID: "@another_goneb:{{ matrix_domain }}" # Config: # RealmID: "github_realm" -# ClientUserID: "@YOUR_USER_ID:{{ matrix_domain }}" # needs to be an authenticated user so Go-NEB can create webhooks. Check the UserID field in the github_realm in matrix_bot_go_neb_sessions. +# ClientUserID: "@alice:{{ matrix_domain }}" # needs to be an authenticated user so Go-NEB can create webhooks. Check the UserID field in the github_realm in matrix_bot_go_neb_sessions. # Rooms: # "!qporfwt:example.com": # Repos: diff --git a/roles/custom/matrix-bot-go-neb/tasks/install.yml b/roles/custom/matrix-bot-go-neb/tasks/install.yml index 10002904c..d590bc999 100644 --- a/roles/custom/matrix-bot-go-neb/tasks/install.yml +++ b/roles/custom/matrix-bot-go-neb/tasks/install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure go-neb paths exist diff --git a/roles/custom/matrix-bot-go-neb/tasks/main.yml b/roles/custom/matrix-bot-go-neb/tasks/main.yml index 9367419da..09cf4bb84 100644 --- a/roles/custom/matrix-bot-go-neb/tasks/main.yml +++ b/roles/custom/matrix-bot-go-neb/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-go-neb/tasks/uninstall.yml b/roles/custom/matrix-bot-go-neb/tasks/uninstall.yml index cc5f9fa57..ad862821d 100644 --- a/roles/custom/matrix-bot-go-neb/tasks/uninstall.yml +++ b/roles/custom/matrix-bot-go-neb/tasks/uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-go-neb service diff --git a/roles/custom/matrix-bot-go-neb/tasks/validate_config.yml b/roles/custom/matrix-bot-go-neb/tasks/validate_config.yml index 72bc3cb41..ead635626 100644 --- a/roles/custom/matrix-bot-go-neb/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-go-neb/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if there's not at least 1 client diff --git a/roles/custom/matrix-bot-go-neb/templates/config.yaml.j2.license b/roles/custom/matrix-bot-go-neb/templates/config.yaml.j2.license new file mode 100644 index 000000000..c74bd679c --- /dev/null +++ b/roles/custom/matrix-bot-go-neb/templates/config.yaml.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Yannick Goossens +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-go-neb/templates/env.j2 b/roles/custom/matrix-bot-go-neb/templates/env.j2 index 22e605e5c..7fd62d5d7 100644 --- a/roles/custom/matrix-bot-go-neb/templates/env.j2 +++ b/roles/custom/matrix-bot-go-neb/templates/env.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + BIND_ADDRESS=:4050 DATABASE_TYPE={{ matrix_bot_go_neb_database_engine }} diff --git a/roles/custom/matrix-bot-go-neb/templates/labels.j2 b/roles/custom/matrix-bot-go-neb/templates/labels.j2 index 1f0123add..4f8d18670 100644 --- a/roles/custom/matrix-bot-go-neb/templates/labels.j2 +++ b/roles/custom/matrix-bot-go-neb/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_bot_go_neb_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2 b/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2 index 876c13829..c8c028b77 100644 --- a/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2 +++ b/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-go-neb 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-go-neb 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-go-neb 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -44,7 +44,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-go-neb -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-go-neb 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-go-neb 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-go-neb 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2.license b/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2.license new file mode 100644 index 000000000..99d44ac5b --- /dev/null +++ b/roles/custom/matrix-bot-go-neb/templates/systemd/matrix-bot-go-neb.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Yannick Goossens +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-honoroit/defaults/main.yml b/roles/custom/matrix-bot-honoroit/defaults/main.yml index 4f35ad931..edac46e0a 100644 --- a/roles/custom/matrix-bot-honoroit/defaults/main.yml +++ b/roles/custom/matrix-bot-honoroit/defaults/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Honoroit is a helpdesk bot # Project source code URL: https://github.com/etkecc/honoroit @@ -21,9 +30,11 @@ matrix_bot_honoroit_docker_repo_version: "{{ matrix_bot_honoroit_version }}" matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src" # renovate: datasource=docker depName=ghcr.io/etkecc/honoroit -matrix_bot_honoroit_version: v0.9.26 -matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}" -matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'ghcr.io/' }}" +matrix_bot_honoroit_version: v0.9.27 +matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_registry_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}" +matrix_bot_honoroit_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else matrix_bot_honoroit_docker_image_registry_prefix_upstream }}" +matrix_bot_honoroit_docker_image_registry_prefix_upstream: "{{ matrix_bot_honoroit_docker_image_registry_prefix_upstream_default }}" +matrix_bot_honoroit_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}" matrix_bot_honoroit_base_path: "{{ matrix_base_data_path }}/honoroit" @@ -165,8 +176,8 @@ matrix_bot_honoroit_redmine_done_status_id: '' # done status ID (e.g. 3) # If not defined, everyone is allowed. # Example set of rules: # matrix_bot_honoroit_allowedusers: -# - @someone:example.com -# - @another:example.com +# - @alice:example.com +# - @bob:example.com # - @bot.*:example.com # - @*:example.net matrix_bot_honoroit_allowedusers: @@ -178,6 +189,9 @@ matrix_bot_honoroit_cachesize: '' # List of ignored room IDs matrix_bot_honoroit_ignoredrooms: [] +# If enabled, the bot will not send a warning message in an encrypted room +matrix_bot_honoroit_no_encryption_warning: false + # Ignore messages outside of threads matrix_bot_honoroit_ignorenothread: false diff --git a/roles/custom/matrix-bot-honoroit/tasks/main.yml b/roles/custom/matrix-bot-honoroit/tasks/main.yml index 9b4e29089..4e7dfbc09 100644 --- a/roles/custom/matrix-bot-honoroit/tasks/main.yml +++ b/roles/custom/matrix-bot-honoroit/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-honoroit/tasks/setup_install.yml b/roles/custom/matrix-bot-honoroit/tasks/setup_install.yml index be96d021b..18730e27c 100644 --- a/roles/custom/matrix-bot-honoroit/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-honoroit/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: matrix_bot_honoroit_requires_restart: false diff --git a/roles/custom/matrix-bot-honoroit/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-honoroit/tasks/setup_uninstall.yml index 72df4f013..28456d53c 100644 --- a/roles/custom/matrix-bot-honoroit/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-honoroit/tasks/setup_uninstall.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-honoroit service diff --git a/roles/custom/matrix-bot-honoroit/tasks/validate_config.yml b/roles/custom/matrix-bot-honoroit/tasks/validate_config.yml index afd580c2a..fcaa04b68 100644 --- a/roles/custom/matrix-bot-honoroit/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-honoroit/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Honoroit settings not defined @@ -10,3 +16,12 @@ - {'name': 'matrix_bot_honoroit_password', when: true} - {'name': 'matrix_bot_honoroit_roomid', when: true} - {'name': 'matrix_bot_honoroit_database_hostname', when: "{{ matrix_bot_honoroit_database_engine == 'postgres' }}"} + +- name: (Deprecation) Catch and report renamed Honoroit settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_bot_honoroit_container_image_name_prefix', 'new': 'matrix_bot_honoroit_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-honoroit/templates/env.j2 b/roles/custom/matrix-bot-honoroit/templates/env.j2 index e061a3687..5383b6525 100644 --- a/roles/custom/matrix-bot-honoroit/templates/env.j2 +++ b/roles/custom/matrix-bot-honoroit/templates/env.j2 @@ -1,3 +1,12 @@ +{# +SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + HONOROIT_LOGIN={{ matrix_bot_honoroit_login }} HONOROIT_PASSWORD={{ matrix_bot_honoroit_password }} HONOROIT_HOMESERVER={{ matrix_bot_honoroit_homeserver }} @@ -5,6 +14,7 @@ HONOROIT_ROOMID={{ matrix_bot_honoroit_roomid }} HONOROIT_DB_DSN={{ matrix_bot_honoroit_database_connection_string }} HONOROIT_DB_DIALECT={{ matrix_bot_honoroit_database_dialect }} HONOROIT_PREFIX={{ matrix_bot_honoroit_prefix }} +HONOROIT_NOENCRYPTIONWARNING={{ matrix_bot_honoroit_no_encryption_warning }} HONOROIT_AUTH_METRICS_LOGIN={{ matrix_bot_honoroit_auth_metrics_login }} HONOROIT_AUTH_METRICS_PASSWORD={{ matrix_bot_honoroit_auth_metrics_password }} HONOROIT_AUTH_METRICS_IPS={{ matrix_bot_honoroit_auth_metrics_ips | default([]) | join(' ') }} diff --git a/roles/custom/matrix-bot-honoroit/templates/labels.j2 b/roles/custom/matrix-bot-honoroit/templates/labels.j2 index 74e357914..4a027ddad 100644 --- a/roles/custom/matrix-bot-honoroit/templates/labels.j2 +++ b/roles/custom/matrix-bot-honoroit/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_bot_honoroit_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2 b/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2 index 2749ec520..3bcd8441b 100644 --- a/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2 +++ b/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-honoroit 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-honoroit 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-honoroit 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-honoroit -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-honoroit 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-honoroit 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-honoroit 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2.license b/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2.license new file mode 100644 index 000000000..09e19b00a --- /dev/null +++ b/roles/custom/matrix-bot-honoroit/templates/systemd/matrix-bot-honoroit.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2023 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-matrix-registration-bot/defaults/main.yml b/roles/custom/matrix-bot-matrix-registration-bot/defaults/main.yml index f44196d43..c26848c73 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/defaults/main.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Erick Wibben +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-registration-bot creates and manages registration tokens for a Matrix server # Project source code URL: https://github.com/moan0s/matrix-registration-bot @@ -11,8 +21,11 @@ matrix_bot_matrix_registration_bot_docker_src_files_path: "{{ matrix_bot_matrix_ # renovate: datasource=docker depName=moanos/matrix-registration-bot matrix_bot_matrix_registration_bot_version: 1.3.0 matrix_bot_matrix_registration_bot_docker_iteration: 0 -matrix_bot_matrix_registration_bot_docker_tag: "{{ matrix_bot_matrix_registration_bot_version }}-{{ matrix_bot_matrix_registration_bot_docker_iteration}}" -matrix_bot_matrix_registration_bot_docker_image: "{{ matrix_container_global_registry_prefix }}moanos/matrix-registration-bot:{{ matrix_bot_matrix_registration_bot_docker_tag }}" +matrix_bot_matrix_registration_bot_docker_tag: "{{ matrix_bot_matrix_registration_bot_version }}-{{ matrix_bot_matrix_registration_bot_docker_iteration }}" +matrix_bot_matrix_registration_bot_docker_image: "{{ matrix_bot_matrix_registration_bot_docker_image_registry_prefix }}moanos/matrix-registration-bot:{{ matrix_bot_matrix_registration_bot_docker_tag }}" +matrix_bot_matrix_registration_bot_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_matrix_registration_bot_container_image_self_build else matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream }}" +matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream: "{{ matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream_default }}" +matrix_bot_matrix_registration_bot_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_bot_matrix_registration_bot_docker_image_force_pull: "{{ matrix_bot_matrix_registration_bot_docker_image.endswith(':latest') }}" matrix_bot_matrix_registration_bot_base_path: "{{ matrix_base_data_path }}/matrix-registration-bot" @@ -20,19 +33,27 @@ matrix_bot_matrix_registration_bot_config_path: "{{ matrix_bot_matrix_registrati matrix_bot_matrix_registration_bot_data_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/data" matrix_bot_matrix_registration_bot_bot_server: "{{ matrix_homeserver_url }}" -matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_url }}" +# The bot's username. This user needs to be created manually beforehand. +# Also see `matrix_bot_matrix_registration_bot_user_password`. +matrix_bot_matrix_registration_bot_matrix_user_id_localpart: "bot.matrix-registration-bot" + +matrix_bot_matrix_registration_bot_matrix_user_id: '@{{ matrix_bot_matrix_registration_bot_matrix_user_id_localpart }}:{{ matrix_domain }}' # The bot's password (can also be used to login via a client like Element Web) matrix_bot_matrix_registration_bot_bot_password: '' +# Homeserver base URL +matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_url }}" + # Optional variable that only needs to be set if the bot account is not admin # Needs to be a valid access token of an admin account matrix_bot_matrix_registration_bot_api_token: '' matrix_bot_matrix_registration_bot_device_id: "matrix-docker-ansible-deploy" -matrix_bot_matrix_registration_bot_logging_level: info +# Valid values: ERROR, INFO, DEBUG +matrix_bot_matrix_registration_bot_logging_level: INFO matrix_bot_matrix_registration_bot_container_network: "" @@ -51,11 +72,3 @@ matrix_bot_matrix_registration_bot_systemd_required_services_list_custom: [] # List of systemd services that matrix-bot-matrix-registration-bot.service wants matrix_bot_matrix_registration_bot_systemd_wanted_services_list: [] - -# The bot's username. This user needs to be created manually beforehand. -# Also see `matrix_bot_matrix_registration_bot_user_password`. -matrix_bot_matrix_registration_bot_matrix_user_id_localpart: "bot.matrix-registration-bot" - -matrix_bot_matrix_registration_bot_matrix_user_id: '@{{ matrix_bot_matrix_registration_bot_matrix_user_id_localpart }}:{{ matrix_domain }}' - -matrix_bot_matrix_registration_bot_matrix_homeserver_url: "" diff --git a/roles/custom/matrix-bot-matrix-registration-bot/tasks/clean_cache.yml b/roles/custom/matrix-bot-matrix-registration-bot/tasks/clean_cache.yml index ae4433b8f..d5d590895 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/tasks/clean_cache.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/tasks/clean_cache.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Julian-Samuel Gebühr +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Delete cache files diff --git a/roles/custom/matrix-bot-matrix-registration-bot/tasks/main.yml b/roles/custom/matrix-bot-matrix-registration-bot/tasks/main.yml index cd11c1d5d..b420f4cde 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/tasks/main.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_install.yml b/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_install.yml index d50c0f860..c23ce719f 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-registration-bot paths exist @@ -10,13 +18,13 @@ with_items: - {path: "{{ matrix_bot_matrix_registration_bot_config_path }}", when: true} - {path: "{{ matrix_bot_matrix_registration_bot_data_path }}", when: true} - - {path: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}", when: true} + - {path: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}", when: "{{ matrix_bot_matrix_registration_bot_container_image_self_build }}"} when: "item.when | bool" - name: Ensure matrix-registration-bot configuration file created ansible.builtin.template: - src: "{{ role_path }}/templates/config/config.yml.j2" - dest: "{{ matrix_bot_matrix_registration_bot_config_path }}/config.yml" + src: "{{ role_path }}/templates/config.yaml.j2" + dest: "{{ matrix_bot_matrix_registration_bot_config_path }}/config.yaml" owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" mode: 0640 @@ -33,28 +41,28 @@ delay: "{{ devture_playbook_help_container_retries_delay }}" until: result is not failed -- name: Ensure matrix-registration-bot repository is present on self-build - ansible.builtin.git: - repo: "{{ matrix_bot_matrix_registration_bot_docker_repo }}" - version: "{{ matrix_bot_matrix_registration_bot_docker_repo_version }}" - dest: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}" - force: "yes" - become: true - become_user: "{{ matrix_user_username }}" - register: matrix_bot_matrix_registration_bot_git_pull_results - when: "matrix_bot_matrix_registration_bot_container_image_self_build | bool" +- when: matrix_bot_matrix_registration_bot_container_image_self_build | bool + block: + - name: Ensure matrix-registration-bot repository is present on self-build + ansible.builtin.git: + repo: "{{ matrix_bot_matrix_registration_bot_docker_repo }}" + version: "{{ matrix_bot_matrix_registration_bot_docker_repo_version }}" + dest: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}" + force: "yes" + become: true + become_user: "{{ matrix_user_username }}" + register: matrix_bot_matrix_registration_bot_git_pull_results -- name: Ensure matrix-registration-bot image is built - community.docker.docker_image: - name: "{{ matrix_bot_matrix_registration_bot_docker_image }}" - source: build - force_source: "{{ matrix_bot_matrix_registration_bot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_matrix_registration_bot_git_pull_results.changed }}" - build: - dockerfile: Dockerfile - path: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}" - pull: true - when: "matrix_bot_matrix_registration_bot_container_image_self_build | bool" + - name: Ensure matrix-registration-bot image is built + community.docker.docker_image: + name: "{{ matrix_bot_matrix_registration_bot_docker_image }}" + source: build + force_source: "{{ matrix_bot_matrix_registration_bot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_matrix_registration_bot_git_pull_results.changed }}" + build: + dockerfile: Dockerfile + path: "{{ matrix_bot_matrix_registration_bot_docker_src_files_path }}" + pull: true - name: Ensure matrix-registration-bot container network is created community.general.docker_network: diff --git a/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_uninstall.yml index b83ea783b..662f8e5da 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-matrix-registration-bot service diff --git a/roles/custom/matrix-bot-matrix-registration-bot/tasks/validate_config.yml b/roles/custom/matrix-bot-matrix-registration-bot/tasks/validate_config.yml index 9830c5323..8fc291061 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-matrix-registration-bot/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required settings not defined @@ -7,12 +13,14 @@ when: "vars[item] == ''" with_items: - "matrix_bot_matrix_registration_bot_bot_password" - - "matrix_bot_matrix_registration_bot_matrix_homeserver_url" + - "matrix_bot_matrix_registration_bot_api_base_url" -- name: (Deprecation) Catch and report old settings +- name: (Deprecation) Catch and report renamed settings ansible.builtin.fail: msg: >- - Your configuration contains a variable, which is deprecated - Please check the documentation on how to configure the matrix-registration-bot. - when: "item in vars" + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" with_items: - - "matrix_bot_matrix_registration_bot_bot_access_token" + - {'old': 'matrix_bot_matrix_registration_bot_bot_access_token', 'new': ''} + - {'old': 'matrix_bot_matrix_registration_bot_matrix_homeserver_url', 'new': 'matrix_bot_matrix_registration_bot_api_base_url'} diff --git a/roles/custom/matrix-bot-matrix-registration-bot/templates/config/config.yml.j2 b/roles/custom/matrix-bot-matrix-registration-bot/templates/config.yaml.j2 similarity index 75% rename from roles/custom/matrix-bot-matrix-registration-bot/templates/config/config.yml.j2 rename to roles/custom/matrix-bot-matrix-registration-bot/templates/config.yaml.j2 index 4a2242aa2..b76ee9824 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/templates/config/config.yml.j2 +++ b/roles/custom/matrix-bot-matrix-registration-bot/templates/config.yaml.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + bot: server: {{ matrix_bot_matrix_registration_bot_bot_server|to_json }} username: {{ matrix_bot_matrix_registration_bot_matrix_user_id_localpart|to_json }} @@ -6,11 +14,10 @@ bot: api: # API endpoint of the registration tokens base_url: {{ matrix_bot_matrix_registration_bot_api_base_url|to_json }} - # Access token of an administrator on the server {% if matrix_bot_matrix_registration_bot_api_token | length > 0 %} + # Access token of an administrator on the server token: {{ matrix_bot_matrix_registration_bot_api_token|to_json }} {% endif %} logging: level: {{ matrix_bot_matrix_registration_bot_logging_level|to_json }} - diff --git a/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2 b/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2 index a48c4f045..1ad089e3d 100644 --- a/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2 +++ b/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-registration-bot 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-registration-bot 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-matrix-registration-bot 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -21,7 +21,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --name=matrix-bot-matrix-registration-bot \ --log-driver=none \ --cap-drop=ALL \ - -e "CONFIG_PATH=/config/config.yml" \ + -e "CONFIG_PATH=/config/config.yaml" \ --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ --read-only \ --mount type=bind,src={{ matrix_bot_matrix_registration_bot_config_path }},dst=/config,ro \ @@ -35,7 +35,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-matrix-registration-bot -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-registration-bot 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-registration-bot 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-matrix-registration-bot 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2.license b/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2.license new file mode 100644 index 000000000..3a4dec62d --- /dev/null +++ b/roles/custom/matrix-bot-matrix-registration-bot/templates/systemd/matrix-bot-matrix-registration-bot.service.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Erick Wibben +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml b/roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml index e6074f70a..bf4176b1a 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml +++ b/roles/custom/matrix-bot-matrix-reminder-bot/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Richard Meyer +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-reminder-bot is a bot for one-off and recurring reminders # Project source code URL: https://github.com/anoadragon453/matrix-reminder-bot @@ -11,8 +21,10 @@ matrix_bot_matrix_reminder_bot_docker_src_files_path: "{{ matrix_base_data_path # renovate: datasource=docker depName=ghcr.io/anoadragon453/matrix-reminder-bot matrix_bot_matrix_reminder_bot_version: v0.3.0 -matrix_bot_matrix_reminder_bot_docker_image: "{{ matrix_bot_matrix_reminder_bot_docker_image_name_prefix }}anoadragon453/matrix-reminder-bot:{{ matrix_bot_matrix_reminder_bot_version }}" -matrix_bot_matrix_reminder_bot_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_matrix_reminder_bot_container_image_self_build else 'ghcr.io/' }}" +matrix_bot_matrix_reminder_bot_docker_image: "{{ matrix_bot_matrix_reminder_bot_docker_image_registry_prefix }}anoadragon453/matrix-reminder-bot:{{ matrix_bot_matrix_reminder_bot_version }}" +matrix_bot_matrix_reminder_bot_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_matrix_reminder_bot_container_image_self_build else matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream }}" +matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream: "{{ matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream_default }}" +matrix_bot_matrix_reminder_bot_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_matrix_reminder_bot_docker_image_force_pull: "{{ matrix_bot_matrix_reminder_bot_docker_image.endswith(':latest') }}" matrix_bot_matrix_reminder_bot_base_path: "{{ matrix_base_data_path }}/matrix-reminder-bot" diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/main.yml b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/main.yml index f475afc06..aaef35450 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/main.yml +++ b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_install.yml b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_install.yml index 4db0372f9..ebe0815a2 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_uninstall.yml index 512c0f2dd..55d89ffbf 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-matrix-reminder-bot service diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/validate_config.yml b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/validate_config.yml index 072e392bd..06781bd19 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-matrix-reminder-bot/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-reminder-bot settings not defined @@ -16,7 +22,8 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_bot_matrix_reminder_bot_container_self_build', 'new': 'matrix_bot_matrix_reminder_bot_container_image_self_build'} + - {'old': 'matrix_bot_matrix_reminder_bot_container_image_name_prefix', 'new': 'matrix_bot_matrix_reminder_bot_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2 b/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2 index f6075388f..e3c458c84 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2 +++ b/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2 @@ -63,7 +63,7 @@ blocklist: # Logging setup logging: # Logging level - # Allowed levels are 'INFO', 'WARNING', 'ERROR', 'DEBUG' where DEBUG is most verbose + # Valid values: ERROR, WARNING, INFO, DEBUG level: INFO # Configure logging to a file file_logging: diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2.license b/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2.license new file mode 100644 index 000000000..89e5ea1b7 --- /dev/null +++ b/roles/custom/matrix-bot-matrix-reminder-bot/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2 b/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2 index ecd59bd7b..823d050c2 100644 --- a/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2 +++ b/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-reminder-bot 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-reminder-bot 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-matrix-reminder-bot 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -40,7 +40,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-matrix-reminder-bot -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-reminder-bot 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-matrix-reminder-bot 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-matrix-reminder-bot 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2.license b/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2.license new file mode 100644 index 000000000..ba251d31b --- /dev/null +++ b/roles/custom/matrix-bot-matrix-reminder-bot/templates/systemd/matrix-bot-matrix-reminder-bot.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-maubot/defaults/main.yml b/roles/custom/matrix-bot-maubot/defaults/main.yml index cf91011b4..64e717219 100644 --- a/roles/custom/matrix-bot-maubot/defaults/main.yml +++ b/roles/custom/matrix-bot-maubot/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Stuart Mumford +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 Fabio Bonelli +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # maubot is a plugin-based Matrix bot system. @@ -17,18 +27,36 @@ matrix_bot_maubot_path_prefix: /_matrix/maubot matrix_bot_maubot_container_image_self_build: false matrix_bot_maubot_docker_repo: "https://mau.dev/maubot/maubot.git" -matrix_bot_maubot_docker_src_files_path: "{{ matrix_bot_maubot_base_path }}/docker-src" matrix_bot_maubot_docker_repo_version: "{{ 'master' if matrix_bot_maubot_version == 'latest' else matrix_bot_maubot_version }}" # renovate: datasource=docker depName=dock.mau.dev/maubot/maubot -matrix_bot_maubot_version: v0.5.0 -matrix_bot_maubot_docker_image: "{{ matrix_bot_maubot_docker_image_name_prefix }}maubot/maubot:{{ matrix_bot_maubot_version }}" -matrix_bot_maubot_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_maubot_container_image_self_build else 'dock.mau.dev/' }}" +matrix_bot_maubot_version: v0.5.1 +matrix_bot_maubot_docker_image: "{{ matrix_bot_maubot_docker_image_registry_prefix }}maubot/maubot:{{ matrix_bot_maubot_version }}" +matrix_bot_maubot_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_maubot_container_image_self_build else matrix_bot_maubot_docker_image_registry_prefix_upstream }}" +matrix_bot_maubot_docker_image_registry_prefix_upstream: "{{ matrix_bot_maubot_docker_image_registry_prefix_upstream_default }}" +matrix_bot_maubot_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_bot_maubot_docker_image_force_pull: "{{ matrix_bot_maubot_docker_image.endswith(':latest') }}" +# matrix_bot_maubot_docker_image_customized is the name of the locally built maubot image +# which adds various customizations on top of the original (upstream) maubot image. +# This image will be based on the upstream `matrix_bot_maubot_docker_image` image, only if `matrix_bot_maubot_container_image_customizations_enabled: true`. +matrix_bot_maubot_docker_image_customized: "localhost/maubot/maubot:{{ matrix_bot_maubot_version }}-customized" + +# Controls whether the customized image (`matrix_bot_maubot_docker_image_customized`) is to be force-built without layer caching enabled. +matrix_bot_maubot_docker_image_customized_build_nocache: false + +# Controls whether the customized image (`matrix_bot_maubot_docker_image_customized`) is to be built, even if it already exists. +# Related to: matrix_bot_maubot_docker_image_customized_build_nocache +matrix_bot_maubot_docker_image_customized_force_source: "{{ matrix_bot_maubot_docker_image_customized_build_nocache }}" + +# matrix_bot_maubot_docker_image_final holds the name of the maubot image to run depending on whether or not customizations are enabled. +matrix_bot_maubot_docker_image_final: "{{ matrix_bot_maubot_docker_image_customized if matrix_bot_maubot_container_image_customizations_enabled else matrix_bot_maubot_docker_image }} " + matrix_bot_maubot_base_path: "{{ matrix_base_data_path }}/maubot" matrix_bot_maubot_data_path: "{{ matrix_bot_maubot_base_path }}/data" matrix_bot_maubot_config_path: "{{ matrix_bot_maubot_base_path }}/config" +matrix_bot_maubot_docker_src_files_path: "{{ matrix_bot_maubot_base_path }}/docker-src" +matrix_bot_maubot_customized_docker_src_files_path: "{{ matrix_bot_maubot_base_path }}/customized-docker-src" matrix_bot_maubot_bot_server_public_url: "{{ matrix_bot_maubot_scheme }}://{{ matrix_bot_maubot_hostname }}" matrix_bot_maubot_bot_server_base_path: "{{ matrix_bot_maubot_path_prefix }}/v1" @@ -87,6 +115,32 @@ matrix_bot_maubot_container_additional_networks: "{{ matrix_bot_maubot_container matrix_bot_maubot_container_additional_networks_auto: [] matrix_bot_maubot_container_additional_networks_custom: [] + +# matrix_bot_maubot_container_image_customizations_enabled controls whether a customized maubot image will be built. +# +# We toggle this variable to `true` when certain features which require a custom build are enabled. +# Feel free to toggle this to `true` yourself and specify build steps in `matrix_bot_maubot_container_image_customizations_dockerfile_body_custom`. +# +# See: +# - `roles/custom/matrix-bot-maubot/templates/maubot/customizations/Dockerfile.j2` +# - `matrix_bot_maubot_container_image_customizations_dockerfile_body_custom` +# - `matrix_bot_maubot_docker_image_customized` +# - `matrix_bot_maubot_docker_image_final` +matrix_bot_maubot_container_image_customizations_enabled: false + +# matrix_bot_maubot_container_image_customizations_dockerfile_body contains your custom Dockerfile steps +# for building your customized maubot image based on the original (upstream) image (`matrix_bot_maubot_docker_image`). +# A `FROM …` clause is included automatically so you don't have to. +# +# For this to take effect, you need to enable customizations (`matrix_bot_maubot_container_image_customizations_enabled: true`). +# +# Example: +# matrix_bot_maubot_container_image_customizations_dockerfile_body_custom: | +# RUN echo 'This is a custom step for building the customized container image for maubot.' +# RUN echo 'You can override matrix_bot_maubot_container_image_customizations_dockerfile_body_custom to add your own steps.' +# RUN echo 'You do NOT need to include a FROM clause yourself.' +matrix_bot_maubot_container_image_customizations_dockerfile_body_custom: '' + # matrix_bot_maubot_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. # See `../templates/labels.j2` for details. # diff --git a/roles/custom/matrix-bot-maubot/tasks/main.yml b/roles/custom/matrix-bot-maubot/tasks/main.yml index d954a452a..b17fe4200 100644 --- a/roles/custom/matrix-bot-maubot/tasks/main.yml +++ b/roles/custom/matrix-bot-maubot/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-maubot/tasks/setup_install.yml b/roles/custom/matrix-bot-maubot/tasks/setup_install.yml index 318879f9b..973dff0c6 100644 --- a/roles/custom/matrix-bot-maubot/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-maubot/tasks/setup_install.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Stuart Mumford +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure maubot paths exist @@ -15,11 +24,12 @@ - {path: "{{ matrix_bot_maubot_data_path }}/dbs", when: true} - {path: "{{ matrix_bot_maubot_data_path }}/trash", when: true} - {path: "{{ matrix_bot_maubot_docker_src_files_path }}", when: "{{ matrix_bot_maubot_container_image_self_build }}"} + - {path: "{{ matrix_bot_maubot_customized_docker_src_files_path }}", when: "{{ matrix_bot_maubot_container_image_customizations_enabled }}"} when: "item.when|bool" - name: Ensure maubot configuration file created ansible.builtin.template: - src: "{{ role_path }}/templates/config/config.yaml.j2" + src: "{{ role_path }}/templates/config.yaml.j2" dest: "{{ matrix_bot_maubot_config_path }}/config.yaml" owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" @@ -37,28 +47,49 @@ delay: "{{ devture_playbook_help_container_retries_delay }}" until: result is not failed -- name: Ensure maubot repository is present on self-build - ansible.builtin.git: - repo: "{{ matrix_bot_maubot_docker_repo }}" - version: "{{ matrix_bot_maubot_docker_repo_version }}" - dest: "{{ matrix_bot_maubot_docker_src_files_path }}" - force: "yes" - become: true - become_user: "{{ matrix_user_username }}" - register: matrix_bot_maubot_git_pull_results - when: "matrix_bot_maubot_container_image_self_build|bool" +- when: matrix_bot_maubot_container_image_self_build | bool + block: + - name: Ensure maubot repository is present on self-build + ansible.builtin.git: + repo: "{{ matrix_bot_maubot_docker_repo }}" + version: "{{ matrix_bot_maubot_docker_repo_version }}" + dest: "{{ matrix_bot_maubot_docker_src_files_path }}" + force: "yes" + become: true + become_user: "{{ matrix_user_username }}" + register: matrix_bot_maubot_git_pull_results -- name: Ensure maubot image is built - community.docker.docker_image: - name: "{{ matrix_bot_maubot_docker_image }}" - source: build - force_source: "{{ matrix_bot_maubot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_maubot_git_pull_results.changed }}" - build: - dockerfile: Dockerfile - path: "{{ matrix_bot_maubot_docker_src_files_path }}" - pull: true - when: "matrix_bot_maubot_container_image_self_build|bool" + - name: Ensure maubot image is built + community.docker.docker_image: + name: "{{ matrix_bot_maubot_docker_image }}" + source: build + force_source: "{{ matrix_bot_maubot_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_bot_maubot_git_pull_results.changed }}" + build: + dockerfile: Dockerfile + path: "{{ matrix_bot_maubot_docker_src_files_path }}" + pull: true + +- when: "matrix_bot_maubot_container_image_customizations_enabled | bool" + block: + - name: Ensure customizations Dockerfile is created + ansible.builtin.template: + src: "{{ role_path }}/templates/customizations/Dockerfile.j2" + dest: "{{ matrix_bot_maubot_customized_docker_src_files_path }}/Dockerfile" + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + mode: 0640 + register: matrix_bot_maubot_container_image_customizations_dockerfile_result + + - name: Ensure customized Docker image for maubot is built + community.docker.docker_image: + name: "{{ matrix_bot_maubot_docker_image_customized }}" + source: build + force_source: "{{ matrix_bot_maubot_container_image_customizations_dockerfile_result.changed or matrix_bot_maubot_docker_image_customized_force_source }}" + build: + dockerfile: Dockerfile + path: "{{ matrix_bot_maubot_customized_docker_src_files_path }}" + nocache: "{{ matrix_bot_maubot_docker_image_customized_build_nocache }}" - name: Ensure maubot support files installed ansible.builtin.template: diff --git a/roles/custom/matrix-bot-maubot/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-maubot/tasks/setup_uninstall.yml index 9d7695763..b5d6c15d6 100644 --- a/roles/custom/matrix-bot-maubot/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-maubot/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-maubot service diff --git a/roles/custom/matrix-bot-maubot/tasks/validate_config.yml b/roles/custom/matrix-bot-maubot/tasks/validate_config.yml index 297cec952..11c53f8ca 100644 --- a/roles/custom/matrix-bot-maubot/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-maubot/tasks/validate_config.yml @@ -1,15 +1,23 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed maubot variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_bot_maubot_management_interface_port', 'new': 'matrix_bot_maubot_server_port'} - {'old': 'matrix_bot_maubot_management_interface_http_bind_port', 'new': 'matrix_bot_maubot_container_management_interface_http_bind_port'} - {'old': 'matrix_bot_maubot_registration_shared_secret', 'new': 'matrix_bot_maubot_homeserver_secret'} + - {'old': 'matrix_bot_maubot_container_image_name_prefix', 'new': 'matrix_bot_maubot_container_image_registry_prefix'} - name: Fail if required maubot settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-bot-maubot/templates/config/config.yaml.j2 b/roles/custom/matrix-bot-maubot/templates/config.yaml.j2 similarity index 94% rename from roles/custom/matrix-bot-maubot/templates/config/config.yaml.j2 rename to roles/custom/matrix-bot-maubot/templates/config.yaml.j2 index 8da34c9ed..e5c5be630 100644 --- a/roles/custom/matrix-bot-maubot/templates/config/config.yaml.j2 +++ b/roles/custom/matrix-bot-maubot/templates/config.yaml.j2 @@ -1,3 +1,12 @@ +{# +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Stuart Mumford +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # The full URI to the database. SQLite and Postgres are fully supported. # Other DBMSes supported by SQLAlchemy may or may not work. # Format examples: @@ -28,7 +37,7 @@ plugin_directories: # Configuration for storing plugin databases plugin_databases: # Some plugins still require sqlite, so configure a path here. - # postgres will be used if supported. + # Postgres will be used if supported. sqlite: /data/dbs postgres: default diff --git a/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2 b/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2 new file mode 100644 index 000000000..0f2f4e508 --- /dev/null +++ b/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2 @@ -0,0 +1,4 @@ +#jinja2: lstrip_blocks: "True" +FROM {{ matrix_bot_maubot_docker_image }} + +{{ matrix_bot_maubot_container_image_customizations_dockerfile_body_custom }} diff --git a/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2.license b/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-bot-maubot/templates/customizations/Dockerfile.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-maubot/templates/labels.j2 b/roles/custom/matrix-bot-maubot/templates/labels.j2 index 4c4592e89..e937775d4 100644 --- a/roles/custom/matrix-bot-maubot/templates/labels.j2 +++ b/roles/custom/matrix-bot-maubot/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_bot_maubot_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2 b/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2 index c54dbd084..6c6174677 100644 --- a/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2 +++ b/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-maubot 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-maubot 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-maubot 2>/dev/null || true' {# @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ {% if matrix_bot_maubot_container_management_interface_http_bind_port %} -p {{ matrix_bot_maubot_container_management_interface_http_bind_port }}:{{ matrix_bot_maubot_server_port }} \ {% endif %} - {{ matrix_bot_maubot_docker_image }} \ + {{ matrix_bot_maubot_docker_image_final }} \ python3 -m maubot -c /config/config.yaml --no-update {% for network in matrix_bot_maubot_container_additional_networks %} @@ -47,7 +47,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-maubot -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-maubot 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-maubot 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-maubot 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2.license b/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2.license new file mode 100644 index 000000000..c34c637f0 --- /dev/null +++ b/roles/custom/matrix-bot-maubot/templates/systemd/matrix-bot-maubot.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Stuart Mumford + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bot-mjolnir/defaults/main.yml b/roles/custom/matrix-bot-mjolnir/defaults/main.yml index e1dce2ef1..24f24e573 100644 --- a/roles/custom/matrix-bot-mjolnir/defaults/main.yml +++ b/roles/custom/matrix-bot-mjolnir/defaults/main.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Chirayu Desai +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # A moderation tool for Matrix # Project source code URL: https://github.com/matrix-org/mjolnir @@ -5,13 +17,15 @@ matrix_bot_mjolnir_enabled: true # renovate: datasource=docker depName=matrixdotorg/mjolnir -matrix_bot_mjolnir_version: "v1.8.3" +matrix_bot_mjolnir_version: "v1.9.2" matrix_bot_mjolnir_container_image_self_build: false matrix_bot_mjolnir_container_image_self_build_repo: "https://github.com/matrix-org/mjolnir.git" -matrix_bot_mjolnir_docker_image: "{{ matrix_bot_mjolnir_docker_image_name_prefix }}matrixdotorg/mjolnir:{{ matrix_bot_mjolnir_version }}" -matrix_bot_mjolnir_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_mjolnir_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_bot_mjolnir_docker_image: "{{ matrix_bot_mjolnir_docker_image_registry_prefix }}matrixdotorg/mjolnir:{{ matrix_bot_mjolnir_version }}" +matrix_bot_mjolnir_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_mjolnir_container_image_self_build else matrix_bot_mjolnir_docker_image_registry_prefix_upstream }}" +matrix_bot_mjolnir_docker_image_registry_prefix_upstream: "{{ matrix_bot_mjolnir_docker_image_registry_prefix_upstream_default }}" +matrix_bot_mjolnir_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_bot_mjolnir_docker_image_force_pull: "{{ matrix_bot_mjolnir_docker_image.endswith(':latest') }}" matrix_bot_mjolnir_base_path: "{{ matrix_base_data_path }}/mjolnir" diff --git a/roles/custom/matrix-bot-mjolnir/tasks/main.yml b/roles/custom/matrix-bot-mjolnir/tasks/main.yml index 03f5ba905..433827c1d 100644 --- a/roles/custom/matrix-bot-mjolnir/tasks/main.yml +++ b/roles/custom/matrix-bot-mjolnir/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bot-mjolnir/tasks/setup_install.yml b/roles/custom/matrix-bot-mjolnir/tasks/setup_install.yml index 082948344..c533948f4 100644 --- a/roles/custom/matrix-bot-mjolnir/tasks/setup_install.yml +++ b/roles/custom/matrix-bot-mjolnir/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bot-mjolnir/tasks/setup_uninstall.yml b/roles/custom/matrix-bot-mjolnir/tasks/setup_uninstall.yml index 06be71e15..08ea3b95f 100644 --- a/roles/custom/matrix-bot-mjolnir/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bot-mjolnir/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-bot-mjolnir service diff --git a/roles/custom/matrix-bot-mjolnir/tasks/validate_config.yml b/roles/custom/matrix-bot-mjolnir/tasks/validate_config.yml index 7fd67e589..6b9ae0030 100644 --- a/roles/custom/matrix-bot-mjolnir/tasks/validate_config.yml +++ b/roles/custom/matrix-bot-mjolnir/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-bot-mjolnir variables are undefined @@ -19,3 +26,12 @@ with_items: - {'name': 'matrix_bot_mjolnir_access_token', when: "{{ matrix_bot_mjolnir_pantalaimon_use }}"} when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)" + +- name: (Deprecation) Catch and report renamed Mjolnir settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_bot_mjolnir_container_image_name_prefix', 'new': 'matrix_bot_mjolnir_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bot-mjolnir/templates/production.yaml.j2 b/roles/custom/matrix-bot-mjolnir/templates/production.yaml.j2 index 35aac3af4..00e7ab7e0 100644 --- a/roles/custom/matrix-bot-mjolnir/templates/production.yaml.j2 +++ b/roles/custom/matrix-bot-mjolnir/templates/production.yaml.j2 @@ -1,3 +1,12 @@ +{# +SPDX-FileCopyrightText: 2021 Aaron Raimist +SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # Endpoint URL that Mjolnir uses to interact with the Matrix homeserver (client-server API), # set this to the pantalaimon URL if you're using that. homeserverUrl: {{ matrix_bot_mjolnir_homeserver_url | to_json }} @@ -57,10 +66,9 @@ managementRoom: {{ matrix_bot_mjolnir_management_room | to_json }} # mainly involves "all-OK" messages, and debugging messages for when mjolnir checks bans in a room. verboseLogging: false -# The log level of terminal (or container) output, -# can be one of DEBUG, INFO, WARN and ERROR, in increasing order of importance and severity. +# The log level of terminal (or container) output. # -# This should be at INFO or DEBUG in order to get support for Mjolnir problems. +# Valid values: ERROR, WARN, INFO, DEBUG logLevel: "INFO" # Whether or not Mjolnir should synchronize policy lists immediately after startup. diff --git a/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2 b/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2 index b87601891..9c1f46733 100644 --- a/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2 +++ b/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-mjolnir 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-mjolnir 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-mjolnir 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -30,7 +30,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ {{ arg }} \ {% endfor %} {{ matrix_bot_mjolnir_docker_image }} \ - bot --mjolnir-config /data/config/production.yaml + bot --mjolnir-config /data/config/production.yaml {% for network in matrix_bot_mjolnir_container_additional_networks %} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-bot-mjolnir @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-bot-mjolnir -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-mjolnir 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-bot-mjolnir 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-bot-mjolnir 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2.license b/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2.license new file mode 100644 index 000000000..4ec9445b4 --- /dev/null +++ b/roles/custom/matrix-bot-mjolnir/templates/systemd/matrix-bot-mjolnir.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 Aaron Raimist + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-discord/defaults/main.yml b/roles/custom/matrix-bridge-appservice-discord/defaults/main.yml index 64b2d7db8..6da159f0d 100644 --- a/roles/custom/matrix-bridge-appservice-discord/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-discord/defaults/main.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Daniel Løvbrøtte Olsen +# SPDX-FileCopyrightText: 2020 John Goerzen +# SPDX-FileCopyrightText: 2021 - 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-appservice-discord is a Matrix <-> Discord bridge # Project source code URL: https://github.com/matrix-org/matrix-appservice-discord @@ -7,8 +20,10 @@ matrix_appservice_discord_container_image_self_build: false # renovate: datasource=docker depName=ghcr.io/matrix-org/matrix-appservice-discord matrix_appservice_discord_version: v4.0.0 -matrix_appservice_discord_docker_image: "{{ matrix_appservice_discord_docker_image_name_prefix }}matrix-org/matrix-appservice-discord:{{ matrix_appservice_discord_version }}" -matrix_appservice_discord_docker_image_name_prefix: "{{ 'localhost/' if matrix_appservice_discord_container_image_self_build else 'ghcr.io/' }}" +matrix_appservice_discord_docker_image: "{{ matrix_appservice_discord_docker_image_registry_prefix }}matrix-org/matrix-appservice-discord:{{ matrix_appservice_discord_version }}" +matrix_appservice_discord_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_discord_container_image_self_build else matrix_appservice_discord_docker_image_registry_prefix_upstream }}" +matrix_appservice_discord_docker_image_registry_prefix_upstream: "{{ matrix_appservice_discord_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_discord_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_appservice_discord_docker_image_force_pull: "{{ matrix_appservice_discord_docker_image.endswith(':latest') }}" matrix_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord" diff --git a/roles/custom/matrix-bridge-appservice-discord/tasks/main.yml b/roles/custom/matrix-bridge-appservice-discord/tasks/main.yml index 88a772204..617a70849 100644 --- a/roles/custom/matrix-bridge-appservice-discord/tasks/main.yml +++ b/roles/custom/matrix-bridge-appservice-discord/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-appservice-discord/tasks/setup_install.yml b/roles/custom/matrix-bridge-appservice-discord/tasks/setup_install.yml index f847c743a..0fddef00e 100644 --- a/roles/custom/matrix-bridge-appservice-discord/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-appservice-discord/tasks/setup_install.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2019 - 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-appservice-discord/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-appservice-discord/tasks/setup_uninstall.yml index ca2354c63..fb164945c 100644 --- a/roles/custom/matrix-bridge-appservice-discord/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-appservice-discord/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-discord service diff --git a/roles/custom/matrix-bridge-appservice-discord/tasks/validate_config.yml b/roles/custom/matrix-bridge-appservice-discord/tasks/validate_config.yml index 8b9d1d160..e2be8da0a 100644 --- a/roles/custom/matrix-bridge-appservice-discord/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-appservice-discord/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required appservice-discord settings not defined @@ -18,10 +23,11 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': ''} + - {'old': 'matrix_appservice_discord_container_image_name_prefix', 'new': 'matrix_appservice_discord_docker_image_registry_prefix'} - name: Require a valid database engine ansible.builtin.fail: diff --git a/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2 b/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2 index 64f2923cc..a304a4f24 100644 --- a/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2 @@ -48,7 +48,7 @@ auth: usePrivilegedIntents: {{ matrix_appservice_discord_auth_usePrivilegedIntents|to_json }} logging: # What level should the logger output to the console at. - console: "warn" #silly, verbose, info, http, warn, error, silent + console: "warn" # Valid values: silent, error, warn, http, info, verbose, silly lineDateFormat: "MMM-D HH:mm:ss.SSS" # This is in moment.js format # files: # - file: "debug.log" diff --git a/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2.license new file mode 100644 index 000000000..9747b420b --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2022 Jim Myhrberg +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2 b/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2 index 3a5c9f060..e4a943bc2 100644 --- a/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2 +++ b/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-discord 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-discord 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-discord 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -40,7 +40,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-discord -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-discord 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-discord 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-discord 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2.license b/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2.license new file mode 100644 index 000000000..894501b8a --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-discord/templates/systemd/matrix-appservice-discord.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 MDAD project contributors +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml b/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml index 3b220d829..3ce0a176d 100644 --- a/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml @@ -1,3 +1,24 @@ +# SPDX-FileCopyrightText: 2019 - 2020 Lee Verberne +# SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Aaron Raimist +# SPDX-FileCopyrightText: 2019 Alexander Acevedo +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Hugues Morisset +# SPDX-FileCopyrightText: 2019 Lyubomir Popov +# SPDX-FileCopyrightText: 2019 Sylvia van Os +# SPDX-FileCopyrightText: 2020 John Goerzen +# SPDX-FileCopyrightText: 2021 - 2023 Thom Wiggers +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Joseph Walton-Rivers +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2021 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Matrix Appservice IRC is a Matrix <-> IRC bridge # Project source code URL: https://github.com/matrix-org/matrix-appservice-irc @@ -13,10 +34,12 @@ matrix_appservice_irc_docker_src_files_path: "{{ matrix_base_data_path }}/appser # It's a bare version number now. We try to somewhat retain compatibility below. # renovate: datasource=docker depName=docker.io/matrixdotorg/matrix-appservice-irc matrix_appservice_irc_version: 1.0.1 -matrix_appservice_irc_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_docker_image_tag }}" +matrix_appservice_irc_docker_image: "{{ matrix_appservice_irc_docker_image_registry_prefix }}matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_docker_image_tag }}" +matrix_appservice_irc_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_irc_container_image_self_build else matrix_appservice_irc_docker_image_registry_prefix_upstream }}" +matrix_appservice_irc_docker_image_registry_prefix_upstream: "{{ matrix_appservice_irc_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_irc_docker_image_registry_prefix_upstream_default: docker.io/ matrix_appservice_irc_docker_image_tag: "{{ 'latest' if matrix_appservice_irc_version == 'latest' else ('release-' + matrix_appservice_irc_version) }}" matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}" -matrix_appservice_irc_docker_image_name_prefix: "{{ 'localhost/' if matrix_appservice_irc_container_image_self_build else matrix_container_global_registry_prefix }}" matrix_appservice_irc_base_path: "{{ matrix_base_data_path }}/appservice-irc" matrix_appservice_irc_config_path: "{{ matrix_appservice_irc_base_path }}/config" @@ -95,7 +118,7 @@ matrix_appservice_irc_ircService_servers: [] # noqa var-naming # # A specific CA to trust instead of the default CAs. Optional. # #ca: | # # -----BEGIN CERTIFICATE----- -# # ... +# # … # # -----END CERTIFICATE----- # # diff --git a/roles/custom/matrix-bridge-appservice-irc/tasks/main.yml b/roles/custom/matrix-bridge-appservice-irc/tasks/main.yml index d46698480..ba6332519 100644 --- a/roles/custom/matrix-bridge-appservice-irc/tasks/main.yml +++ b/roles/custom/matrix-bridge-appservice-irc/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-appservice-irc/tasks/migrate_nedb_to_postgres.yml b/roles/custom/matrix-bridge-appservice-irc/tasks/migrate_nedb_to_postgres.yml index 47d796886..866d0cba3 100644 --- a/roles/custom/matrix-bridge-appservice-irc/tasks/migrate_nedb_to_postgres.yml +++ b/roles/custom/matrix-bridge-appservice-irc/tasks/migrate_nedb_to_postgres.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Jez Cope +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if Postgres not enabled diff --git a/roles/custom/matrix-bridge-appservice-irc/tasks/setup_install.yml b/roles/custom/matrix-bridge-appservice-irc/tasks/setup_install.yml index 4e91e073f..b4cb63c86 100644 --- a/roles/custom/matrix-bridge-appservice-irc/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-appservice-irc/tasks/setup_install.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.include_role: diff --git a/roles/custom/matrix-bridge-appservice-irc/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-appservice-irc/tasks/setup_uninstall.yml index f16d3763f..371c42503 100644 --- a/roles/custom/matrix-bridge-appservice-irc/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-appservice-irc/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-irc service diff --git a/roles/custom/matrix-bridge-appservice-irc/tasks/validate_config.yml b/roles/custom/matrix-bridge-appservice-irc/tasks/validate_config.yml index 5d76def1b..fb7d77281 100644 --- a/roles/custom/matrix-bridge-appservice-irc/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-appservice-irc/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required appservice-irc settings not defined @@ -32,8 +38,9 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_appservice_irc_container_expose_client_server_api_port', 'new': ''} - {'old': 'matrix_appservice_irc_container_self_build', 'new': 'matrix_appservice_irc_container_image_self_build'} + - {'old': 'matrix_appservice_irc_docker_image_name_prefix', 'new': 'matrix_appservice_irc_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2 b/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2 index 0f9d491d6..8b7aca5b8 100644 --- a/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2 @@ -74,12 +74,12 @@ ircService: # Configuration for logging. Optional. Default: console debug level logging # only. logging: - # Level to log on console/logfile. One of error|warn|info|debug + # Level to log on console/logfile. + # Valid values: error, warn, info, debug level: "debug" # The file location to log to. This is relative to the project directory. #logfile: "debug.log" - # The file location to log errors to. This is relative to the project - # directory. + # The file location to log errors to. This is relative to the project directory. #errfile: "errors.log" # Whether to log to the console or not. toConsole: true diff --git a/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2.license new file mode 100644 index 000000000..919fa142d --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2 b/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2 index c13acfe09..0b50d10e2 100644 --- a/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2 +++ b/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-irc 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-irc 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-irc 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-irc -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-irc 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-irc 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-irc 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2.license b/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2.license new file mode 100644 index 000000000..cadd27bdd --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-irc/templates/systemd/matrix-appservice-irc.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 MDAD project contributors +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml b/roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml index 09d6daa2b..aed2476e5 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-appservice-kakaotalk is a Matrix <-> Kakaotalk bridge # Project source code URL: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/ @@ -29,13 +35,17 @@ matrix_appservice_kakaotalk_container_image_self_build_repo: "https://src.miscwo matrix_appservice_kakaotalk_container_image_self_build_repo_version: "{{ 'master' if matrix_appservice_kakaotalk_version == 'latest' else matrix_appservice_kakaotalk_version }}" matrix_appservice_kakaotalk_node_version: "{{ matrix_appservice_kakaotalk_version }}" -matrix_appservice_kakaotalk_node_docker_image: "{{ matrix_appservice_kakaotalk_node_docker_image_prefix }}fair/matrix-appservice-kakaotalk-node:{{ matrix_appservice_kakaotalk_node_version }}" -matrix_appservice_kakaotalk_node_docker_image_prefix: "localhost/" +matrix_appservice_kakaotalk_node_docker_image: "{{ matrix_appservice_kakaotalk_node_docker_image_registry_prefix }}fair/matrix-appservice-kakaotalk-node:{{ matrix_appservice_kakaotalk_node_version }}" +matrix_appservice_kakaotalk_node_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_kakaotalk_container_image_self_build else matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream }}" +matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream: "{{ matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream_default: "" matrix_appservice_kakaotalk_node_docker_image_force_pull: "{{ matrix_appservice_kakaotalk_node_docker_image.endswith(':latest') }}" matrix_appservice_kakaotalk_version: 86c038fd2ffee5e0aebf65136f085cce7e38b54e -matrix_appservice_kakaotalk_docker_image: "{{ matrix_appservice_kakaotalk_docker_image_name_prefix }}fair/matrix-appservice-kakaotalk:{{ matrix_appservice_kakaotalk_version }}" -matrix_appservice_kakaotalk_docker_image_name_prefix: "localhost/" +matrix_appservice_kakaotalk_docker_image: "{{ matrix_appservice_kakaotalk_docker_image_registry_prefix }}fair/matrix-appservice-kakaotalk:{{ matrix_appservice_kakaotalk_version }}" +matrix_appservice_kakaotalk_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_kakaotalk_container_image_self_build else matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream }}" +matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream: "{{ matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream_default: "" matrix_appservice_kakaotalk_docker_image_force_pull: "{{ matrix_appservice_kakaotalk_docker_image.endswith(':latest') }}" matrix_appservice_kakaotalk_base_path: "{{ matrix_base_data_path }}/appservice-kakaotalk" diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/main.yml b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/main.yml index 7a360024e..c99b77fbe 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/main.yml +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_install.yml b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_install.yml index 1cb1e6026..3c3da6765 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-appservice-kakaotalk image is pulled diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_uninstall.yml index e258b9ab2..f92960991 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-kakaotalk service diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/validate_config.yml b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/validate_config.yml index bcb670146..ebabe36aa 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required appservice-kakaotalk settings not defined @@ -11,3 +16,13 @@ - {'name': 'matrix_appservice_kakaotalk_homeserver_token', when: true} - {'name': 'matrix_appservice_kakaotalk_database_hostname', when: "{{ matrix_appservice_kakaotalk_database_engine == 'postgres' }}"} - {'name': 'matrix_appservice_kakaotalk_container_network', when: true} + +- name: (Deprecation) Catch and report renamed appservice-kakaotalk variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_appservice_kakaotalk_node_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_node_docker_image_registry_prefix'} + - {'old': 'matrix_appservice_kakaotalk_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2 b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2 index cf3644a9b..709a59934 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2 @@ -225,8 +225,8 @@ bridge: # # Available variables: # $sender_displayname - The display name of the sender (e.g. Example User) - # $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser) - # $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com) + # $sender_username - The username (Matrix ID localpart) of the sender (e.g. alice) + # $sender_mxid - The Matrix ID of the sender (e.g. @alice:example.com) # $message - The message content message_formats: m.text: '$sender_displayname: $message' diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2.license new file mode 100644 index 000000000..8b6d0c244 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/node-config.json.j2.license b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/node-config.json.j2.license new file mode 100644 index 000000000..7b1e56adc --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/node-config.json.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2 b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2 index bb971f77a..12f688112 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2 +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk-node 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk-node 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk-node 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -36,7 +36,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-kakaotalk-node -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk-node 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk-node 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk-node 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2.license b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2.license new file mode 100644 index 000000000..b2bdc9cb4 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk-node.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2 b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2 index fae5f25a1..0f5e2fe2d 100644 --- a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2 +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -37,7 +37,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-kakaotalk -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-kakaotalk 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2.license b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2.license new file mode 100644 index 000000000..7b1e56adc --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-kakaotalk/templates/systemd/matrix-appservice-kakaotalk.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-slack/defaults/main.yml b/roles/custom/matrix-bridge-appservice-slack/defaults/main.yml index 5b8594e51..4a8eb2dc7 100644 --- a/roles/custom/matrix-bridge-appservice-slack/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-slack/defaults/main.yml @@ -1,3 +1,19 @@ +# SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Daniel Wiegreffe +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Béla Becker +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 Didier 'OdyX' Raboud +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Fabio Bonelli +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-appservice-slack is a Matrix <-> Slack bridge # Project source code URL: https://github.com/matrix-org/matrix-appservice-slack @@ -17,7 +33,10 @@ matrix_appservice_slack_docker_src_files_path: "{{ matrix_base_data_path }}/apps # It's a bare version number now. We try to somewhat retain compatibility below. # renovate: datasource=docker depName=docker.io/matrixdotorg/matrix-appservice-slack matrix_appservice_slack_version: 2.1.2 -matrix_appservice_slack_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-slack:{{ matrix_appservice_slack_docker_image_tag }}" +matrix_appservice_slack_docker_image: "{{ matrix_appservice_slack_docker_image_registry_prefix }}matrixdotorg/matrix-appservice-slack:{{ matrix_appservice_slack_docker_image_tag }}" +matrix_appservice_slack_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_slack_container_image_self_build else matrix_appservice_slack_docker_image_registry_prefix_upstream }}" +matrix_appservice_slack_docker_image_registry_prefix_upstream: "{{ matrix_appservice_slack_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_slack_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_appservice_slack_docker_image_tag: "{{ 'latest' if matrix_appservice_slack_version == 'latest' else ('release-' + matrix_appservice_slack_version) }}" matrix_appservice_slack_docker_image_force_pull: "{{ matrix_appservice_slack_docker_image.endswith(':latest') }}" @@ -153,7 +172,7 @@ matrix_appservice_slack_configuration_extension_yaml: | # console: "info" # files: # - "./debug.log": "info" - #- "./error.log": "error" + # - "./error.log": "error" matrix_appservice_slack_configuration_extension: "{{ matrix_appservice_slack_configuration_extension_yaml | from_yaml if matrix_appservice_slack_configuration_extension_yaml | from_yaml else {} }}" diff --git a/roles/custom/matrix-bridge-appservice-slack/tasks/main.yml b/roles/custom/matrix-bridge-appservice-slack/tasks/main.yml index c98dc5198..c9251c190 100644 --- a/roles/custom/matrix-bridge-appservice-slack/tasks/main.yml +++ b/roles/custom/matrix-bridge-appservice-slack/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-appservice-slack/tasks/migrate_nedb_to_postgres.yml b/roles/custom/matrix-bridge-appservice-slack/tasks/migrate_nedb_to_postgres.yml index b3a6ee937..e4b2f372f 100644 --- a/roles/custom/matrix-bridge-appservice-slack/tasks/migrate_nedb_to_postgres.yml +++ b/roles/custom/matrix-bridge-appservice-slack/tasks/migrate_nedb_to_postgres.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if Postgres not enabled diff --git a/roles/custom/matrix-bridge-appservice-slack/tasks/setup_install.yml b/roles/custom/matrix-bridge-appservice-slack/tasks/setup_install.yml index 619276bdb..b556910f8 100644 --- a/roles/custom/matrix-bridge-appservice-slack/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-appservice-slack/tasks/setup_install.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure AppService Slack paths exist diff --git a/roles/custom/matrix-bridge-appservice-slack/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-appservice-slack/tasks/setup_uninstall.yml index 51c77fef0..e37cfb046 100644 --- a/roles/custom/matrix-bridge-appservice-slack/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-appservice-slack/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-slack service diff --git a/roles/custom/matrix-bridge-appservice-slack/tasks/validate_config.yml b/roles/custom/matrix-bridge-appservice-slack/tasks/validate_config.yml index d6d802dd3..b35e2cdb6 100644 --- a/roles/custom/matrix-bridge-appservice-slack/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-appservice-slack/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required appservice-slack settings not defined @@ -20,7 +27,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_appservice_slack_container_self_build', 'new': 'matrix_appservice_slack_container_image_self_build'} diff --git a/roles/custom/matrix-bridge-appservice-slack/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-appservice-slack/templates/config.yaml.j2.license new file mode 100644 index 000000000..52f246738 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-slack/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Didier 'OdyX' Raboud +SPDX-FileCopyrightText: 2024 Fabio Bonelli + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-slack/templates/labels.j2 b/roles/custom/matrix-bridge-appservice-slack/templates/labels.j2 index 5e025ae12..212902fde 100644 --- a/roles/custom/matrix-bridge-appservice-slack/templates/labels.j2 +++ b/roles/custom/matrix-bridge-appservice-slack/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_appservice_slack_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2 b/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2 index 6445f06af..36d9377ea 100644 --- a/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2 +++ b/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-slack 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-slack 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-slack 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-slack -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-slack 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-slack 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-slack 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2.license b/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2.license new file mode 100644 index 000000000..c395d00d7 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-slack/templates/systemd/matrix-appservice-slack.service.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2019 MDAD project contributors +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-webhooks/defaults/main.yml b/roles/custom/matrix-bridge-appservice-webhooks/defaults/main.yml index 840c0b214..b90735561 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-webhooks/defaults/main.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Björn Marten +# SPDX-FileCopyrightText: 2020 David Gnedt +# SPDX-FileCopyrightText: 2021 - 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Béla Becker +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-appservice-webhooks is a Matrix <-> webhook bridge # Project source code URL: https://github.com/redoonetworks/matrix-appservice-webhooks @@ -14,8 +27,10 @@ matrix_appservice_webhooks_container_image_self_build_repo_version: "{{ 'master' matrix_appservice_webhooks_container_image_self_build_repo_dockerfile_path: "Dockerfile" matrix_appservice_webhooks_version: v1.0.3-01 -matrix_appservice_webhooks_docker_image: "{{ matrix_appservice_webhooks_docker_image_name_prefix }}redoonetworks/matrix-appservice-webhooks:{{ matrix_appservice_webhooks_version }}" -matrix_appservice_webhooks_docker_image_name_prefix: "{{ 'localhost/' if matrix_appservice_webhooks_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_appservice_webhooks_docker_image: "{{ matrix_appservice_webhooks_docker_image_registry_prefix }}redoonetworks/matrix-appservice-webhooks:{{ matrix_appservice_webhooks_version }}" +matrix_appservice_webhooks_docker_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_webhooks_container_image_self_build else matrix_appservice_webhooks_docker_image_registry_prefix_upstream }}" +matrix_appservice_webhooks_docker_image_registry_prefix_upstream: "{{ matrix_appservice_webhooks_docker_image_registry_prefix_upstream_default }}" +matrix_appservice_webhooks_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_appservice_webhooks_docker_image_force_pull: "{{ matrix_appservice_webhooks_docker_image.endswith(':latest') }}" matrix_appservice_webhooks_base_path: "{{ matrix_base_data_path }}/appservice-webhooks" @@ -94,7 +109,7 @@ matrix_appservice_webhooks_homeserver_token: '' matrix_appservice_webhooks_id_token: '' matrix_appservice_webhooks_api_secret: '' -# Logging information (info and verbose is available) default is: info +# Valid values: info, verbose matrix_appservice_webhooks_log_level: 'info' matrix_appservice_webhooks_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" diff --git a/roles/custom/matrix-bridge-appservice-webhooks/tasks/main.yml b/roles/custom/matrix-bridge-appservice-webhooks/tasks/main.yml index b8d8c8cd4..bc6a17105 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/tasks/main.yml +++ b/roles/custom/matrix-bridge-appservice-webhooks/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Björn Marten +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_install.yml b/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_install.yml index 2896c7580..208399355 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_install.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2020 Björn Marten +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-appservice-webhooks paths exist diff --git a/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_uninstall.yml index c47b724cf..55b7d7521 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-appservice-webhooks/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 Björn Marten +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-appservice-webhooks service diff --git a/roles/custom/matrix-bridge-appservice-webhooks/tasks/validate_config.yml b/roles/custom/matrix-bridge-appservice-webhooks/tasks/validate_config.yml index fa8a75fc2..7f0d8bfec 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-appservice-webhooks/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 Björn Marten +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-appservice-webhooks settings not defined @@ -14,3 +21,12 @@ - matrix_appservice_webhooks_container_network - matrix_appservice_webhooks_hostname - matrix_appservice_webhooks_path_prefix + +- name: (Deprecation) Catch and report renamed appservice-webhooks variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_appservice_webhooks_docker_image_name_prefix', 'new': 'matrix_appservice_webhooks_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-appservice-webhooks/templates/config.yaml.j2.license new file mode 100644 index 000000000..b0cab88b0 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/config.yaml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/database.json.j2.license b/roles/custom/matrix-bridge-appservice-webhooks/templates/database.json.j2.license new file mode 100644 index 000000000..57a3f5b69 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/database.json.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/labels.j2 b/roles/custom/matrix-bridge-appservice-webhooks/templates/labels.j2 index 2749af957..8e3db68be 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/templates/labels.j2 +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_appservice_webhooks_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/schema.yml.j2.license b/roles/custom/matrix-bridge-appservice-webhooks/templates/schema.yml.j2.license new file mode 100644 index 000000000..57a3f5b69 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/schema.yml.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2 b/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2 index b1168cb7f..e761442cc 100644 --- a/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2 +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-webhooks 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-webhooks 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-webhooks 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-webhooks -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-webhooks 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-appservice-webhooks 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-webhooks 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2.license b/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2.license new file mode 100644 index 000000000..fe9fa1747 --- /dev/null +++ b/roles/custom/matrix-bridge-appservice-webhooks/templates/systemd/matrix-appservice-webhooks.service.j2.license @@ -0,0 +1,8 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2020 Stefan Warnat + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-beeper-linkedin/defaults/main.yml b/roles/custom/matrix-bridge-beeper-linkedin/defaults/main.yml index 936b2844a..e06c37c37 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/defaults/main.yml +++ b/roles/custom/matrix-bridge-beeper-linkedin/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Alexandar Mechev +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Paul ALNET +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # beeper-linkedin is a Matrix <-> LinkedIn bridge # Project source code URL: https://github.com/beeper/linkedin @@ -8,9 +19,11 @@ matrix_beeper_linkedin_enabled: true matrix_beeper_linkedin_version: latest # See: https://github.com/beeper/linkedin/pkgs/container/linkedin -matrix_beeper_linkedin_docker_image: "{{ matrix_beeper_linkedin_docker_image_name_prefix }}beeper/linkedin:{{ matrix_beeper_linkedin_docker_image_tag }}" +matrix_beeper_linkedin_docker_image: "{{ matrix_beeper_linkedin_docker_image_registry_prefix }}beeper/linkedin:{{ matrix_beeper_linkedin_docker_image_tag }}" matrix_beeper_linkedin_docker_image_force_pull: "{{ matrix_beeper_linkedin_docker_image_tag.startswith('latest') }}" -matrix_beeper_linkedin_docker_image_name_prefix: "{{ 'localhost/' if matrix_beeper_linkedin_container_image_self_build else 'ghcr.io/' }}" +matrix_beeper_linkedin_docker_image_registry_prefix: "{{ 'localhost/' if matrix_beeper_linkedin_container_image_self_build else matrix_beeper_linkedin_docker_image_registry_prefix_upstream }}" +matrix_beeper_linkedin_docker_image_registry_prefix_upstream: "{{ matrix_beeper_linkedin_docker_image_registry_prefix_upstream_default }}" +matrix_beeper_linkedin_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_beeper_linkedin_docker_image_tag: "{{ 'latest' if matrix_beeper_linkedin_version == 'master' else matrix_beeper_linkedin_version }}" matrix_beeper_linkedin_container_image_self_build: false @@ -60,7 +73,8 @@ matrix_beeper_linkedin_appservice_token: "" matrix_beeper_linkedin_homeserver_token: "" matrix_beeper_linkedin_appservice_bot_username: linkedinbot - +matrix_beeper_linkedin_appservice_bot_displayname: LinkedIn bridge bot +matrix_beeper_linkedin_appservice_bot_avatar: mxc://nevarro.space/cwsWnmeMpWSMZLUNblJHaIvP # Database-related configuration fields. # Only Postgres is supported. @@ -87,9 +101,24 @@ matrix_beeper_linkedin_appservice_database_uri: "{{ }[matrix_beeper_linkedin_database_engine] }}" +matrix_beeper_linkedin_bridge_login_shared_secret_map: "{{ matrix_beeper_linkedin_bridge_login_shared_secret_map_auto | combine(matrix_beeper_linkedin_bridge_login_shared_secret_map_custom) }}" +matrix_beeper_linkedin_bridge_login_shared_secret_map_auto: {} +matrix_beeper_linkedin_bridge_login_shared_secret_map_custom: {} -# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth) or Appservice Double Puppet. -matrix_beeper_linkedin_login_shared_secret: '' +# Servers to always allow double puppeting from +matrix_beeper_linkedin_bridge_double_puppet_server_map: "{{ matrix_beeper_linkedin_bridge_double_puppet_server_map_default | combine(matrix_beeper_linkedin_bridge_double_puppet_server_map_auto) | combine(matrix_beeper_linkedin_bridge_double_puppet_server_map_custom) }}" +matrix_beeper_linkedin_bridge_double_puppet_server_map_default: |- + {{ + {} + | combine({ + matrix_beeper_linkedin_homeserver_domain: matrix_beeper_linkedin_homeserver_address + }) + }} +matrix_beeper_linkedin_bridge_double_puppet_server_map_auto: {} +matrix_beeper_linkedin_bridge_double_puppet_server_map_custom: {} + +matrix_beeper_linkedin_provisioning_enabled: false +matrix_beeper_linkedin_provisioning_shared_secret: '' # Specifies the default log level for all bridge loggers. matrix_beeper_linkedin_logging_level: WARNING @@ -97,6 +126,8 @@ matrix_beeper_linkedin_logging_level: WARNING # Enable End-to-bridge encryption matrix_beeper_linkedin_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" matrix_beeper_linkedin_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" +matrix_beeper_linkedin_bridge_encryption_appservice: "{{ matrix_beeper_linkedin_bridge_encryption_default }}" +matrix_beeper_linkedin_bridge_encryption_require: false matrix_beeper_linkedin_bridge_encryption_key_sharing_allow: "{{ matrix_beeper_linkedin_bridge_encryption_allow }}" # Default beeper-linkedin configuration template which covers the generic use case. diff --git a/roles/custom/matrix-bridge-beeper-linkedin/tasks/main.yml b/roles/custom/matrix-bridge-beeper-linkedin/tasks/main.yml index 56eb91e52..34a4ea3dd 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/tasks/main.yml +++ b/roles/custom/matrix-bridge-beeper-linkedin/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Alexandar Mechev +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_install.yml b/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_install.yml index 1c8bfe965..e61dc18fb 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Alexandar Mechev +# SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Beeper LinkedIn paths exists @@ -14,8 +25,23 @@ - {path: "{{ matrix_beeper_linkedin_docker_src_files_path }}", when: "{{ matrix_beeper_linkedin_container_image_self_build }}"} when: "item.when | bool" +- name: Ensure beeper-linkedin config.yaml installed + ansible.builtin.copy: + content: "{{ matrix_beeper_linkedin_configuration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_beeper_linkedin_config_path }}/config.yaml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" -- name: Ensure Beeper LinkedIn image is pulled +- name: Ensure beeper-linkedin registration.yaml installed + ansible.builtin.copy: + content: "{{ matrix_beeper_linkedin_registration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_beeper_linkedin_config_path }}/registration.yaml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure Beeper LinkedIn container image is pulled community.docker.docker_image: name: "{{ matrix_beeper_linkedin_docker_image }}" source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" @@ -41,7 +67,7 @@ # Building the container image (using the default Dockerfile) requires that a docker-requirements.txt file be generated. # See: https://github.com/beeper/linkedin/blob/94442db17ccb9769b377cdb8e4bf1cb3955781d7/.gitlab-ci.yml#L30-40 - - name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn Docker Image + - name: Ensure docker-requirements.txt is generated before building Beeper LinkedIn container image ansible.builtin.command: cmd: | {{ devture_systemd_docker_base_host_command_docker }} run @@ -54,7 +80,7 @@ register: matrix_beeper_linkedin_generate_docker_requirements_result changed_when: matrix_beeper_linkedin_generate_docker_requirements_result.rc == 0 - - name: Ensure Beeper LinkedIn Docker image is built + - name: Ensure Beeper LinkedIn container image is built community.docker.docker_image: name: "{{ matrix_beeper_linkedin_docker_image }}" source: build @@ -67,22 +93,6 @@ args: TARGETARCH: "{{ matrix_architecture }}" -- name: Ensure beeper-linkedin config.yaml installed - ansible.builtin.copy: - content: "{{ matrix_beeper_linkedin_configuration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_beeper_linkedin_config_path }}/config.yaml" - mode: 0644 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - -- name: Ensure beeper-linkedin registration.yaml installed - ansible.builtin.copy: - content: "{{ matrix_beeper_linkedin_registration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_beeper_linkedin_config_path }}/registration.yaml" - mode: 0644 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - - name: Ensure beeper-linkedin container network is created community.general.docker_network: enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" diff --git a/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_uninstall.yml index 4d3334692..aea2f34cf 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-beeper-linkedin/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Alexandar Mechev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-beeper-linkedin service diff --git a/roles/custom/matrix-bridge-beeper-linkedin/tasks/validate_config.yml b/roles/custom/matrix-bridge-beeper-linkedin/tasks/validate_config.yml index afbf5c619..1bc9de53a 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-beeper-linkedin/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 Alexandar Mechev +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required beeper-linkedin settings not defined @@ -11,3 +18,13 @@ - {'name': 'matrix_beeper_linkedin_homeserver_token', when: true} - {'name': 'matrix_beeper_linkedin_database_hostname', when: "{{ matrix_beeper_linkedin_database_engine == 'postgres' }}"} - {'name': 'matrix_beeper_linkedin_container_network', when: true} + +- name: (Deprecation) Catch and report renamed beeper-linkedin settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_beeper_linkedin_login_shared_secret', 'new': ''} + - {'old': 'matrix_beeper_linkedin_docker_image_name_prefix', 'new': 'matrix_beeper_linkedin_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2 b/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2 index 531adfd98..d73988cdf 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2 @@ -1,62 +1,74 @@ #jinja2: lstrip_blocks: "True" -# Homeserver details. +# Homeserver details homeserver: # The address that this appservice can use to connect to the homeserver. - address: {{ matrix_beeper_linkedin_homeserver_address }} + address: {{ matrix_beeper_linkedin_homeserver_address | to_json }} # The domain of the homeserver (for MXIDs, etc). - domain: {{ matrix_beeper_linkedin_homeserver_domain }} + domain: {{ matrix_beeper_linkedin_homeserver_domain | to_json }} # Whether or not to verify the SSL certificate of the homeserver. # Only applies if address starts with https:// verify_ssl: true - # Whether or not the homeserver supports asmux-specific endpoints, - # such as /_matrix/client/unstable/net.maunium.asmux/dms for atomically - # updating m.direct. - asmux: false + # What software is the homeserver running? + # Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here. + software: standard # Number of retries for all HTTP requests if the homeserver isn't reachable. http_retry_count: 4 + # The URL to push real-time bridge status to. + # If set, the bridge will make POST requests to this URL whenever a user's Signal connection state changes. + # The bridge will use the appservice as_token to authorize requests. + status_endpoint: null + # Endpoint for reporting per-message status. + message_send_checkpoint_endpoint: null + # Whether asynchronous uploads via MSC2246 should be enabled for media. + # Requires a media repo that supports MSC2246. + async_media: false - +# Application service host/registration related details +# Changing these values requires regeneration of the registration. appservice: # The address that the homeserver can use to connect to this appservice. - address: {{ matrix_beeper_linkedin_appservice_address }} + address: {{ matrix_beeper_linkedin_appservice_address | to_json }} # The hostname and port where this appservice should listen. hostname: 0.0.0.0 port: 29319 - # The maximum body size of appservice API requests (from the homeserver) in mebibytes # Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s max_body_size: 1 - # The full URI to the database. Only Postgres is currently supported. - database: {{ matrix_beeper_linkedin_appservice_database_uri|to_json }} - # Additional arguments for asyncpg.create_pool() + # The full URI to the database. SQLite and Postgres are supported. + # Format examples: + # SQLite: sqlite:filename.db + # Postgres: postgres://username:password@hostname/dbname + database: {{ matrix_beeper_linkedin_appservice_database_uri | to_json }} + # Additional arguments for asyncpg.create_pool() or sqlite3.connect() # https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.pool.create_pool + # https://docs.python.org/3/library/sqlite3.html#sqlite3.connect + # For sqlite, min_size is used as the connection thread pool size and max_size is ignored. + # Additionally, SQLite supports init_commands as an array of SQL queries to run on connect (e.g. to set PRAGMAs). database_opts: - min_size: 5 + min_size: 1 max_size: 10 # Provisioning API part of the web server for automated portal creation and fetching information. # Used by things like mautrix-manager (https://github.com/tulir/mautrix-manager). provisioning: # Whether or not the provisioning API should be enabled. - enabled: true + enabled: {{ matrix_beeper_linkedin_provisioning_enabled | to_json }} # The prefix to use in the provisioning API endpoints. prefix: /_matrix/provision/v1 # The shared secret to authorize users of the API. # Set to "generate" to generate and save a new token. - shared_secret: generate + shared_secret: {{ matrix_beeper_linkedin_provisioning_shared_secret | to_json }} # The unique ID of this appservice. id: beeper_linkedin - # Appservice bot details. - bot: - # Username of the appservice bot. - username: {{ matrix_beeper_linkedin_appservice_bot_username|to_json }} - # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty - # to leave display name/avatar as-is. - displayname: LinkedIn bridge bot - avatar: mxc://sumnerevans.com/XMtwdeUBnxYvWNFFrfeTSHqB + # Username of the appservice bot. + bot_username: {{ matrix_beeper_linkedin_appservice_bot_username | to_json }} + # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty + # to leave display name/avatar as-is. + bot_displayname: {{ matrix_beeper_linkedin_appservice_bot_displayname | to_json }} + bot_avatar: {{ matrix_beeper_linkedin_appservice_bot_avatar | to_json }} # Whether or not to receive ephemeral events via appservice transactions. # Requires MSC2409 support (i.e. Synapse 1.22+). @@ -64,9 +76,17 @@ appservice: ephemeral_events: false # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. - as_token: "{{ matrix_beeper_linkedin_appservice_token }}" - hs_token: "{{ matrix_beeper_linkedin_homeserver_token }}" + as_token: {{ matrix_beeper_linkedin_appservice_token | to_json }} + hs_token: {{ matrix_beeper_linkedin_homeserver_token | to_json }} +# Segment-compatible analytics endpoint for tracking some events, like provisioning API login and encryption errors. +analytics: + # Hostname of the tracking server. The path is hardcoded to /v1/track + host: api.segment.io + # API key to send with tracking requests. Tracking is disabled if this is null. + token: null + # Optional user ID for tracking events. If null, defaults to using Matrix user ID. + user_id: null # Prometheus telemetry config. Requires prometheus-client to be installed. metrics: @@ -84,30 +104,41 @@ manhole: whitelist: - 0 - # Bridge config bridge: # Localpart template of MXIDs for LinkedIn users. - # {userid} is replaced with the user ID of the LinkedIn user + # {userid} is replaced with the user ID of the LinkedIn user. username_template: "linkedin_{userid}" # Settings for creating a space for every user. space_support: # Whether or not to enable creating a space per user and inviting the # user (as well as all of the puppets) to that space. - enable: {{ matrix_beeper_linkedin_bridge_space_support_enable|to_json }} + enable: {{ matrix_beeper_linkedin_bridge_space_support_enable | to_json }} # The name of the space name: "LinkedIn" - # Displayname template for LinkedIn users. # {displayname} is replaced with the display name of the LinkedIn user # as defined below in displayname_preference. # Keys available for displayname_preference are also available here. displayname_template: "{displayname} (LinkedIn)" + # Available keys: + # "name" (full name) + # "first_name" + # "last_name" + displayname_preference: + - name + - first_name + + # Whether or not to set the topic on DMs to the user's occupation and a + # link to their profile. + set_topic_on_dms: true + + # The prefix for commands. Only required in non-management rooms. + command_prefix: {{ matrix_beeper_linkedin_command_prefix | to_json }} # Number of chats to sync (and create portals for) on startup/login. # Set 0 to disable automatic syncing. - initial_chat_sync: 10 - + initial_chat_sync: 20 # Whether or not the LinkedIn users of logged in Matrix users should be # invited to private chats when the user sends a message from another client. invite_own_puppet_to_pm: false @@ -119,65 +150,112 @@ bridge: # and is therefore prone to race conditions. sync_direct_chat_list: false # Servers to always allow double puppeting from - double_puppet_server_map: {} - # example.com: https://example.com + double_puppet_server_map: {{ matrix_beeper_linkedin_bridge_double_puppet_server_map | to_json }} # Allow using double puppeting from any server with a valid client .well-known file. - - # Maximum number of seconds since last message in chat to skip - # syncing the chat in any case. This setting will take priority - # over both recovery_chat_sync_limit and initial_chat_sync_count. - # Default is 3 days = 259200 seconds - sync_max_chat_age: 259200 - - # Whether or not to sync with custom puppets to receive EDUs that - # are not normally sent to appservices. - sync_with_custom_puppets: true - # Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth + double_puppet_allow_discovery: false + # Shared secrets for https://github.com/devture/matrix-synapse-shared-secret-auth # # If set, custom puppets will be enabled automatically for local users # instead of users having to find an access token and run `login-matrix` # manually. - login_shared_secret: {{ matrix_beeper_linkedin_login_shared_secret|to_json }} - - # Allow using double puppeting from any server with a valid client .well-known file. - double_puppet_allow_discovery: false - + # If using this for other servers than the bridge's server, + # you must also set the URL in the double_puppet_server_map. + login_shared_secret_map: {{ matrix_beeper_linkedin_bridge_login_shared_secret_map | to_json }} # Whether or not to bridge presence in both directions. LinkedIn allows users not to broadcast # presence, but then it won't send other users' presence to the client. - presence: {{ matrix_beeper_linkedin_bridge_presence|to_json }} + presence: {{ matrix_beeper_linkedin_bridge_presence | to_json }} # Whether or not to update avatars when syncing all contacts at startup. update_avatar_initial_sync: true + # Whether or not created rooms should have federation enabled. + # If false, created portal rooms will never be federated. + federate_rooms: true + # Whether to explicitly set the avatar and room name for private chat portal rooms. + # If set to `default`, this will be enabled in encrypted rooms and disabled in unencrypted rooms. + # If set to `always`, all DM rooms will have explicit names and avatars set. + # If set to `never`, DM rooms will never have names and avatars set. + private_chat_portal_meta: default - - # End-to-bridge encryption support options. These require matrix-nio to be installed with pip - # and login_shared_secret to be configured in order to get a device for the bridge bot. + # End-to-bridge encryption support options. # - # Additionally, https://github.com/matrix-org/synapse/pull/5758 is required if using a normal - # application service. + # See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info. encryption: # Allow encryption, work in group chat rooms with e2ee enabled - allow: {{ matrix_beeper_linkedin_bridge_encryption_allow|to_json }} + allow: {{ matrix_beeper_linkedin_bridge_encryption_allow | to_json }} # Default to encryption, force-enable encryption in all portals the bridge creates # This will cause the bridge bot to be in private chats for the encryption to work properly. - default: {{ matrix_beeper_linkedin_bridge_encryption_default|to_json }} - # Options for automatic key sharing. - key_sharing: - # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. - # You must use a client that supports requesting keys from other users to use this feature. - allow: {{ matrix_beeper_linkedin_bridge_encryption_key_sharing_allow|to_json }} - # Require the requesting device to have a valid cross-signing signature? - # This doesn't require that the bridge has verified the device, only that the user has verified it. - # Not yet implemented. - require_cross_signing: false - # Require devices to be verified by the bridge? - # Verification by the bridge is not yet implemented. - require_verification: true + default: {{ matrix_beeper_linkedin_bridge_encryption_default | to_json }} + # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. + appservice: {{ matrix_beeper_linkedin_bridge_encryption_appservice | to_json }} + # Require encryption, drop any unencrypted messages. + require: {{ matrix_beeper_linkedin_bridge_encryption_require | to_json }} + # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. + # You must use a client that supports requesting keys from other users to use this feature. + allow_key_sharing: {{ matrix_beeper_linkedin_bridge_encryption_key_sharing_allow | to_json }} + # Options for deleting megolm sessions from the bridge. + delete_keys: + # Beeper-specific: delete outbound sessions when hungryserv confirms + # that the user has uploaded the key to key backup. + delete_outbound_on_ack: false + # Don't store outbound sessions in the inbound table. + dont_store_outbound: false + # Ratchet megolm sessions forward after decrypting messages. + ratchet_on_decrypt: false + # Delete fully used keys (index >= max_messages) after decrypting messages. + delete_fully_used_on_decrypt: false + # Delete previous megolm sessions from same device when receiving a new one. + delete_prev_on_new_session: false + # Delete megolm sessions received from a device when the device is deleted. + delete_on_device_delete: false + # Periodically delete megolm sessions when 2x max_age has passed since receiving the session. + periodically_delete_expired: false + # Delete inbound megolm sessions that don't have the received_at field used for + # automatic ratcheting and expired session deletion. This is meant as a migration + # to delete old keys prior to the bridge update. + delete_outdated_inbound: false + # What level of device verification should be required from users? + # + # Valid levels: + # unverified - Send keys to all device in the room. + # cross-signed-untrusted - Require valid cross-signing, but trust all cross-signing keys. + # cross-signed-tofu - Require valid cross-signing, trust cross-signing keys on first use (and reject changes). + # cross-signed-verified - Require valid cross-signing, plus a valid user signature from the bridge bot. + # Note that creating user signatures from the bridge bot is not currently possible. + # verified - Require manual per-device verification + # (currently only possible by modifying the `trust` column in the `crypto_device` database table). + verification_levels: + # Minimum level for which the bridge should send keys to when bridging messages from Telegram to Matrix. + receive: unverified + # Minimum level that the bridge should accept for incoming Matrix messages. + send: unverified + # Minimum level that the bridge should require for accepting key requests. + share: cross-signed-tofu + # Options for Megolm room key rotation. These options allow you to + # configure the m.room.encryption event content. See: + # https://spec.matrix.org/v1.3/client-server-api/#mroomencryption for + # more information about that event. + rotation: + # Enable custom Megolm room key rotation settings. Note that these + # settings will only apply to rooms created after this option is + # set. + enable_custom: false + # The maximum number of milliseconds a session should be used + # before changing it. The Matrix spec recommends 604800000 (a week) + # as the default. + milliseconds: 604800000 + # The maximum number of messages that should be sent with a given a + # session before changing it. The Matrix spec recommends 100 as the + # default. + messages: 100 + + # Disable rotating keys when a user's devices change? + # You should not enable this option unless you understand all the implications. + disable_device_change_key_rotation: false + # Whether or not the bridge should send a read receipt from the bridge bot when a message has # been sent to LinkedIn. delivery_receipts: false # Whether to allow inviting arbitrary mxids to portal rooms allow_invites: false - # Settings for backfilling messages from LinkedIn. backfill: # Whether or not the LinkedIn users of logged in Matrix users should be @@ -194,6 +272,10 @@ bridge: # If using double puppeting, should notifications be disabled # while the initial backfill is in progress? disable_notifications: false + # If this value is greater than 0, then (on backfill) if the + # conversation's last message was more than this number of hours ago, + # then the conversation will automatically be marked it as read. + unread_hours_threshold: 0 periodic_reconnect: # TODO needed? # Interval in seconds in which to automatically reconnect all users. @@ -224,23 +306,20 @@ bridge: # Whether or not mute status and tags should only be bridged when the portal room is created. tag_only_on_create: true - - # The prefix for commands. Only required in non-management rooms. - command_prefix: "{{ matrix_beeper_linkedin_command_prefix }}" - # Permissions for using the bridge. # Permitted values: - # user - Access to use the bridge to chat with a Linkedin account. - # admin - User level and some additional administration tools + # user - Use the bridge with puppeting. + # admin - Use and administrate the bridge. # Permitted keys: # * - All Matrix users # domain - All users on that homeserver # mxid - Specific user - permissions: {{ matrix_beeper_linkedin_bridge_permissions|to_json }} + permissions: {{ matrix_beeper_linkedin_bridge_permissions | to_json }} - - -# Logging config. +# Python logging configuration. +# +# See section 16.7.2 of the Python documentation for more info: +# https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema logging: version: 1 formatters: @@ -256,10 +335,8 @@ logging: loggers: mau: level: {{ matrix_beeper_linkedin_logging_level|to_json }} - paho: - level: {{ matrix_beeper_linkedin_logging_level|to_json }} aiohttp: level: {{ matrix_beeper_linkedin_logging_level|to_json }} root: - level: {{ matrix_beeper_linkedin_logging_level|to_json }} + level: DEBUG handlers: [console] diff --git a/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2.license new file mode 100644 index 000000000..fa76a7a16 --- /dev/null +++ b/roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2021 Alexandar Mechev +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2 b/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2 index 68d062594..d3fe0d249 100644 --- a/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2 +++ b/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-beeper-linkedin 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-beeper-linkedin 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-beeper-linkedin 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -23,13 +23,13 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ --cap-drop=ALL \ --network={{ matrix_beeper_linkedin_container_network }} \ - --mount type=bind,src={{ matrix_beeper_linkedin_config_path }},dst=/data \ + --mount type=bind,src={{ matrix_beeper_linkedin_config_path }},dst=/config,ro \ --workdir=/opt/linkedin-matrix \ {% for arg in matrix_beeper_linkedin_container_extra_arguments %} {{ arg }} \ {% endfor %} {{ matrix_beeper_linkedin_docker_image }} \ - python3 -m linkedin_matrix -c /data/config.yaml -r /data/registration.yaml + python3 -m linkedin_matrix -c /config/config.yaml -r /config/registration.yaml --no-update {% for network in matrix_beeper_linkedin_container_additional_networks %} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-beeper-linkedin @@ -37,7 +37,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-beeper-linkedin -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-beeper-linkedin 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-beeper-linkedin 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-beeper-linkedin 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2.license b/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2.license new file mode 100644 index 000000000..a6a2062ab --- /dev/null +++ b/roles/custom/matrix-bridge-beeper-linkedin/templates/systemd/matrix-beeper-linkedin.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Alexandar Mechev +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml b/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml index d0cead0e3..0b8c9b3e0 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml +++ b/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 - 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Arthur Brugière +# SPDX-FileCopyrightText: 2022 Vladimir Panteleev +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Go Skype Bridge is a Matrix <-> Skype bridge # Project source code URL: https://github.com/kelaresg/go-skype-bridge @@ -10,8 +20,10 @@ matrix_go_skype_bridge_container_image_self_build_branch: "{{ 'master' if matrix # renovate: datasource=docker depName=nodefyme/go-skype-bridge matrix_go_skype_bridge_version: latest -matrix_go_skype_bridge_docker_image: "{{ matrix_go_skype_bridge_docker_image_name_prefix }}nodefyme/go-skype-bridge:{{ matrix_go_skype_bridge_version }}" -matrix_go_skype_bridge_docker_image_name_prefix: "{{ 'localhost/' if matrix_go_skype_bridge_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_go_skype_bridge_docker_image: "{{ matrix_go_skype_bridge_docker_image_registry_prefix }}nodefyme/go-skype-bridge:{{ matrix_go_skype_bridge_version }}" +matrix_go_skype_bridge_docker_image_registry_prefix: "{{ 'localhost/' if matrix_go_skype_bridge_container_image_self_build else matrix_go_skype_bridge_docker_image_registry_prefix_upstream }}" +matrix_go_skype_bridge_docker_image_registry_prefix_upstream: "{{ matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default }}" +matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_go_skype_bridge_docker_image_force_pull: "{{ matrix_go_skype_bridge_docker_image.endswith(':latest') }}" matrix_go_skype_bridge_base_path: "{{ matrix_base_data_path }}/go-skype-bridge" @@ -94,14 +106,14 @@ matrix_go_skype_bridge_bridge_login_shared_secret_map: # Servers to always allow double puppeting from matrix_go_skype_bridge_bridge_double_puppet_server_map: - "{{ matrix_go_skype_bridge_homeserver_domain : matrix_go_skype_bridge_homeserver_address }}" + "{{ matrix_go_skype_bridge_homeserver_domain: matrix_go_skype_bridge_homeserver_address }}" # Enable End-to-bridge encryption matrix_go_skype_bridge_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" matrix_go_skype_bridge_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug matrix_go_skype_bridge_log_level: 'warn' matrix_go_skype_bridge_bridge_permissions: | diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml index 7ba914213..a92f08d98 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml +++ b/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Vladimir Panteleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml index 9d5bed211..5d05a3540 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Vladimir Panteleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml index d7b5999a1..b7d3373c3 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Vladimir Panteleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-go-skype-bridge service diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml index 9afe48f6e..d7d20b94d 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Vladimir Panteleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required go-skype-bridge settings not defined @@ -11,3 +17,12 @@ - {'name': 'matrix_go_skype_bridge_homeserver_token', when: true} - {'name': 'matrix_go_skype_bridge_database_hostname', when: "{{ matrix_go_skype_bridge_database_engine == 'postgres' }}"} - {'name': 'matrix_go_skype_bridge_container_network', when: true} + +- name: (Deprecation) Catch and report renamed go-skype-bridge variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_go_skype_bridge_docker_image_name_prefix', 'new': 'matrix_go_skype_bridge_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license new file mode 100644 index 000000000..c9507bbdb --- /dev/null +++ b/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Vladimir Panteleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 index 825d4eb34..fcd05f49e 100644 --- a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 +++ b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-go-skype-bridge 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-go-skype-bridge -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-go-skype-bridge 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license new file mode 100644 index 000000000..9815cd215 --- /dev/null +++ b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Vladimir Panteleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-heisenbridge/defaults/main.yml b/roles/custom/matrix-bridge-heisenbridge/defaults/main.yml index ee1cea6b4..0bf20fc21 100644 --- a/roles/custom/matrix-bridge-heisenbridge/defaults/main.yml +++ b/roles/custom/matrix-bridge-heisenbridge/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Toni Spets +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Heisenbridge is a bouncer-style Matrix IRC bridge # Project source code URL: https://github.com/hifi/heisenbridge @@ -10,7 +20,10 @@ matrix_heisenbridge_path_prefix: "/heisenbridge" # renovate: datasource=docker depName=hif1/heisenbridge matrix_heisenbridge_version: 1.15.0 -matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}" +matrix_heisenbridge_docker_image: "{{ matrix_heisenbridge_docker_image_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}" +matrix_heisenbridge_docker_image_registry_prefix: "{{ matrix_heisenbridge_docker_image_registry_prefix_upstream }}" +matrix_heisenbridge_docker_image_registry_prefix_upstream: "{{ matrix_heisenbridge_docker_image_registry_prefix_upstream_default }}" +matrix_heisenbridge_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}" # Set this to your Matrix ID if you want to enforce the owner, otherwise first _local_ user becomes one diff --git a/roles/custom/matrix-bridge-heisenbridge/tasks/main.yml b/roles/custom/matrix-bridge-heisenbridge/tasks/main.yml index b281d00bf..7de077071 100644 --- a/roles/custom/matrix-bridge-heisenbridge/tasks/main.yml +++ b/roles/custom/matrix-bridge-heisenbridge/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Toni Spets +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-heisenbridge/tasks/setup_install.yml b/roles/custom/matrix-bridge-heisenbridge/tasks/setup_install.yml index 9ea3500ff..a748464db 100644 --- a/roles/custom/matrix-bridge-heisenbridge/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-heisenbridge/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Toni Spets +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Heisenbridge image is pulled diff --git a/roles/custom/matrix-bridge-heisenbridge/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-heisenbridge/tasks/setup_uninstall.yml index 090427ca3..ba42105de 100644 --- a/roles/custom/matrix-bridge-heisenbridge/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-heisenbridge/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Michael Sasser +# SPDX-FileCopyrightText: 2021 Toni Spets +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-heisenbridge service diff --git a/roles/custom/matrix-bridge-heisenbridge/tasks/validate_config.yml b/roles/custom/matrix-bridge-heisenbridge/tasks/validate_config.yml index 604df5a56..34e63877f 100644 --- a/roles/custom/matrix-bridge-heisenbridge/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-heisenbridge/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Heisenbridge settings not defined diff --git a/roles/custom/matrix-bridge-heisenbridge/templates/labels.j2 b/roles/custom/matrix-bridge-heisenbridge/templates/labels.j2 index ee54ac8e1..fa2cb1ee1 100644 --- a/roles/custom/matrix-bridge-heisenbridge/templates/labels.j2 +++ b/roles/custom/matrix-bridge-heisenbridge/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_heisenbridge_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2 b/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2 index e0981b2a7..556eb28c9 100644 --- a/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2 +++ b/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ matrix_heisenbridge_container_stop_grace_time_seconds }} matrix-heisenbridge +ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ matrix_heisenbridge_container_stop_grace_time_seconds }} matrix-heisenbridge ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} rm matrix-heisenbridge ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -50,7 +50,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-heisenbridge -ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ matrix_heisenbridge_container_stop_grace_time_seconds }} matrix-heisenbridge +ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ matrix_heisenbridge_container_stop_grace_time_seconds }} matrix-heisenbridge ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} rm matrix-heisenbridge Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2.license b/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2.license new file mode 100644 index 000000000..8d056c7ba --- /dev/null +++ b/roles/custom/matrix-bridge-heisenbridge/templates/systemd/matrix-heisenbridge.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-hookshot/defaults/main.yml b/roles/custom/matrix-bridge-hookshot/defaults/main.yml index d36dfd7a9..2b204cbd3 100644 --- a/roles/custom/matrix-bridge-hookshot/defaults/main.yml +++ b/roles/custom/matrix-bridge-hookshot/defaults/main.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Arthur Brugière +# SPDX-FileCopyrightText: 2022 Kim Brose +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Kris Watson +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA. @@ -17,10 +29,12 @@ matrix_hookshot_container_additional_networks_auto: [] matrix_hookshot_container_additional_networks_custom: [] # renovate: datasource=docker depName=halfshot/matrix-hookshot -matrix_hookshot_version: 5.4.1 +matrix_hookshot_version: 6.0.3 -matrix_hookshot_docker_image: "{{ matrix_hookshot_docker_image_name_prefix }}halfshot/matrix-hookshot:{{ matrix_hookshot_version }}" -matrix_hookshot_docker_image_name_prefix: "{{ 'localhost/' if matrix_hookshot_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_hookshot_docker_image: "{{ matrix_hookshot_docker_image_registry_prefix }}matrix-org/matrix-hookshot:{{ matrix_hookshot_version }}" +matrix_hookshot_docker_image_registry_prefix: "{{ 'localhost/' if matrix_hookshot_container_image_self_build else matrix_hookshot_docker_image_registry_prefix_upstream }}" +matrix_hookshot_docker_image_registry_prefix_upstream: "{{ matrix_hookshot_docker_image_registry_prefix_upstream_default }}" +matrix_hookshot_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_hookshot_docker_image_force_pull: "{{ matrix_hookshot_docker_image.endswith(':latest') }}" matrix_hookshot_base_path: "{{ matrix_base_data_path }}/hookshot" @@ -30,6 +44,9 @@ matrix_hookshot_docker_src_files_path: "{{ matrix_hookshot_base_path }}/docker-s matrix_hookshot_homeserver_address: "" matrix_hookshot_container_url: 'matrix-hookshot' +# Sets the localpart of the Matrix ID for the hookshot bot +matrix_hookshot_bot_localpart: "hookshot" + matrix_hookshot_public_scheme: https matrix_hookshot_public_hostname: "{{ matrix_server_fqn_matrix }}" matrix_hookshot_public_endpoint: /hookshot @@ -46,17 +63,18 @@ matrix_hookshot_appservice_hostname: "{{ matrix_hookshot_public_hostname }}" matrix_hookshot_appservice_endpoint: "{{ matrix_hookshot_public_endpoint }}/_matrix/app" # The variables below control the Redis cache parameters. -# Using caching is required when experimental encryption is enabled (`matrix_hookshot_experimental_encryption_enabled`) +# Using caching is required when encryption is enabled (`matrix_hookshot_encryption_enabled`) # but may also speed up Hookshot startup, etc. matrix_hookshot_cache_redis_host: '' matrix_hookshot_cache_redis_port: "6379" matrix_hookshot_cache_redisUri: "{{ ('redis://' + matrix_hookshot_cache_redis_host + ':' + matrix_hookshot_cache_redis_port) if matrix_hookshot_cache_redis_host else '' }}" # noqa var-naming -# Controls whether the experimental end-to-bridge encryption support is enabled. +# Controls whether the end-to-bridge encryption support is enabled. # This requires that: # - support to also be enabled in the homeserver, see the documentation of Hookshot. # - Hookshot to be pointed at a Redis instance via the `matrix_hookshot_cache_redis*` variables. -matrix_hookshot_experimental_encryption_enabled: false +# See: https://matrix-org.github.io/matrix-hookshot/latest/advanced/encryption.html +matrix_hookshot_encryption_enabled: false # Controls whether metrics are enabled in the bridge configuration. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. @@ -86,7 +104,7 @@ matrix_hookshot_github_auth_id: '' # Set this variable to the contents of the generated and downloaded GitHub private key: # matrix_hookshot_github_private_key: | # -----BEGIN RSA PRIVATE KEY----- -# 0123456789ABCDEF... +# 0123456789ABCDEF… # -----END RSA PRIVATE KEY----- # Alternatively, leave it empty and do it manually or use matrix-aux instead, see docs/matrix-bridge-hookshot.md for info. matrix_hookshot_github_private_key: '' @@ -174,12 +192,12 @@ matrix_hookshot_provisioning_enabled: false # There is no need to edit ports. use matrix_hookshot_container_http_host_bind_ports below to expose ports instead. matrix_hookshot_provisioning_port: 9002 matrix_hookshot_provisioning_secret: '' -# Provisioning will be automatically enabled if dimension is enabled and you have provided a provisioning secret, unless you override it +# Provisioning will be automatically enabled if Dimension is enabled and you have provided a provisioning secret, unless you override it matrix_hookshot_provisioning_internal: "/v1" matrix_hookshot_provisioning_hostname: "{{ matrix_hookshot_public_hostname }}" matrix_hookshot_provisioning_endpoint: "{{ matrix_hookshot_public_endpoint }}{{ matrix_hookshot_provisioning_internal }}" -# Valid logging levels are: debug, info, warn, error +# Valid values: error, warn, info, debug matrix_hookshot_logging_level: warn matrix_hookshot_widgets_enabled: true @@ -326,7 +344,7 @@ matrix_hookshot_homeserver_token: '' # # For a more advanced customization, you can extend the default (see `matrixhookshot_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_hookshot_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}" +matrix_hookshot_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_hookshot_configuration_extension_yaml: | # Your custom YAML configuration goes here. diff --git a/roles/custom/matrix-bridge-hookshot/tasks/main.yml b/roles/custom/matrix-bridge-hookshot/tasks/main.yml index 89f110dd4..afe5da088 100644 --- a/roles/custom/matrix-bridge-hookshot/tasks/main.yml +++ b/roles/custom/matrix-bridge-hookshot/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-hookshot/tasks/reset_encryption.yml b/roles/custom/matrix-bridge-hookshot/tasks/reset_encryption.yml index 5d3b7506d..26c0e3eba 100644 --- a/roles/custom/matrix-bridge-hookshot/tasks/reset_encryption.yml +++ b/roles/custom/matrix-bridge-hookshot/tasks/reset_encryption.yml @@ -1,5 +1,17 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- +- name: Ensure matrix-hookshot is stopped + ansible.builtin.service: + name: matrix-hookshot + state: stopped + register: matrix_hookshot_stopped + +# `yarn start:resetcrypto` fails, as described here: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3868 +# Also related to: https://github.com/matrix-org/matrix-hookshot/issues/730 - name: Resetting Hookshot's crypto store ansible.builtin.command: cmd: | @@ -8,7 +20,15 @@ --name={{ matrix_hookshot_identifier }}-reset-crypto --user={{ matrix_user_uid }}:{{ matrix_user_gid }} --cap-drop=ALL - --mount type=bind,src={{ matrix_hookshot_base_path }}/config.yml,dst=/config.yml + --mount type=bind,src={{ matrix_hookshot_base_path }},dst=/data {{ matrix_hookshot_docker_image }} - yarn start:resetcrypto + node --require source-map-support/register /usr/bin/matrix-hookshot/App/ResetCryptoStore.js changed_when: true + +- name: Ensure matrix-hookshot is started, if it previously was + ansible.builtin.service: + name: matrix-hookshot + state: started + enabled: true + daemon_reload: true + when: matrix_hookshot_stopped.changed | bool diff --git a/roles/custom/matrix-bridge-hookshot/tasks/setup_install.yml b/roles/custom/matrix-bridge-hookshot/tasks/setup_install.yml index f76ae653c..a44edff15 100644 --- a/roles/custom/matrix-bridge-hookshot/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-hookshot/tasks/setup_install.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Arthur Brugière +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2023 Luke Moch +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.include_role: diff --git a/roles/custom/matrix-bridge-hookshot/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-hookshot/tasks/setup_uninstall.yml index b4c72d38a..253bba45a 100644 --- a/roles/custom/matrix-bridge-hookshot/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-hookshot/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-hookshot service diff --git a/roles/custom/matrix-bridge-hookshot/tasks/validate_config.yml b/roles/custom/matrix-bridge-hookshot/tasks/validate_config.yml index 33871b77b..1c35abe88 100644 --- a/roles/custom/matrix-bridge-hookshot/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-hookshot/tasks/validate_config.yml @@ -1,10 +1,16 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed Hookshot variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_hookshot_feeds_interval', 'new': 'matrix_hookshot_feeds_pollIntervalSeconds'} @@ -31,6 +37,8 @@ - {'old': 'matrix_hookshot_ident', 'new': 'matrix_hookshot_identifier'} - {'old': 'matrix_hookshot_queue_host', 'new': 'matrix_hookshot_cache_redis_host'} - {'old': 'matrix_hookshot_queue_port', 'new': 'matrix_hookshot_cache_redis_port'} + - {'old': 'matrix_hookshot_experimental_encryption_enabled', 'new': 'matrix_hookshot_encryption_enabled'} + - {'old': 'matrix_hookshot_docker_image_name_prefix', 'new': 'matrix_hookshot_docker_image_registry_prefix'} - name: Fail if required Hookshot settings not defined ansible.builtin.fail: @@ -96,7 +104,7 @@ ansible.builtin.fail: msg: >- You need to define a required configuration setting (`matrix_hookshot_cache_redis*`) to enable Hookshot encryption. - when: "matrix_hookshot_experimental_encryption_enabled and matrix_hookshot_cache_redisUri == ''" + when: "matrix_hookshot_encryption_enabled and matrix_hookshot_cache_redisUri == ''" - name: (Deprecation) Catch and report old metrics usage ansible.builtin.fail: diff --git a/roles/custom/matrix-bridge-hookshot/templates/config.yml.j2 b/roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2 similarity index 98% rename from roles/custom/matrix-bridge-hookshot/templates/config.yml.j2 rename to roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2 index 5f6ab67bf..c476f6b4b 100644 --- a/roles/custom/matrix-bridge-hookshot/templates/config.yml.j2 +++ b/roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2 @@ -113,8 +113,8 @@ metrics: cache: redisUri: {{ matrix_hookshot_cache_redisUri | to_json }} {% endif %} -{% if matrix_hookshot_experimental_encryption_enabled %} -experimentalEncryption: +{% if matrix_hookshot_encryption_enabled %} +encryption: storagePath: /data/encryption {% endif %} logging: diff --git a/roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2.license new file mode 100644 index 000000000..e7fcfb5ab --- /dev/null +++ b/roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-hookshot/templates/labels.j2 b/roles/custom/matrix-bridge-hookshot/templates/labels.j2 index 31c035300..d7a36da4d 100644 --- a/roles/custom/matrix-bridge-hookshot/templates/labels.j2 +++ b/roles/custom/matrix-bridge-hookshot/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_hookshot_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2 b/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2 index 557bd85d6..2e617df76 100644 --- a/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2 +++ b/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2 @@ -25,11 +25,11 @@ namespaces: - regex: "#github_.+:{{ matrix_domain }}" exclusive: true -sender_localpart: hookshot +sender_localpart: {{ matrix_hookshot_bot_localpart | to_json }} url: "http://{{ matrix_hookshot_container_url }}:{{ matrix_hookshot_appservice_port }}" # This should match the bridge.port in your config file rate_limited: false -{% if matrix_hookshot_experimental_encryption_enabled %} +{% if matrix_hookshot_encryption_enabled %} de.sorunome.msc2409.push_ephemeral: true push_ephemeral: true org.matrix.msc3202: true diff --git a/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2.license b/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2.license new file mode 100644 index 000000000..00feb2e4f --- /dev/null +++ b/roles/custom/matrix-bridge-hookshot/templates/registration.yml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Kim Brose + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2 b/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2 index aca952f1e..3ad5df541 100644 --- a/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2 +++ b/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_hookshot_identifier }} +ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_hookshot_identifier }} ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_hookshot_identifier }} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create --rm --name {{ matrix_hookshot_identifier }} \ --log-driver=none \ @@ -36,7 +36,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_hookshot_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_hookshot_identifier }} +ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_hookshot_identifier }} ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_hookshot_identifier }} Restart=always diff --git a/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2.license b/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2.license new file mode 100644 index 000000000..c751d3d6f --- /dev/null +++ b/roles/custom/matrix-bridge-hookshot/templates/systemd/matrix-hookshot.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-bluesky/defaults/main.yml new file mode 100644 index 000000000..e43d3bea2 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/defaults/main.yml @@ -0,0 +1,199 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- +# mautrix-bluesky is a Matrix <-> Bluesky bridge +# Project source code URL: https://github.com/mautrix/bluesky + +matrix_mautrix_bluesky_enabled: true + +matrix_mautrix_bluesky_container_image_self_build: false +matrix_mautrix_bluesky_container_image_self_build_repo: "https://github.com/mautrix/bluesky.git" +matrix_mautrix_bluesky_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_bluesky_version == 'latest' else matrix_mautrix_bluesky_version }}" + +# renovate: datasource=docker depName=dock.mau.dev/mautrix/bluesky +matrix_mautrix_bluesky_version: v0.1.0 +# See: https://mau.dev/tulir/mautrix-bluesky/container_registry +matrix_mautrix_bluesky_docker_image: "{{ matrix_mautrix_bluesky_docker_image_registry_prefix }}mautrix/bluesky:{{ matrix_mautrix_bluesky_version }}" +matrix_mautrix_bluesky_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_bluesky_container_image_self_build else matrix_mautrix_bluesky_docker_image_registry_prefix_upstream }}" +matrix_mautrix_bluesky_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_bluesky_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_bluesky_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" +matrix_mautrix_bluesky_docker_image_force_pull: "{{ matrix_mautrix_bluesky_docker_image.endswith(':latest') }}" + +matrix_mautrix_bluesky_base_path: "{{ matrix_base_data_path }}/mautrix-bluesky" +matrix_mautrix_bluesky_config_path: "{{ matrix_mautrix_bluesky_base_path }}/config" +matrix_mautrix_bluesky_data_path: "{{ matrix_mautrix_bluesky_base_path }}/data" +matrix_mautrix_bluesky_docker_src_files_path: "{{ matrix_mautrix_bluesky_base_path }}/docker-src" + +matrix_mautrix_bluesky_homeserver_address: "" +matrix_mautrix_bluesky_homeserver_domain: '{{ matrix_domain }}' +matrix_mautrix_bluesky_appservice_address: 'http://matrix-mautrix-bluesky:29340' + +# A public address that external services can use to reach this appservice. +matrix_mautrix_bluesky_appservice_public_address: '' + +matrix_mautrix_bluesky_bridge_command_prefix: "!bs" + +matrix_mautrix_bluesky_bridge_permissions: | + {{ + {matrix_mautrix_bluesky_homeserver_domain: 'user'} + | combine({matrix_admin: 'admin'} if matrix_admin else {}) + }} + +matrix_mautrix_bluesky_container_network: "" + +matrix_mautrix_bluesky_container_additional_networks: "{{ matrix_mautrix_bluesky_container_additional_networks_auto + matrix_mautrix_bluesky_container_additional_networks_custom }}" +matrix_mautrix_bluesky_container_additional_networks_auto: [] +matrix_mautrix_bluesky_container_additional_networks_custom: [] + +# matrix_mautrix_bluesky_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. +# See `../templates/labels.j2` for details. +# +# To inject your own other container labels, see `matrix_mautrix_bluesky_container_labels_additional_labels`. +matrix_mautrix_bluesky_container_labels_traefik_enabled: true +matrix_mautrix_bluesky_container_labels_traefik_docker_network: "{{ matrix_mautrix_bluesky_container_network }}" +matrix_mautrix_bluesky_container_labels_traefik_entrypoints: web-secure +matrix_mautrix_bluesky_container_labels_traefik_tls_certResolver: default # noqa var-naming + +# Controls whether labels will be added that expose mautrix-instagram's metrics +matrix_mautrix_bluesky_container_labels_metrics_enabled: "{{ matrix_mautrix_bluesky_metrics_enabled and matrix_mautrix_bluesky_metrics_proxying_enabled }}" +matrix_mautrix_bluesky_container_labels_metrics_traefik_rule: "Host(`{{ matrix_mautrix_bluesky_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_mautrix_bluesky_metrics_proxying_path_prefix }}`)" +matrix_mautrix_bluesky_container_labels_metrics_traefik_priority: 0 +matrix_mautrix_bluesky_container_labels_metrics_traefik_entrypoints: "{{ matrix_mautrix_bluesky_container_labels_traefik_entrypoints }}" +matrix_mautrix_bluesky_container_labels_metrics_traefik_tls: "{{ matrix_mautrix_bluesky_container_labels_metrics_traefik_entrypoints != 'web' }}" +matrix_mautrix_bluesky_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_mautrix_bluesky_container_labels_traefik_tls_certResolver }}" # noqa var-naming +matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_enabled: false +# See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users +matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_users: '' + +# matrix_mautrix_bluesky_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. +# See `../templates/labels.j2` for details. +# +# Example: +# matrix_mautrix_bluesky_container_labels_additional_labels: | +# my.label=1 +# another.label="here" +matrix_mautrix_bluesky_container_labels_additional_labels: '' + +# A list of extra arguments to pass to the container +matrix_mautrix_bluesky_container_extra_arguments: [] + +# List of systemd services that matrix-mautrix-bluesky.service depends on. +matrix_mautrix_bluesky_systemd_required_services_list: "{{ matrix_mautrix_bluesky_systemd_required_services_list_default + matrix_mautrix_bluesky_systemd_required_services_list_auto + matrix_mautrix_bluesky_systemd_required_services_list_custom }}" +matrix_mautrix_bluesky_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" +matrix_mautrix_bluesky_systemd_required_services_list_auto: [] +matrix_mautrix_bluesky_systemd_required_services_list_custom: [] + +# List of systemd services that matrix-mautrix-bluesky.service wants +matrix_mautrix_bluesky_systemd_wanted_services_list: [] + +matrix_mautrix_bluesky_appservice_token: '' +matrix_mautrix_bluesky_homeserver_token: '' + +# Whether or not created rooms should have federation enabled. +# If false, created portal rooms will never be federated. +matrix_mautrix_bluesky_matrix_federate_rooms: true + +# Database-related configuration fields. +# +# To use Postgres: +# - adjust your database credentials via the `matrix_mautrix_bluesky_postgres_*` variables +matrix_mautrix_bluesky_database_engine: 'postgres' + +matrix_mautrix_bluesky_database_username: 'matrix_mautrix_bluesky' +matrix_mautrix_bluesky_database_password: 'some-password' +matrix_mautrix_bluesky_database_hostname: '' +matrix_mautrix_bluesky_database_port: 5432 +matrix_mautrix_bluesky_database_name: 'matrix_mautrix_bluesky' +matrix_mautrix_bluesky_database_sslmode: disable + +matrix_mautrix_bluesky_database_connection_string: 'postgres://{{ matrix_mautrix_bluesky_database_username }}:{{ matrix_mautrix_bluesky_database_password }}@{{ matrix_mautrix_bluesky_database_hostname }}:{{ matrix_mautrix_bluesky_database_port }}/{{ matrix_mautrix_bluesky_database_name }}?sslmode={{ matrix_mautrix_bluesky_database_sslmode }}' + +matrix_mautrix_bluesky_database_uri: "{{ + { + 'postgres': matrix_mautrix_bluesky_database_connection_string, + }[matrix_mautrix_bluesky_database_engine] +}}" + +matrix_mautrix_bluesky_double_puppet_secrets: "{{ matrix_mautrix_bluesky_double_puppet_secrets_auto | combine(matrix_mautrix_bluesky_double_puppet_secrets_custom) }}" +matrix_mautrix_bluesky_double_puppet_secrets_auto: {} +matrix_mautrix_bluesky_double_puppet_secrets_custom: {} + +matrix_mautrix_bluesky_appservice_bot_username: blueskybot +matrix_mautrix_bluesky_appservice_bot_displayname: Bluesky bridge bot +matrix_mautrix_bluesky_appservice_bot_avatar: mxc://maunium.net/ezAjjDxhiJWGEohmhkpfeHYf + +matrix_mautrix_bluesky_backfill_enabled: true +# Maximum number of messages to backfill in empty rooms +matrix_mautrix_bluesky_backfill_max_initial_messages: 50 + +# Maximum number of missed messages to backfill after bridge restarts +matrix_mautrix_bluesky_backfill_max_catchup_messages: 500 + +# Shared secret for authentication of provisioning API requests. +# If set to "disable", the provisioning API will be disabled. +matrix_mautrix_bluesky_provisioning_shared_secret: disable + +# Minimum severity of journal log messages. +# Valid values: fatal, error, warn, info, debug, trace +matrix_mautrix_bluesky_logging_level: 'warn' + +# Whether or not metrics endpoint should be enabled. +# Enabling them is usually enough for a local (in-container) Prometheus to consume them. +# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_bluesky_metrics_proxying_enabled`. +matrix_mautrix_bluesky_metrics_enabled: false + +# Controls whether metrics should be exposed on a public URL. +matrix_mautrix_bluesky_metrics_proxying_enabled: false +matrix_mautrix_bluesky_metrics_proxying_hostname: '' +matrix_mautrix_bluesky_metrics_proxying_path_prefix: '' + +# Default configuration template which covers the generic use case. +# You can customize it by controlling the various variables inside it. +# +# For a more advanced customization, you can extend the default (see `matrix_mautrix_bluesky_configuration_extension_yaml`) +# or completely replace this variable with your own template. +matrix_mautrix_bluesky_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" + +matrix_mautrix_bluesky_configuration_extension_yaml: | + # Your custom YAML configuration goes here. + # This configuration extends the default starting configuration (`matrix_mautrix_bluesky_configuration_yaml`). + # + # 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 + # completely redefining `matrix_mautrix_bluesky_configuration_yaml`. + +matrix_mautrix_bluesky_configuration_extension: "{{ matrix_mautrix_bluesky_configuration_extension_yaml | from_yaml if matrix_mautrix_bluesky_configuration_extension_yaml | from_yaml is mapping else {} }}" + +# Holds the final configuration (a combination of the default and its extension). +# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_bluesky_configuration_yaml`. +matrix_mautrix_bluesky_configuration: "{{ matrix_mautrix_bluesky_configuration_yaml | from_yaml | combine(matrix_mautrix_bluesky_configuration_extension, recursive=True) }}" + +matrix_mautrix_bluesky_registration_yaml: | + id: bluesky + as_token: "{{ matrix_mautrix_bluesky_appservice_token }}" + hs_token: "{{ matrix_mautrix_bluesky_homeserver_token }}" + namespaces: + users: + - exclusive: true + regex: '^@bluesky_.+:{{ matrix_mautrix_bluesky_homeserver_domain | regex_escape }}$' + - exclusive: true + regex: '^@{{ matrix_mautrix_bluesky_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_bluesky_homeserver_domain | regex_escape }}$' + url: {{ matrix_mautrix_bluesky_appservice_address }} + sender_localpart: _bot_{{ matrix_mautrix_bluesky_appservice_bot_username }} + rate_limited: false + de.sorunome.msc2409.push_ephemeral: true + receive_ephemeral: true + +matrix_mautrix_bluesky_registration: "{{ matrix_mautrix_bluesky_registration_yaml | from_yaml }}" + +# Enable End-to-bridge encryption +matrix_mautrix_bluesky_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" +matrix_mautrix_bluesky_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" +matrix_mautrix_bluesky_bridge_encryption_require: false +matrix_mautrix_bluesky_bridge_encryption_appservice: false +matrix_mautrix_bluesky_bridge_encryption_key_sharing_allow: "{{ matrix_mautrix_bluesky_bridge_encryption_allow }}" +matrix_mautrix_bluesky_bridge_encryption_pickle_key: mautrix.bridge.e2ee diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/main.yml new file mode 100644 index 000000000..0071485aa --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/main.yml @@ -0,0 +1,24 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- tags: + - setup-all + - setup-mautrix-bluesky + - install-all + - install-mautrix-bluesky + block: + - when: matrix_mautrix_bluesky_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" + + - when: matrix_mautrix_bluesky_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" + +- tags: + - setup-all + - setup-mautrix-bluesky + block: + - when: not matrix_mautrix_bluesky_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_install.yml new file mode 100644 index 000000000..305ac5730 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_install.yml @@ -0,0 +1,102 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- ansible.builtin.set_fact: + matrix_mautrix_bluesky_requires_restart: false + +- name: Ensure Mautrix Bluesky image is pulled + community.docker.docker_image: + name: "{{ matrix_mautrix_bluesky_docker_image }}" + source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" + force_source: "{{ matrix_mautrix_bluesky_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_bluesky_docker_image_force_pull }}" + when: matrix_mautrix_bluesky_enabled | bool and not matrix_mautrix_bluesky_container_image_self_build + register: result + retries: "{{ devture_playbook_help_container_retries_count }}" + delay: "{{ devture_playbook_help_container_retries_delay }}" + until: result is not failed + +- name: Ensure Mautrix Bluesky paths exist + ansible.builtin.file: + path: "{{ item.path }}" + state: directory + mode: 0750 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - {path: "{{ matrix_mautrix_bluesky_base_path }}", when: true} + - {path: "{{ matrix_mautrix_bluesky_config_path }}", when: true} + - {path: "{{ matrix_mautrix_bluesky_data_path }}", when: true} + - {path: "{{ matrix_mautrix_bluesky_docker_src_files_path }}", when: "{{ matrix_mautrix_bluesky_container_image_self_build }}"} + when: item.when | bool + +- name: Ensure Mautrix Bluesky repository is present on self-build + ansible.builtin.git: + repo: "{{ matrix_mautrix_bluesky_container_image_self_build_repo }}" + version: "{{ matrix_mautrix_bluesky_container_image_self_build_repo_version }}" + dest: "{{ matrix_mautrix_bluesky_docker_src_files_path }}" + force: "yes" + become: true + become_user: "{{ matrix_user_username }}" + register: matrix_mautrix_bluesky_git_pull_results + when: "matrix_mautrix_bluesky_enabled | bool and matrix_mautrix_bluesky_container_image_self_build" + +- name: Ensure Mautrix Bluesky Docker image is built + community.docker.docker_image: + name: "{{ matrix_mautrix_bluesky_docker_image }}" + source: build + force_source: "{{ matrix_mautrix_bluesky_git_pull_results.changed }}" + build: + dockerfile: Dockerfile + path: "{{ matrix_mautrix_bluesky_docker_src_files_path }}" + pull: true + when: "matrix_mautrix_bluesky_enabled | bool and matrix_mautrix_bluesky_container_image_self_build | bool" + +- name: Ensure mautrix-bluesky config.yaml installed + ansible.builtin.copy: + content: "{{ matrix_mautrix_bluesky_configuration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_mautrix_bluesky_config_path }}/config.yaml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure mautrix-bluesky registration.yaml installed + ansible.builtin.copy: + content: "{{ matrix_mautrix_bluesky_registration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_mautrix_bluesky_config_path }}/registration.yaml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure mautrix-bluesky support files installed + ansible.builtin.template: + src: "{{ role_path }}/templates/{{ item }}.j2" + dest: "{{ matrix_mautrix_bluesky_base_path }}/{{ item }}" + mode: 0640 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - labels + +- name: Ensure matrix-mautrix-bluesky container network is created + community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" + name: "{{ matrix_mautrix_bluesky_container_network }}" + driver: bridge + driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" + +- name: Ensure matrix-mautrix-bluesky.service installed + ansible.builtin.template: + src: "{{ role_path }}/templates/systemd/matrix-mautrix-bluesky.service.j2" + dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-bluesky.service" + mode: 0644 + +- name: Ensure matrix-mautrix-bluesky.service restarted, if necessary + ansible.builtin.service: + name: "matrix-mautrix-bluesky.service" + state: restarted + daemon_reload: true + when: "matrix_mautrix_bluesky_requires_restart | bool" diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_uninstall.yml new file mode 100644 index 000000000..e38cd26c9 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/setup_uninstall.yml @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check existence of matrix-mautrix-bluesky service + ansible.builtin.stat: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-bluesky.service" + register: matrix_mautrix_bluesky_service_stat + +- when: matrix_mautrix_bluesky_service_stat.stat.exists | bool + block: + - name: Ensure matrix-mautrix-bluesky is stopped + ansible.builtin.service: + name: matrix-mautrix-bluesky + state: stopped + daemon_reload: true + + - name: Ensure matrix-mautrix-bluesky.service doesn't exist + ansible.builtin.file: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-bluesky.service" + state: absent diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/validate_config.yml new file mode 100644 index 000000000..e14168283 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/tasks/validate_config.yml @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Fail if required mautrix-bluesky settings not defined + ansible.builtin.fail: + msg: >- + You need to define a required configuration setting (`{{ item.name }}`). + when: "item.when | bool and vars[item.name] == ''" + with_items: + - {'name': 'matrix_mautrix_bluesky_appservice_token', when: true} + - {'name': 'matrix_mautrix_bluesky_homeserver_address', when: true} + - {'name': 'matrix_mautrix_bluesky_homeserver_token', when: true} + - {'name': 'matrix_mautrix_bluesky_database_hostname', when: "{{ matrix_mautrix_bluesky_database_engine == 'postgres' }}"} + - {'name': 'matrix_mautrix_bluesky_container_network', when: true} + - {'name': 'matrix_mautrix_bluesky_metrics_proxying_hostname', when: "{{ matrix_mautrix_bluesky_metrics_proxying_enabled }}"} + - {'name': 'matrix_mautrix_bluesky_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_bluesky_metrics_proxying_enabled }}"} + +- name: (Deprecation) Catch and report renamed mautrix-bluesky variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_mautrix_bluesky_docker_image_name_prefix', 'new': 'matrix_mautrix_bluesky_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2 new file mode 100644 index 000000000..156c68048 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2 @@ -0,0 +1,428 @@ +#jinja2: lstrip_blocks: "True" +# Network-specific config options +network: + # Proxy to use for all Bluesky connections. + proxy: null + # Alternative to proxy: an HTTP endpoint that returns the proxy URL to use for Bluesky connections. + get_proxy_url: null + + # Displayname template for Bluesky users. + # {% raw %} + # {{ .DisplayName }} is replaced with the display name of the Bluesky user. + # {{ .Username }} is replaced with the username of the Bluesky user. + # {% endraw %} + displayname_template: "{% raw %}{{ .DisplayName }}{% endraw %} (Bluesky)" + + # Maximum number of conversations to sync on startup + conversation_sync_limit: 20 + + +# Config options that affect the central bridge module. +bridge: + # The prefix for commands. Only required in non-management rooms. + command_prefix: {{ matrix_mautrix_bluesky_bridge_command_prefix | to_json }} + # Should the bridge create a space for each login containing the rooms that account is in? + personal_filtering_spaces: true + # Whether the bridge should set names and avatars explicitly for DM portals. + # This is only necessary when using clients that don't support MSC4171. + private_chat_portal_meta: true + # Should events be handled asynchronously within portal rooms? + # If true, events may end up being out of order, but slow events won't block other ones. + # This is not yet safe to use. + async_events: false + # Should every user have their own portals rather than sharing them? + # By default, users who are in the same group on the remote network will be + # in the same Matrix room bridged to that group. If this is set to true, + # every user will get their own Matrix room instead. + split_portals: false + # Should the bridge resend `m.bridge` events to all portals on startup? + resend_bridge_info: false + + # Should leaving Matrix rooms be bridged as leaving groups on the remote network? + bridge_matrix_leave: false + # Should room tags only be synced when creating the portal? Tags mean things like favorite/pin and archive/low priority. + # Tags currently can't be synced back to the remote network, so a continuous sync means tagging from Matrix will be undone. + tag_only_on_create: true + # List of tags to allow bridging. If empty, no tags will be bridged. + only_bridge_tags: [m.favourite, m.lowpriority] + # Should room mute status only be synced when creating the portal? + # Like tags, mutes can't currently be synced back to the remote network. + mute_only_on_create: true + + # What should be done to portal rooms when a user logs out or is logged out? + # Permitted values: + # nothing - Do nothing, let the user stay in the portals + # kick - Remove the user from the portal rooms, but don't delete them + # unbridge - Remove all ghosts in the room and disassociate it from the remote chat + # delete - Remove all ghosts and users from the room (i.e. delete it) + cleanup_on_logout: + # Should cleanup on logout be enabled at all? + enabled: false + # Settings for manual logouts (explicitly initiated by the Matrix user) + manual: + # Action for private portals which will never be shared with other Matrix users. + private: nothing + # Action for portals with a relay user configured. + relayed: nothing + # Action for portals which may be shared, but don't currently have any other Matrix users. + shared_no_users: nothing + # Action for portals which have other logged-in Matrix users. + shared_has_users: nothing + # Settings for credentials being invalidated (initiated by the remote network, possibly through user action). + # Keys have the same meanings as in the manual section. + bad_credentials: + private: nothing + relayed: nothing + shared_no_users: nothing + shared_has_users: nothing + + # Settings for relay mode + relay: + # Whether relay mode should be allowed. If allowed, the set-relay command can be used to turn any + # authenticated user into a relaybot for that chat. + enabled: false + # Should only admins be allowed to set themselves as relay users? + # If true, non-admins can only set users listed in default_relays as relays in a room. + admin_only: true + # List of user login IDs which anyone can set as a relay, as long as the relay user is in the room. + default_relays: [] + # The formats to use when sending messages via the relaybot. + # Available variables: + # .Sender.UserID - The Matrix user ID of the sender. + # .Sender.Displayname - The display name of the sender (if set). + # .Sender.RequiresDisambiguation - Whether the sender's name may be confused with the name of another user in the room. + # .Sender.DisambiguatedName - The disambiguated name of the sender. This will be the displayname if set, + # plus the user ID in parentheses if the displayname is not unique. + # If the displayname is not set, this is just the user ID. + # .Message - The `formatted_body` field of the message. + # .Caption - The `formatted_body` field of the message, if it's a caption. Otherwise an empty string. + # .FileName - The name of the file being sent. + message_formats: + m.text: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" + m.notice: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" + m.emote: "{% raw %}* {{ .Sender.DisambiguatedName }} {{ .Message }}{% endraw %}" + m.file: "{% raw %}{{ .Sender.DisambiguatedName }} sent a file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.image: "{% raw %}{{ .Sender.DisambiguatedName }} sent an image{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.audio: "{% raw %}{{ .Sender.DisambiguatedName }} sent an audio file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.video: "{% raw %}{{ .Sender.DisambiguatedName }} sent a video{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.location: "{% raw %}{{ .Sender.DisambiguatedName }} sent a location{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + # For networks that support per-message displaynames (i.e. Slack and Discord), the template for those names. + # This has all the Sender variables available under message_formats (but without the .Sender prefix). + # Note that you need to manually remove the displayname from message_formats above. + displayname_format: "{% raw %}{{ .DisambiguatedName }}{% endraw %}" + + # Permissions for using the bridge. + # Permitted values: + # relay - Talk through the relaybot (if enabled), no access otherwise + # commands - Access to use commands in the bridge, but not login. + # user - Access to use the bridge with puppeting. + # admin - Full access, user level with some additional administration tools. + # Permitted keys: + # * - All Matrix users + # domain - All users on that homeserver + # mxid - Specific user + permissions: {{ matrix_mautrix_bluesky_bridge_permissions | to_json }} + +# Config for the bridge's database. +database: + # The database type. "sqlite3-fk-wal" and "postgres" are supported. + type: postgres + # The database URI. + # SQLite: A raw file path is supported, but `file:?_txlock=immediate` is recommended. + # https://github.com/mattn/go-sqlite3#connection-string + # Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable + # To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql + uri: {{ matrix_mautrix_bluesky_database_uri | to_json }} + # Maximum number of connections. + max_open_conns: 5 + max_idle_conns: 1 + # Maximum connection idle time and lifetime before they're closed. Disabled if null. + # Parsed with https://pkg.go.dev/time#ParseDuration + max_conn_idle_time: null + max_conn_lifetime: null + +# Homeserver details. +homeserver: + # The address that this appservice can use to connect to the homeserver. + # Local addresses without HTTPS are generally recommended when the bridge is running on the same machine, + # but https also works if they run on different machines. + address: {{ matrix_mautrix_bluesky_homeserver_address | to_json }} + # The domain of the homeserver (also known as server_name, used for MXIDs, etc). + domain: {{ matrix_mautrix_bluesky_homeserver_domain | to_json }} + + # What software is the homeserver running? + # Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here. + software: standard + # The URL to push real-time bridge status to. + # If set, the bridge will make POST requests to this URL whenever a user's remote network connection state changes. + # The bridge will use the appservice as_token to authorize requests. + status_endpoint: + # Endpoint for reporting per-message status. + # If set, the bridge will make POST requests to this URL when processing a message from Matrix. + # It will make one request when receiving the message (step BRIDGE), one after decrypting if applicable + # (step DECRYPTED) and one after sending to the remote network (step REMOTE). Errors will also be reported. + # The bridge will use the appservice as_token to authorize requests. + message_send_checkpoint_endpoint: + # Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246? + async_media: false + + # Should the bridge use a websocket for connecting to the homeserver? + # The server side is currently not documented anywhere and is only implemented by mautrix-wsproxy, + # mautrix-asmux (deprecated), and hungryserv (proprietary). + websocket: false + # How often should the websocket be pinged? Pinging will be disabled if this is zero. + ping_interval_seconds: 0 + +# Application service host/registration related details. +# Changing these values requires regeneration of the registration (except when noted otherwise) +appservice: + # The address that the homeserver can use to connect to this appservice. + # Like the homeserver address, a local non-https address is recommended when the bridge is on the same machine. + # If the bridge is elsewhere, you must secure the connection yourself (e.g. with https or wireguard) + # If you want to use https, you need to use a reverse proxy. The bridge does not have TLS support built in. + address: {{ matrix_mautrix_bluesky_appservice_address | to_json }} + # A public address that external services can use to reach this appservice. + # This is only needed for things like public media. A reverse proxy is generally necessary when using this field. + # This value doesn't affect the registration file. + public_address: {{ matrix_mautrix_bluesky_appservice_public_address | to_json }} + + # The hostname and port where this appservice should listen. + # For Docker, you generally have to change the hostname to 0.0.0.0. + hostname: 0.0.0.0 + port: 29340 + + # The unique ID of this appservice. + id: bluesky + # Appservice bot details. + bot: + # Username of the appservice bot. + username: {{ matrix_mautrix_bluesky_appservice_bot_username | to_json }} + # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty + # to leave display name/avatar as-is. + displayname: {{ matrix_mautrix_bluesky_appservice_bot_displayname | to_json }} + avatar: {{ matrix_mautrix_bluesky_appservice_bot_avatar | to_json }} + + # Whether to receive ephemeral events via appservice transactions. + ephemeral_events: true + # Should incoming events be handled asynchronously? + # This may be necessary for large public instances with lots of messages going through. + # However, messages will not be guaranteed to be bridged in the same order they were sent in. + # This value doesn't affect the registration file. + async_transactions: false + # Whether to use MSC4190 instead of appservice login to create the bridge bot device. + # Requires the homeserver to support MSC4190 and the device masquerading parts of MSC3202. + # Only relevant when using end-to-bridge encryption, required when using encryption with next-gen auth (MSC3861). + msc4190: false + + # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. + as_token: {{ matrix_mautrix_bluesky_appservice_token | to_json }} + hs_token: {{ matrix_mautrix_bluesky_homeserver_token | to_json }} + + # Localpart template of MXIDs for remote users. + # {% raw %}{{.}}{% endraw %} is replaced with the internal ID of the user. + username_template: "{% raw %}bluesky_{{.}}{% endraw %}" + +# Config options that affect the Matrix connector of the bridge. +matrix: + # Whether the bridge should send the message status as a custom com.beeper.message_send_status event. + message_status_events: false + # Whether the bridge should send a read receipt after successfully bridging a message. + delivery_receipts: false + # Whether the bridge should send error notices via m.notice events when a message fails to bridge. + message_error_notices: true + # Whether the bridge should update the m.direct account data event when double puppeting is enabled. + sync_direct_chat_list: true + # Whether created rooms should have federation enabled. If false, created portal rooms + # will never be federated. Changing this option requires recreating rooms. + federate_rooms: {{ matrix_mautrix_bluesky_matrix_federate_rooms | to_json }} + # The threshold as bytes after which the bridge should roundtrip uploads via the disk + # rather than keeping the whole file in memory. + upload_file_threshold: 5242880 + +# Segment-compatible analytics endpoint for tracking some events, like provisioning API login and encryption errors. +analytics: + # API key to send with tracking requests. Tracking is disabled if this is null. + token: null + # Address to send tracking requests to. + url: https://api.segment.io/v1/track + # Optional user ID for tracking events. If null, defaults to using Matrix user ID. + user_id: null + +# Settings for provisioning API +provisioning: + # Prefix for the provisioning API paths. + prefix: /_matrix/provision + # Shared secret for authentication. If set to "generate" or null, a random secret will be generated, + # or if set to "disable", the provisioning API will be disabled. + shared_secret: {{ matrix_mautrix_bluesky_provisioning_shared_secret | to_json }} + # Whether to allow provisioning API requests to be authed using Matrix access tokens. + # This follows the same rules as double puppeting to determine which server to contact to check the token, + # which means that by default, it only works for users on the same server as the bridge. + allow_matrix_auth: true + # Enable debug API at /debug with provisioning authentication. + debug_endpoints: false + +# Some networks require publicly accessible media download links (e.g. for user avatars when using Discord webhooks). +# These settings control whether the bridge will provide such public media access. +public_media: + # Should public media be enabled at all? + # The public_address field under the appservice section MUST be set when enabling public media. + enabled: false + # A key for signing public media URLs. + # If set to "generate", a random key will be generated. + signing_key: "" + # Number of seconds that public media URLs are valid for. + # If set to 0, URLs will never expire. + expiry: 0 + # Length of hash to use for public media URLs. Must be between 0 and 32. + hash_length: 32 + +# Settings for converting remote media to custom mxc:// URIs instead of reuploading. +# More details can be found at https://docs.mau.fi/bridges/go/discord/direct-media.html +direct_media: + # Should custom mxc:// URIs be used instead of reuploading media? + enabled: false + # The server name to use for the custom mxc:// URIs. + # This server name will effectively be a real Matrix server, it just won't implement anything other than media. + # You must either set up .well-known delegation from this domain to the bridge, or proxy the domain directly to the bridge. + server_name: discord-media.example.com + # Optionally a custom .well-known response. This defaults to `server_name:443` + well_known_response: + # Optionally specify a custom prefix for the media ID part of the MXC URI. + media_id_prefix: + # If the remote network supports media downloads over HTTP, then the bridge will use MSC3860/MSC3916 + # media download redirects if the requester supports it. Optionally, you can force redirects + # and not allow proxying at all by setting this to false. + # This option does nothing if the remote network does not support media downloads over HTTP. + allow_proxy: true + # Matrix server signing key to make the federation tester pass, same format as synapse's .signing.key file. + # This key is also used to sign the mxc:// URIs to ensure only the bridge can generate them. + server_key: "" + +# Settings for backfilling messages. +# Note that the exact way settings are applied depends on the network connector. +# See https://docs.mau.fi/bridges/general/backfill.html for more details. +backfill: + # Whether to do backfilling at all. + enabled: {{ matrix_mautrix_bluesky_backfill_enabled | to_json }} + # Maximum number of messages to backfill in empty rooms. + max_initial_messages: {{ matrix_mautrix_bluesky_backfill_max_initial_messages | to_json }} + # Maximum number of missed messages to backfill after bridge restarts. + max_catchup_messages: {{ matrix_mautrix_bluesky_backfill_max_catchup_messages | to_json }} + # If a backfilled chat is older than this number of hours, + # mark it as read even if it's unread on the remote network. + unread_hours_threshold: 720 + # Settings for backfilling threads within other backfills. + threads: + # Maximum number of messages to backfill in a new thread. + max_initial_messages: 50 + # Settings for the backwards backfill queue. This only applies when connecting to + # Beeper as standard Matrix servers don't support inserting messages into history. + queue: + # Should the backfill queue be enabled? + enabled: false + # Number of messages to backfill in one batch. + batch_size: 100 + # Delay between batches in seconds. + batch_delay: 20 + # Maximum number of batches to backfill per portal. + # If set to -1, all available messages will be backfilled. + max_batches: -1 + # Optional network-specific overrides for max batches. + # Interpretation of this field depends on the network connector. + max_batches_override: {} + +# Settings for enabling double puppeting +double_puppet: + # Servers to always allow double puppeting from. + # This is only for other servers and should NOT contain the server the bridge is on. + servers: {} + # Whether to allow client API URL discovery for other servers. When using this option, + # users on other servers can use double puppeting even if their server URLs aren't + # explicitly added to the servers map above. + allow_discovery: false + # Shared secrets for automatic double puppeting. + # See https://docs.mau.fi/bridges/general/double-puppeting.html for instructions. + secrets: {{ matrix_mautrix_bluesky_double_puppet_secrets | to_json }} + +# End-to-bridge encryption support options. +# +# See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info. +encryption: + # Whether to enable encryption at all. If false, the bridge will not function in encrypted rooms. + allow: {{ matrix_mautrix_bluesky_bridge_encryption_allow | to_json }} + # Whether to force-enable encryption in all bridged rooms. + default: {{ matrix_mautrix_bluesky_bridge_encryption_default | to_json }} + # Whether to require all messages to be encrypted and drop any unencrypted messages. + require: {{ matrix_mautrix_bluesky_bridge_encryption_require | to_json }} + # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. + # This option is not yet compatible with standard Matrix servers like Synapse and should not be used. + appservice: {{ matrix_mautrix_bluesky_bridge_encryption_appservice | to_json }} + # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. + # You must use a client that supports requesting keys from other users to use this feature. + allow_key_sharing: {{ matrix_mautrix_bluesky_bridge_encryption_key_sharing_allow | to_json }} + # Pickle key for encrypting encryption keys in the bridge database. + # If set to generate, a random key will be generated. + pickle_key: {{ matrix_mautrix_bluesky_bridge_encryption_pickle_key | to_json }} + # Options for deleting megolm sessions from the bridge. + delete_keys: + # Beeper-specific: delete outbound sessions when hungryserv confirms + # that the user has uploaded the key to key backup. + delete_outbound_on_ack: false + # Don't store outbound sessions in the inbound table. + dont_store_outbound: false + # Ratchet megolm sessions forward after decrypting messages. + ratchet_on_decrypt: false + # Delete fully used keys (index >= max_messages) after decrypting messages. + delete_fully_used_on_decrypt: false + # Delete previous megolm sessions from same device when receiving a new one. + delete_prev_on_new_session: false + # Delete megolm sessions received from a device when the device is deleted. + delete_on_device_delete: false + # Periodically delete megolm sessions when 2x max_age has passed since receiving the session. + periodically_delete_expired: false + # Delete inbound megolm sessions that don't have the received_at field used for + # automatic ratcheting and expired session deletion. This is meant as a migration + # to delete old keys prior to the bridge update. + delete_outdated_inbound: false + # What level of device verification should be required from users? + # + # Valid levels: + # unverified - Send keys to all device in the room. + # cross-signed-untrusted - Require valid cross-signing, but trust all cross-signing keys. + # cross-signed-tofu - Require valid cross-signing, trust cross-signing keys on first use (and reject changes). + # cross-signed-verified - Require valid cross-signing, plus a valid user signature from the bridge bot. + # Note that creating user signatures from the bridge bot is not currently possible. + # verified - Require manual per-device verification + # (currently only possible by modifying the `trust` column in the `crypto_device` database table). + verification_levels: + # Minimum level for which the bridge should send keys to when bridging messages from the remote network to Matrix. + receive: unverified + # Minimum level that the bridge should accept for incoming Matrix messages. + send: unverified + # Minimum level that the bridge should require for accepting key requests. + share: cross-signed-tofu + # Options for Megolm room key rotation. These options allow you to configure the m.room.encryption event content. + # See https://spec.matrix.org/v1.10/client-server-api/#mroomencryption for more information about that event. + rotation: + # Enable custom Megolm room key rotation settings. Note that these + # settings will only apply to rooms created after this option is set. + enable_custom: false + # The maximum number of milliseconds a session should be used + # before changing it. The Matrix spec recommends 604800000 (a week) + # as the default. + milliseconds: 604800000 + # The maximum number of messages that should be sent with a given a + # session before changing it. The Matrix spec recommends 100 as the + # default. + messages: 100 + # Disable rotating keys when a user's devices change? + # You should not enable this option unless you understand all the implications. + disable_device_change_key_rotation: false + +# Logging config. See https://github.com/tulir/zeroconfig for details. +logging: + min_level: {{ matrix_mautrix_bluesky_logging_level | to_json }} + writers: + - type: stdout + format: pretty-colored diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2.license new file mode 100644 index 000000000..826be4a75 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/templates/config.yaml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2025 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-bluesky/templates/labels.j2 new file mode 100644 index 000000000..bec40b880 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/templates/labels.j2 @@ -0,0 +1,52 @@ +{# +SPDX-FileCopyrightText: 2025 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +{% if matrix_mautrix_bluesky_container_labels_traefik_enabled %} +traefik.enable=true + +{% if matrix_mautrix_bluesky_container_labels_traefik_docker_network %} +traefik.docker.network={{ matrix_mautrix_bluesky_container_labels_traefik_docker_network }} +{% endif %} + +traefik.http.services.matrix-mautrix-bluesky-metrics.loadbalancer.server.port=8000 + +{% if matrix_mautrix_bluesky_container_labels_metrics_enabled %} +############################################################ +# # +# Metrics # +# # +############################################################ + +{% if matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_enabled %} +traefik.http.middlewares.matrix-mautrix-bluesky-metrics-basic-auth.basicauth.users={{ matrix_mautrix_bluesky_container_labels_metrics_middleware_basic_auth_users }} +traefik.http.routers.matrix-mautrix-bluesky-metrics.middlewares=matrix-mautrix-bluesky-metrics-basic-auth +{% endif %} + +traefik.http.routers.matrix-mautrix-bluesky-metrics.rule={{ matrix_mautrix_bluesky_container_labels_metrics_traefik_rule }} + +{% if matrix_mautrix_bluesky_container_labels_metrics_traefik_priority | int > 0 %} +traefik.http.routers.matrix-mautrix-bluesky-metrics.priority={{ matrix_mautrix_bluesky_container_labels_metrics_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-mautrix-bluesky-metrics.service=matrix-mautrix-bluesky-metrics +traefik.http.routers.matrix-mautrix-bluesky-metrics.entrypoints={{ matrix_mautrix_bluesky_container_labels_metrics_traefik_entrypoints }} + +traefik.http.routers.matrix-mautrix-bluesky-metrics.tls={{ matrix_mautrix_bluesky_container_labels_metrics_traefik_tls | to_json }} +{% if matrix_mautrix_bluesky_container_labels_metrics_traefik_tls %} +traefik.http.routers.matrix-mautrix-bluesky-metrics.tls.certResolver={{ matrix_mautrix_bluesky_container_labels_metrics_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Metrics # +# # +############################################################ +{% endif %} + + +{% endif %} + +{{ matrix_mautrix_bluesky_container_labels_additional_labels }} diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2 b/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2 new file mode 100644 index 000000000..5dd291dd2 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2 @@ -0,0 +1,48 @@ +#jinja2: lstrip_blocks: "True" +[Unit] +Description=Matrix Mautrix Bluesky bridge +{% for service in matrix_mautrix_bluesky_systemd_required_services_list %} +Requires={{ service }} +After={{ service }} +{% endfor %} +{% for service in matrix_mautrix_bluesky_systemd_wanted_services_list %} +Wants={{ service }} +{% endfor %} +DefaultDependencies=no + +[Service] +Type=simple +Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-bluesky 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-bluesky 2>/dev/null || true' + +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ + --rm \ + --name=matrix-mautrix-bluesky \ + --log-driver=none \ + --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ + --cap-drop=ALL \ + --network={{ matrix_mautrix_bluesky_container_network }} \ + --mount type=bind,src={{ matrix_mautrix_bluesky_config_path }},dst=/config,ro \ + --mount type=bind,src={{ matrix_mautrix_bluesky_data_path }},dst=/data \ + --label-file={{ matrix_mautrix_bluesky_base_path }}/labels \ + {% for arg in matrix_mautrix_bluesky_container_extra_arguments %} + {{ arg }} \ + {% endfor %} + {{ matrix_mautrix_bluesky_docker_image }} \ + /usr/bin/mautrix-bluesky -c /config/config.yaml -r /config/registration.yaml --no-update + +{% for network in matrix_mautrix_bluesky_container_additional_networks %} +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-bluesky +{% endfor %} + +ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-bluesky + +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-bluesky 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-bluesky 2>/dev/null || true' +Restart=always +RestartSec=30 +SyslogIdentifier=matrix-mautrix-bluesky + +[Install] +WantedBy=multi-user.target diff --git a/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2.license b/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2.license new file mode 100644 index 000000000..6fe7fc50c --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-bluesky/templates/systemd/matrix-mautrix-bluesky.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2025 MDAD project contributors +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml index 5e8ee7f53..fa1a8e777 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-discord/defaults/main.yml @@ -1,19 +1,33 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-discord is a Matrix <-> Discord bridge # Project source code URL: https://github.com/mautrix/discord matrix_mautrix_discord_enabled: true +matrix_mautrix_discord_hostname: "" +matrix_mautrix_discord_path_prefix: / +matrix_mautrix_discord_scheme: https + matrix_mautrix_discord_container_image_self_build: false matrix_mautrix_discord_container_image_self_build_repo: "https://mau.dev/mautrix/discord.git" matrix_mautrix_discord_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_discord_version == 'latest' else matrix_mautrix_discord_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/discord -matrix_mautrix_discord_version: v0.7.1 +matrix_mautrix_discord_version: v0.7.2 # See: https://mau.dev/mautrix/discord/container_registry -matrix_mautrix_discord_docker_image: "{{ matrix_mautrix_discord_docker_image_name_prefix }}mautrix/discord:{{ matrix_mautrix_discord_version }}" -matrix_mautrix_discord_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_discord_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_discord_docker_image: "{{ matrix_mautrix_discord_docker_image_registry_prefix }}mautrix/discord:{{ matrix_mautrix_discord_version }}" +matrix_mautrix_discord_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_discord_container_image_self_build else matrix_mautrix_discord_docker_image_registry_prefix_upstream }}" +matrix_mautrix_discord_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_discord_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_discord_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_discord_docker_image_force_pull: "{{ matrix_mautrix_discord_docker_image.endswith(':latest') }}" matrix_mautrix_discord_base_path: "{{ matrix_base_data_path }}/mautrix-discord" @@ -22,11 +36,31 @@ matrix_mautrix_discord_data_path: "{{ matrix_mautrix_discord_base_path }}/data" matrix_mautrix_discord_docker_src_files_path: "{{ matrix_mautrix_discord_base_path }}/docker-src" matrix_mautrix_discord_homeserver_address: "" -matrix_mautrix_discord_homeserver_public_address: '' matrix_mautrix_discord_homeserver_domain: "{{ matrix_domain }}" matrix_mautrix_discord_appservice_address: "http://matrix-mautrix-discord:8080" -matrix_mautrix_discord_command_prefix: "!discord" +matrix_mautrix_discord_bridge_command_prefix: "!discord" + +# Publicly accessible base URL that Discord can use to reach the bridge, used for avatars in relay mode. +# If not set, avatars will not be bridged. Only the /mautrix-discord/avatar/{server}/{id}/{hash} endpoint is used on this address. +# This should not have a trailing slash, the endpoint above will be appended to the provided address. +matrix_mautrix_discord_bridge_public_address: "{{ (matrix_mautrix_discord_scheme + '://' + matrix_mautrix_discord_hostname + (matrix_mautrix_discord_path_prefix if matrix_mautrix_discord_path_prefix != '/' else '')) if matrix_mautrix_discord_hostname else '' }}" + +# A random key used to sign the avatar URLs. The bridge will only accept requests with a valid signature. +matrix_mautrix_discord_bridge_avatar_proxy_key: '' + +# Localpart template of MXIDs for Discord users. +# {{ '{{.}}' }} is replaced with the internal ID of the Discord user. +matrix_mautrix_discord_bridge_username_template: "{% raw %}discord_{{.}}{% endraw %}" + +# Displayname template for Discord users. This is also used as the room name in DMs if private_chat_portal_meta is enabled. +matrix_mautrix_discord_bridge_displayname_template: "{% raw %}{{or .GlobalName .Username}}{{if .Bot}} (bot){{end}}{% endraw %}" + +# Displayname template for Discord channels (bridged as rooms, or spaces when type=4). +matrix_mautrix_discord_bridge_channel_name_template: "{% raw %}{{if or (eq .Type 3) (eq .Type 4)}}{{.Name}}{{else}}#{{.Name}}{{end}}{% endraw %}" + +# Displayname template for Discord guilds (bridged as spaces). +matrix_mautrix_discord_bridge_guild_name_template: "{% raw %}{{.Name}}{% endraw %}" matrix_mautrix_discord_bridge_permissions: | {{ @@ -40,6 +74,38 @@ matrix_mautrix_discord_container_additional_networks: "{{ matrix_mautrix_discord matrix_mautrix_discord_container_additional_networks_auto: [] matrix_mautrix_discord_container_additional_networks_custom: [] +# matrix_mautrix_discord_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. +# See `../templates/labels.j2` for details. +# +# To inject your own other container labels, see `matrix_mautrix_discord_container_labels_additional_labels`. +matrix_mautrix_discord_container_labels_traefik_enabled: true +matrix_mautrix_discord_container_labels_traefik_docker_network: "{{ matrix_mautrix_discord_container_network }}" +matrix_mautrix_discord_container_labels_traefik_hostname: "{{ matrix_mautrix_discord_hostname }}" +# The path prefix must either be `/` or not end with a slash (e.g. `/matrix-alertmanager-receiver`). +matrix_mautrix_discord_container_labels_traefik_path_prefix: "{{ matrix_mautrix_discord_path_prefix }}" +matrix_mautrix_discord_container_labels_traefik_entrypoints: web-secure +matrix_mautrix_discord_container_labels_traefik_tls_certResolver: default # noqa var-naming + +# Controls whether labels will be added that expose the bridge's avatar proxy (`/mautrix-discord/avatar/{server}/{id}/{hash}`). +# See: matrix_mautrix_discord_bridge_public_address +matrix_mautrix_discord_container_labels_avatar_proxy_enabled: "{{ matrix_mautrix_discord_bridge_public_address != '' }}" +matrix_mautrix_discord_container_labels_avatar_proxy_hostname: "{{ matrix_mautrix_discord_container_labels_traefik_hostname }}" +matrix_mautrix_discord_container_labels_avatar_proxy_path_prefix: "{{ matrix_mautrix_discord_container_labels_traefik_path_prefix if matrix_mautrix_discord_container_labels_traefik_path_prefix == '/' else (matrix_mautrix_discord_container_labels_traefik_path_prefix + '/') }}mautrix-discord/avatar" +matrix_mautrix_discord_container_labels_avatar_proxy_traefik_rule: "Host(`{{ matrix_mautrix_discord_container_labels_traefik_hostname }}`) && PathPrefix(`{{ matrix_mautrix_discord_container_labels_avatar_proxy_path_prefix }}`)" +matrix_mautrix_discord_container_labels_avatar_proxy_traefik_priority: 0 +matrix_mautrix_discord_container_labels_avatar_proxy_traefik_entrypoints: "{{ matrix_mautrix_discord_container_labels_traefik_entrypoints }}" +matrix_mautrix_discord_container_labels_avatar_proxy_traefik_tls: "{{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_entrypoints != 'web' }}" +matrix_mautrix_discord_container_labels_avatar_proxy_traefik_tls_certResolver: "{{ matrix_mautrix_discord_container_labels_traefik_tls_certResolver }}" # noqa var-naming + +# matrix_mautrix_discord_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. +# See `../templates/labels.j2` for details. +# +# Example: +# matrix_mautrix_discord_container_labels_additional_labels: | +# my.label=1 +# another.label="here" +matrix_mautrix_discord_container_labels_additional_labels: '' + # A list of extra arguments to pass to the container matrix_mautrix_discord_container_extra_arguments: [] @@ -56,9 +122,13 @@ matrix_mautrix_discord_appservice_token: '' matrix_mautrix_discord_homeserver_token: '' matrix_mautrix_discord_appservice_bot_username: discordbot +matrix_mautrix_discord_appservice_bot_displayname: Discord bridge bot +matrix_mautrix_discord_appservice_bot_avatar: mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC + +matrix_mautrix_discord_provisioning_shared_secret: disable # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug, trace matrix_mautrix_discord_logging_level: 'warn' # Whether or not created rooms should have federation enabled. @@ -104,9 +174,18 @@ matrix_mautrix_discord_bridge_login_shared_secret_map: "{{ matrix_mautrix_discor matrix_mautrix_discord_bridge_login_shared_secret_map_auto: {} matrix_mautrix_discord_bridge_login_shared_secret_map_custom: {} + # Servers to always allow double puppeting from -matrix_mautrix_discord_bridge_double_puppet_server_map: - "{{ matrix_mautrix_discord_homeserver_domain : matrix_mautrix_discord_homeserver_address }}" +matrix_mautrix_discord_bridge_double_puppet_server_map: "{{ matrix_mautrix_discord_bridge_double_puppet_server_map_default | combine(matrix_mautrix_discord_bridge_double_puppet_server_map_auto) | combine(matrix_mautrix_discord_bridge_double_puppet_server_map_custom) }}" +matrix_mautrix_discord_bridge_double_puppet_server_map_default: |- + {{ + {} + | combine({ + matrix_beeper_linkedin_homeserver_domain: matrix_beeper_linkedin_homeserver_address + }) + }} +matrix_mautrix_discord_bridge_double_puppet_server_map_auto: {} +matrix_mautrix_discord_bridge_double_puppet_server_map_custom: {} # Default mautrix-discord configuration template which covers the generic use case. # You can customize it by controlling the various variables inside it. @@ -151,6 +230,9 @@ matrix_mautrix_discord_registration: "{{ matrix_mautrix_discord_registration_yam # Enable End-to-bridge encryption matrix_mautrix_discord_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" matrix_mautrix_discord_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" +matrix_mautrix_discord_bridge_encryption_require: false +matrix_mautrix_discord_bridge_encryption_appservice: false +matrix_mautrix_discord_bridge_encryption_plaintext_mentions: false matrix_mautrix_discord_bridge_encryption_key_sharing_allow: "{{ matrix_mautrix_discord_bridge_encryption_allow }}" # On Conduit versions before 0.5.0 this option prevented users from joining spaces created by the bridge. diff --git a/roles/custom/matrix-bridge-mautrix-discord/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-discord/tasks/main.yml index 19698f9f1..dc5ccdd4e 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-discord/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_install.yml index 4775b5fee..e08b1c34c 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: @@ -93,6 +100,16 @@ owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" +- name: Ensure mautrix-discord support files installed + ansible.builtin.template: + src: "{{ role_path }}/templates/{{ item }}.j2" + dest: "{{ matrix_mautrix_discord_base_path }}/{{ item }}" + mode: 0640 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - labels + - name: Ensure mautrix-discord container network is created community.general.docker_network: enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" diff --git a/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_uninstall.yml index ade37c2f8..0b5ddc54f 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-discord/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-discord service diff --git a/roles/custom/matrix-bridge-mautrix-discord/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-discord/tasks/validate_config.yml index 96cffd4a7..a354dbcd6 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-discord/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-discord settings not defined @@ -9,15 +15,20 @@ - {'name': 'matrix_mautrix_discord_appservice_token', when: true} - {'name': 'matrix_mautrix_discord_homeserver_address', when: true} - {'name': 'matrix_mautrix_discord_homeserver_token', when: true} - - {'name': 'matrix_mautrix_discord_homeserver_public_address', when: true} + - {'name': 'matrix_mautrix_discord_bridge_public_address', when: true} - {'name': 'matrix_mautrix_discord_container_network', when: true} - {'name': 'matrix_mautrix_discord_database_hostname', when: "{{ matrix_mautrix_discord_database_engine == 'postgres' }}"} + - {'name': 'matrix_mautrix_discord_container_labels_avatar_proxy_hostname', when: "{{ matrix_mautrix_discord_container_labels_avatar_proxy_enabled }}"} + - {'name': 'matrix_mautrix_discord_container_labels_avatar_proxy_path_prefix', when: "{{ matrix_mautrix_discord_container_labels_avatar_proxy_enabled }}"} -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-discord settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_discord_login_shared_secret', 'new': ''} + - {'old': 'matrix_mautrix_discord_homeserver_public_address', 'new': 'matrix_mautrix_discord_bridge_public_address'} + - {'old': 'matrix_mautrix_discord_command_prefix', 'new': 'matrix_mautrix_discord_bridge_command_prefix'} + - {'old': 'matrix_mautrix_discord_docker_image_name_prefix', 'new': 'matrix_mautrix_discord_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2 index 56c3bcfb8..c859c1149 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2 @@ -3,13 +3,12 @@ homeserver: # The address that this appservice can use to connect to the homeserver. address: {{ matrix_mautrix_discord_homeserver_address | to_json }} - # Publicly accessible base URL for media, used for avatars in relay mode. - # If not set, the connection address above will be used. - public_address: {{ matrix_mautrix_discord_homeserver_public_address | to_json }} - # The domain of the homeserver (for MXIDs, etc). + # The domain of the homeserver (also known as server_name, used for MXIDs, etc). domain: {{ matrix_mautrix_discord_homeserver_domain | to_json }} - # Is the homeserver actually mautrix-asmux? - asmux: false + + # What software is the homeserver running? + # Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here. + software: standard # The URL to push real-time bridge status to. # If set, the bridge will make POST requests to this URL whenever a user's discord connection state changes. # The bridge will use the appservice as_token to authorize requests. @@ -19,6 +18,13 @@ homeserver: # Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246? async_media: false + # Should the bridge use a websocket for connecting to the homeserver? + # The server side is currently not documented anywhere and is only implemented by mautrix-wsproxy, + # mautrix-asmux (deprecated), and hungryserv (proprietary). + websocket: false + # How often should the websocket be pinged? Pinging will be disabled if this is zero. + ping_interval_seconds: 0 + # Application service host/registration related details. # Changing these values requires regeneration of the registration. appservice: @@ -31,13 +37,14 @@ appservice: # Database config. database: - # The database type. "sqlite3" and "postgres" are supported. - type: {{ matrix_mautrix_discord_appservice_database_type|to_json }} + # The database type. "sqlite3-fk-wal" and "postgres" are supported. + type: {{ matrix_mautrix_discord_appservice_database_type | to_json }} # The database URI. - # SQLite: File name is enough. https://github.com/mattn/go-sqlite3#connection-string + # SQLite: A raw file path is supported, but `file:?_txlock=immediate` is recommended. + # https://github.com/mattn/go-sqlite3#connection-string # Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable # To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql - uri: {{ matrix_mautrix_discord_appservice_database_uri|to_json }} + uri: {{ matrix_mautrix_discord_appservice_database_uri | to_json }} # Maximum number of connections. Mostly relevant for Postgres. max_open_conns: 20 max_idle_conns: 2 @@ -51,15 +58,21 @@ appservice: # Appservice bot details. bot: # Username of the appservice bot. - username: {{ matrix_mautrix_discord_appservice_bot_username|to_json }} + username: {{ matrix_mautrix_discord_appservice_bot_username | to_json }} # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty # to leave display name/avatar as-is. - displayname: Discord bridge bot - avatar: mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC + displayname: {{ matrix_mautrix_discord_appservice_bot_displayname | to_json }} + avatar: {{ matrix_mautrix_discord_appservice_bot_avatar | to_json }} + # Whether or not to receive ephemeral events via appservice transactions. # Requires MSC2409 support (i.e. Synapse 1.22+). ephemeral_events: true + # Should incoming events be handled asynchronously? + # This may be necessary for large public instances with lots of messages going through. + # However, messages will not be guaranteed to be bridged in the same order they were sent in. + async_transactions: false + # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. as_token: {{ matrix_mautrix_discord_appservice_token | to_json }} hs_token: {{ matrix_mautrix_discord_homeserver_token | to_json }} @@ -67,51 +80,67 @@ appservice: # Bridge config bridge: # Localpart template of MXIDs for Discord users. - # {{ '{{.}}' }} is replaced with the internal ID of the Discord user. - username_template: "{{ 'discord_{{.}}' }}" + # {% raw %}{{.}}{% endraw %} is replaced with the internal ID of the Discord user. + username_template: {{ matrix_mautrix_discord_bridge_username_template | to_json }} # Displayname template for Discord users. This is also used as the room name in DMs if private_chat_portal_meta is enabled. # Available variables: - # {{ '{{.ID}}' }} - Internal user ID - # {{ '{{.Username}}' }} - Legacy display/username on Discord - # {{ '{{.GlobalName}}' }} - New displayname on Discord - # {{ '{{.Discriminator}}' }} - The 4 numbers after the name on Discord - # {{ '{{.Bot}}' }} - Whether the user is a bot - # {{ '{{.System}}' }} - Whether the user is an official system user - # {{ '{{.Webhook}}' }} - Whether the user is a webhook and is not an application - # {{ '{{.Application}}' }} - Whether the user is an application - displayname_template: "{{ '{{or .GlobalName .Username}}{{if .Bot}} (bot){{end}}' }}" + # .ID - Internal user ID + # .Username - Legacy display/username on Discord + # .GlobalName - New displayname on Discord + # .Discriminator - The 4 numbers after the name on Discord + # .Bot - Whether the user is a bot + # .System - Whether the user is an official system user + # .Webhook - Whether the user is a webhook and is not an application + # .Application - Whether the user is an application + displayname_template: {{ matrix_mautrix_discord_bridge_displayname_template | to_json }} # Displayname template for Discord channels (bridged as rooms, or spaces when type=4). # Available variables: - # {{ '{{.Name}}' }} - Channel name, or user displayname (pre-formatted with displayname_template) in DMs. - # {{ '{{.ParentName}}' }} - Parent channel name (used for categories). - # {{ '{{.GuildName}}' }} - Guild name. - # {{ '{{.NSFW}}' }} - Whether the channel is marked as NSFW. - # {{ '{{.Type}}' }} - Channel type (see values at https://github.com/bwmarrin/discordgo/blob/v0.25.0/structs.go#L251-L267) - channel_name_template: "{{ '{{if or (eq .Type 3) (eq .Type 4)}}{{.Name}}{{else}}#{{.Name}}{{end}}' }}" + # .Name - Channel name, or user displayname (pre-formatted with displayname_template) in DMs. + # .ParentName - Parent channel name (used for categories). + # .GuildName - Guild name. + # .NSFW - Whether the channel is marked as NSFW. + # .Type - Channel type (see values at https://github.com/bwmarrin/discordgo/blob/v0.25.0/structs.go#L251-L267) + channel_name_template: {{ matrix_mautrix_discord_bridge_channel_name_template | to_json }} # Displayname template for Discord guilds (bridged as spaces). # Available variables: - # {{ '{{.Name}}' }} - Guild name - guild_name_template: "{{ '{{.Name}}' }}" - # Should the bridge explicitly set the avatar and room name for DM portal rooms? - # This is implicitly enabled in encrypted rooms. + # .Name - Guild name + guild_name_template: {{ matrix_mautrix_discord_bridge_guild_name_template | to_json }} # Whether to explicitly set the avatar and room name for private chat portal rooms. # If set to `default`, this will be enabled in encrypted rooms and disabled in unencrypted rooms. # If set to `always`, all DM rooms will have explicit names and avatars set. # If set to `never`, DM rooms will never have names and avatars set. private_chat_portal_meta: default + + # Publicly accessible base URL that Discord can use to reach the bridge, used for avatars in relay mode. + # If not set, avatars will not be bridged. Only the /mautrix-discord/avatar/{server}/{id}/{hash} endpoint is used on this address. + # This should not have a trailing slash, the endpoint above will be appended to the provided address. + public_address: {{ matrix_mautrix_discord_bridge_public_address | to_json }} + # A random key used to sign the avatar URLs. The bridge will only accept requests with a valid signature. + avatar_proxy_key: {{ matrix_mautrix_discord_bridge_avatar_proxy_key | to_json }} + portal_message_buffer: 128 + # Number of private channel portals to create on bridge startup. # Other portals will be created when receiving messages. startup_private_channel_create_limit: 5 # Should the bridge send a read receipt from the bridge bot when a message has been sent to Discord? delivery_receipts: false # Whether the bridge should send the message status as a custom com.beeper.message_send_status event. - message_status_events: true + message_status_events: false # Whether the bridge should send error notices via m.notice events when a message fails to bridge. message_error_notices: true # Should the bridge use space-restricted join rules instead of invite-only for guild rooms? # This can avoid unnecessary invite events in guild rooms when members are synced in. - restricted_rooms: {{ matrix_mautrix_discord_bridge_restricted_rooms|to_json }} + restricted_rooms: {{ matrix_mautrix_discord_bridge_restricted_rooms | to_json }} + # Should the bridge automatically join the user to threads on Discord when the thread is opened on Matrix? + # This only works with clients that support thread read receipts (MSC3771 added in Matrix v1.4). + autojoin_thread_on_open: true + # Should inline fields in Discord embeds be bridged as HTML tables to Matrix? + # Tables aren't supported in all clients, but are the only way to emulate the Discord inline field UI. + embed_fields_as_tables: true + # Should guild channels be muted when the portal is created? This only meant for single-user instances, + # it won't mute it for all users if there are multiple Matrix users in the same Discord guild. + mute_channels_on_create: false # Should the bridge update the m.direct account data event when double puppeting is enabled. # Note that updating the m.direct event is not atomic (except with mautrix-asmux) # and is therefore prone to race conditions. @@ -120,7 +149,7 @@ bridge: # This field will automatically be changed back to false after it, except if the config file is not writable. resend_bridge_info: false # Should incoming custom emoji reactions be bridged as mxc:// URIs? - # If set to false, custom emoji reactions will be bridged as the shortcode instead, and the image wont be available. + # If set to false, custom emoji reactions will be bridged as the shortcode instead, and the image won't be available. custom_emoji_reactions: true # Should the bridge attempt to completely delete portal rooms when a channel is deleted on Discord? # If true, the bridge will try to kick Matrix users from the room. Otherwise, the bridge only makes ghosts leave. @@ -130,7 +159,7 @@ bridge: delete_guild_on_leave: true # Whether or not created rooms should have federation enabled. # If false, created portal rooms will never be federated. - federate_rooms: {{ matrix_mautrix_discord_federate_rooms|to_json }} + federate_rooms: {{ matrix_mautrix_discord_federate_rooms | to_json }} # Prefix messages from webhooks with the profile info? This can be used along with a custom displayname_template # to better handle webhooks that change their name all the time (like ones used by bridges). prefix_webhook_messages: false @@ -140,24 +169,29 @@ bridge: # like the official client does? The other option is sending the media in the message send request as a form part # (which is always used by bots and webhooks). use_discord_cdn_upload: true + # Proxy for Discord connections + proxy: # Should mxc uris copied from Discord be cached? # This can be `never` to never cache, `unencrypted` to only cache unencrypted mxc uris, or `always` to cache everything. # If you have a media repo that generates non-unique mxc uris, you should set this to never. cache_media: unencrypted - # Patterns for converting Discord media to custom mxc:// URIs instead of reuploading. - # Each of the patterns can be set to null to disable custom URIs for that type of media. + # Settings for converting Discord media to custom mxc:// URIs instead of reuploading. # More details can be found at https://docs.mau.fi/bridges/go/discord/direct-media.html - media_patterns: + direct_media: # Should custom mxc:// URIs be used instead of reuploading media? enabled: false - # Pattern for normal message attachments. - attachments: {% raw %}mxc://discord-media.mau.dev/attachments|{{.ChannelID}}|{{.AttachmentID}}|{{.FileName}}{% endraw %} - # Pattern for custom emojis. - emojis: {% raw %}mxc://discord-media.mau.dev/emojis|{{.ID}}.{{.Ext}}{% endraw %} - # Pattern for stickers. Note that animated lottie stickers will not be converted if this is enabled. - stickers: {% raw %}mxc://discord-media.mau.dev/stickers|{{.ID}}.{{.Ext}}{% endraw %} - # Pattern for static user avatars. - avatars: {% raw %}mxc://discord-media.mau.dev/avatars|{{.UserID}}|{{.AvatarID}}.{{.Ext}}{% endraw %} + # The server name to use for the custom mxc:// URIs. + # This server name will effectively be a real Matrix server, it just won't implement anything other than media. + # You must either set up .well-known delegation from this domain to the bridge, or proxy the domain directly to the bridge. + server_name: discord-media.example.com + # Optionally a custom .well-known response. This defaults to `server_name:443` + well_known_response: + # The bridge supports MSC3860 media download redirects and will use them if the requester supports it. + # Optionally, you can force redirects and not allow proxying at all by setting this to false. + allow_proxy: true + # Matrix server signing key to make the federation tester pass, same format as synapse's .signing.key file. + # This key is also used to sign the mxc:// URIs to ensure only the bridge can generate them. + server_key: "" # Settings for converting animated stickers. animated_sticker: # Format to which animated stickers should be converted. @@ -173,8 +207,7 @@ bridge: height: 320 fps: 25 # only for webm, webp and gif (2, 5, 10, 20 or 25 recommended) # Servers to always allow double puppeting from - double_puppet_server_map: - "{{ matrix_mautrix_discord_homeserver_domain }}": {{ matrix_mautrix_discord_homeserver_address }} + double_puppet_server_map: {{ matrix_mautrix_discord_bridge_double_puppet_server_map | to_json }} # Allow using double puppeting from any server with a valid client .well-known file. double_puppet_allow_discovery: false # Shared secrets for https://github.com/devture/matrix-synapse-shared-secret-auth @@ -182,11 +215,10 @@ bridge: # If set, double puppeting will be enabled automatically for local users # instead of users having to find an access token and run `login-matrix` # manually. - login_shared_secret_map: {{ matrix_mautrix_discord_bridge_login_shared_secret_map|to_json }} + login_shared_secret_map: {{ matrix_mautrix_discord_bridge_login_shared_secret_map | to_json }} # The prefix for commands. Only required in non-management rooms. - command_prefix: "{{ matrix_mautrix_discord_command_prefix }}" - + command_prefix: {{ matrix_mautrix_discord_bridge_command_prefix | to_json }} # Messages sent upon joining a management room. # Markdown is supported. The defaults are listed below. management_room_text: @@ -228,15 +260,40 @@ bridge: # See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info. encryption: # Allow encryption, work in group chat rooms with e2ee enabled - allow: {{ matrix_mautrix_discord_bridge_encryption_allow|to_json }} + allow: {{ matrix_mautrix_discord_bridge_encryption_allow | to_json }} # Default to encryption, force-enable encryption in all portals the bridge creates # This will cause the bridge bot to be in private chats for the encryption to work properly. - default: {{ matrix_mautrix_discord_bridge_encryption_default|to_json }} + default: {{ matrix_mautrix_discord_bridge_encryption_default | to_json }} + # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. + appservice: {{ matrix_mautrix_discord_bridge_encryption_appservice | to_json}} # Require encryption, drop any unencrypted messages. - require: false + require: {{ matrix_mautrix_discord_bridge_encryption_require | to_json }} # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. # You must use a client that supports requesting keys from other users to use this feature. - allow_key_sharing: {{ matrix_mautrix_discord_bridge_encryption_key_sharing_allow|to_json }} + allow_key_sharing: {{ matrix_mautrix_discord_bridge_encryption_key_sharing_allow | to_json }} + # Should users mentions be in the event wire content to enable the server to send push notifications? + plaintext_mentions: {{ matrix_mautrix_discord_bridge_encryption_plaintext_mentions | to_json }} + # Options for deleting megolm sessions from the bridge. + delete_keys: + # Beeper-specific: delete outbound sessions when hungryserv confirms + # that the user has uploaded the key to key backup. + delete_outbound_on_ack: false + # Don't store outbound sessions in the inbound table. + dont_store_outbound: false + # Ratchet megolm sessions forward after decrypting messages. + ratchet_on_decrypt: false + # Delete fully used keys (index >= max_messages) after decrypting messages. + delete_fully_used_on_decrypt: false + # Delete previous megolm sessions from same device when receiving a new one. + delete_prev_on_new_session: false + # Delete megolm sessions received from a device when the device is deleted. + delete_on_device_delete: false + # Periodically delete megolm sessions when 2x max_age has passed since receiving the session. + periodically_delete_expired: false + # Delete inbound megolm sessions that don't have the received_at field used for + # automatic ratcheting and expired session deletion. This is meant as a migration + # to delete old keys prior to the bridge update. + delete_outdated_inbound: false # What level of device verification should be required from users? # # Valid levels: @@ -272,13 +329,19 @@ bridge: # default. messages: 100 + # Disable rotating keys when a user's devices change? + # You should not enable this option unless you understand all the implications. + disable_device_change_key_rotation: false + # Settings for provisioning API provisioning: # Prefix for the provisioning API paths. prefix: /_matrix/provision # Shared secret for authentication. If set to "generate", a random secret will be generated, # or if set to "disable", the provisioning API will be disabled. - shared_secret: generate + shared_secret: {{ matrix_mautrix_discord_provisioning_shared_secret | to_json }} + # Enable debug API at /debug with provisioning authentication. + debug_endpoints: false # Permissions for using the bridge. # Permitted values: @@ -291,12 +354,9 @@ bridge: # mxid - Specific user permissions: {{ matrix_mautrix_discord_bridge_permissions|to_json }} +# Logging config. See https://github.com/tulir/zeroconfig for details. logging: - directory: ./logs - file_name_format: '' - file_date_format: "2006-01-02" - file_mode: 384 - timestamp_format: Jan _2, 2006 15:04:05 - print_level: {{ matrix_mautrix_discord_logging_level | to_json }} - print_json: false - file_json: false + min_level: {{ matrix_mautrix_discord_logging_level | to_json }} + writers: + - type: stdout + format: pretty-colored diff --git a/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2.license new file mode 100644 index 000000000..9c33473b5 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-discord/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Samuel Meenzen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-discord/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-discord/templates/labels.j2 new file mode 100644 index 000000000..be59b906e --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-discord/templates/labels.j2 @@ -0,0 +1,64 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +{% if matrix_mautrix_discord_container_labels_traefik_enabled %} +traefik.enable=true + +{% if matrix_mautrix_discord_container_labels_traefik_docker_network %} +traefik.docker.network={{ matrix_mautrix_discord_container_labels_traefik_docker_network }} +{% endif %} + +traefik.http.services.matrix-mautrix-discord.loadbalancer.server.port=8080 + +{% if matrix_mautrix_discord_container_labels_avatar_proxy_enabled %} +############################################################ +# # +# Avatar proxy # +# # +############################################################ + +{% set middlewares = [] %} + +{% if matrix_mautrix_discord_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-mautrix-discord-slashless-redirect.redirectregex.regex=({{ matrix_mautrix_discord_container_labels_traefik_path_prefix | quote }})$ +traefik.http.middlewares.matrix-mautrix-discord-slashless-redirect.redirectregex.replacement=${1}/ +{% set middlewares = middlewares + ['matrix-mautrix-discord-slashless-redirect'] %} +{% endif %} + +{% if matrix_mautrix_discord_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-mautrix-discord-strip-prefix.stripprefix.prefixes={{ matrix_mautrix_discord_container_labels_traefik_path_prefix }} +{% set middlewares = middlewares + ['matrix-mautrix-discord-strip-prefix'] %} +{% endif %} + +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.rule={{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_rule }} + +{% if matrix_mautrix_discord_container_labels_avatar_proxy_traefik_priority | int > 0 %} +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.priority={{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_priority }} +{% endif %} + +{% if middlewares | length > 0 %} +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.middlewares={{ middlewares | join(',') }} +{% endif %} + +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.service=matrix-mautrix-discord +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.entrypoints={{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_entrypoints }} + +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.tls={{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_tls | to_json }} +{% if matrix_mautrix_discord_container_labels_avatar_proxy_traefik_tls %} +traefik.http.routers.matrix-mautrix-discord-avatar-proxy.tls.certResolver={{ matrix_mautrix_discord_container_labels_avatar_proxy_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Avatar proxy # +# # +############################################################ +{% endif %} + + +{% endif %} + +{{ matrix_mautrix_discord_container_labels_additional_labels }} diff --git a/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2 b/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2 index 0a5167baf..9344d7866 100644 --- a/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-discord 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-discord 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-discord 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -23,6 +23,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ --cap-drop=ALL \ --network={{ matrix_mautrix_discord_container_network }} \ + --label-file={{ matrix_mautrix_discord_base_path }}/labels \ --mount type=bind,src={{ matrix_mautrix_discord_config_path }},dst=/config,ro \ --mount type=bind,src={{ matrix_mautrix_discord_data_path }},dst=/data \ --workdir=/data \ @@ -38,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-discord -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-discord 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-discord 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-discord 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2.license b/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2.license new file mode 100644 index 000000000..c751d3d6f --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-discord/templates/systemd/matrix-mautrix-discord.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-facebook/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-facebook/defaults/main.yml index dacd2e24a..0fe7f52f1 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-facebook/defaults/main.yml @@ -1,3 +1,17 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Arthur Brugière +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-facebook is a Matrix <-> Facebook bridge # Project source code URL: https://github.com/mautrix/facebook @@ -9,8 +23,10 @@ matrix_mautrix_facebook_container_image_self_build_repo: "https://mau.dev/mautri # renovate: datasource=docker depName=dock.mau.dev/mautrix/facebook matrix_mautrix_facebook_version: v0.5.1 -matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}mautrix/facebook:{{ matrix_mautrix_facebook_version }}" -matrix_mautrix_facebook_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_registry_prefix }}mautrix/facebook:{{ matrix_mautrix_facebook_version }}" +matrix_mautrix_facebook_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else matrix_mautrix_facebook_docker_image_registry_prefix_upstream }}" +matrix_mautrix_facebook_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_facebook_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_facebook_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_facebook_docker_image_force_pull: "{{ matrix_mautrix_facebook_docker_image.endswith(':latest') }}" matrix_mautrix_facebook_base_path: "{{ matrix_base_data_path }}/mautrix-facebook" diff --git a/roles/custom/matrix-bridge-mautrix-facebook/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-facebook/tasks/main.yml index d26ce1733..c5cf1123e 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-facebook/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jason Locklin +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_install.yml index 02dd8e511..36fe8fabb 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_install.yml @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_uninstall.yml index 566da5b71..d88c98feb 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-facebook/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-facebook service diff --git a/roles/custom/matrix-bridge-mautrix-facebook/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-facebook/tasks/validate_config.yml index 72961cb0e..aaab4839f 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-facebook/tasks/validate_config.yml @@ -1,13 +1,21 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Jason Locklin +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed mautrix-facebook settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_facebook_public_endpoint', 'new': 'matrix_mautrix_facebook_appservice_public_prefix'} + - {'old': 'matrix_mautrix_facebook_docker_image_name_prefix', 'new': 'matrix_mautrix_facebook_docker_image_registry_prefix'} - name: Fail if required mautrix-facebook settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2 index 968cbe162..7280ec12d 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2 @@ -211,8 +211,8 @@ bridge: # # Available variables: # $sender_displayname - The display name of the sender (e.g. Example User) - # $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser) - # $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com) + # $sender_username - The username (Matrix ID localpart) of the sender (e.g. alice) + # $sender_mxid - The Matrix ID of the sender (e.g. @alice:example.com) # $message - The message content message_formats: m.text: '$sender_displayname: $message' diff --git a/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2.license new file mode 100644 index 000000000..aa26685bf --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-facebook/templates/config.yaml.j2.license @@ -0,0 +1,9 @@ +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues Morisset +SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 Olivér Falvai +SPDX-FileCopyrightText: 2023 Adrien le Maire + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-facebook/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-facebook/templates/labels.j2 index d71e7eed2..d7eecb2ec 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-facebook/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_facebook_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2 b/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2 index 3fbb4ad24..754c48885 100644 --- a/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-facebook 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-facebook 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-facebook 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-facebook -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-facebook 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-facebook 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-facebook 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2.license b/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2.license new file mode 100644 index 000000000..f74c84d94 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-facebook/templates/systemd/matrix-mautrix-facebook.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues Morisset +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2022 László Várady + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-gmessages/defaults/main.yml index 76d90bec2..92099b6b1 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-gmessages/defaults/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-gmessages is a Matrix <-> gmessages bridge # Project source code URL: https://github.com/mautrix/gmessages @@ -9,11 +18,13 @@ matrix_mautrix_gmessages_container_image_self_build_repo: "https://github.com/ma matrix_mautrix_gmessages_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_gmessages_version == 'latest' else matrix_mautrix_gmessages_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/gmessages -matrix_mautrix_gmessages_version: v0.5.2 +matrix_mautrix_gmessages_version: v0.6.0 # See: https://mau.dev/mautrix/gmessages/container_registry -matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_name_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}" -matrix_mautrix_gmessages_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_gmessages_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_registry_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}" +matrix_mautrix_gmessages_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_gmessages_container_image_self_build else matrix_mautrix_gmessages_docker_image_registry_prefix_upstream }}" +matrix_mautrix_gmessages_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_gmessages_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_gmessages_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_gmessages_docker_image_force_pull: "{{ matrix_mautrix_gmessages_docker_image.endswith(':latest') }}" matrix_mautrix_gmessages_base_path: "{{ matrix_base_data_path }}/mautrix-gmessages" @@ -86,7 +97,7 @@ matrix_mautrix_gmessages_homeserver_token: '' matrix_mautrix_gmessages_appservice_bot_username: gmessagesbot # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug, trace matrix_mautrix_gmessages_logging_level: 'warn' # Whether or not created rooms should have federation enabled. diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/main.yml index 4ca9e19fe..df53f0892 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_install.yml index 5a3e59f75..777dceab7 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_uninstall.yml index e324a523e..e0fae19e7 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-gmessages service diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/validate_config.yml index 7f2510a1f..6b1b76e1d 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-gmessages/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-gmessages settings not defined @@ -18,10 +24,11 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_gmessages_log_level', 'new': 'matrix_mautrix_gmessages_logging_level'} - {'old': 'matrix_mautrix_gmessages_bridge_mute_bridging', 'new': ''} - {'old': 'matrix_mautrix_gmessages_login_shared_secret', 'new': ''} - {'old': 'matrix_mautrix_gmessages_bridge_login_shared_secret_map', 'new': 'matrix_mautrix_gmessages_double_puppet_secrets_custom'} + - {'old': 'matrix_mautrix_gmessages_docker_image_name_prefix', 'new': 'matrix_mautrix_gmessages_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-gmessages/templates/config.yaml.j2.license new file mode 100644 index 000000000..fb1e93f66 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-gmessages/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2023 MDAD project contributors +SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-gmessages/templates/labels.j2 index 1beea2c1c..8dfe66067 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-gmessages/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_gmessages_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2 b/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2 index f90597730..af3c1731f 100644 --- a/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-gmessages 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-gmessages 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-gmessages 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-gmessages -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-gmessages 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-gmessages 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-gmessages 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2.license b/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2.license new file mode 100644 index 000000000..90f8a2544 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-gmessages/templates/systemd/matrix-mautrix-gmessages.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-googlechat/defaults/main.yml index f9ff35681..213573c11 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-googlechat/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Ruben Hias +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-googlechat is a Matrix <-> googlechat bridge # Project source code URL: https://github.com/mautrix/googlechat @@ -11,8 +22,10 @@ matrix_mautrix_googlechat_container_image_self_build_repo_version: "{{ 'master' # renovate: datasource=docker depName=dock.mau.dev/mautrix/googlechat matrix_mautrix_googlechat_version: v0.5.2 # See: https://mau.dev/mautrix/googlechat/container_registry -matrix_mautrix_googlechat_docker_image: "{{ matrix_mautrix_googlechat_docker_image_name_prefix }}mautrix/googlechat:{{ matrix_mautrix_googlechat_version }}" -matrix_mautrix_googlechat_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_googlechat_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_googlechat_docker_image: "{{ matrix_mautrix_googlechat_docker_image_registry_prefix }}mautrix/googlechat:{{ matrix_mautrix_googlechat_version }}" +matrix_mautrix_googlechat_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_googlechat_container_image_self_build else matrix_mautrix_googlechat_docker_image_registry_prefix_upstream }}" +matrix_mautrix_googlechat_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_googlechat_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_googlechat_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_googlechat_docker_image_force_pull: "{{ matrix_mautrix_googlechat_docker_image.endswith(':latest') }}" matrix_mautrix_googlechat_base_path: "{{ matrix_base_data_path }}/mautrix-googlechat" diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/main.yml index be11089b7..3cdc701da 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_install.yml index 6d8adebf4..d7cc1f1d5 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_uninstall.yml index 12b486308..412a08847 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-googlechat service diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/validate_config.yml index 9c8e79d1e..9e2b20132 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-googlechat/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-googlechat settings not defined @@ -16,3 +23,12 @@ - {'name': 'matrix_mautrix_googlechat_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_googlechat_metrics_proxying_enabled }}"} - {'name': 'matrix_mautrix_googlechat_container_labels_public_endpoint_hostname', when: "{{ matrix_mautrix_googlechat_container_labels_public_endpoint_enabled }}"} - {'name': 'matrix_mautrix_googlechat_container_labels_public_endpoint_path_prefix', when: "{{ matrix_mautrix_googlechat_container_labels_public_endpoint_enabled }}"} + +- name: (Deprecation) Catch and report renamed mautrix-googlechat variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_mautrix_googlechat_docker_image_name_prefix', 'new': 'matrix_mautrix_googlechat_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-googlechat/templates/config.yaml.j2.license new file mode 100644 index 000000000..0e41586c5 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-googlechat/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 László Várady + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-googlechat/templates/labels.j2 index 8f35f5c51..567dc2958 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-googlechat/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_googlechat_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2 b/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2 index 50cd131a4..00025295c 100644 --- a/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2 @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-googlechat -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-googlechat 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-googlechat 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-googlechat 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2.license b/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2.license new file mode 100644 index 000000000..f91d0b692 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-googlechat/templates/systemd/matrix-mautrix-googlechat.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-hangouts/defaults/main.yml deleted file mode 100644 index 764854017..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/defaults/main.yml +++ /dev/null @@ -1,190 +0,0 @@ ---- -# mautrix-hangouts is a Matrix <-> Hangouts bridge -# Project source code URL: https://github.com/mautrix/hangouts - -matrix_mautrix_hangouts_enabled: true - -matrix_mautrix_hangouts_container_image_self_build: false -matrix_mautrix_hangouts_container_image_self_build_repo: "https://github.com/mautrix/hangouts.git" -matrix_mautrix_hangouts_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_hangouts_version == 'latest' else matrix_mautrix_hangouts_version }}" - -# renovate: datasource=docker depName=dock.mau.dev/mautrix/hangouts -matrix_mautrix_hangouts_version: latest -# See: https://mau.dev/mautrix/hangouts/container_registry -matrix_mautrix_hangouts_docker_image: "{{ matrix_mautrix_hangouts_docker_image_name_prefix }}mautrix/hangouts:{{ matrix_mautrix_hangouts_version }}" -matrix_mautrix_hangouts_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_hangouts_container_image_self_build else 'dock.mau.dev/' }}" -matrix_mautrix_hangouts_docker_image_force_pull: "{{ matrix_mautrix_hangouts_docker_image.endswith(':latest') }}" - -matrix_mautrix_hangouts_base_path: "{{ matrix_base_data_path }}/mautrix-hangouts" -matrix_mautrix_hangouts_config_path: "{{ matrix_mautrix_hangouts_base_path }}/config" -matrix_mautrix_hangouts_data_path: "{{ matrix_mautrix_hangouts_base_path }}/data" -matrix_mautrix_hangouts_docker_src_files_path: "{{ matrix_mautrix_hangouts_base_path }}/docker-src" - -matrix_mautrix_hangouts_public_endpoint: '/mautrix-hangouts' - -matrix_mautrix_hangouts_homeserver_address: "" -matrix_mautrix_hangouts_homeserver_domain: '{{ matrix_domain }}' -matrix_mautrix_hangouts_appservice_address: 'http://matrix-mautrix-hangouts:8080' - -matrix_mautrix_hangouts_command_prefix: "!HO" - -matrix_mautrix_hangouts_bridge_permissions: | - {{ - {matrix_mautrix_hangouts_homeserver_domain: 'user'} - | combine({matrix_admin: 'admin'} if matrix_admin else {}) - }} - -# Controls whether the matrix-mautrix-hangouts container exposes its HTTP port (tcp/8080 in the container). -# -# Takes an ":" or "" value (e.g. "127.0.0.1:9007"), or empty string to not expose. -matrix_mautrix_hangouts_container_http_host_bind_port: '' - -matrix_mautrix_hangouts_container_network: "" - -matrix_mautrix_hangouts_container_additional_networks: "{{ matrix_mautrix_hangouts_container_additional_networks_auto + matrix_mautrix_hangouts_container_additional_networks_custom }}" -matrix_mautrix_hangouts_container_additional_networks_auto: [] -matrix_mautrix_hangouts_container_additional_networks_custom: [] - -# matrix_mautrix_hangouts_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. -# See `../templates/labels.j2` for details. -# -# To inject your own other container labels, see `matrix_mautrix_hangouts_container_labels_additional_labels`. -matrix_mautrix_hangouts_container_labels_traefik_enabled: true -matrix_mautrix_hangouts_container_labels_traefik_docker_network: "{{ matrix_mautrix_hangouts_container_network }}" -matrix_mautrix_hangouts_container_labels_traefik_entrypoints: web-secure -matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver: default # noqa var-naming - -# Controls whether labels will be added that expose mautrix-googlechat's public endpoint -matrix_mautrix_hangouts_container_labels_public_endpoint_enabled: true -matrix_mautrix_hangouts_container_labels_public_endpoint_hostname: "" -matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix: "{{ matrix_mautrix_hangouts_public_endpoint }}" -matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_rule: "Host(`{{ matrix_mautrix_hangouts_container_labels_public_endpoint_hostname }}`) && PathPrefix(`{{ matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix }}`)" -matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority: 0 -matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints: "{{ matrix_mautrix_hangouts_container_labels_traefik_entrypoints }}" -matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints != 'web' }}" -matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls_certResolver: "{{ matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver }}" # noqa var-naming - -# Controls whether labels will be added that expose mautrix-googlechat's metrics -matrix_mautrix_hangouts_container_labels_metrics_enabled: "{{ matrix_mautrix_hangouts_metrics_enabled and matrix_mautrix_hangouts_metrics_proxying_enabled }}" -matrix_mautrix_hangouts_container_labels_metrics_traefik_rule: "Host(`{{ matrix_mautrix_hangouts_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_mautrix_hangouts_metrics_proxying_path_prefix }}`)" -matrix_mautrix_hangouts_container_labels_metrics_traefik_priority: 0 -matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints: "{{ matrix_mautrix_hangouts_container_labels_traefik_entrypoints }}" -matrix_mautrix_hangouts_container_labels_metrics_traefik_tls: "{{ matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints != 'web' }}" -matrix_mautrix_hangouts_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver }}" # noqa var-naming -matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled: false -# See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users -matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users: '' - -# matrix_mautrix_hangouts_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. -# See `../templates/labels.j2` for details. -# -# Example: -# matrix_mautrix_hangouts_container_labels_additional_labels: | -# my.label=1 -# another.label="here" -matrix_mautrix_hangouts_container_labels_additional_labels: '' - -# A list of extra arguments to pass to the container -matrix_mautrix_hangouts_container_extra_arguments: [] - -# List of systemd services that matrix-mautrix-hangouts.service depends on. -matrix_mautrix_hangouts_systemd_required_services_list: "{{ matrix_mautrix_hangouts_systemd_required_services_list_default + matrix_mautrix_hangouts_systemd_required_services_list_auto + matrix_mautrix_hangouts_systemd_required_services_list_custom }}" -matrix_mautrix_hangouts_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" -matrix_mautrix_hangouts_systemd_required_services_list_auto: [] -matrix_mautrix_hangouts_systemd_required_services_list_custom: [] - -# List of systemd services that matrix-mautrix-hangouts.service wants -matrix_mautrix_hangouts_systemd_wanted_services_list: [] - -matrix_mautrix_hangouts_appservice_token: '' -matrix_mautrix_hangouts_homeserver_token: '' - -# Whether or not metrics endpoint should be enabled. -# Enabling them is usually enough for a local (in-container) Prometheus to consume them. -# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_hangouts_metrics_proxying_enabled`. -matrix_mautrix_hangouts_metrics_enabled: false - -# Controls whether metrics should be proxied (exposed) on a public URL. -matrix_mautrix_hangouts_metrics_proxying_enabled: false -matrix_mautrix_hangouts_metrics_proxying_hostname: '' -matrix_mautrix_hangouts_metrics_proxying_path_prefix: '' - -# Database-related configuration fields. -# -# To use SQLite, stick to these defaults. -# -# To use Postgres: -# - change the engine (`matrix_mautrix_hangouts_database_engine: 'postgres'`) -# - adjust your database credentials via the `matrix_mautrix_hangouts_database_*` variables -matrix_mautrix_hangouts_database_engine: 'sqlite' - -matrix_mautrix_hangouts_sqlite_database_path_local: "{{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db" -matrix_mautrix_hangouts_sqlite_database_path_in_container: "/data/mautrix-hangouts.db" - -matrix_mautrix_hangouts_database_username: 'matrix_mautrix_hangouts' -matrix_mautrix_hangouts_database_password: 'some-password' -matrix_mautrix_hangouts_database_hostname: '' -matrix_mautrix_hangouts_database_port: 5432 -matrix_mautrix_hangouts_database_name: 'matrix_mautrix_hangouts' - -matrix_mautrix_hangouts_database_connection_string: 'postgres://{{ matrix_mautrix_hangouts_database_username }}:{{ matrix_mautrix_hangouts_database_password }}@{{ matrix_mautrix_hangouts_database_hostname }}:{{ matrix_mautrix_hangouts_database_port }}/{{ matrix_mautrix_hangouts_database_name }}' - -matrix_mautrix_hangouts_appservice_database: "{{ - { - 'sqlite': ('sqlite:///' + matrix_mautrix_hangouts_sqlite_database_path_in_container), - 'postgres': matrix_mautrix_hangouts_database_connection_string, - }[matrix_mautrix_hangouts_database_engine] -}}" - - -# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). -matrix_mautrix_hangouts_login_shared_secret: '' - -matrix_mautrix_hangouts_appservice_bot_username: hangoutsbot - -# Specifies the default log level for all bridge loggers. -matrix_mautrix_hangouts_logging_level: WARNING - -# Default configuration template which covers the generic use case. -# You can customize it by controlling the various variables inside it. -# -# For a more advanced customization, you can extend the default (see `matrix_mautrix_hangouts_configuration_extension_yaml`) -# or completely replace this variable with your own template. -matrix_mautrix_hangouts_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" - -matrix_mautrix_hangouts_configuration_extension_yaml: | - # Your custom YAML configuration goes here. - # This configuration extends the default starting configuration (`matrix_mautrix_hangouts_configuration_yaml`). - # - # 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 - # completely redefining `matrix_mautrix_hangouts_configuration_yaml`. - -matrix_mautrix_hangouts_configuration_extension: "{{ matrix_mautrix_hangouts_configuration_extension_yaml | from_yaml if matrix_mautrix_hangouts_configuration_extension_yaml | from_yaml is mapping else {} }}" - -# Holds the final configuration (a combination of the default and its extension). -# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_hangouts_configuration_yaml`. -matrix_mautrix_hangouts_configuration: "{{ matrix_mautrix_hangouts_configuration_yaml | from_yaml | combine(matrix_mautrix_hangouts_configuration_extension, recursive=True) }}" - -matrix_mautrix_hangouts_registration_yaml: | - id: hangouts - as_token: "{{ matrix_mautrix_hangouts_appservice_token }}" - hs_token: "{{ matrix_mautrix_hangouts_homeserver_token }}" - namespaces: - users: - - exclusive: true - regex: '^@hangouts_.+:{{ matrix_mautrix_hangouts_homeserver_domain | regex_escape }}$' - - exclusive: true - regex: '^@{{ matrix_mautrix_hangouts_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_hangouts_homeserver_domain | regex_escape }}$' - url: {{ matrix_mautrix_hangouts_appservice_address }} - # See https://github.com/mautrix/signal/issues/43 - sender_localpart: _bot_{{ matrix_mautrix_hangouts_appservice_bot_username }} - rate_limited: false - de.sorunome.msc2409.push_ephemeral: true - -matrix_mautrix_hangouts_registration: "{{ matrix_mautrix_hangouts_registration_yaml | from_yaml }}" - -# Enable End-to-bridge encryption -matrix_mautrix_hangouts_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" -matrix_mautrix_hangouts_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-hangouts/tasks/main.yml deleted file mode 100644 index 601c0b0ae..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/main.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- - -- tags: - - setup-all - - setup-mautrix-hangouts - - install-all - - install-mautrix-hangouts - block: - - when: matrix_mautrix_hangouts_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" - - - when: matrix_mautrix_hangouts_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" - -- tags: - - setup-all - - setup-mautrix-hangouts - block: - - when: not matrix_mautrix_hangouts_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_install.yml deleted file mode 100644 index 49bdb5ab2..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_install.yml +++ /dev/null @@ -1,144 +0,0 @@ ---- - -- ansible.builtin.set_fact: - matrix_mautrix_hangouts_requires_restart: false - -- when: "matrix_mautrix_hangouts_database_engine == 'postgres'" - block: - - name: Check if an SQLite database already exists - ansible.builtin.stat: - path: "{{ matrix_mautrix_hangouts_sqlite_database_path_local }}" - register: matrix_mautrix_hangouts_sqlite_database_path_local_stat_result - - - when: "matrix_mautrix_hangouts_sqlite_database_path_local_stat_result.stat.exists | bool" - block: - - ansible.builtin.include_role: - name: galaxy/postgres - tasks_from: migrate_db_to_postgres - vars: - postgres_db_migration_request: - src: "{{ matrix_mautrix_hangouts_sqlite_database_path_local }}" - dst: "{{ matrix_mautrix_hangouts_database_connection_string }}" - caller: "{{ role_path | basename }}" - engine_variable_name: 'matrix_mautrix_hangouts_database_engine' - engine_old: 'sqlite' - systemd_services_to_stop: ['matrix-mautrix-hangouts.service'] - - - ansible.builtin.set_fact: - matrix_mautrix_hangouts_requires_restart: true - -- name: Ensure Mautrix Hangouts image is pulled - community.docker.docker_image: - name: "{{ matrix_mautrix_hangouts_docker_image }}" - source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" - force_source: "{{ matrix_mautrix_hangouts_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_hangouts_docker_image_force_pull }}" - when: not matrix_mautrix_hangouts_container_image_self_build - register: result - retries: "{{ devture_playbook_help_container_retries_count }}" - delay: "{{ devture_playbook_help_container_retries_delay }}" - until: result is not failed - -- name: Ensure Mautrix Hangouts paths exist - ansible.builtin.file: - path: "{{ item.path }}" - state: directory - mode: 0750 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - with_items: - - {path: "{{ matrix_mautrix_hangouts_base_path }}", when: true} - - {path: "{{ matrix_mautrix_hangouts_config_path }}", when: true} - - {path: "{{ matrix_mautrix_hangouts_data_path }}", when: true} - - {path: "{{ matrix_mautrix_hangouts_docker_src_files_path }}", when: "{{ matrix_mautrix_hangouts_container_image_self_build }}"} - when: "item.when | bool" - -- name: Ensure Mautrix Hangots repository is present on self build - ansible.builtin.git: - repo: "{{ matrix_mautrix_hangouts_container_image_self_build_repo }}" - version: "{{ matrix_mautrix_hangouts_container_image_self_build_repo_version }}" - dest: "{{ matrix_mautrix_hangouts_docker_src_files_path }}" - force: "yes" - become: true - become_user: "{{ matrix_user_username }}" - register: matrix_mautrix_hangouts_git_pull_results - when: "matrix_mautrix_hangouts_container_image_self_build | bool" - -- name: Ensure Mautrix Hangouts Docker image is built - community.docker.docker_image: - name: "{{ matrix_mautrix_hangouts_docker_image }}" - source: build - force_source: "{{ matrix_mautrix_hangouts_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_hangouts_git_pull_results.changed }}" - build: - dockerfile: Dockerfile - path: "{{ matrix_mautrix_hangouts_docker_src_files_path }}" - pull: true - when: "matrix_mautrix_hangouts_container_image_self_build | bool" - -- name: Check if an old database file already exists - ansible.builtin.stat: - path: "{{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db" - register: matrix_mautrix_hangouts_stat_database - -- name: (Data relocation) Ensure matrix-mautrix-hangouts.service is stopped - ansible.builtin.service: - name: matrix-mautrix-hangouts - state: stopped - enabled: false - daemon_reload: true - failed_when: false - when: "matrix_mautrix_hangouts_stat_database.stat.exists" - -- name: (Data relocation) Move mautrix-hangouts database file to ./data directory - ansible.builtin.command: - cmd: "mv {{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db {{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db" - creates: "{{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db" - removes: "{{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db" - when: "matrix_mautrix_hangouts_stat_database.stat.exists" - -- name: Ensure mautrix-hangouts config.yaml installed - ansible.builtin.copy: - content: "{{ matrix_mautrix_hangouts_configuration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_mautrix_hangouts_config_path }}/config.yaml" - mode: 0644 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - -- name: Ensure mautrix-hangouts registration.yaml installed - ansible.builtin.copy: - content: "{{ matrix_mautrix_hangouts_registration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_mautrix_hangouts_config_path }}/registration.yaml" - mode: 0644 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - -- name: Ensure mautrix-hangouts support files installed - ansible.builtin.template: - src: "{{ role_path }}/templates/{{ item }}.j2" - dest: "{{ matrix_mautrix_hangouts_base_path }}/{{ item }}" - mode: 0640 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - with_items: - - labels - -- name: Ensure matrix-mautrix-hangouts container network is created - community.general.docker_network: - enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" - name: "{{ matrix_mautrix_hangouts_container_network }}" - driver: bridge - driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" - -- name: Ensure matrix-mautrix-hangouts.service installed - ansible.builtin.template: - src: "{{ role_path }}/templates/systemd/matrix-mautrix-hangouts.service.j2" - dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service" - mode: 0644 - -- name: Ensure matrix-mautrix-hangouts.service restarted, if necessary - ansible.builtin.service: - name: "matrix-mautrix-hangouts.service" - state: restarted - daemon_reload: true - when: "matrix_mautrix_hangouts_requires_restart | bool" diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_uninstall.yml deleted file mode 100644 index 02d7183f6..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/setup_uninstall.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- - -- name: Check existence of matrix-mautrix-hangouts service - ansible.builtin.stat: - path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service" - register: matrix_mautrix_hangouts_service_stat - -- when: matrix_mautrix_hangouts_service_stat.stat.exists | bool - block: - - name: Ensure matrix-mautrix-hangouts is stopped - ansible.builtin.service: - name: matrix-mautrix-hangouts - state: stopped - enabled: false - daemon_reload: true - - - name: Ensure matrix-mautrix-hangouts.service doesn't exist - ansible.builtin.file: - path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service" - state: absent diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-hangouts/tasks/validate_config.yml deleted file mode 100644 index dbdf82ba8..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/tasks/validate_config.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Fail if required mautrix-hangouts settings not defined - ansible.builtin.fail: - msg: >- - You need to define a required configuration setting (`{{ item.name }}`). - when: "item.when | bool and vars[item.name] == ''" - with_items: - - {'name': 'matrix_mautrix_hangouts_public_endpoint', when: true} - - {'name': 'matrix_mautrix_hangouts_appservice_token', when: true} - - {'name': 'matrix_mautrix_hangouts_homeserver_token', when: true} - - {'name': 'matrix_mautrix_hangouts_homeserver_address', when: true} - - {'name': 'matrix_mautrix_hangouts_database_hostname', when: "{{ matrix_mautrix_hangouts_database_engine == 'postgres' }}"} - - {'name': 'matrix_mautrix_hangouts_container_network', when: true} - - {'name': 'matrix_mautrix_hangouts_metrics_proxying_hostname', when: "{{ matrix_mautrix_hangouts_metrics_proxying_enabled }}"} - - {'name': 'matrix_mautrix_hangouts_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_hangouts_metrics_proxying_enabled }}"} - - {'name': 'matrix_mautrix_hangouts_container_labels_public_endpoint_hostname', when: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_enabled }}"} - - {'name': 'matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix', when: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_enabled }}"} diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-hangouts/templates/config.yaml.j2 deleted file mode 100644 index 79fdffd53..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/templates/config.yaml.j2 +++ /dev/null @@ -1,149 +0,0 @@ -#jinja2: lstrip_blocks: "True" -# Homeserver details -homeserver: - # The address that this appservice can use to connect to the homeserver. - address: {{ matrix_mautrix_hangouts_homeserver_address }} - # The domain of the homeserver (for MXIDs, etc). - domain: {{ matrix_mautrix_hangouts_homeserver_domain }} - # Whether or not to verify the SSL certificate of the homeserver. - # Only applies if address starts with https:// - verify_ssl: true - -# Application service host/registration related details -# Changing these values requires regeneration of the registration. -appservice: - # The address that the homeserver can use to connect to this appservice. - address: {{ matrix_mautrix_hangouts_appservice_address }} - - # The hostname and port where this appservice should listen. - hostname: 0.0.0.0 - port: 8080 - # The maximum body size of appservice API requests (from the homeserver) in mebibytes - # Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s - max_body_size: 1 - - # The full URI to the database. SQLite and Postgres are fully supported. - # Other DBMSes supported by SQLAlchemy may or may not work. - # Format examples: - # SQLite: sqlite:///filename.db - # Postgres: postgres://username:password@hostname/dbname - database: {{ matrix_mautrix_hangouts_appservice_database|to_json }} - - # The unique ID of this appservice. - id: hangouts - # Username of the appservice bot. - bot_username: {{ matrix_mautrix_hangouts_appservice_bot_username|to_json }} - # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty - # to leave display name/avatar as-is. - bot_displayname: Hangouts bridge bot - bot_avatar: mxc://maunium.net/FBXZnpfORkBEruORbikmleAy - - # Authentication tokens for AS <-> HS communication. - as_token: "{{ matrix_mautrix_hangouts_appservice_token }}" - hs_token: "{{ matrix_mautrix_hangouts_homeserver_token }}" - -# Prometheus telemetry config. Requires prometheus-client to be installed. -metrics: - enabled: {{ matrix_mautrix_hangouts_metrics_enabled | to_json }} - listen_port: 8000 - -# Bridge config -bridge: - # Localpart template of MXIDs for Hangouts users. - # {userid} is replaced with the user ID of the Hangouts user. - username_template: "hangouts_{userid}" - # Displayname template for Hangouts users. - # {displayname} is replaced with the display name of the Hangouts user - # as defined below in displayname_preference. - # Keys available for displayname_preference are also available here. - displayname_template: '{full_name} (Hangouts)' - # Available keys: - # "name" (full name) - # "first_name" - # "last_name" - # "nickname" - # "own_nickname" (user-specific!) - displayname_preference: - - name - - # The prefix for commands. Only required in non-management rooms. - command_prefix: "{{ matrix_mautrix_hangouts_command_prefix }}" - - # Number of chats to sync (and create portals for) on startup/login. - # Maximum 20, set 0 to disable automatic syncing. - initial_chat_sync: 20 - # Whether or not the Hangouts users of logged in Matrix users should be - # invited to private chats when the user sends a message from another client. - invite_own_puppet_to_pm: false - # Whether or not to use /sync to get presence, read receipts and typing notifications when using - # your own Matrix account as the Matrix puppet for your Hangouts account. - sync_with_custom_puppets: true - # Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth - # - # If set, custom puppets will be enabled automatically for local users - # instead of users having to find an access token and run `login-matrix` - # manually. - login_shared_secret: {{ matrix_mautrix_hangouts_login_shared_secret|to_json }} - # Whether or not to update avatars when syncing all contacts at startup. - update_avatar_initial_sync: true - # End-to-bridge encryption support options. These require matrix-nio to be installed with pip - # and login_shared_secret to be configured in order to get a device for the bridge bot. - # - # Additionally, https://github.com/matrix-org/synapse/pull/5758 is required if using a normal - # application service. - encryption: - # Allow encryption, work in group chat rooms with e2ee enabled - allow: {{ matrix_mautrix_hangouts_bridge_encryption_allow|to_json }} - # Default to encryption, force-enable encryption in all portals the bridge creates - # This will cause the bridge bot to be in private chats for the encryption to work properly. - default: {{ matrix_mautrix_hangouts_bridge_encryption_default|to_json }} - - # Public website and API configs - web: - # Auth server config - auth: - # Publicly accessible base URL for the login endpoints. - # The prefix below is not implicitly added. This URL and all subpaths should be proxied - # or otherwise pointed to the appservice's webserver to the path specified below (prefix). - # This path should usually include a trailing slash. - # Internal prefix in the appservice web server for the login endpoints. - public: "{{ matrix_homeserver_url }}{{ matrix_mautrix_hangouts_public_endpoint }}/login" - prefix: "{{ matrix_mautrix_hangouts_public_endpoint }}/login" - - - # Permissions for using the bridge. - # Permitted values: - # user - Use the bridge with puppeting. - # admin - Use and administrate the bridge. - # Permitted keys: - # * - All Matrix users - # domain - All users on that homeserver - # mxid - Specific user - permissions: {{ matrix_mautrix_hangouts_bridge_permissions|to_json }} - -# Python logging configuration. -# -# See section 16.7.2 of the Python documentation for more info: -# https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema -logging: - version: 1 - formatters: - colored: - (): mautrix_hangouts.util.ColorFormatter - format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s" - normal: - format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s" - handlers: - console: - class: logging.StreamHandler - formatter: colored - loggers: - mau: - level: {{ matrix_mautrix_hangouts_logging_level|to_json }} - hangups: - level: {{ matrix_mautrix_hangouts_logging_level|to_json }} - aiohttp: - level: {{ matrix_mautrix_hangouts_logging_level|to_json }} - root: - level: {{ matrix_mautrix_hangouts_logging_level|to_json }} - handlers: [console] diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-hangouts/templates/labels.j2 deleted file mode 100644 index 31dd03e2d..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/templates/labels.j2 +++ /dev/null @@ -1,76 +0,0 @@ -{% if matrix_mautrix_hangouts_container_labels_traefik_enabled %} -traefik.enable=true - -{% if matrix_mautrix_hangouts_container_labels_traefik_docker_network %} -traefik.docker.network={{ matrix_mautrix_hangouts_container_labels_traefik_docker_network }} -{% endif %} - -traefik.http.services.matrix-mautrix-hangouts-public.loadbalancer.server.port=8080 -traefik.http.services.matrix-mautrix-hangouts-metrics.loadbalancer.server.port=8000 - -{% if matrix_mautrix_hangouts_container_labels_public_endpoint_enabled %} -############################################################ -# # -# Public # -# # -############################################################ - -traefik.http.routers.matrix-mautrix-hangouts-public.rule={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_rule }} - -{% if matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority | int > 0 %} -traefik.http.routers.matrix-mautrix-hangouts-public.priority={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority }} -{% endif %} - -traefik.http.routers.matrix-mautrix-hangouts-public.service=matrix-mautrix-hangouts-public -traefik.http.routers.matrix-mautrix-hangouts-public.entrypoints={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints }} - -traefik.http.routers.matrix-mautrix-hangouts-public.tls={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls | to_json }} -{% if matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls %} -traefik.http.routers.matrix-mautrix-hangouts-public.tls.certResolver={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls_certResolver }} -{% endif %} - -############################################################ -# # -# /Public # -# # -############################################################ -{% endif %} - - -{% if matrix_mautrix_hangouts_container_labels_metrics_enabled %} -############################################################ -# # -# Metrics # -# # -############################################################ - -{% if matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled %} -traefik.http.middlewares.matrix-mautrix-hangouts-metrics-basic-auth.basicauth.users={{ matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users }} -traefik.http.routers.matrix-mautrix-hangouts-metrics.middlewares=matrix-mautrix-hangouts-metrics-basic-auth -{% endif %} - -traefik.http.routers.matrix-mautrix-hangouts-metrics.rule={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_rule }} - -{% if matrix_mautrix_hangouts_container_labels_metrics_traefik_priority | int > 0 %} -traefik.http.routers.matrix-mautrix-hangouts-metrics.priority={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_priority }} -{% endif %} - -traefik.http.routers.matrix-mautrix-hangouts-metrics.service=matrix-mautrix-hangouts-metrics -traefik.http.routers.matrix-mautrix-hangouts-metrics.entrypoints={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints }} - -traefik.http.routers.matrix-mautrix-hangouts-metrics.tls={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_tls | to_json }} -{% if matrix_mautrix_hangouts_container_labels_metrics_traefik_tls %} -traefik.http.routers.matrix-mautrix-hangouts-metrics.tls.certResolver={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_tls_certResolver }} -{% endif %} - -############################################################ -# # -# /Metrics # -# # -############################################################ -{% endif %} - - -{% endif %} - -{{ matrix_mautrix_hangouts_container_labels_additional_labels }} diff --git a/roles/custom/matrix-bridge-mautrix-hangouts/templates/systemd/matrix-mautrix-hangouts.service.j2 b/roles/custom/matrix-bridge-mautrix-hangouts/templates/systemd/matrix-mautrix-hangouts.service.j2 deleted file mode 100644 index cc0dfa353..000000000 --- a/roles/custom/matrix-bridge-mautrix-hangouts/templates/systemd/matrix-mautrix-hangouts.service.j2 +++ /dev/null @@ -1,69 +0,0 @@ -#jinja2: lstrip_blocks: "True" -[Unit] -Description=Matrix Mautrix Hangouts bridge -{% for service in matrix_mautrix_hangouts_systemd_required_services_list %} -Requires={{ service }} -After={{ service }} -{% endfor %} -{% for service in matrix_mautrix_hangouts_systemd_wanted_services_list %} -Wants={{ service }} -{% endfor %} -DefaultDependencies=no - -[Service] -Type=simple -Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-hangouts matrix-mautrix-hangouts-db 2>/dev/null || true' -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-hangouts matrix-mautrix-hangouts-db 2>/dev/null || true' - -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ - --rm \ - --name=matrix-mautrix-hangouts-db \ - --log-driver=none \ - --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ - --cap-drop=ALL \ - --network={{ matrix_mautrix_hangouts_container_network }} \ - --mount type=bind,src={{ matrix_mautrix_hangouts_config_path }},dst=/config \ - --mount type=bind,src={{ matrix_mautrix_hangouts_data_path }},dst=/data \ - {{ matrix_mautrix_hangouts_docker_image }} \ - alembic -x config=/config/config.yaml upgrade head - -{% for network in matrix_mautrix_hangouts_container_additional_networks %} -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-hangouts-db -{% endfor %} - -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-hangouts-db - -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ - --rm \ - --name=matrix-mautrix-hangouts \ - --log-driver=none \ - --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ - --cap-drop=ALL \ - --network={{ matrix_mautrix_hangouts_container_network }} \ - {% if matrix_mautrix_hangouts_container_http_host_bind_port %} - -p {{ matrix_mautrix_hangouts_container_http_host_bind_port }}:8080 \ - {% endif %} - --mount type=bind,src={{ matrix_mautrix_hangouts_config_path }},dst=/config \ - --mount type=bind,src={{ matrix_mautrix_hangouts_data_path }},dst=/data \ - --label-file={{ matrix_mautrix_hangouts_base_path }}/labels \ - {% for arg in matrix_mautrix_hangouts_container_extra_arguments %} - {{ arg }} \ - {% endfor %} - {{ matrix_mautrix_hangouts_docker_image }} \ - python3 -m mautrix_hangouts -c /config/config.yaml --no-update - -{% for network in matrix_mautrix_hangouts_container_additional_networks %} -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-hangouts -{% endfor %} - -ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-hangouts - -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-hangouts 2>/dev/null || true' -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-hangouts 2>/dev/null || true' -Restart=always -RestartSec=30 -SyslogIdentifier=matrix-mautrix-hangouts - -[Install] -WantedBy=multi-user.target diff --git a/roles/custom/matrix-bridge-mautrix-instagram/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-instagram/defaults/main.yml index 566a01bb5..1304d7586 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-instagram/defaults/main.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Marcus Proest +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-instagram is a Matrix <-> Instagram bridge # Project source code URL: https://github.com/mautrix/instagram @@ -11,8 +23,10 @@ matrix_mautrix_instagram_container_image_self_build_repo_version: "{{ 'master' i # renovate: datasource=docker depName=dock.mau.dev/mautrix/instagram matrix_mautrix_instagram_version: v0.3.1 # See: https://mau.dev/tulir/mautrix-instagram/container_registry -matrix_mautrix_instagram_docker_image: "{{ matrix_mautrix_instagram_docker_image_name_prefix }}mautrix/instagram:{{ matrix_mautrix_instagram_version }}" -matrix_mautrix_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_instagram_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_instagram_docker_image: "{{ matrix_mautrix_instagram_docker_image_registry_prefix }}mautrix/instagram:{{ matrix_mautrix_instagram_version }}" +matrix_mautrix_instagram_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_instagram_container_image_self_build else matrix_mautrix_instagram_docker_image_registry_prefix_upstream }}" +matrix_mautrix_instagram_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_instagram_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_instagram_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_instagram_docker_image_force_pull: "{{ matrix_mautrix_instagram_docker_image.endswith(':latest') }}" matrix_mautrix_instagram_base_path: "{{ matrix_base_data_path }}/mautrix-instagram" diff --git a/roles/custom/matrix-bridge-mautrix-instagram/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-instagram/tasks/main.yml index a9c63922c..1dcc341fb 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-instagram/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 Marcus Proest +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_install.yml index f355edc3b..21e4e5f44 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Marcus Proest +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Mautrix instagram image is pulled diff --git a/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_uninstall.yml index 6ac0f6d52..de533aa7c 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-instagram/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Marcus Proest +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-instagram service ansible.builtin.stat: diff --git a/roles/custom/matrix-bridge-mautrix-instagram/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-instagram/tasks/validate_config.yml index 1a0c1cda7..f86e3e243 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-instagram/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Marcus Proest +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-instagram settings not defined ansible.builtin.fail: @@ -12,3 +18,12 @@ - {'name': 'matrix_mautrix_instagram_database_hostname', when: "{{ matrix_mautrix_instagram_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_instagram_metrics_proxying_hostname', when: "{{ matrix_mautrix_instagram_metrics_proxying_enabled }}"} - {'name': 'matrix_mautrix_instagram_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_instagram_metrics_proxying_enabled }}"} + +- name: (Deprecation) Catch and report renamed mautrix-instagram variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_mautrix_instagram_docker_image_name_prefix', 'new': 'matrix_mautrix_instagram_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2 index e3d4be521..d200ebcd6 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2 @@ -204,8 +204,8 @@ bridge: # # Available variables: # $sender_displayname - The display name of the sender (e.g. Example User) - # $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser) - # $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com) + # $sender_username - The username (Matrix ID localpart) of the sender (e.g. alice) + # $sender_mxid - The Matrix ID of the sender (e.g. @alice:example.com) # $message - The message content # # Note that Instagram doesn't support captions for images, so images won't include any indication of being relayed. diff --git a/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2.license new file mode 100644 index 000000000..89b223f9b --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2.license @@ -0,0 +1,10 @@ +SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2021 Marcus Proest +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2023 Adrien le Maire +SPDX-FileCopyrightText: 2023 Kevin Kengen +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-instagram/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-instagram/templates/labels.j2 index c67f2264d..e5b9154ab 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-instagram/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_instagram_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2 b/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2 index e8e6e0f51..35248d9d1 100644 --- a/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-instagram 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-instagram 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-instagram 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-instagram -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-instagram 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-instagram 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-instagram 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2.license b/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2.license new file mode 100644 index 000000000..41f4c833d --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-instagram/templates/systemd/matrix-mautrix-instagram.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Marcus Proest +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/README.md b/roles/custom/matrix-bridge-mautrix-meta-instagram/README.md index 41e9d77d9..ef06fdc36 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/README.md +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/README.md @@ -1,3 +1,9 @@ + + # matrix-mautrix-meta-instagram This bridge role is derived from the matrix-mautrix-meta-messenger Ansible role via automatic changes (see `just rebuild-mautrix-meta-instagram` or `bin/rebuild-mautrix-meta-instagram.sh`). diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-meta-instagram/defaults/main.yml index cd2ecac96..65e1b7268 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-meta is a Matrix <-> Facebook/Messenger/Instagram bridge @@ -13,7 +20,7 @@ matrix_mautrix_meta_instagram_enabled: true matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram # renovate: datasource=docker depName=dock.mau.dev/mautrix/meta -matrix_mautrix_meta_instagram_version: v0.4.2 +matrix_mautrix_meta_instagram_version: v0.4.4 matrix_mautrix_meta_instagram_base_path: "{{ matrix_base_data_path }}/mautrix-meta-instagram" matrix_mautrix_meta_instagram_config_path: "{{ matrix_mautrix_meta_instagram_base_path }}/config" @@ -23,8 +30,10 @@ matrix_mautrix_meta_instagram_container_src_files_path: "{{ matrix_mautrix_meta_ matrix_mautrix_meta_instagram_container_image_self_build: false matrix_mautrix_meta_instagram_container_image_self_build_repo: "https://github.com/mautrix/meta.git" -matrix_mautrix_meta_instagram_container_image: "{{ matrix_mautrix_meta_instagram_container_image_name_prefix }}mautrix/meta:{{ matrix_mautrix_meta_instagram_container_image_tag }}" -matrix_mautrix_meta_instagram_container_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_meta_instagram_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_meta_instagram_container_image: "{{ matrix_mautrix_meta_instagram_container_image_registry_prefix }}mautrix/meta:{{ matrix_mautrix_meta_instagram_container_image_tag }}" +matrix_mautrix_meta_instagram_container_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_meta_instagram_container_image_self_build else matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream }}" +matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream: "{{ matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream_default }}" +matrix_mautrix_meta_instagram_container_image_registry_prefix_upstream_default: "dock.mau.dev/" # Prebuilt container images for specific commit hashes are tagged with an architecture suffix (e.g. `HASH-amd64`). matrix_mautrix_meta_instagram_container_image_tag: "{{ matrix_mautrix_meta_instagram_version }}{{ ('-' ~ matrix_architecture) if (matrix_mautrix_meta_instagram_version | length == 40) else '' }}" matrix_mautrix_meta_instagram_container_image_force_pull: "{{ matrix_mautrix_meta_instagram_container_image.endswith(':latest') }}" @@ -156,6 +165,8 @@ matrix_mautrix_meta_instagram_meta_mode: instagram # When in `instagram` mode (see `matrix_mautrix_meta_instagram_meta_mode`), should the bridge connect to WhatsApp servers for encrypted chats? matrix_mautrix_meta_instagram_meta_ig_e2ee: false +matrix_mautrix_meta_instagram_provisioning_shared_secret: disable + # Whether or not metrics endpoint should be enabled. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. # If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_meta_instagram_metrics_proxying_enabled`. diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/install.yml b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/install.yml index 3debb493e..4f3749c1e 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/install.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/main.yml index 0acc399f0..f06937433 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/uninstall.yml b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/uninstall.yml index 991f47b40..794607e04 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of mautrix-meta-instagram service diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/validate_config.yml index fbaa3da1c..4abd0f5ba 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-meta-instagram settings not defined @@ -15,13 +20,14 @@ - {'name': 'matrix_mautrix_meta_instagram_database_hostname', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_meta_instagram_database_password', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"} -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-meta-instagram settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_meta_instagram_bridge_login_shared_secret', 'new': ''} - {'old': 'matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_custom', 'new': ''} - {'old': 'matrix_mautrix_meta_instagram_bridge_management_room_text_welcome', 'new': ''} + - {'old': 'matrix_mautrix_meta_instagram_container_image_name_prefix', 'new': 'matrix_mautrix_meta_instagram_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2 index 465a861fb..e905b1771 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2 @@ -263,7 +263,7 @@ provisioning: prefix: /_matrix/provision # Shared secret for authentication. If set to "generate" or null, a random secret will be generated, # or if set to "disable", the provisioning API will be disabled. - shared_secret: disable + shared_secret: {{ matrix_mautrix_meta_instagram_provisioning_shared_secret | to_json }} # Whether to allow provisioning API requests to be authed using Matrix access tokens. # This follows the same rules as double puppeting to determine which server to contact to check the token, # which means that by default, it only works for users on the same server as the bridge. diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2.license new file mode 100644 index 000000000..dfee73659 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/labels.j2 index 3648706cb..de8156bfe 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_meta_instagram_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2 b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2 index a772b3eca..e72e911f2 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_mautrix_meta_instagram_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_mautrix_meta_instagram_identifier }} 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2.license b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-meta-instagram/templates/systemd/matrix-mautrix-meta.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml index e5a992023..ae26f7c1f 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-meta is a Matrix <-> Facebook/Messenger/Instagram bridge @@ -13,7 +20,7 @@ matrix_mautrix_meta_messenger_enabled: true matrix_mautrix_meta_messenger_identifier: matrix-mautrix-meta-messenger # renovate: datasource=docker depName=dock.mau.dev/mautrix/meta -matrix_mautrix_meta_messenger_version: v0.4.2 +matrix_mautrix_meta_messenger_version: v0.4.4 matrix_mautrix_meta_messenger_base_path: "{{ matrix_base_data_path }}/mautrix-meta-messenger" matrix_mautrix_meta_messenger_config_path: "{{ matrix_mautrix_meta_messenger_base_path }}/config" @@ -23,8 +30,10 @@ matrix_mautrix_meta_messenger_container_src_files_path: "{{ matrix_mautrix_meta_ matrix_mautrix_meta_messenger_container_image_self_build: false matrix_mautrix_meta_messenger_container_image_self_build_repo: "https://github.com/mautrix/meta.git" -matrix_mautrix_meta_messenger_container_image: "{{ matrix_mautrix_meta_messenger_container_image_name_prefix }}mautrix/meta:{{ matrix_mautrix_meta_messenger_container_image_tag }}" -matrix_mautrix_meta_messenger_container_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_meta_messenger_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_meta_messenger_container_image: "{{ matrix_mautrix_meta_messenger_container_image_registry_prefix }}mautrix/meta:{{ matrix_mautrix_meta_messenger_container_image_tag }}" +matrix_mautrix_meta_messenger_container_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_meta_messenger_container_image_self_build else matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream }}" +matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream: "{{ matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream_default }}" +matrix_mautrix_meta_messenger_container_image_registry_prefix_upstream_default: "dock.mau.dev/" # Prebuilt container images for specific commit hashes are tagged with an architecture suffix (e.g. `HASH-amd64`). matrix_mautrix_meta_messenger_container_image_tag: "{{ matrix_mautrix_meta_messenger_version }}{{ ('-' ~ matrix_architecture) if (matrix_mautrix_meta_messenger_version | length == 40) else '' }}" matrix_mautrix_meta_messenger_container_image_force_pull: "{{ matrix_mautrix_meta_messenger_container_image.endswith(':latest') }}" @@ -156,6 +165,8 @@ matrix_mautrix_meta_messenger_meta_mode: messenger # When in `instagram` mode (see `matrix_mautrix_meta_messenger_meta_mode`), should the bridge connect to WhatsApp servers for encrypted chats? matrix_mautrix_meta_messenger_meta_ig_e2ee: false +matrix_mautrix_meta_messenger_provisioning_shared_secret: disable + # Whether or not metrics endpoint should be enabled. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. # If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_meta_messenger_metrics_proxying_enabled`. diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/install.yml b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/install.yml index 438682d2b..ef09d425b 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/install.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/main.yml index 5e5a7bebd..c77b53fa0 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/uninstall.yml b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/uninstall.yml index 22040c2df..7ec36ad14 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of mautrix-meta-messenger service diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/validate_config.yml index d9f40022f..db8bb4fb1 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-meta-messenger settings not defined @@ -15,13 +20,14 @@ - {'name': 'matrix_mautrix_meta_messenger_database_hostname', when: "{{ matrix_mautrix_meta_messenger_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_meta_messenger_database_password', when: "{{ matrix_mautrix_meta_messenger_database_engine == 'postgres' }}"} -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-meta-messenger variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_meta_messenger_bridge_login_shared_secret', 'new': ''} - {'old': 'matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_custom', 'new': ''} - {'old': 'matrix_mautrix_meta_messenger_bridge_management_room_text_welcome', 'new': ''} + - {'old': 'matrix_mautrix_meta_messenger_container_image_name_prefix', 'new': 'matrix_mautrix_meta_messenger_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2 index dbfc69b35..b5f9404b3 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2 @@ -263,7 +263,7 @@ provisioning: prefix: /_matrix/provision # Shared secret for authentication. If set to "generate" or null, a random secret will be generated, # or if set to "disable", the provisioning API will be disabled. - shared_secret: disable + shared_secret: {{ matrix_mautrix_meta_messenger_provisioning_shared_secret | to_json }} # Whether to allow provisioning API requests to be authed using Matrix access tokens. # This follows the same rules as double puppeting to determine which server to contact to check the token, # which means that by default, it only works for users on the same server as the bridge. diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2.license new file mode 100644 index 000000000..dfee73659 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/labels.j2 index 79e1fc743..1c5b0a6e0 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_meta_messenger_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2 b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2 index 0ca0263b1..92439132e 100644 --- a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_mautrix_meta_messenger_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_mautrix_meta_messenger_identifier }} 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2.license b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-meta-messenger/templates/systemd/matrix-mautrix-meta.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-signal/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-signal/defaults/main.yml index b4add4f2e..3ac88352b 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/defaults/main.yml @@ -1,3 +1,19 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Sabine Laszakovits +# SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Wolfgang Winter +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Matthew Cengia +# SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2023 Yousef Amar +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-signal is a Matrix <-> Signal bridge # Project source code URL: https://github.com/mautrix/signal @@ -9,12 +25,14 @@ matrix_mautrix_signal_container_image_self_build_repo: "https://mau.dev/mautrix/ matrix_mautrix_signal_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_signal_version == 'latest' else matrix_mautrix_signal_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/signal -matrix_mautrix_signal_version: v0.7.3 +matrix_mautrix_signal_version: v0.8.0 # See: https://mau.dev/mautrix/signal/container_registry -matrix_mautrix_signal_docker_image: "{{ matrix_mautrix_signal_docker_image_name_prefix }}mautrix/signal:{{ matrix_mautrix_signal_docker_image_tag }}" +matrix_mautrix_signal_docker_image: "{{ matrix_mautrix_signal_docker_image_registry_prefix }}mautrix/signal:{{ matrix_mautrix_signal_docker_image_tag }}" matrix_mautrix_signal_docker_image_tag: "{{ matrix_mautrix_signal_version }}" -matrix_mautrix_signal_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_signal_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_signal_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_signal_container_image_self_build else matrix_mautrix_signal_docker_image_registry_prefix_upstream }}" +matrix_mautrix_signal_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_signal_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_signal_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_signal_docker_image_force_pull: "{{ matrix_mautrix_signal_docker_image.endswith(':latest') }}" matrix_mautrix_signal_base_path: "{{ matrix_base_data_path }}/mautrix-signal" @@ -93,7 +111,7 @@ matrix_mautrix_signal_homeserver_token: '' matrix_mautrix_signal_appservice_bot_username: signalbot # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug, trace matrix_mautrix_signal_logging_level: 'warn' # Whether or not created rooms should have federation enabled. diff --git a/roles/custom/matrix-bridge-mautrix-signal/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-signal/tasks/main.yml index ded64b60c..60266ba91 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/tasks/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-signal/tasks/remove_legacy.yml b/roles/custom/matrix-bridge-mautrix-signal/tasks/remove_legacy.yml index d65b2d14d..f566606fc 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/tasks/remove_legacy.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/tasks/remove_legacy.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Signal daemon service diff --git a/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_install.yml index ca6568c8e..55bcb2cb4 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_install.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Sabine Laszakovits +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_uninstall.yml index 4a76bf141..79e3f8249 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/tasks/setup_uninstall.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Sabine Laszakovits +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-signal service diff --git a/roles/custom/matrix-bridge-mautrix-signal/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-signal/tasks/validate_config.yml index 702842e39..1f08f1feb 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-signal/tasks/validate_config.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Sabine Laszakovits +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-signal settings not defined @@ -14,11 +22,11 @@ - {'name': 'matrix_mautrix_signal_metrics_proxying_hostname', when: "{{ matrix_mautrix_signal_metrics_proxying_enabled }}"} - {'name': 'matrix_mautrix_signal_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_signal_metrics_proxying_enabled }}"} -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-signal variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_signal_log_level', 'new': 'matrix_mautrix_signal_logging_level'} @@ -27,3 +35,4 @@ - {'old': 'matrix_mautrix_signal_login_shared_secret', 'new': ''} - {'old': 'matrix_mautrix_signal_bridge_login_shared_secret_map', 'new': ''} - {'old': 'matrix_mautrix_signal_bridge_double_puppet_server_map', 'new': ''} + - {'old': 'matrix_mautrix_signal_docker_image_name_prefix', 'new': 'matrix_mautrix_signal_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-signal/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-signal/templates/config.yaml.j2.license new file mode 100644 index 000000000..7fa4396c7 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-signal/templates/config.yaml.j2.license @@ -0,0 +1,10 @@ +SPDX-FileCopyrightText: 2020 - 2021 Sabine Laszakovits +SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 Wolfgang Winter +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2023 Adrien le Maire + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-signal/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-signal/templates/labels.j2 index fb912080a..334ca6fbc 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-signal/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_signal_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2 b/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2 index 431dfd736..f108dce1c 100644 --- a/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-signal 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-signal 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-signal 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-signal -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-signal 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-signal 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-signal 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2.license b/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2.license new file mode 100644 index 000000000..1c3358e43 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-signal/templates/systemd/matrix-mautrix-signal.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml index 991cb1d4f..da778c2e2 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-slack is a Matrix <-> Slack bridge # Project source code URL: https://github.com/mautrix/slack @@ -9,10 +17,12 @@ matrix_mautrix_slack_container_image_self_build_repo: "https://mau.dev/mautrix/s matrix_mautrix_slack_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_slack_version == 'latest' else matrix_mautrix_slack_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/slack -matrix_mautrix_slack_version: v0.1.3 +matrix_mautrix_slack_version: v0.1.4 # See: https://mau.dev/mautrix/slack/container_registry -matrix_mautrix_slack_docker_image: "{{ matrix_mautrix_slack_docker_image_name_prefix }}mautrix/slack:{{ matrix_mautrix_slack_version }}" -matrix_mautrix_slack_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_slack_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_slack_docker_image: "{{ matrix_mautrix_slack_docker_image_registry_prefix }}mautrix/slack:{{ matrix_mautrix_slack_version }}" +matrix_mautrix_slack_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_slack_container_image_self_build else matrix_mautrix_slack_docker_image_registry_prefix_upstream }}" +matrix_mautrix_slack_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_slack_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_slack_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_slack_docker_image_force_pull: "{{ matrix_mautrix_slack_docker_image.endswith(':latest') }}" matrix_mautrix_slack_base_path: "{{ matrix_base_data_path }}/mautrix-slack" @@ -62,7 +72,7 @@ matrix_mautrix_slack_backfill_unread_hours_threshold: 720 matrix_mautrix_slack_backfill_threads_max_initial_messages: 50 # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug, trace matrix_mautrix_slack_logging_level: 'warn' # Database-related configuration fields. diff --git a/roles/custom/matrix-bridge-mautrix-slack/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-slack/tasks/main.yml index b7a2199d7..9112981f2 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-slack/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_install.yml index be5e11d80..c5266dfff 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_uninstall.yml index 19350b443..7361983d2 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-slack/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-slack service diff --git a/roles/custom/matrix-bridge-mautrix-slack/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-slack/tasks/validate_config.yml index 19c51c61e..8265ee865 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-slack/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-slack settings not defined @@ -21,13 +27,14 @@ Consider either changing `matrix_mautrix_slack_appservice_bot_username` (the bot username for the mautrix-slack component) or `matrix_appservice_slack_bot_name` (the bot username for the appservice-slack component). We recommend that you change the username for the newly-added (and yet unused) component. -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-slack variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_slack_login_shared_secret', 'new': ''} - {'old': 'matrix_mautrix_slack_bridge_login_shared_secret_map', 'new': ''} - {'old': 'matrix_mautrix_slack_bridge_double_puppet_server_map', 'new': ''} + - {'old': 'matrix_mautrix_slack_docker_image_name_prefix', 'new': 'matrix_mautrix_slack_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-slack/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-slack/templates/config.yaml.j2.license new file mode 100644 index 000000000..21834835b --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-slack/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2023 Shaleen Jain +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2 b/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2 index e81bd4cef..563ff2552 100644 --- a/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-slack 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-slack 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-slack 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-slack -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-slack 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-slack 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-slack 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2.license b/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2.license new file mode 100644 index 000000000..1792ce657 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-slack/templates/systemd/matrix-mautrix-slack.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-telegram/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-telegram/defaults/main.yml index 3c5989b44..f941b7c59 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-telegram/defaults/main.yml @@ -1,3 +1,19 @@ +# SPDX-FileCopyrightText: 2019 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Johanna Dorothea Reichmann +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Olivér Falvai +# SPDX-FileCopyrightText: 2022 Vincent Post +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Pierre 'McFly' Marty +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-telegram is a Matrix <-> Telegram bridge @@ -9,13 +25,15 @@ matrix_mautrix_telegram_scheme: https matrix_mautrix_telegram_hostname: '' matrix_mautrix_telegram_path_prefix: '' -matrix_telegram_lottieconverter_container_image_self_build: false -matrix_telegram_lottieconverter_container_image_self_build_mask_arch: false -matrix_telegram_lottieconverter_docker_repo: "https://mau.dev/tulir/lottieconverter.git" -matrix_telegram_lottieconverter_docker_repo_version: "master" -matrix_telegram_lottieconverter_docker_src_files_path: "{{ matrix_base_data_path }}/lotticonverter/docker-src" -matrix_telegram_lottieconverter_docker_image: "{{ matrix_telegram_lottieconverter_docker_image_name_prefix }}tulir/lottieconverter:alpine-3.16" # needs to be adjusted according to the FROM clause of Dockerfile of mautrix-telegram -matrix_telegram_lottieconverter_docker_image_name_prefix: "{{ 'localhost/' if matrix_telegram_lottieconverter_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_telegram_lottieconverter_container_image_self_build: false +matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch: false +matrix_mautrix_telegram_lottieconverter_docker_repo: "https://mau.dev/tulir/lottieconverter.git" +matrix_mautrix_telegram_lottieconverter_docker_repo_version: "master" +matrix_mautrix_telegram_lottieconverter_docker_src_files_path: "{{ matrix_base_data_path }}/lotticonverter/docker-src" +matrix_mautrix_telegram_lottieconverter_docker_image: "{{ matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix }}tulir/lottieconverter:alpine-3.16" # needs to be adjusted according to the FROM clause of Dockerfile of mautrix-telegram +matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_telegram_lottieconverter_container_image_self_build else matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream }}" +matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_telegram_container_image_self_build: false matrix_mautrix_telegram_docker_repo: "https://mau.dev/mautrix/telegram.git" @@ -25,8 +43,10 @@ matrix_mautrix_telegram_docker_src_files_path: "{{ matrix_base_data_path }}/maut # renovate: datasource=docker depName=dock.mau.dev/mautrix/telegram matrix_mautrix_telegram_version: v0.15.2 # See: https://mau.dev/mautrix/telegram/container_registry -matrix_mautrix_telegram_docker_image: "{{ matrix_mautrix_telegram_docker_image_name_prefix }}mautrix/telegram:{{ matrix_mautrix_telegram_version }}" -matrix_mautrix_telegram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_telegram_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_telegram_docker_image: "{{ matrix_mautrix_telegram_docker_image_registry_prefix }}mautrix/telegram:{{ matrix_mautrix_telegram_version }}" +matrix_mautrix_telegram_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_telegram_container_image_self_build else matrix_mautrix_telegram_docker_image_registry_prefix_upstream }}" +matrix_mautrix_telegram_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_telegram_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_telegram_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_telegram_docker_image_force_pull: "{{ matrix_mautrix_telegram_docker_image.endswith(':latest') }}" matrix_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram" @@ -136,6 +156,8 @@ matrix_mautrix_telegram_systemd_wanted_services_list: [] matrix_mautrix_telegram_appservice_token: '' matrix_mautrix_telegram_homeserver_token: '' +matrix_mautrix_telegram_provisioning_shared_secret: disable + # Whether or not metrics endpoint should be enabled. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. # If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_telegram_metrics_proxying_enabled`. diff --git a/roles/custom/matrix-bridge-mautrix-telegram/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-telegram/tasks/main.yml index 9fb6fb48f..fab0c1657 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-telegram/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_install.yml index c73468bb8..f45cd306f 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_install.yml @@ -1,3 +1,20 @@ +# SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2018 Hugues Morisset +# SPDX-FileCopyrightText: 2019 Aaron Raimist +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jan Christian Grünhage +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: @@ -55,26 +72,26 @@ - name: Ensure lottieconverter is present when self-building ansible.builtin.git: - repo: "{{ matrix_telegram_lottieconverter_docker_repo }}" - version: "{{ matrix_telegram_lottieconverter_docker_repo_version }}" - dest: "{{ matrix_telegram_lottieconverter_docker_src_files_path }}" + repo: "{{ matrix_mautrix_telegram_lottieconverter_docker_repo }}" + version: "{{ matrix_mautrix_telegram_lottieconverter_docker_repo_version }}" + dest: "{{ matrix_mautrix_telegram_lottieconverter_docker_src_files_path }}" force: "yes" become: true become_user: "{{ matrix_user_username }}" - register: matrix_telegram_lottieconverter_git_pull_results - when: "matrix_telegram_lottieconverter_container_image_self_build | bool and matrix_mautrix_telegram_container_image_self_build | bool" + register: matrix_mautrix_telegram_lottieconverter_git_pull_results + when: "matrix_mautrix_telegram_lottieconverter_container_image_self_build | bool and matrix_mautrix_telegram_container_image_self_build | bool" - name: Ensure lottieconverter Docker image is built community.docker.docker_image: - name: "{{ matrix_telegram_lottieconverter_docker_image }}" + name: "{{ matrix_mautrix_telegram_lottieconverter_docker_image }}" source: build - force_source: "{{ matrix_telegram_lottieconverter_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_telegram_lottieconverter_git_pull_results.changed }}" + force_source: "{{ matrix_mautrix_telegram_lottieconverter_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_telegram_lottieconverter_git_pull_results.changed }}" build: dockerfile: Dockerfile - path: "{{ matrix_telegram_lottieconverter_docker_src_files_path }}" + path: "{{ matrix_mautrix_telegram_lottieconverter_docker_src_files_path }}" pull: true - when: "matrix_telegram_lottieconverter_container_image_self_build | bool and matrix_telegram_lottieconverter_git_pull_results.changed and matrix_mautrix_telegram_container_image_self_build | bool" + when: "matrix_mautrix_telegram_lottieconverter_container_image_self_build | bool and matrix_mautrix_telegram_lottieconverter_git_pull_results.changed and matrix_mautrix_telegram_container_image_self_build | bool" - name: Ensure matrix-mautrix-telegram repository is present when self-building ansible.builtin.git: @@ -96,7 +113,7 @@ build: dockerfile: Dockerfile path: "{{ matrix_mautrix_telegram_docker_src_files_path }}" - pull: "{{ not matrix_telegram_lottieconverter_container_image_self_build_mask_arch | bool }}" + pull: "{{ not matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch | bool }}" args: TARGETARCH: "" when: "matrix_mautrix_telegram_container_image_self_build | bool and matrix_mautrix_telegram_git_pull_results.changed" diff --git a/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_uninstall.yml index ebb7e5db2..cbde3ff57 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-telegram/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-telegram service diff --git a/roles/custom/matrix-bridge-mautrix-telegram/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-telegram/tasks/validate_config.yml index 040d7da42..20bad5816 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-telegram/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-telegram settings not defined @@ -19,15 +25,23 @@ - {'name': 'matrix_mautrix_telegram_metrics_proxying_hostname', when: "{{ matrix_mautrix_telegram_metrics_proxying_enabled }}"} - {'name': 'matrix_mautrix_telegram_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_telegram_metrics_proxying_enabled }}"} -- name: (Deprecation) Catch and report renamed Telegram variables +- name: (Deprecation) Catch and report renamed mautrix-telegram variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_telegram_container_exposed_port_number', 'new': ''} - {'old': 'matrix_mautrix_telegram_container_self_build', 'new': 'matrix_mautrix_telegram_container_image_self_build'} - - {'old': 'matrix_telegram_lottieconverter_container_self_build', 'new': 'matrix_mautrix_telegram_container_image_self_build'} - - {'old': 'matrix_telegram_lottieconverter_container_self_build_mask_arch', 'new': 'matrix_telegram_lottieconverter_container_image_self_build_mask_arch'} + - {'old': 'matrix_mautrix_telegram_lottieconverter_container_self_build', 'new': 'matrix_mautrix_telegram_container_image_self_build'} + - {'old': 'matrix_mautrix_telegram_lottieconverter_container_self_build_mask_arch', 'new': 'matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch'} - {'old': 'matrix_mautrix_telegram_login_shared_secret', 'new': ''} + - {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image_name_prefix', 'new': 'matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix'} + - {'old': 'matrix_mautrix_telegram_docker_image_name_prefix', 'new': 'matrix_mautrix_telegram_docker_image_registry_prefix'} + - {'old': 'matrix_telegram_lottieconverter_container_image_self_build', 'new': 'matrix_mautrix_telegram_lottieconverter_container_image_self_build'} + - {'old': 'matrix_telegram_lottieconverter_container_image_self_build_mask_arch', 'new': 'matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch'} + - {'old': 'matrix_telegram_lottieconverter_docker_repo', 'new': 'matrix_mautrix_telegram_lottieconverter_docker_repo'} + - {'old': 'matrix_telegram_lottieconverter_docker_repo_version', 'new': 'matrix_mautrix_telegram_lottieconverter_docker_repo_version'} + - {'old': 'matrix_telegram_lottieconverter_docker_src_files_path', 'new': 'matrix_mautrix_telegram_lottieconverter_docker_src_files_path'} + - {'old': 'matrix_telegram_lottieconverter_docker_image', 'new': 'matrix_mautrix_telegram_lottieconverter_docker_image'} diff --git a/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2 index 30145b0e0..6cbd30130 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2 @@ -71,7 +71,7 @@ appservice: prefix: /_matrix/provision/v1 # The shared secret to authorize users of the API. # Set to "generate" to generate and save a new token. - shared_secret: generate + shared_secret: {{ matrix_mautrix_telegram_provisioning_shared_secret | to_json }} # The unique ID of this appservice. id: telegram @@ -122,7 +122,7 @@ bridge: # Default: {displayname} (Telegram) displayname_template: {{ matrix_mautrix_telegram_displayname_template|to_json }} - # Set the preferred order of user identifiers which to use in the Matrix puppet display name. + # Set the preferred order of user IDs which to use in the Matrix puppet display name. # In the (hopefully unlikely) scenario that none of the given keys are found, the numeric user # ID is used. # @@ -450,8 +450,8 @@ bridge: # # Available variables: # $sender_displayname - The display name of the sender (e.g. Example User) - # $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser) - # $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com) + # $sender_username - The username (Matrix ID localpart) of the sender (e.g. alice) + # $sender_mxid - The Matrix ID of the sender (e.g. @alice:example.com) # $distinguisher - A random string from the options in the relay_user_distinguishers array. # $message - The message content message_formats: diff --git a/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2.license new file mode 100644 index 000000000..ded8b03d5 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-telegram/templates/config.yaml.j2.license @@ -0,0 +1,11 @@ +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Vincent Post +SPDX-FileCopyrightText: 2024 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-telegram/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-telegram/templates/labels.j2 index 494a45bdc..04021d807 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-telegram/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_telegram_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2 b/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2 index 9b611affe..ce59de6af 100644 --- a/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-telegram 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-telegram 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-telegram 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-telegram -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-telegram 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-telegram 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-telegram 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2.license b/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2.license new file mode 100644 index 000000000..575ca9abb --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-telegram/templates/systemd/matrix-mautrix-telegram.service.j2.license @@ -0,0 +1,9 @@ +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2022 László Várady + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-twitter/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-twitter/defaults/main.yml index d095b6a39..c6e6d5e72 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-twitter/defaults/main.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Matthew Cengia +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-twitter is a Matrix <-> Twitter bridge # Project source code URL: https://github.com/mautrix/twitter @@ -9,10 +22,12 @@ matrix_mautrix_twitter_container_image_self_build_repo: "https://github.com/maut matrix_mautrix_twitter_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_twitter_version == 'latest' else matrix_mautrix_twitter_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/twitter -matrix_mautrix_twitter_version: v0.1.8 +matrix_mautrix_twitter_version: v0.2.1 # See: https://mau.dev/tulir/mautrix-twitter/container_registry -matrix_mautrix_twitter_docker_image: "{{ matrix_mautrix_twitter_docker_image_name_prefix }}mautrix/twitter:{{ matrix_mautrix_twitter_version }}" -matrix_mautrix_twitter_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_twitter_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_twitter_docker_image: "{{ matrix_mautrix_twitter_docker_image_registry_prefix }}mautrix/twitter:{{ matrix_mautrix_twitter_version }}" +matrix_mautrix_twitter_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_twitter_container_image_self_build else matrix_mautrix_twitter_docker_image_registry_prefix_upstream }}" +matrix_mautrix_twitter_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_twitter_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_twitter_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_twitter_docker_image_force_pull: "{{ matrix_mautrix_twitter_docker_image.endswith(':latest') }}" matrix_mautrix_twitter_base_path: "{{ matrix_base_data_path }}/mautrix-twitter" @@ -24,7 +39,10 @@ matrix_mautrix_twitter_homeserver_address: "" matrix_mautrix_twitter_homeserver_domain: '{{ matrix_domain }}' matrix_mautrix_twitter_appservice_address: 'http://matrix-mautrix-twitter:29327' -matrix_mautrix_twitter_command_prefix: "!tw" +# A public address that external services can use to reach this appservice. +matrix_mautrix_twitter_appservice_public_address: '' + +matrix_mautrix_twitter_bridge_command_prefix: "!tw" matrix_mautrix_twitter_bridge_permissions: | {{ @@ -84,7 +102,7 @@ matrix_mautrix_twitter_homeserver_token: '' # Whether or not created rooms should have federation enabled. # If false, created portal rooms will never be federated. -matrix_mautrix_twitter_federate_rooms: true +matrix_mautrix_twitter_matrix_federate_rooms: true # Database-related configuration fields. # @@ -97,23 +115,38 @@ matrix_mautrix_twitter_database_password: 'some-password' matrix_mautrix_twitter_database_hostname: '' matrix_mautrix_twitter_database_port: 5432 matrix_mautrix_twitter_database_name: 'matrix_mautrix_twitter' +matrix_mautrix_twitter_database_sslmode: disable -matrix_mautrix_twitter_database_connection_string: 'postgres://{{ matrix_mautrix_twitter_database_username }}:{{ matrix_mautrix_twitter_database_password }}@{{ matrix_mautrix_twitter_database_hostname }}:{{ matrix_mautrix_twitter_database_port }}/{{ matrix_mautrix_twitter_database_name }}' +matrix_mautrix_twitter_database_connection_string: 'postgres://{{ matrix_mautrix_twitter_database_username }}:{{ matrix_mautrix_twitter_database_password }}@{{ matrix_mautrix_twitter_database_hostname }}:{{ matrix_mautrix_twitter_database_port }}/{{ matrix_mautrix_twitter_database_name }}?sslmode={{ matrix_mautrix_twitter_database_sslmode }}' -matrix_mautrix_twitter_appservice_database: "{{ +matrix_mautrix_twitter_database_uri: "{{ { 'postgres': matrix_mautrix_twitter_database_connection_string, }[matrix_mautrix_twitter_database_engine] }}" -matrix_mautrix_twitter_bridge_login_shared_secret_map: "{{ matrix_mautrix_twitter_bridge_login_shared_secret_map_auto | combine(matrix_mautrix_twitter_bridge_login_shared_secret_map_custom) }}" -matrix_mautrix_twitter_bridge_login_shared_secret_map_auto: {} -matrix_mautrix_twitter_bridge_login_shared_secret_map_custom: {} +matrix_mautrix_twitter_double_puppet_secrets: "{{ matrix_mautrix_twitter_double_puppet_secrets_auto | combine(matrix_mautrix_twitter_double_puppet_secrets_custom) }}" +matrix_mautrix_twitter_double_puppet_secrets_auto: {} +matrix_mautrix_twitter_double_puppet_secrets_custom: {} matrix_mautrix_twitter_appservice_bot_username: twitterbot +matrix_mautrix_twitter_appservice_bot_displayname: Twitter bridge bot +matrix_mautrix_twitter_appservice_bot_avatar: mxc://maunium.net/HVHcnusJkQcpVcsVGZRELLCn -# Specifies the default log level for all bridge loggers. -matrix_mautrix_twitter_logging_level: WARNING +matrix_mautrix_twitter_backfill_enabled: true +# Maximum number of messages to backfill in empty rooms +matrix_mautrix_twitter_backfill_max_initial_messages: 50 + +# Maximum number of missed messages to backfill after bridge restarts +matrix_mautrix_twitter_backfill_max_catchup_messages: 500 + +# Shared secret for authentication of provisioning API requests. +# If set to "disable", the provisioning API will be disabled. +matrix_mautrix_twitter_provisioning_shared_secret: disable + +# Minimum severity of journal log messages. +# Valid values: fatal, error, warn, info, debug, trace +matrix_mautrix_twitter_logging_level: 'warn' # Whether or not metrics endpoint should be enabled. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. @@ -162,10 +195,15 @@ matrix_mautrix_twitter_registration_yaml: | sender_localpart: _bot_{{ matrix_mautrix_twitter_appservice_bot_username }} rate_limited: false de.sorunome.msc2409.push_ephemeral: true + receive_ephemeral: true matrix_mautrix_twitter_registration: "{{ matrix_mautrix_twitter_registration_yaml | from_yaml }}" # Enable End-to-bridge encryption matrix_mautrix_twitter_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" matrix_mautrix_twitter_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" +matrix_mautrix_twitter_bridge_encryption_require: false +matrix_mautrix_twitter_bridge_encryption_appservice: false matrix_mautrix_twitter_bridge_encryption_key_sharing_allow: "{{ matrix_mautrix_twitter_bridge_encryption_allow }}" +# This pickle key value is compatible with the old mautrix-twitter bridge (before bridgev2). +matrix_mautrix_twitter_bridge_encryption_pickle_key: mautrix.bridge.e2ee diff --git a/roles/custom/matrix-bridge-mautrix-twitter/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-twitter/tasks/main.yml index bb5a3a32e..39aff219b 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-twitter/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 Matthew Cengia +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_install.yml index f89ef1994..4e5b1d149 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Matthew Cengia +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_uninstall.yml index 2a73e4818..be45fe4ac 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-twitter/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Matthew Cengia +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-twitter service diff --git a/roles/custom/matrix-bridge-mautrix-twitter/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-twitter/tasks/validate_config.yml index e8e7de330..0a30cd1d7 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-twitter/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 Matthew Cengia +# SPDX-FileCopyrightText: 2021 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-twitter settings not defined @@ -18,7 +25,14 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_twitter_login_shared_secret', 'new': ''} + - {'old': 'matrix_mautrix_twitter_appservice_database', 'new': 'matrix_mautrix_twitter_database_uri'} + - {'old': 'matrix_mautrix_twitter_bridge_login_shared_secret_map', 'new': 'matrix_mautrix_twitter_double_puppet_secrets'} + - {'old': 'matrix_mautrix_twitter_bridge_login_shared_secret_map_auto', 'new': 'matrix_mautrix_twitter_double_puppet_secrets_auto'} + - {'old': 'matrix_mautrix_twitter_bridge_login_shared_secret_map_custom', 'new': 'matrix_mautrix_twitter_double_puppet_secrets_custom'} + - {'old': 'matrix_mautrix_twitter_federate_rooms', 'new': 'matrix_mautrix_twitter_matrix_federate_rooms'} + - {'old': 'matrix_mautrix_twitter_command_prefix', 'new': 'matrix_mautrix_twitter_bridge_command_prefix'} + - {'old': 'matrix_mautrix_twitter_docker_image_name_prefix', 'new': 'matrix_mautrix_twitter_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2 index bfcfdecb4..1a0b474f4 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2 @@ -1,202 +1,428 @@ #jinja2: lstrip_blocks: "True" -# Homeserver details -homeserver: - # The address that this appservice can use to connect to the homeserver. - address: {{ matrix_mautrix_twitter_homeserver_address }} - # The domain of the homeserver (for MXIDs, etc). - domain: {{ matrix_mautrix_twitter_homeserver_domain }} - # Whether or not to verify the SSL certificate of the homeserver. - # Only applies if address starts with https:// - verify_ssl: true - asmux: false +# Network-specific config options +network: + # Proxy to use for all Twitter connections. + proxy: null + # Alternative to proxy: an HTTP endpoint that returns the proxy URL to use for Twitter connections. + get_proxy_url: null -# Application service host/registration related details -# Changing these values requires regeneration of the registration. -appservice: - # The address that the homeserver can use to connect to this appservice. - address: {{ matrix_mautrix_twitter_appservice_address }} - # When using https:// the TLS certificate and key files for the address. - tls_cert: false - tls_key: false - - # The hostname and port where this appservice should listen. - hostname: 0.0.0.0 - port: 29327 - # The maximum body size of appservice API requests (from the homeserver) in mebibytes - # Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s - max_body_size: 1 - - # The full URI to the database. Only Postgres is currently supported. - database: {{ matrix_mautrix_twitter_appservice_database|to_json }} - # Additional arguments for asyncpg.create_pool() - # https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.pool.create_pool - database_opts: - min_size: 5 - max_size: 10 - - # Provisioning API part of the web server for automated portal creation and fetching information. - # Used by things like mautrix-manager (https://github.com/tulir/mautrix-manager). - provisioning: - # Whether or not the provisioning API should be enabled. - enabled: true - # The prefix to use in the provisioning API endpoints. - prefix: /_matrix/provision/v1 - # The shared secret to authorize users of the API. - # Set to "generate" to generate and save a new token. - shared_secret: generate - - # The unique ID of this appservice. - id: twitter - # Username of the appservice bot. - bot_username: {{ matrix_mautrix_twitter_appservice_bot_username|to_json }} - # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty - # to leave display name/avatar as-is. - bot_displayname: Twitter bridge bot - bot_avatar: mxc://maunium.net/HVHcnusJkQcpVcsVGZRELLCn - - # Whether or not to receive ephemeral events via appservice transactions. - # Requires MSC2409 support (i.e. Synapse 1.22+). - # You should disable bridge -> sync_with_custom_puppets when this is enabled. - ephemeral_events: false - - # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. - as_token: "{{ matrix_mautrix_twitter_appservice_token }}" - hs_token: "{{ matrix_mautrix_twitter_homeserver_token }}" - -# Prometheus telemetry config. Requires prometheus-client to be installed. -metrics: - enabled: {{ matrix_mautrix_twitter_metrics_enabled | to_json }} - listen_port: 8000 - -# Bridge config -bridge: - # Localpart template of MXIDs for Twitter users. - # {userid} is replaced with the user ID of the Twitter user. - username_template: "twitter_{userid}" # Displayname template for Twitter users. - # {displayname} is replaced with the display name of the Twitter user. - # {username} is replaced with the username of the Twitter user. - displayname_template: "{displayname} (Twitter)" + # {% raw %} + # {{ .DisplayName }} is replaced with the display name of the Twitter user. + # {{ .Username }} is replaced with the username of the Twitter user. + # {% endraw %} + displayname_template: "{% raw %}{{ .DisplayName }}{% endraw %} (Twitter)" - # Maximum length of displayname - displayname_max_length: 100 + # Maximum number of conversations to sync on startup + conversation_sync_limit: 20 - # Number of conversations to sync (and create portals for) on login. - # Set 0 to disable automatic syncing. - initial_conversation_sync: 10 - # Whether or not to use /sync to get read receipts and typing notifications - # when double puppeting is enabled - sync_with_custom_puppets: true - # Whether or not to update the m.direct account data event when double puppeting is enabled. - # Note that updating the m.direct event is not atomic (except with mautrix-asmux) - # and is therefore prone to race conditions. - sync_direct_chat_list: false - # Allow using double puppeting from any server with a valid client .well-known file. - double_puppet_allow_discovery: false - # Servers to allow double puppeting from, even if double_puppet_allow_discovery is false. - double_puppet_server_map: {} - # Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth - # - # If set, custom puppets will be enabled automatically for local users - # instead of users having to find an access token and run `login-matrix` - # manually. - # If using this for other servers than the bridge's server, - # you must also set the URL in the double_puppet_server_map. - login_shared_secret_map: {{ matrix_mautrix_twitter_bridge_login_shared_secret_map|to_json }} - # Whether or not created rooms should have federation enabled. - # If false, created portal rooms will never be federated. - federate_rooms: {{ matrix_mautrix_twitter_federate_rooms|to_json }} - # Settings for backfilling messages from Twitter. - # - # Missed message backfilling is currently based on receiving them from the Twitter polling API, - # rather than manually asking for messages in each conversation. Due to this, there's no way to - # set a limit for missed message backfilling. - backfill: - # Whether or not the Twitter users of logged in Matrix users should be - # invited to private chats when backfilling history from Twitter. This is - # usually needed to prevent rate limits and to allow timestamp massaging. - invite_own_puppet: true - # Maximum number of messages to backfill initially. - # Set to 0 to disable backfilling when creating portal. - initial_limit: 0 - # If using double puppeting, should notifications be disabled - # while the initial backfill is in progress? - disable_notifications: true - # End-to-bridge encryption support options. You must install the e2be optional dependency for - # this to work. See https://github.com/tulir/mautrix-telegram/wiki/End‐to‐bridge-encryption - encryption: - # Allow encryption, work in group chat rooms with e2ee enabled - allow: {{ matrix_mautrix_twitter_bridge_encryption_allow|to_json }} - # Default to encryption, force-enable encryption in all portals the bridge creates - # This will cause the bridge bot to be in private chats for the encryption to work properly. - default: {{ matrix_mautrix_twitter_bridge_encryption_default|to_json }} - # Options for automatic key sharing. - key_sharing: - # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. - # You must use a client that supports requesting keys from other users to use this feature. - allow: {{ matrix_mautrix_twitter_bridge_encryption_key_sharing_allow|to_json }} - # Require the requesting device to have a valid cross-signing signature? - # This doesn't require that the bridge has verified the device, only that the user has verified it. - # Not yet implemented. - require_cross_signing: false - # Require devices to be verified by the bridge? - # Verification by the bridge is not yet implemented. - require_verification: true - # Whether or not to explicitly set the avatar and room name for private - # chat portal rooms. This will be implicitly enabled if encryption.default is true. - private_chat_portal_meta: false - # Whether or not the bridge should send a read receipt from the bridge bot when a message has - # been sent to Twitter. - delivery_receipts: false - # Whether or not delivery errors should be reported as messages in the Matrix room. - delivery_error_reports: true - # Whether or not non-fatal polling errors should send notices to the notice room. - temporary_disconnect_notices: true - # Number of seconds to sleep more than the previous error when a polling error occurs. - # Growth is capped at 15 minutes. - error_sleep: 5 - # Maximum number of polling errors before giving up. Set to -1 to retry forever. - max_poll_errors: 12 - # Set this to true to tell the bridge to re-send m.bridge events to all rooms on the next run. - # This field will automatically be changed back to false after it, - # except if the config file is not writable. + +# Config options that affect the central bridge module. +bridge: + # The prefix for commands. Only required in non-management rooms. + command_prefix: {{ matrix_mautrix_twitter_bridge_command_prefix | to_json }} + # Should the bridge create a space for each login containing the rooms that account is in? + personal_filtering_spaces: true + # Whether the bridge should set names and avatars explicitly for DM portals. + # This is only necessary when using clients that don't support MSC4171. + private_chat_portal_meta: true + # Should events be handled asynchronously within portal rooms? + # If true, events may end up being out of order, but slow events won't block other ones. + # This is not yet safe to use. + async_events: false + # Should every user have their own portals rather than sharing them? + # By default, users who are in the same group on the remote network will be + # in the same Matrix room bridged to that group. If this is set to true, + # every user will get their own Matrix room instead. + split_portals: false + # Should the bridge resend `m.bridge` events to all portals on startup? resend_bridge_info: false - # The prefix for commands. Only required in non-management rooms. - command_prefix: "{{ matrix_mautrix_twitter_command_prefix }}" + # Should leaving Matrix rooms be bridged as leaving groups on the remote network? + bridge_matrix_leave: false + # Should room tags only be synced when creating the portal? Tags mean things like favorite/pin and archive/low priority. + # Tags currently can't be synced back to the remote network, so a continuous sync means tagging from Matrix will be undone. + tag_only_on_create: true + # List of tags to allow bridging. If empty, no tags will be bridged. + only_bridge_tags: [m.favourite, m.lowpriority] + # Should room mute status only be synced when creating the portal? + # Like tags, mutes can't currently be synced back to the remote network. + mute_only_on_create: true + + # What should be done to portal rooms when a user logs out or is logged out? + # Permitted values: + # nothing - Do nothing, let the user stay in the portals + # kick - Remove the user from the portal rooms, but don't delete them + # unbridge - Remove all ghosts in the room and disassociate it from the remote chat + # delete - Remove all ghosts and users from the room (i.e. delete it) + cleanup_on_logout: + # Should cleanup on logout be enabled at all? + enabled: false + # Settings for manual logouts (explicitly initiated by the Matrix user) + manual: + # Action for private portals which will never be shared with other Matrix users. + private: nothing + # Action for portals with a relay user configured. + relayed: nothing + # Action for portals which may be shared, but don't currently have any other Matrix users. + shared_no_users: nothing + # Action for portals which have other logged-in Matrix users. + shared_has_users: nothing + # Settings for credentials being invalidated (initiated by the remote network, possibly through user action). + # Keys have the same meanings as in the manual section. + bad_credentials: + private: nothing + relayed: nothing + shared_no_users: nothing + shared_has_users: nothing + + # Settings for relay mode + relay: + # Whether relay mode should be allowed. If allowed, the set-relay command can be used to turn any + # authenticated user into a relaybot for that chat. + enabled: false + # Should only admins be allowed to set themselves as relay users? + # If true, non-admins can only set users listed in default_relays as relays in a room. + admin_only: true + # List of user login IDs which anyone can set as a relay, as long as the relay user is in the room. + default_relays: [] + # The formats to use when sending messages via the relaybot. + # Available variables: + # .Sender.UserID - The Matrix user ID of the sender. + # .Sender.Displayname - The display name of the sender (if set). + # .Sender.RequiresDisambiguation - Whether the sender's name may be confused with the name of another user in the room. + # .Sender.DisambiguatedName - The disambiguated name of the sender. This will be the displayname if set, + # plus the user ID in parentheses if the displayname is not unique. + # If the displayname is not set, this is just the user ID. + # .Message - The `formatted_body` field of the message. + # .Caption - The `formatted_body` field of the message, if it's a caption. Otherwise an empty string. + # .FileName - The name of the file being sent. + message_formats: + m.text: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" + m.notice: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" + m.emote: "{% raw %}* {{ .Sender.DisambiguatedName }} {{ .Message }}{% endraw %}" + m.file: "{% raw %}{{ .Sender.DisambiguatedName }} sent a file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.image: "{% raw %}{{ .Sender.DisambiguatedName }} sent an image{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.audio: "{% raw %}{{ .Sender.DisambiguatedName }} sent an audio file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.video: "{% raw %}{{ .Sender.DisambiguatedName }} sent a video{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + m.location: "{% raw %}{{ .Sender.DisambiguatedName }} sent a location{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" + # For networks that support per-message displaynames (i.e. Slack and Discord), the template for those names. + # This has all the Sender variables available under message_formats (but without the .Sender prefix). + # Note that you need to manually remove the displayname from message_formats above. + displayname_format: "{% raw %}{{ .DisambiguatedName }}{% endraw %}" # Permissions for using the bridge. # Permitted values: - # user - Use the bridge with puppeting. - # admin - Use and administrate the bridge. + # relay - Talk through the relaybot (if enabled), no access otherwise + # commands - Access to use commands in the bridge, but not login. + # user - Access to use the bridge with puppeting. + # admin - Full access, user level with some additional administration tools. # Permitted keys: # * - All Matrix users # domain - All users on that homeserver # mxid - Specific user - permissions: {{ matrix_mautrix_twitter_bridge_permissions|to_json }} + permissions: {{ matrix_mautrix_twitter_bridge_permissions | to_json }} +# Config for the bridge's database. +database: + # The database type. "sqlite3-fk-wal" and "postgres" are supported. + type: postgres + # The database URI. + # SQLite: A raw file path is supported, but `file:?_txlock=immediate` is recommended. + # https://github.com/mattn/go-sqlite3#connection-string + # Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable + # To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql + uri: {{ matrix_mautrix_twitter_database_uri | to_json }} + # Maximum number of connections. + max_open_conns: 5 + max_idle_conns: 1 + # Maximum connection idle time and lifetime before they're closed. Disabled if null. + # Parsed with https://pkg.go.dev/time#ParseDuration + max_conn_idle_time: null + max_conn_lifetime: null -# Python logging configuration. +# Homeserver details. +homeserver: + # The address that this appservice can use to connect to the homeserver. + # Local addresses without HTTPS are generally recommended when the bridge is running on the same machine, + # but https also works if they run on different machines. + address: {{ matrix_mautrix_twitter_homeserver_address | to_json }} + # The domain of the homeserver (also known as server_name, used for MXIDs, etc). + domain: {{ matrix_mautrix_twitter_homeserver_domain | to_json }} + + # What software is the homeserver running? + # Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here. + software: standard + # The URL to push real-time bridge status to. + # If set, the bridge will make POST requests to this URL whenever a user's remote network connection state changes. + # The bridge will use the appservice as_token to authorize requests. + status_endpoint: + # Endpoint for reporting per-message status. + # If set, the bridge will make POST requests to this URL when processing a message from Matrix. + # It will make one request when receiving the message (step BRIDGE), one after decrypting if applicable + # (step DECRYPTED) and one after sending to the remote network (step REMOTE). Errors will also be reported. + # The bridge will use the appservice as_token to authorize requests. + message_send_checkpoint_endpoint: + # Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246? + async_media: false + + # Should the bridge use a websocket for connecting to the homeserver? + # The server side is currently not documented anywhere and is only implemented by mautrix-wsproxy, + # mautrix-asmux (deprecated), and hungryserv (proprietary). + websocket: false + # How often should the websocket be pinged? Pinging will be disabled if this is zero. + ping_interval_seconds: 0 + +# Application service host/registration related details. +# Changing these values requires regeneration of the registration (except when noted otherwise) +appservice: + # The address that the homeserver can use to connect to this appservice. + # Like the homeserver address, a local non-https address is recommended when the bridge is on the same machine. + # If the bridge is elsewhere, you must secure the connection yourself (e.g. with https or wireguard) + # If you want to use https, you need to use a reverse proxy. The bridge does not have TLS support built in. + address: {{ matrix_mautrix_twitter_appservice_address | to_json }} + # A public address that external services can use to reach this appservice. + # This is only needed for things like public media. A reverse proxy is generally necessary when using this field. + # This value doesn't affect the registration file. + public_address: {{ matrix_mautrix_twitter_appservice_public_address | to_json }} + + # The hostname and port where this appservice should listen. + # For Docker, you generally have to change the hostname to 0.0.0.0. + hostname: 0.0.0.0 + port: 29327 + + # The unique ID of this appservice. + id: twitter + # Appservice bot details. + bot: + # Username of the appservice bot. + username: {{ matrix_mautrix_twitter_appservice_bot_username | to_json }} + # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty + # to leave display name/avatar as-is. + displayname: {{ matrix_mautrix_twitter_appservice_bot_displayname | to_json }} + avatar: {{ matrix_mautrix_twitter_appservice_bot_avatar | to_json }} + + # Whether to receive ephemeral events via appservice transactions. + ephemeral_events: true + # Should incoming events be handled asynchronously? + # This may be necessary for large public instances with lots of messages going through. + # However, messages will not be guaranteed to be bridged in the same order they were sent in. + # This value doesn't affect the registration file. + async_transactions: false + # Whether to use MSC4190 instead of appservice login to create the bridge bot device. + # Requires the homeserver to support MSC4190 and the device masquerading parts of MSC3202. + # Only relevant when using end-to-bridge encryption, required when using encryption with next-gen auth (MSC3861). + msc4190: false + + # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. + as_token: {{ matrix_mautrix_twitter_appservice_token | to_json }} + hs_token: {{ matrix_mautrix_twitter_homeserver_token | to_json }} + + # Localpart template of MXIDs for remote users. + # {% raw %}{{.}}{% endraw %} is replaced with the internal ID of the user. + username_template: "{% raw %}twitter_{{.}}{% endraw %}" + +# Config options that affect the Matrix connector of the bridge. +matrix: + # Whether the bridge should send the message status as a custom com.beeper.message_send_status event. + message_status_events: false + # Whether the bridge should send a read receipt after successfully bridging a message. + delivery_receipts: false + # Whether the bridge should send error notices via m.notice events when a message fails to bridge. + message_error_notices: true + # Whether the bridge should update the m.direct account data event when double puppeting is enabled. + sync_direct_chat_list: true + # Whether created rooms should have federation enabled. If false, created portal rooms + # will never be federated. Changing this option requires recreating rooms. + federate_rooms: {{ matrix_mautrix_twitter_matrix_federate_rooms | to_json }} + # The threshold as bytes after which the bridge should roundtrip uploads via the disk + # rather than keeping the whole file in memory. + upload_file_threshold: 5242880 + +# Segment-compatible analytics endpoint for tracking some events, like provisioning API login and encryption errors. +analytics: + # API key to send with tracking requests. Tracking is disabled if this is null. + token: null + # Address to send tracking requests to. + url: https://api.segment.io/v1/track + # Optional user ID for tracking events. If null, defaults to using Matrix user ID. + user_id: null + +# Settings for provisioning API +provisioning: + # Prefix for the provisioning API paths. + prefix: /_matrix/provision + # Shared secret for authentication. If set to "generate" or null, a random secret will be generated, + # or if set to "disable", the provisioning API will be disabled. + shared_secret: {{ matrix_mautrix_twitter_provisioning_shared_secret | to_json }} + # Whether to allow provisioning API requests to be authed using Matrix access tokens. + # This follows the same rules as double puppeting to determine which server to contact to check the token, + # which means that by default, it only works for users on the same server as the bridge. + allow_matrix_auth: true + # Enable debug API at /debug with provisioning authentication. + debug_endpoints: false + +# Some networks require publicly accessible media download links (e.g. for user avatars when using Discord webhooks). +# These settings control whether the bridge will provide such public media access. +public_media: + # Should public media be enabled at all? + # The public_address field under the appservice section MUST be set when enabling public media. + enabled: false + # A key for signing public media URLs. + # If set to "generate", a random key will be generated. + signing_key: "" + # Number of seconds that public media URLs are valid for. + # If set to 0, URLs will never expire. + expiry: 0 + # Length of hash to use for public media URLs. Must be between 0 and 32. + hash_length: 32 + +# Settings for converting remote media to custom mxc:// URIs instead of reuploading. +# More details can be found at https://docs.mau.fi/bridges/go/discord/direct-media.html +direct_media: + # Should custom mxc:// URIs be used instead of reuploading media? + enabled: false + # The server name to use for the custom mxc:// URIs. + # This server name will effectively be a real Matrix server, it just won't implement anything other than media. + # You must either set up .well-known delegation from this domain to the bridge, or proxy the domain directly to the bridge. + server_name: discord-media.example.com + # Optionally a custom .well-known response. This defaults to `server_name:443` + well_known_response: + # Optionally specify a custom prefix for the media ID part of the MXC URI. + media_id_prefix: + # If the remote network supports media downloads over HTTP, then the bridge will use MSC3860/MSC3916 + # media download redirects if the requester supports it. Optionally, you can force redirects + # and not allow proxying at all by setting this to false. + # This option does nothing if the remote network does not support media downloads over HTTP. + allow_proxy: true + # Matrix server signing key to make the federation tester pass, same format as synapse's .signing.key file. + # This key is also used to sign the mxc:// URIs to ensure only the bridge can generate them. + server_key: "" + +# Settings for backfilling messages. +# Note that the exact way settings are applied depends on the network connector. +# See https://docs.mau.fi/bridges/general/backfill.html for more details. +backfill: + # Whether to do backfilling at all. + enabled: {{ matrix_mautrix_twitter_backfill_enabled | to_json }} + # Maximum number of messages to backfill in empty rooms. + max_initial_messages: {{ matrix_mautrix_twitter_backfill_max_initial_messages | to_json }} + # Maximum number of missed messages to backfill after bridge restarts. + max_catchup_messages: {{ matrix_mautrix_twitter_backfill_max_catchup_messages | to_json }} + # If a backfilled chat is older than this number of hours, + # mark it as read even if it's unread on the remote network. + unread_hours_threshold: 720 + # Settings for backfilling threads within other backfills. + threads: + # Maximum number of messages to backfill in a new thread. + max_initial_messages: 50 + # Settings for the backwards backfill queue. This only applies when connecting to + # Beeper as standard Matrix servers don't support inserting messages into history. + queue: + # Should the backfill queue be enabled? + enabled: false + # Number of messages to backfill in one batch. + batch_size: 100 + # Delay between batches in seconds. + batch_delay: 20 + # Maximum number of batches to backfill per portal. + # If set to -1, all available messages will be backfilled. + max_batches: -1 + # Optional network-specific overrides for max batches. + # Interpretation of this field depends on the network connector. + max_batches_override: {} + +# Settings for enabling double puppeting +double_puppet: + # Servers to always allow double puppeting from. + # This is only for other servers and should NOT contain the server the bridge is on. + servers: {} + # Whether to allow client API URL discovery for other servers. When using this option, + # users on other servers can use double puppeting even if their server URLs aren't + # explicitly added to the servers map above. + allow_discovery: false + # Shared secrets for automatic double puppeting. + # See https://docs.mau.fi/bridges/general/double-puppeting.html for instructions. + secrets: {{ matrix_mautrix_twitter_double_puppet_secrets | to_json }} + +# End-to-bridge encryption support options. # -# See section 16.7.2 of the Python documentation for more info: -# https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema +# See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info. +encryption: + # Whether to enable encryption at all. If false, the bridge will not function in encrypted rooms. + allow: {{ matrix_mautrix_twitter_bridge_encryption_allow | to_json }} + # Whether to force-enable encryption in all bridged rooms. + default: {{ matrix_mautrix_twitter_bridge_encryption_default | to_json }} + # Whether to require all messages to be encrypted and drop any unencrypted messages. + require: {{ matrix_mautrix_twitter_bridge_encryption_require | to_json }} + # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. + # This option is not yet compatible with standard Matrix servers like Synapse and should not be used. + appservice: {{ matrix_mautrix_twitter_bridge_encryption_appservice | to_json }} + # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. + # You must use a client that supports requesting keys from other users to use this feature. + allow_key_sharing: {{ matrix_mautrix_twitter_bridge_encryption_key_sharing_allow | to_json }} + # Pickle key for encrypting encryption keys in the bridge database. + # If set to generate, a random key will be generated. + pickle_key: {{ matrix_mautrix_twitter_bridge_encryption_pickle_key | to_json }} + # Options for deleting megolm sessions from the bridge. + delete_keys: + # Beeper-specific: delete outbound sessions when hungryserv confirms + # that the user has uploaded the key to key backup. + delete_outbound_on_ack: false + # Don't store outbound sessions in the inbound table. + dont_store_outbound: false + # Ratchet megolm sessions forward after decrypting messages. + ratchet_on_decrypt: false + # Delete fully used keys (index >= max_messages) after decrypting messages. + delete_fully_used_on_decrypt: false + # Delete previous megolm sessions from same device when receiving a new one. + delete_prev_on_new_session: false + # Delete megolm sessions received from a device when the device is deleted. + delete_on_device_delete: false + # Periodically delete megolm sessions when 2x max_age has passed since receiving the session. + periodically_delete_expired: false + # Delete inbound megolm sessions that don't have the received_at field used for + # automatic ratcheting and expired session deletion. This is meant as a migration + # to delete old keys prior to the bridge update. + delete_outdated_inbound: false + # What level of device verification should be required from users? + # + # Valid levels: + # unverified - Send keys to all device in the room. + # cross-signed-untrusted - Require valid cross-signing, but trust all cross-signing keys. + # cross-signed-tofu - Require valid cross-signing, trust cross-signing keys on first use (and reject changes). + # cross-signed-verified - Require valid cross-signing, plus a valid user signature from the bridge bot. + # Note that creating user signatures from the bridge bot is not currently possible. + # verified - Require manual per-device verification + # (currently only possible by modifying the `trust` column in the `crypto_device` database table). + verification_levels: + # Minimum level for which the bridge should send keys to when bridging messages from the remote network to Matrix. + receive: unverified + # Minimum level that the bridge should accept for incoming Matrix messages. + send: unverified + # Minimum level that the bridge should require for accepting key requests. + share: cross-signed-tofu + # Options for Megolm room key rotation. These options allow you to configure the m.room.encryption event content. + # See https://spec.matrix.org/v1.10/client-server-api/#mroomencryption for more information about that event. + rotation: + # Enable custom Megolm room key rotation settings. Note that these + # settings will only apply to rooms created after this option is set. + enable_custom: false + # The maximum number of milliseconds a session should be used + # before changing it. The Matrix spec recommends 604800000 (a week) + # as the default. + milliseconds: 604800000 + # The maximum number of messages that should be sent with a given a + # session before changing it. The Matrix spec recommends 100 as the + # default. + messages: 100 + # Disable rotating keys when a user's devices change? + # You should not enable this option unless you understand all the implications. + disable_device_change_key_rotation: false + +# Logging config. See https://github.com/tulir/zeroconfig for details. logging: - version: 1 - formatters: - colored: - (): mautrix_twitter.util.ColorFormatter - format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s" - normal: - format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s" - handlers: - console: - class: logging.StreamHandler - formatter: colored - loggers: - mau: - level: {{ matrix_mautrix_twitter_logging_level|to_json }} - aiohttp: - level: {{ matrix_mautrix_twitter_logging_level|to_json }} - root: - level: {{ matrix_mautrix_twitter_logging_level|to_json }} - handlers: [console] + min_level: {{ matrix_mautrix_twitter_logging_level | to_json }} + writers: + - type: stdout + format: pretty-colored diff --git a/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2.license new file mode 100644 index 000000000..1cdaa53c0 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-twitter/templates/config.yaml.j2.license @@ -0,0 +1,9 @@ +SPDX-FileCopyrightText: 2021 Matthew Cengia +SPDX-FileCopyrightText: 2021 Shreyas Ajjarapu +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2023 Adrien le Maire + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-twitter/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-twitter/templates/labels.j2 index e54502e74..fbf530be4 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-twitter/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_twitter_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2 b/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2 index a0ada77c5..c044cc616 100644 --- a/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-twitter 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-twitter 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-twitter 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -30,7 +30,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ {{ arg }} \ {% endfor %} {{ matrix_mautrix_twitter_docker_image }} \ - python3 -m mautrix_twitter -c /config/config.yaml --no-update + /usr/bin/mautrix-twitter -c /config/config.yaml -r /config/registration.yaml --no-update {% for network in matrix_mautrix_twitter_container_additional_networks %} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-twitter @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-twitter -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-twitter 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-twitter 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-twitter 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2.license b/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2.license new file mode 100644 index 000000000..e0357d6e9 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-twitter/templates/systemd/matrix-mautrix-twitter.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 Matthew Cengia + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-whatsapp/defaults/main.yml index eb3ec65c2..a183d2526 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/defaults/main.yml @@ -1,3 +1,22 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Julian Foad +# SPDX-FileCopyrightText: 2019 Thomas Kuehne +# SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Arthur Brugière +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Petteri Pucilowski +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# SPDX-FileCopyrightText: 2023 James Collier +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +# SPDX-FileCopyrightText: 2024 Nikolai Raitsev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-whatsapp is a Matrix <-> Whatsapp bridge # Project source code URL: https://github.com/mautrix/whatsapp @@ -9,11 +28,13 @@ matrix_mautrix_whatsapp_container_image_self_build_repo: "https://mau.dev/mautri matrix_mautrix_whatsapp_container_image_self_build_branch: "{{ 'master' if matrix_mautrix_whatsapp_version == 'latest' else matrix_mautrix_whatsapp_version }}" # renovate: datasource=docker depName=dock.mau.dev/mautrix/whatsapp -matrix_mautrix_whatsapp_version: v0.11.1 +matrix_mautrix_whatsapp_version: v0.11.3 # See: https://mau.dev/mautrix/whatsapp/container_registry -matrix_mautrix_whatsapp_docker_image: "{{ matrix_mautrix_whatsapp_docker_image_name_prefix }}mautrix/whatsapp:{{ matrix_mautrix_whatsapp_version }}" -matrix_mautrix_whatsapp_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_whatsapp_container_image_self_build else 'dock.mau.dev/' }}" +matrix_mautrix_whatsapp_docker_image: "{{ matrix_mautrix_whatsapp_docker_image_registry_prefix }}mautrix/whatsapp:{{ matrix_mautrix_whatsapp_version }}" +matrix_mautrix_whatsapp_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_whatsapp_container_image_self_build else matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream }}" +matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_whatsapp_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_whatsapp_docker_image_force_pull: "{{ matrix_mautrix_whatsapp_docker_image.endswith(':latest') }}" matrix_mautrix_whatsapp_base_path: "{{ matrix_base_data_path }}/mautrix-whatsapp" @@ -82,7 +103,7 @@ matrix_mautrix_whatsapp_homeserver_token: '' matrix_mautrix_whatsapp_appservice_bot_username: whatsappbot # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug, trace matrix_mautrix_whatsapp_logging_level: 'warn' # Whether or not created rooms should have federation enabled. diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/main.yml index c7de3e189..4fb583f66 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Thomas Kuehne +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Adrien le Maire +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_install.yml index fd2c1a1ed..ecafc5a32 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_install.yml @@ -1,3 +1,20 @@ +# SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2018 Hugues Morisset +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jan Christian Grünhage +# SPDX-FileCopyrightText: 2019 Thomas Kuehne +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_uninstall.yml index 98607b945..9a0beafd5 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-whatsapp service diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/validate_config.yml index 220f99b15..a1f7605f3 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/tasks/validate_config.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2019 Thomas Kuehne +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mautrix-whatsapp settings not defined @@ -11,11 +19,11 @@ - {'name': 'matrix_mautrix_whatsapp_homeserver_token', when: true} - {'name': 'matrix_mautrix_whatsapp_database_hostname', when: "{{ matrix_mautrix_whatsapp_database_engine == 'postgres' }}"} -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed mautrix-whatsapp variables ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mautrix_whatsapp_log_level', 'new': 'matrix_mautrix_whatsapp_logging_level'} @@ -24,3 +32,4 @@ - {'old': 'matrix_mautrix_whatsapp_bridge_double_puppet_server_map', 'new': ''} - {'old': 'matrix_mautrix_whatsapp_bridge_allow_user_invite', 'new': ''} - {'old': 'matrix_mautrix_whatsapp_bridge_mute_bridging', 'new': ''} + - {'old': 'matrix_mautrix_whatsapp_docker_image_name_prefix', 'new': 'matrix_mautrix_whatsapp_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2 index c6224525c..832234832 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2 @@ -384,7 +384,7 @@ direct_media: allow_proxy: true # Matrix server signing key to make the federation tester pass, same format as synapse's .signing.key file. # This key is also used to sign the mxc:// URIs to ensure only the bridge can generate them. - server_key: generate + server_key: "" # Settings for backfilling messages. # Note that the exact way settings are applied depends on the network connector. diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2.license new file mode 100644 index 000000000..00e16d9b7 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/config.yaml.j2.license @@ -0,0 +1,13 @@ +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Thomas Kuehne +SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2023 Adrien le Maire +SPDX-FileCopyrightText: 2023 James Collier +SPDX-FileCopyrightText: 2024 Nikolai Raitsev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/labels.j2 b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/labels.j2 index 23f94361e..74bd55954 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_whatsapp_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2 b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2 index f7b4a9ee5..fe77ca34d 100644 --- a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-whatsapp 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-whatsapp 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-whatsapp 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-whatsapp -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-whatsapp 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-whatsapp 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-whatsapp 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2.license b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2.license new file mode 100644 index 000000000..6a14dbaad --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-whatsapp/templates/systemd/matrix-mautrix-whatsapp.service.j2.license @@ -0,0 +1,8 @@ +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Thomas Kuehne +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/defaults/main.yml b/roles/custom/matrix-bridge-mautrix-wsproxy/defaults/main.yml index 51ad2a990..b55933180 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/defaults/main.yml +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mautrix-wsproxy is a Matrix <-> websocket bridge # See: https://github.com/mautrix/wsproxy @@ -6,7 +13,10 @@ matrix_mautrix_wsproxy_enabled: true matrix_mautrix_wsproxy_version: latest # See: https://mau.dev/mautrix/wsproxy/container_registry -matrix_mautrix_wsproxy_docker_image: "dock.mau.dev/mautrix/wsproxy:{{ matrix_mautrix_wsproxy_version }}" +matrix_mautrix_wsproxy_docker_image: "{{ matrix_mautrix_wsproxy_docker_image_registry_prefix }}mautrix/wsproxy:{{ matrix_mautrix_wsproxy_version }}" +matrix_mautrix_wsproxy_docker_image_registry_prefix: "{{ matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream }}" +matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream: "{{ matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream_default }}" +matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream_default: "dock.mau.dev/" matrix_mautrix_wsproxy_docker_image_force_pull: "{{ matrix_mautrix_wsproxy_docker_image.endswith(':latest') }}" matrix_mautrix_wsproxy_base_path: "{{ matrix_base_data_path }}/wsproxy" @@ -95,11 +105,11 @@ matrix_mautrix_wsproxy_configuration_extension_yaml: | # If you need something more special, you can take full control by # completely redefining `matrix_mautrix_wsproxy_configuration_yaml`. -matrix_mautrix_wsproxy_configuration_extension: "{{ matrix_mautrix_wsproxy_configuration_extension_yaml|from_yaml if matrix_mautrix_wsproxy_configuration_extension_yaml|from_yaml is mapping else {} }}" +matrix_mautrix_wsproxy_configuration_extension: "{{ matrix_mautrix_wsproxy_configuration_extension_yaml | from_yaml if matrix_mautrix_wsproxy_configuration_extension_yaml | from_yaml is mapping else {} }}" # Holds the final configuration (a combination of the default and its extension). # You most likely don't need to touch this variable. Instead, see `matrix_mautrix_wsproxy_configuration_yaml`. -matrix_mautrix_wsproxy_configuration: "{{ matrix_mautrix_wsproxy_configuration_yaml|from_yaml|combine(matrix_mautrix_wsproxy_configuration_extension, recursive=True) }}" +matrix_mautrix_wsproxy_configuration: "{{ matrix_mautrix_wsproxy_configuration_yaml | from_yaml | combine(matrix_mautrix_wsproxy_configuration_extension, recursive=True) }}" matrix_mautrix_androidsms_registration_yaml: | id: androidsms @@ -110,12 +120,12 @@ matrix_mautrix_androidsms_registration_yaml: | rate_limited: false namespaces: users: - - regex: '@androidsms_.+:{{ matrix_mautrix_wsproxy_homeserver_domain|regex_escape }}$' + - regex: '@androidsms_.+:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$' exclusive: true - exclusive: true - regex: '^@{{ matrix_mautrix_androidsms_appservice_bot_username|regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain|regex_escape }}$' + regex: '^@{{ matrix_mautrix_androidsms_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$' -matrix_mautrix_androidsms_registration: "{{ matrix_mautrix_androidsms_registration_yaml|from_yaml }}" +matrix_mautrix_androidsms_registration: "{{ matrix_mautrix_androidsms_registration_yaml | from_yaml }}" matrix_mautrix_imessage_registration_yaml: | id: imessage @@ -126,12 +136,12 @@ matrix_mautrix_imessage_registration_yaml: | rate_limited: false namespaces: users: - - regex: '@imessage_.+:{{ matrix_mautrix_wsproxy_homeserver_domain|regex_escape }}$' + - regex: '@imessage_.+:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$' exclusive: true - exclusive: true - regex: '^@{{ matrix_mautrix_imessage_appservice_bot_username|regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain|regex_escape }}$' + regex: '^@{{ matrix_mautrix_imessage_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$' -matrix_mautrix_imessage_registration: "{{ matrix_mautrix_imessage_registration_yaml|from_yaml }}" +matrix_mautrix_imessage_registration: "{{ matrix_mautrix_imessage_registration_yaml | from_yaml }}" # Syncproxy-related configuration fields # renovate: datasource=docker depName=dock.mau.dev/mautrix/syncproxy diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/main.yml b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/main.yml index 77ba520f4..dd2cee331 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/main.yml +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_install.yml b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_install.yml index 703d412df..9685df0e0 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # If the matrix-synapse role is not used, `matrix_synapse_role_executed` won't exist. @@ -69,7 +76,7 @@ - name: Ensure mautrix-wsproxy config.yaml installed ansible.builtin.copy: - content: "{{ matrix_mautrix_wsproxy_configuration|to_nice_yaml }}" + content: "{{ matrix_mautrix_wsproxy_configuration | to_nice_yaml }}" dest: "{{ matrix_mautrix_wsproxy_config_path }}/config.yaml" mode: 0644 owner: "{{ matrix_user_username }}" @@ -77,7 +84,7 @@ - name: Ensure mautrix-androidsms registration.yaml installed ansible.builtin.copy: - content: "{{ matrix_mautrix_androidsms_registration|to_nice_yaml }}" + content: "{{ matrix_mautrix_androidsms_registration | to_nice_yaml }}" dest: "{{ matrix_mautrix_wsproxy_config_path }}/androidsms-registration.yaml" mode: 0644 owner: "{{ matrix_user_username }}" @@ -85,7 +92,7 @@ - name: Ensure mautrix-imessage registration.yaml installed ansible.builtin.copy: - content: "{{ matrix_mautrix_imessage_registration|to_nice_yaml }}" + content: "{{ matrix_mautrix_imessage_registration | to_nice_yaml }}" dest: "{{ matrix_mautrix_wsproxy_config_path }}/imessage-registration.yaml" mode: 0644 owner: "{{ matrix_user_username }}" diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_uninstall.yml index c39fd29f4..0326fcb96 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mautrix-wsproxy service diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/validate_config.yml b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/validate_config.yml index 6a7012385..244da474f 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Johan Swetzén +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required settings not defined diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/config.yaml.j2 index 2c7932614..b0eae9f68 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/config.yaml.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 Johan Swetzén + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + listen_address: 0.0.0.0:29331 appservices: - id: androidsms diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/syncproxy-env.j2 b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/syncproxy-env.j2 index 0ce02496d..45ff0d9b6 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/syncproxy-env.j2 +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/syncproxy-env.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 Johan Swetzén +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + DATABASE_URL={{ matrix_mautrix_signal_wsproxy_syncproxy_connection_string }} HOMESERVER_URL={{ matrix_mautrix_wsproxy_syncproxy_homeserver_url }} SHARED_SECRET={{ matrix_mautrix_wsproxy_syncproxy_shared_secret }} diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2 b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2 index 9e1137a97..c46d7b6f9 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy-syncproxy 2>/dev/null' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy-syncproxy 2>/dev/null' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-wsproxy-syncproxy 2>/dev/null' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -35,7 +35,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-wsproxy-syncproxy -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy-syncproxy 2>/dev/null' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy-syncproxy 2>/dev/null' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-wsproxy-syncproxy 2>/dev/null' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2.license b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2.license new file mode 100644 index 000000000..bf57ad87b --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Johan Swetzén + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2 b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2 index 206342676..ab71702ea 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2 +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy 2>/dev/null' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy 2>/dev/null' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-wsproxy 2>/dev/null' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create --rm --name matrix-mautrix-wsproxy \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-wsproxy -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy 2>/dev/null' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-wsproxy 2>/dev/null' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-wsproxy 2>/dev/null' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2.license b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2.license new file mode 100644 index 000000000..3cc582ba8 --- /dev/null +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/systemd/matrix-mautrix-wsproxy.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Johan Swetzén + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/wsproxy-labels.j2 b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/wsproxy-labels.j2 index f16a631e8..06a879b9c 100644 --- a/roles/custom/matrix-bridge-mautrix-wsproxy/templates/wsproxy-labels.j2 +++ b/roles/custom/matrix-bridge-mautrix-wsproxy/templates/wsproxy-labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 Johan Swetzén + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_mautrix_wsproxy_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-discord/defaults/main.yml index 3c825b351..5cda2b0f4 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-discord/defaults/main.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Daniel Sonck +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Mx Puppet Discord is a Matrix <-> Discord bridge # Project source code URL: https://gitlab.com/mx-puppet/discord/mx-puppet-discord @@ -16,8 +28,10 @@ matrix_mx_puppet_discord_container_http_host_bind_port: '' # renovate: datasource=docker depName=registry.gitlab.com/mx-puppet/discord/mx-puppet-discord matrix_mx_puppet_discord_version: v0.1.1 -matrix_mx_puppet_discord_docker_image: "{{ matrix_mx_puppet_discord_docker_image_name_prefix }}mx-puppet/discord/mx-puppet-discord:{{ matrix_mx_puppet_discord_version }}" -matrix_mx_puppet_discord_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_discord_container_image_self_build else 'registry.gitlab.com/' }}" +matrix_mx_puppet_discord_docker_image: "{{ matrix_mx_puppet_discord_docker_image_registry_prefix }}mx-puppet/discord/mx-puppet-discord:{{ matrix_mx_puppet_discord_version }}" +matrix_mx_puppet_discord_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_discord_container_image_self_build else matrix_mx_puppet_discord_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_discord_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_discord_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_discord_docker_image_registry_prefix_upstream_default: "registry.gitlab.com/" matrix_mx_puppet_discord_docker_image_force_pull: "{{ matrix_mx_puppet_discord_docker_image.endswith(':latest') }}" matrix_mx_puppet_discord_base_path: "{{ matrix_base_data_path }}/mx-puppet-discord" @@ -33,14 +47,14 @@ matrix_mx_puppet_discord_appservice_address: 'http://matrix-mx-puppet-discord:{{ matrix_mx_puppet_discord_bridge_mediaUrl: "{{ matrix_homeserver_url }}" # noqa var-naming -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_discord_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_discord_provisioning_blacklist: [] diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/main.yml index c0300b513..67e4948e4 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_install.yml index 5922c59c3..af1717a0f 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure MX Puppet Discord paths exist diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_uninstall.yml index c1ed9ec36..2deb391a0 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-discord service diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/validate_config.yml index f5faa2333..d343fbba6 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-discord/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-discord settings not defined @@ -11,3 +16,11 @@ - {'name': 'matrix_mx_puppet_discord_homeserver_token', when: true} - {'name': 'matrix_mx_puppet_discord_database_hostname', when: "{{ matrix_mx_puppet_discord_database_engine == 'postgres' }}"} - {'name': 'matrix_mx_puppet_discord_container_network', when: true} + +- name: (Deprecation) Catch and report renamed mx-puppet-discord variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_mx_puppet_discord_docker_image_name_prefix', 'new': 'matrix_mx_puppet_discord_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2 index 4940a469d..3db538127 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2 @@ -31,7 +31,7 @@ provisioning: # Regex of Matrix IDs allowed to use the puppet bridge whitelist: {{ matrix_mx_puppet_discord_provisioning_whitelist|to_json }} # Allow a specific user - #- "@user:example\\.com" + #- "@alice:example\\.com" # Allow users on a specific homeserver #- "@.*:example\\.com" # Allow anyone @@ -39,7 +39,7 @@ provisioning: # Regex of Matrix IDs forbidden from using the puppet bridge #blacklist: # Disallow a specific user - #- "@user:example\\.com" + #- "@bob:example\\.com" # Disallow users on a specific homeserver #- "@.*:example\\.com" blacklist: {{ matrix_mx_puppet_discord_provisioning_blacklist|to_json }} diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2.license new file mode 100644 index 000000000..7b4bc3507 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-discord/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2022 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2 b/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2 index 55efcfba4..6d75a9332 100644 --- a/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-discord 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-discord 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-discord 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-discord -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-discord 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-discord 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-discord 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2.license new file mode 100644 index 000000000..16b2b499b --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-discord/templates/systemd/matrix-mx-puppet-discord.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-groupme/defaults/main.yml index 730123b0b..a4d7570ef 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Cody Neiman +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Mx Puppet GroupMe is a Matrix <-> GroupMe bridge # Project source code URL: https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme @@ -14,8 +25,10 @@ matrix_mx_puppet_groupme_container_image_self_build_repo_version: "{{ 'main' if matrix_mx_puppet_groupme_container_http_host_bind_port: '' matrix_mx_puppet_groupme_version: 533cccc8 -matrix_mx_puppet_groupme_docker_image: "{{ matrix_mx_puppet_groupme_docker_image_name_prefix }}xangelix-pub/matrix/mx-puppet-groupme:{{ matrix_mx_puppet_groupme_version }}" -matrix_mx_puppet_groupme_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_groupme_container_image_self_build else 'registry.gitlab.com/' }}" +matrix_mx_puppet_groupme_docker_image: "{{ matrix_mx_puppet_groupme_docker_image_registry_prefix }}xangelix-pub/matrix/mx-puppet-groupme:{{ matrix_mx_puppet_groupme_version }}" +matrix_mx_puppet_groupme_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_groupme_container_image_self_build else matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_groupme_docker_image_registry_prefix_upstream_default: "registry.gitlab.com/" matrix_mx_puppet_groupme_docker_image_force_pull: "{{ matrix_mx_puppet_groupme_docker_image.endswith(':latest') }}" matrix_mx_puppet_groupme_base_path: "{{ matrix_base_data_path }}/mx-puppet-groupme" @@ -29,14 +42,14 @@ matrix_mx_puppet_groupme_homeserver_address: "" matrix_mx_puppet_groupme_homeserver_domain: '{{ matrix_domain }}' matrix_mx_puppet_groupme_appservice_address: 'http://matrix-mx-puppet-groupme:{{ matrix_mx_puppet_groupme_appservice_port }}' -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_groupme_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_groupme_provisioning_blacklist: [] diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/main.yml index de225e71d..8b6e0be39 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Cody Neiman +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_install.yml index 44dc72e47..5e09ca887 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Cody Neiman +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure MX Puppet Groupme paths exist diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_uninstall.yml index ce0823e6e..6f698ca62 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Cody Neiman +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-groupme service diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/validate_config.yml index c52c038b1..8d195daff 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 Cody Neiman +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-groupme settings not defined @@ -11,3 +16,11 @@ - {'name': 'matrix_mx_puppet_groupme_homeserver_token', when: true} - {'name': 'matrix_mx_puppet_groupme_database_hostname', when: "{{ matrix_mx_puppet_groupme_database_engine == 'postgres' }}"} - {'name': 'matrix_mx_puppet_groupme_container_network', when: true} + +- name: (Deprecation) Catch and report renamed mx-puppet-groupme variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_mx_puppet_groupme_docker_image_name_prefix', 'new': 'matrix_mx_puppet_groupme_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2 index 862397577..c3237513d 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2 @@ -31,7 +31,7 @@ provisioning: # Regex of Matrix IDs allowed to use the puppet bridge whitelist: {{ matrix_mx_puppet_groupme_provisioning_whitelist|to_json }} # Allow a specific user - #- "@user:example\\.com" + #- "@alice:example\\.com" # Allow users on a specific homeserver #- "@.*:example\\.com" # Allow anyone @@ -39,7 +39,7 @@ provisioning: # Regex of Matrix IDs forbidden from using the puppet bridge #blacklist: # Disallow a specific user - #- "@user:example\\.com" + #- "@bob:example\\.com" # Disallow users on a specific homeserver #- "@.*:example\\.com" blacklist: {{ matrix_mx_puppet_groupme_provisioning_blacklist|to_json }} diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2.license new file mode 100644 index 000000000..3065e3d50 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2021 Cody Neiman +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2 b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2 index eb9fd2574..9f4483c6a 100644 --- a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-groupme 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-groupme 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-groupme 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-groupme -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-groupme 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-groupme 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-groupme 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2.license new file mode 100644 index 000000000..eaa700407 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-groupme/templates/systemd/matrix-mx-puppet-groupme.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Cody Neiman +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-instagram/defaults/main.yml index 54d56b3cd..14568af1a 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # mx-puppet-instagram bridges instagram DMs # Project source code URL: https://github.com/Sorunome/mx-puppet-instagram @@ -10,8 +20,10 @@ matrix_mx_puppet_instagram_container_image_self_build_repo_version: "{{ 'master' # renovate: datasource=docker depName=sorunome/mx-puppet-instagram matrix_mx_puppet_instagram_version: latest -matrix_mx_puppet_instagram_docker_image: "{{ matrix_mx_puppet_instagram_docker_image_name_prefix }}sorunome/mx-puppet-instagram:{{ matrix_mx_puppet_instagram_version }}" -matrix_mx_puppet_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_instagram_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_mx_puppet_instagram_docker_image: "{{ matrix_mx_puppet_instagram_docker_image_registry_prefix }}sorunome/mx-puppet-instagram:{{ matrix_mx_puppet_instagram_version }}" +matrix_mx_puppet_instagram_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_instagram_container_image_self_build else matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_instagram_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_mx_puppet_instagram_docker_image_force_pull: "{{ matrix_mx_puppet_instagram_docker_image.endswith(':latest') }}" matrix_mx_puppet_instagram_base_path: "{{ matrix_base_data_path }}/mx-puppet-instagram" @@ -24,14 +36,14 @@ matrix_mx_puppet_instagram_homeserver_address: "" matrix_mx_puppet_instagram_homeserver_domain: '{{ matrix_domain }}' matrix_mx_puppet_instagram_appservice_address: 'http://matrix-mx-puppet-instagram:{{ matrix_mx_puppet_instagram_appservice_port }}' -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_instagram_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_instagram_provisioning_blacklist: [] diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/main.yml index 0d46532ce..c2944596f 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_install.yml index 47ec55ef7..1846ede1f 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_uninstall.yml index 943c0556a..b3b465060 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-instagram service diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/validate_config.yml index 67a2c6978..13a9fbf7d 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-instagram settings not defined @@ -11,3 +16,11 @@ - {'name': 'matrix_mx_puppet_instagram_homeserver_token', when: true} - {'name': 'matrix_mx_puppet_instagram_database_hostname', when: "{{ matrix_mx_puppet_instagram_database_engine == 'postgres' }}"} - {'name': 'matrix_mx_puppet_instagram_container_network', when: true} + +- name: (Deprecation) Catch and report renamed mx-puppet-instagram variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_mx_puppet_instagram_docker_image_name_prefix', 'new': 'matrix_mx_puppet_instagram_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2 index 69943fe9b..2e15c5b0c 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2 @@ -24,7 +24,7 @@ provisioning: # Regex of Matrix IDs allowed to use the puppet bridge whitelist: {{ matrix_mx_puppet_instagram_provisioning_whitelist|to_json }} # Allow a specific user - #- "@user:example\\.com" + #- "@alice:example\\.com" # Allow users on a specific homeserver #- "@.*:example\\.com" # Allow anyone @@ -32,7 +32,7 @@ provisioning: # Regex of Matrix IDs forbidden from using the puppet bridge #blacklist: # Disallow a specific user - #- "@user:example\\.com" + #- "@bob:example\\.com" # Disallow users on a specific homeserver #- "@.*:example\\.com" blacklist: {{ matrix_mx_puppet_instagram_provisioning_blacklist|to_json }} diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2.license new file mode 100644 index 000000000..7ae771d35 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2022 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2 b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2 index a3b9d1739..0efca1941 100644 --- a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-instagram 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-instagram 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-instagram 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-instagram -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-instagram 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-instagram 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-instagram 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2.license new file mode 100644 index 000000000..ed96bddd2 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-instagram/templates/systemd/matrix-mx-puppet-instagram.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-slack/defaults/main.yml index 307ee5b22..338eb3691 100644 --- a/roles/custom/matrix-bridge-mx-puppet-slack/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-slack/defaults/main.yml @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2020 Rodrigo Belem +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Marcel Ackermann +# SPDX-FileCopyrightText: 2022 Daniel Sonck +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Mx Puppet Slack is a Matrix <-> Slack bridge # Project source code URL: https://gitlab.com/mx-puppet/slack/mx-puppet-slack @@ -23,8 +38,10 @@ matrix_mx_puppet_slack_container_http_host_bind_port: '' # renovate: datasource=docker depName=registry.gitlab.com/mx-puppet/slack/mx-puppet-slack matrix_mx_puppet_slack_version: v0.1.2 -matrix_mx_puppet_slack_docker_image: "{{ matrix_mx_puppet_slack_docker_image_name_prefix }}mx-puppet/slack/mx-puppet-slack:{{ matrix_mx_puppet_slack_version }}" -matrix_mx_puppet_slack_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_slack_container_image_self_build else 'registry.gitlab.com/' }}" +matrix_mx_puppet_slack_docker_image: "{{ matrix_mx_puppet_slack_docker_image_registry_prefix }}mx-puppet/slack/mx-puppet-slack:{{ matrix_mx_puppet_slack_version }}" +matrix_mx_puppet_slack_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_slack_container_image_self_build else matrix_mx_puppet_slack_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_slack_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_slack_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_slack_docker_image_registry_prefix_upstream_default: "registry.gitlab.com/" matrix_mx_puppet_slack_docker_image_force_pull: "{{ matrix_mx_puppet_slack_docker_image.endswith(':latest') }}" matrix_mx_puppet_slack_base_path: "{{ matrix_base_data_path }}/mx-puppet-slack" @@ -42,14 +59,14 @@ matrix_mx_puppet_slack_oauth_enabled: true matrix_mx_puppet_slack_oauth_redirect_path: "{{ matrix_mx_puppet_slack_path_prefix }}" matrix_mx_puppet_slack_oauth_redirect_uri: '{{ matrix_mx_puppet_slack_scheme }}://{{ matrix_mx_puppet_slack_hostname }}{{ matrix_mx_puppet_slack_oauth_redirect_path }}' -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_slack_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_slack_provisioning_blacklist: [] @@ -108,7 +125,7 @@ matrix_mx_puppet_slack_login_shared_secret: '' matrix_mx_puppet_slack_presence_enabled: true matrix_mx_puppet_slack_presence_interval: 5000 -# Database configuration, role uses 'sqlite' per default but playbook sets up postgres by default +# Database configuration, role uses 'sqlite' per default but playbook sets up Postgres by default matrix_mx_puppet_slack_database_engine: sqlite matrix_mx_puppet_slack_sqlite_database_path_local: "{{ matrix_mx_puppet_slack_data_path }}/database.db" diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/main.yml index d5d3d421e..3e66fd822 100644 --- a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Rodrigo Belem +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_install.yml index c46a25bd1..55e0cdecf 100644 --- a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Rodrigo Belem +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure MX Puppet Slack paths exist diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_uninstall.yml index 444939198..33d2ad22c 100644 --- a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Rodrigo Belem +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-slack service diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/validate_config.yml index dbc1d0025..8ede9eed3 100644 --- a/roles/custom/matrix-bridge-mx-puppet-slack/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-slack/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Rodrigo Belem +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-slack settings not defined @@ -18,8 +24,9 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mx_puppet_slack_redirect_path', 'new': 'matrix_mx_puppet_slack_oauth_redirect_path, but setting matrix_mx_puppet_slack_path_prefix is better'} - {'old': 'matrix_mx_puppet_slack_redirect_uri', 'new': '/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-slack 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-slack 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -42,7 +42,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-slack -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-slack 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-slack 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-slack 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-slack/templates/systemd/matrix-mx-puppet-slack.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-slack/templates/systemd/matrix-mx-puppet-slack.service.j2.license new file mode 100644 index 000000000..04f321b44 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-slack/templates/systemd/matrix-mx-puppet-slack.service.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Rodrigo Belem +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-steam/defaults/main.yml index 639537e0b..65161cf54 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-steam/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Mx Puppet Steam is a Matrix <-> Steam bridge # Project source code URL: https://github.com/icewind1991/mx-puppet-steam @@ -15,8 +26,10 @@ matrix_mx_puppet_steam_container_http_host_bind_port: '' # renovate: datasource=docker depName=icewind1991/mx-puppet-steam matrix_mx_puppet_steam_version: latest -matrix_mx_puppet_steam_docker_image: "{{ matrix_mx_puppet_steam_docker_image_name_prefix }}icewind1991/mx-puppet-steam:{{ matrix_mx_puppet_steam_version }}" -matrix_mx_puppet_steam_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_steam_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_mx_puppet_steam_docker_image: "{{ matrix_mx_puppet_steam_docker_image_registry_prefix }}icewind1991/mx-puppet-steam:{{ matrix_mx_puppet_steam_version }}" +matrix_mx_puppet_steam_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_steam_container_image_self_build else matrix_mx_puppet_steam_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_steam_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_steam_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_steam_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_mx_puppet_steam_docker_image_force_pull: "{{ matrix_mx_puppet_steam_docker_image.endswith(':latest') }}" matrix_mx_puppet_steam_base_path: "{{ matrix_base_data_path }}/mx-puppet-steam" @@ -30,14 +43,14 @@ matrix_mx_puppet_steam_homeserver_address: "" matrix_mx_puppet_steam_homeserver_domain: '{{ matrix_domain }}' matrix_mx_puppet_steam_appservice_address: 'http://matrix-mx-puppet-steam:{{ matrix_mx_puppet_steam_appservice_port }}' -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_steam_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_steam_provisioning_blacklist: [] diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/main.yml index 66d2980d3..a7619e431 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_install.yml index a29c5e44f..298913aec 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_install.yml @@ -1,3 +1,15 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2020 Panagiotis Vasilopoulos +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure MX Puppet Steam paths exist diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_uninstall.yml index 75d0ebc0f..1281ee4f8 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-steam service diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/validate_config.yml index 7a09a8073..4c2dc020b 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-steam/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 Hugues Morisset +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-steam settings not defined @@ -11,3 +16,11 @@ - {'name': 'matrix_mx_puppet_steam_homeserver_token', when: true} - {'name': 'matrix_mx_puppet_steam_database_hostname', when: "{{ matrix_mx_puppet_steam_database_engine == 'postgres' }}"} - {'name': 'matrix_mx_puppet_steam_container_network', when: true} + +- name: (Deprecation) Catch and report renamed mx-puppet-steam variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_mx_puppet_steam_docker_image_name_prefix', 'new': 'matrix_mx_puppet_steam_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2 b/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2 index 213d628d2..c2d089f7f 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2 @@ -31,7 +31,7 @@ provisioning: # Regex of Matrix IDs allowed to use the puppet bridge whitelist: {{ matrix_mx_puppet_steam_provisioning_whitelist|to_json }} # Allow a specific user - #- "@user:example\\.com" + #- "@alice:example\\.com" # Allow users on a specific homeserver #- "@.*:example\\.com" # Allow anyone @@ -39,7 +39,7 @@ provisioning: # Regex of Matrix IDs forbidden from using the puppet bridge #blacklist: # Disallow a specific user - #- "@user:example\\.com" + #- "@bob:example\\.com" # Disallow users on a specific homeserver #- "@.*:example\\.com" blacklist: {{ matrix_mx_puppet_steam_provisioning_blacklist|to_json }} diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2.license new file mode 100644 index 000000000..7b4bc3507 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-steam/templates/config.yaml.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2022 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2 b/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2 index cdb1efaa6..dd235a4e3 100644 --- a/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2 +++ b/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-steam 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-steam 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-steam 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-steam -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-steam 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-steam 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-steam 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2.license new file mode 100644 index 000000000..16b2b499b --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-steam/templates/systemd/matrix-mx-puppet-steam.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/defaults/main.yml b/roles/custom/matrix-bridge-mx-puppet-twitter/defaults/main.yml index 4f806ff5d..c556cda4a 100644 --- a/roles/custom/matrix-bridge-mx-puppet-twitter/defaults/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Tulir Asokan +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Mx Puppet Twitter is a Matrix <-> Twitter bridge @@ -19,8 +30,10 @@ matrix_mx_puppet_twitter_container_http_host_bind_port: '' # renovate: datasource=docker depName=sorunome/mx-puppet-twitter matrix_mx_puppet_twitter_version: latest -matrix_mx_puppet_twitter_docker_image: "{{ matrix_mx_puppet_twitter_docker_image_name_prefix }}sorunome/mx-puppet-twitter:{{ matrix_mx_puppet_twitter_version }}" -matrix_mx_puppet_twitter_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_twitter_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_mx_puppet_twitter_docker_image: "{{ matrix_mx_puppet_twitter_docker_image_registry_prefix }}sorunome/mx-puppet-twitter:{{ matrix_mx_puppet_twitter_version }}" +matrix_mx_puppet_twitter_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mx_puppet_twitter_container_image_self_build else matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream }}" +matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream: "{{ matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream_default }}" +matrix_mx_puppet_twitter_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_mx_puppet_twitter_docker_image_force_pull: "{{ matrix_mx_puppet_twitter_docker_image.endswith(':latest') }}" matrix_mx_puppet_twitter_base_path: "{{ matrix_base_data_path }}/mx-puppet-twitter" @@ -42,14 +55,14 @@ matrix_mx_puppet_twitter_environment: '' matrix_mx_puppet_twitter_server_path: "{{ matrix_mx_puppet_twitter_path_prefix }}" matrix_mx_puppet_twitter_server_url: '{{ matrix_homeserver_url }}{{ matrix_mx_puppet_twitter_server_path }}' -# "@user:example.com" to allow a specific user +# "@alice:example.com" to allow a specific user # "@.*:example.com" to allow users on a specific homeserver # "@.*" to allow anyone matrix_mx_puppet_twitter_provisioning_whitelist: - "@.*:{{ matrix_domain | regex_escape }}" # Leave empty to disable blacklist -# "@user:example.com" to disallow a specific user +# "@bob:example.com" to disallow a specific user # "@.*:example.com" to disallow users on a specific homeserver matrix_mx_puppet_twitter_provisioning_blacklist: [] diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/main.yml b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/main.yml index 3cfe6a793..b534f22c0 100644 --- a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/main.yml +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Tulir Asokan +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_install.yml b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_install.yml index 8d385dd14..2f6a7807e 100644 --- a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2020 Tulir Asokan +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure MX Puppet Twitter paths exist diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_uninstall.yml index c529f0b34..c5f3bc2bf 100644 --- a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Tulir Asokan +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-mx-puppet-twitter service diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/validate_config.yml b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/validate_config.yml index a8f6b0bb0..84e2c1c76 100644 --- a/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Tulir Asokan +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required mx-puppet-twitter settings not defined @@ -18,8 +24,9 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_mx_puppet_twitter_webhook_path', 'new': '/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-twitter 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-twitter 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mx-puppet-twitter -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-twitter 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mx-puppet-twitter 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mx-puppet-twitter 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-mx-puppet-twitter/templates/systemd/matrix-mx-puppet-twitter.service.j2.license b/roles/custom/matrix-bridge-mx-puppet-twitter/templates/systemd/matrix-mx-puppet-twitter.service.j2.license new file mode 100644 index 000000000..2bcb63426 --- /dev/null +++ b/roles/custom/matrix-bridge-mx-puppet-twitter/templates/systemd/matrix-mx-puppet-twitter.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2020 Tulir Asokan + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-postmoogle/defaults/main.yml b/roles/custom/matrix-bridge-postmoogle/defaults/main.yml index 58700b913..40013eb8d 100644 --- a/roles/custom/matrix-bridge-postmoogle/defaults/main.yml +++ b/roles/custom/matrix-bridge-postmoogle/defaults/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Luke D Iremadze +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # postmoogle is an email to Matrix bridge using its bot user # Project source code URL: https://github.com/etkecc/postmoogle @@ -10,9 +18,11 @@ matrix_postmoogle_docker_repo_version: "{{ 'main' if matrix_postmoogle_version = matrix_postmoogle_docker_src_files_path: "{{ matrix_base_data_path }}/postmoogle/docker-src" # renovate: datasource=docker depName=ghcr.io/etkecc/postmoogle -matrix_postmoogle_version: v0.9.24 -matrix_postmoogle_docker_image: "{{ matrix_postmoogle_docker_image_name_prefix }}etkecc/postmoogle:{{ matrix_postmoogle_version }}" -matrix_postmoogle_docker_image_name_prefix: "{{ 'localhost/' if matrix_postmoogle_container_image_self_build else 'ghcr.io/' }}" +matrix_postmoogle_version: v0.9.25 +matrix_postmoogle_docker_image: "{{ matrix_postmoogle_docker_image_registry_prefix }}etkecc/postmoogle:{{ matrix_postmoogle_version }}" +matrix_postmoogle_docker_image_registry_prefix: "{{ 'localhost/' if matrix_postmoogle_container_image_self_build else matrix_postmoogle_docker_image_registry_prefix_upstream }}" +matrix_postmoogle_docker_image_registry_prefix_upstream: "{{ matrix_postmoogle_docker_image_registry_prefix_upstream_default }}" +matrix_postmoogle_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_postmoogle_docker_image_force_pull: "{{ matrix_postmoogle_docker_image.endswith(':latest') }}" matrix_postmoogle_base_path: "{{ matrix_base_data_path }}/postmoogle" @@ -100,8 +110,8 @@ matrix_postmoogle_relay_password: '' # A list of admins # Example set of rules: # matrix_postmoogle_admins: -# - '@someone:example.com' -# - '@another:example.com' +# - '@alice:example.com' +# - '@bob:example.com' # - '@bot.*:example.com' # - '@*:example.net' matrix_postmoogle_admins: "{{ [matrix_admin] if matrix_admin else [] }}" diff --git a/roles/custom/matrix-bridge-postmoogle/tasks/main.yml b/roles/custom/matrix-bridge-postmoogle/tasks/main.yml index 0b4dbc60b..ecbbff69a 100644 --- a/roles/custom/matrix-bridge-postmoogle/tasks/main.yml +++ b/roles/custom/matrix-bridge-postmoogle/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml b/roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml index 61a8e7873..4dc78ddc7 100644 --- a/roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Check and remove the legacy systemd service (`matrix-bot-postmoogle.service`). diff --git a/roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml index 28b243429..9db50fc5c 100644 --- a/roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-postmoogle service diff --git a/roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml b/roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml index d486923d3..78b40d94c 100644 --- a/roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Postmoogle settings not defined @@ -10,3 +16,11 @@ - {'name': 'matrix_postmoogle_container_network', when: true} - {'name': 'matrix_postmoogle_homeserver', when: true} - {'name': 'matrix_postmoogle_database_hostname', when: "{{ matrix_postmoogle_database_engine == 'postgres' }}"} + +- name: (Deprecation) Catch and report renamed Postmoogle variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_postmoogle_docker_image_name_prefix', 'new': 'matrix_postmoogle_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-postmoogle/templates/env.j2 b/roles/custom/matrix-bridge-postmoogle/templates/env.j2 index b56f88ae2..a2a8348bf 100644 --- a/roles/custom/matrix-bridge-postmoogle/templates/env.j2 +++ b/roles/custom/matrix-bridge-postmoogle/templates/env.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + POSTMOOGLE_LOGIN={{ matrix_postmoogle_login }} POSTMOOGLE_PASSWORD={{ matrix_postmoogle_password }} POSTMOOGLE_SHAREDSECRET={{ matrix_postmoogle_sharedsecret }} diff --git a/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2 b/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2 index fa4c1bf36..5d730184e 100644 --- a/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2 +++ b/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-postmoogle 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-postmoogle 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-postmoogle 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -44,7 +44,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-postmoogle -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-postmoogle 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-postmoogle 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-postmoogle 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2.license b/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2.license new file mode 100644 index 000000000..c8f114ab8 --- /dev/null +++ b/roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-sms/defaults/main.yml b/roles/custom/matrix-bridge-sms/defaults/main.yml index 048bc85c2..992d8b936 100644 --- a/roles/custom/matrix-bridge-sms/defaults/main.yml +++ b/roles/custom/matrix-bridge-sms/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-sms-bridge is a Matrix <-> SMS bridge # Project source code URL: https://github.com/benkuly/matrix-sms-bridge @@ -6,7 +16,11 @@ matrix_sms_bridge_enabled: true # renovate: datasource=docker depName=folivonet/matrix-sms-bridge matrix_sms_bridge_version: 0.5.9 -matrix_sms_bridge_docker_image: "{{ matrix_container_global_registry_prefix }}folivonet/matrix-sms-bridge:{{ matrix_sms_bridge_version }}" +matrix_sms_bridge_docker_image: "{{ matrix_sms_bridge_docker_image_registry_prefix }}folivonet/matrix-sms-bridge:{{ matrix_sms_bridge_docker_image_tag }}" +matrix_sms_bridge_docker_image_registry_prefix: "{{ matrix_sms_bridge_docker_image_registry_prefix_upstream }}" +matrix_sms_bridge_docker_image_registry_prefix_upstream: "{{ matrix_sms_bridge_docker_image_registry_prefix_upstream_default }}" +matrix_sms_bridge_docker_image_registry_prefix_upstream_default: "docker.io/" +matrix_sms_bridge_docker_image_tag: "{{ matrix_sms_bridge_version }}" matrix_sms_bridge_base_path: "{{ matrix_base_data_path }}/matrix-sms-bridge" matrix_sms_bridge_config_path: "{{ matrix_base_data_path }}/matrix-sms-bridge/config" diff --git a/roles/custom/matrix-bridge-sms/tasks/main.yml b/roles/custom/matrix-bridge-sms/tasks/main.yml index 57d517275..574dba74b 100644 --- a/roles/custom/matrix-bridge-sms/tasks/main.yml +++ b/roles/custom/matrix-bridge-sms/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-sms/tasks/setup_install.yml b/roles/custom/matrix-bridge-sms/tasks/setup_install.yml index 1fc34b9ca..a46bc21dc 100644 --- a/roles/custom/matrix-bridge-sms/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-sms/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-sms-bridge image is pulled diff --git a/roles/custom/matrix-bridge-sms/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-sms/tasks/setup_uninstall.yml index c7d0011ec..f6e1e2a6e 100644 --- a/roles/custom/matrix-bridge-sms/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-sms/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-sms-bridge service diff --git a/roles/custom/matrix-bridge-sms/tasks/validate_config.yml b/roles/custom/matrix-bridge-sms/tasks/validate_config.yml index 474e2526c..2830ae8bb 100644 --- a/roles/custom/matrix-bridge-sms/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-sms/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-bridge-sms settings not defined diff --git a/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2 b/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2 index 5f12e4922..49af8b715 100644 --- a/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2 +++ b/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sms-bridge 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sms-bridge 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sms-bridge 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -40,7 +40,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-sms-bridge -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sms-bridge 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sms-bridge 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sms-bridge 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2.license b/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2.license new file mode 100644 index 000000000..cb09f3c35 --- /dev/null +++ b/roles/custom/matrix-bridge-sms/templates/systemd/matrix-sms-bridge.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-wechat/defaults/main.yml b/roles/custom/matrix-bridge-wechat/defaults/main.yml index 1ca0c910f..50167b91c 100644 --- a/roles/custom/matrix-bridge-wechat/defaults/main.yml +++ b/roles/custom/matrix-bridge-wechat/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # WeChat Bridge is a Matrix <-> WeChat bridge @@ -7,8 +12,10 @@ matrix_wechat_enabled: true # renovate: datasource=docker depName=lxduo/matrix-wechat matrix_wechat_version: 0.2.4 -matrix_wechat_container_image: "{{ matrix_wechat_container_image_name_prefix }}lxduo/matrix-wechat:{{ matrix_wechat_version }}" -matrix_wechat_container_image_name_prefix: "{{ 'localhost/' if matrix_wechat_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_wechat_container_image: "{{ matrix_wechat_container_image_registry_prefix }}lxduo/matrix-wechat:{{ matrix_wechat_version }}" +matrix_wechat_container_image_registry_prefix: "{{ 'localhost/' if matrix_wechat_container_image_self_build else matrix_wechat_container_image_registry_prefix_upstream }}" +matrix_wechat_container_image_registry_prefix_upstream: "{{ matrix_wechat_container_image_registry_prefix_upstream_default }}" +matrix_wechat_container_image_registry_prefix_upstream_default: "docker.io/" matrix_wechat_container_image_force_pull: "{{ matrix_wechat_container_image.endswith(':latest') }}" matrix_wechat_container_image_self_build: false @@ -18,7 +25,7 @@ matrix_wechat_container_image_self_build_branch: "{{ 'master' if matrix_wechat_v # renovate: datasource=docker depName=lxduo/matrix-wechat-agent matrix_wechat_agent_version: 0.0.1 matrix_wechat_agent_container_image: "{{ matrix_wechat_agent_container_image_name_prefix }}lxduo/matrix-wechat-agent:{{ matrix_wechat_agent_version }}" -matrix_wechat_agent_container_image_name_prefix: "{{ 'localhost/' if matrix_wechat_agent_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_wechat_agent_container_image_name_prefix: "{{ 'localhost/' if matrix_wechat_agent_container_image_self_build else 'docker.io/' }}" matrix_wechat_agent_container_image_force_pull: "{{ matrix_wechat_agent_container_image.endswith(':latest') }}" # The agent needs to write to /home/user/.vnc. @@ -95,7 +102,7 @@ matrix_wechat_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" matrix_wechat_encryption_default: "{{ matrix_wechat_encryption_allow }}" # Minimum severity of journal log messages. -# Options: debug, info, warn, error, fatal +# Valid values: fatal, error, warn, info, debug matrix_wechat_log_level: 'warn' matrix_wechat_permissions: | diff --git a/roles/custom/matrix-bridge-wechat/tasks/install.yml b/roles/custom/matrix-bridge-wechat/tasks/install.yml index 36d530c75..607ca780b 100644 --- a/roles/custom/matrix-bridge-wechat/tasks/install.yml +++ b/roles/custom/matrix-bridge-wechat/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure WeChat Bridge paths exists @@ -111,6 +116,7 @@ - name: Ensure matrix-wechat container network is created community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" name: "{{ matrix_wechat_container_network }}" driver: bridge driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" diff --git a/roles/custom/matrix-bridge-wechat/tasks/main.yml b/roles/custom/matrix-bridge-wechat/tasks/main.yml index effcd7d5e..bcad351ab 100644 --- a/roles/custom/matrix-bridge-wechat/tasks/main.yml +++ b/roles/custom/matrix-bridge-wechat/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-bridge-wechat/tasks/uninstall.yml b/roles/custom/matrix-bridge-wechat/tasks/uninstall.yml index cf19203fa..7972bd7df 100644 --- a/roles/custom/matrix-bridge-wechat/tasks/uninstall.yml +++ b/roles/custom/matrix-bridge-wechat/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-wechat service diff --git a/roles/custom/matrix-bridge-wechat/tasks/validate_config.yml b/roles/custom/matrix-bridge-wechat/tasks/validate_config.yml index 49159be21..c0eb73927 100644 --- a/roles/custom/matrix-bridge-wechat/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-wechat/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required WeChat settings not defined @@ -17,3 +21,11 @@ when: matrix_architecture not in ['amd64'] ansible.builtin.fail: msg: "The WeChat Agent does not support the '{{ matrix_architecture }}' architecture yet. Its Dockerfile downloads amd64 binaries and does not work on arm64." + +- name: (Deprecation) Catch and report renamed WeChat variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_wechat_container_image_name_prefix', 'new': 'matrix_wechat_container_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-wechat/templates/agent-config.yaml.j2 b/roles/custom/matrix-bridge-wechat/templates/agent-config.yaml.j2 index 19c1d1ad9..6b30c6345 100644 --- a/roles/custom/matrix-bridge-wechat/templates/agent-config.yaml.j2 +++ b/roles/custom/matrix-bridge-wechat/templates/agent-config.yaml.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + wechat: version: 3.8.1.26 listen_port: 22222 diff --git a/roles/custom/matrix-bridge-wechat/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-wechat/templates/config.yaml.j2.license new file mode 100644 index 000000000..9470a96a3 --- /dev/null +++ b/roles/custom/matrix-bridge-wechat/templates/config.yaml.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2 b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2 index 8e5ea5239..dc8d348da 100644 --- a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2 +++ b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat-agent 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat-agent 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-wechat-agent 2>/dev/null || true' {# @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-wechat-agent -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat-agent 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat-agent 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-wechat-agent 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2.license b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat-agent.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2 b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2 index 96f87e9bb..193042a66 100644 --- a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2 +++ b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-wechat 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -37,7 +37,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-wechat -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-wechat 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-wechat 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2.license b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-bridge-wechat/templates/systemd/matrix-wechat.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-cactus-comments-client/defaults/main.yml b/roles/custom/matrix-cactus-comments-client/defaults/main.yml index 9e144adce..4e7a8c751 100644 --- a/roles/custom/matrix-cactus-comments-client/defaults/main.yml +++ b/roles/custom/matrix-cactus-comments-client/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Cactus Comments is a federated comment system built on Matrix. # This role installs the client assets (JS, CSS files). @@ -13,9 +18,12 @@ matrix_cactus_comments_client_public_path: "{{ matrix_cactus_comments_client_bas matrix_cactus_comments_client_public_path_file_permissions: "0644" # renovate: datasource=docker depName=joseluisq/static-web-server -matrix_cactus_comments_client_version: 2.33.1 +matrix_cactus_comments_client_version: 2.36.0 -matrix_cactus_comments_client_container_image: "{{ matrix_container_global_registry_prefix }}joseluisq/static-web-server:{{ matrix_cactus_comments_client_container_image_tag }}" +matrix_cactus_comments_client_container_image: "{{ matrix_cactus_comments_client_container_image_registry_prefix }}joseluisq/static-web-server:{{ matrix_cactus_comments_client_container_image_tag }}" +matrix_cactus_comments_client_container_image_registry_prefix: "{{ matrix_cactus_comments_client_container_image_registry_prefix_upstream }}" +matrix_cactus_comments_client_container_image_registry_prefix_upstream: "{{ matrix_cactus_comments_client_container_image_registry_prefix_upstream_default }}" +matrix_cactus_comments_client_container_image_registry_prefix_upstream_default: docker.io/ matrix_cactus_comments_client_container_image_tag: "{{ 'latest' if matrix_cactus_comments_client_version == 'latest' else (matrix_cactus_comments_client_version + '-alpine') }}" matrix_cactus_comments_client_container_image_force_pull: "{{ matrix_cactus_comments_client_container_image.endswith(':latest') }}" @@ -67,7 +75,7 @@ matrix_cactus_comments_client_environment_variable_server_port: 8080 # Controls the SERVER_LOG_LEVEL environment variable. # See: https://static-web-server.net/configuration/environment-variables/ -# Valid values: error, warn, info, debug or trace +# Valid values: error, warn, info, debug, trace matrix_cactus_comments_client_environment_variable_server_log_level: error # Controls the SERVER_LOG_REMOTE_ADDRESS environment variable. diff --git a/roles/custom/matrix-cactus-comments-client/tasks/install.yml b/roles/custom/matrix-cactus-comments-client/tasks/install.yml index 16fdde5e2..6a86df4ce 100644 --- a/roles/custom/matrix-cactus-comments-client/tasks/install.yml +++ b/roles/custom/matrix-cactus-comments-client/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-cactus-comments-client paths exist diff --git a/roles/custom/matrix-cactus-comments-client/tasks/main.yml b/roles/custom/matrix-cactus-comments-client/tasks/main.yml index 9423aada2..7defa906b 100644 --- a/roles/custom/matrix-cactus-comments-client/tasks/main.yml +++ b/roles/custom/matrix-cactus-comments-client/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-cactus-comments-client/tasks/uninstall.yml b/roles/custom/matrix-cactus-comments-client/tasks/uninstall.yml index df6c55324..f38c7658c 100644 --- a/roles/custom/matrix-cactus-comments-client/tasks/uninstall.yml +++ b/roles/custom/matrix-cactus-comments-client/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-cactus-comments-client service diff --git a/roles/custom/matrix-cactus-comments-client/tasks/validate_config.yml b/roles/custom/matrix-cactus-comments-client/tasks/validate_config.yml index c1142ce32..fc3901551 100644 --- a/roles/custom/matrix-cactus-comments-client/tasks/validate_config.yml +++ b/roles/custom/matrix-cactus-comments-client/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-cactus-comments-client settings not defined diff --git a/roles/custom/matrix-cactus-comments-client/templates/env.j2.license b/roles/custom/matrix-cactus-comments-client/templates/env.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-cactus-comments-client/templates/env.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-cactus-comments-client/templates/labels.j2 b/roles/custom/matrix-cactus-comments-client/templates/labels.j2 index 274ba9e07..d5e7291ae 100644 --- a/roles/custom/matrix-cactus-comments-client/templates/labels.j2 +++ b/roles/custom/matrix-cactus-comments-client/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_cactus_comments_client_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2 b/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2 index 10fd74d94..6e49e6fad 100755 --- a/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2 +++ b/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments-client 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments-client 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-cactus-comments-client 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-cactus-comments-client -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments-client 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments-client 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-cactus-comments-client 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2.license b/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-cactus-comments-client/templates/systemd/matrix-cactus-comments-client.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-cactus-comments/defaults/main.yml b/roles/custom/matrix-cactus-comments/defaults/main.yml index a31ae1a1d..6189f9faf 100644 --- a/roles/custom/matrix-cactus-comments/defaults/main.yml +++ b/roles/custom/matrix-cactus-comments/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Cactus Comments is a federated comment system built on Matrix. # This role installs the backend appservice. @@ -27,7 +33,11 @@ matrix_cactus_comments_container_port: 5000 # renovate: datasource=docker depName=cactuscomments/cactus-appservice matrix_cactus_comments_version: 0.9.0 -matrix_cactus_comments_docker_image: "{{ matrix_container_global_registry_prefix }}cactuscomments/cactus-appservice:{{ matrix_cactus_comments_version }}" +matrix_cactus_comments_docker_image: "{{ matrix_cactus_comments_docker_image_registry_prefix }}cactuscomments/cactus-appservice:{{ matrix_cactus_comments_docker_image_tag }}" +matrix_cactus_comments_docker_image_registry_prefix: "{{ 'localhost/' if matrix_cactus_comments_container_image_self_build else matrix_cactus_comments_docker_image_registry_prefix_upstream }}" +matrix_cactus_comments_docker_image_registry_prefix_upstream: "{{ matrix_cactus_comments_docker_image_registry_prefix_upstream_default }}" +matrix_cactus_comments_docker_image_registry_prefix_upstream_default: docker.io/ +matrix_cactus_comments_docker_image_tag: "{{ matrix_cactus_comments_version }}" matrix_cactus_comments_docker_image_force_pull: "{{ matrix_cactus_comments_docker_image.endswith(':latest') }}" matrix_cactus_comments_container_network: "" diff --git a/roles/custom/matrix-cactus-comments/tasks/main.yml b/roles/custom/matrix-cactus-comments/tasks/main.yml index 12ee16717..6d2a418ff 100644 --- a/roles/custom/matrix-cactus-comments/tasks/main.yml +++ b/roles/custom/matrix-cactus-comments/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-cactus-comments/tasks/setup_install.yml b/roles/custom/matrix-cactus-comments/tasks/setup_install.yml index b79611595..5e6219746 100644 --- a/roles/custom/matrix-cactus-comments/tasks/setup_install.yml +++ b/roles/custom/matrix-cactus-comments/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-cactus-comments paths exist diff --git a/roles/custom/matrix-cactus-comments/tasks/setup_uninstall.yml b/roles/custom/matrix-cactus-comments/tasks/setup_uninstall.yml index 833708aa7..4eebcacaf 100644 --- a/roles/custom/matrix-cactus-comments/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-cactus-comments/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-cactus-comments service diff --git a/roles/custom/matrix-cactus-comments/tasks/validate_config.yml b/roles/custom/matrix-cactus-comments/tasks/validate_config.yml index 683b2f0d9..125b4b858 100644 --- a/roles/custom/matrix-cactus-comments/tasks/validate_config.yml +++ b/roles/custom/matrix-cactus-comments/tasks/validate_config.yml @@ -1,10 +1,16 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed matrix-cactus-comments settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_bot_cactus_comments_systemd_required_services_list', 'new': 'matrix_cactus_comments_systemd_required_services_list'} diff --git a/roles/custom/matrix-cactus-comments/templates/cactus_appservice.yaml.j2 b/roles/custom/matrix-cactus-comments/templates/cactus_appservice.yaml.j2 index 007a2e87a..2ecf4d508 100644 --- a/roles/custom/matrix-cactus-comments/templates/cactus_appservice.yaml.j2 +++ b/roles/custom/matrix-cactus-comments/templates/cactus_appservice.yaml.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # A unique, user-defined ID of the application service which will never change. id: "Cactus Comments" diff --git a/roles/custom/matrix-cactus-comments/templates/env.j2.license b/roles/custom/matrix-cactus-comments/templates/env.j2.license new file mode 100644 index 000000000..da108d1da --- /dev/null +++ b/roles/custom/matrix-cactus-comments/templates/env.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2 b/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2 index 9c862e178..64220e310 100644 --- a/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2 +++ b/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-cactus-comments 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -34,7 +34,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-cactus-comments -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-cactus-comments 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-cactus-comments 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2.license b/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2.license new file mode 100644 index 000000000..1c63cc4e4 --- /dev/null +++ b/roles/custom/matrix-cactus-comments/templates/systemd/matrix-cactus-comments.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-cinny/defaults/main.yml b/roles/custom/matrix-client-cinny/defaults/main.yml index 2137fed70..5059ca644 100644 --- a/roles/custom/matrix-client-cinny/defaults/main.yml +++ b/roles/custom/matrix-client-cinny/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 László Várady +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/ajbura/cinny @@ -7,9 +17,11 @@ matrix_client_cinny_container_image_self_build: false matrix_client_cinny_container_image_self_build_repo: "https://github.com/ajbura/cinny.git" # renovate: datasource=docker depName=ajbura/cinny -matrix_client_cinny_version: v4.2.3 -matrix_client_cinny_docker_image: "{{ matrix_client_cinny_docker_image_name_prefix }}ajbura/cinny:{{ matrix_client_cinny_version }}" -matrix_client_cinny_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_cinny_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_client_cinny_version: v4.5.1 +matrix_client_cinny_docker_image: "{{ matrix_client_cinny_docker_image_registry_prefix }}ajbura/cinny:{{ matrix_client_cinny_version }}" +matrix_client_cinny_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_cinny_container_image_self_build else matrix_client_cinny_docker_image_registry_prefix_upstream }}" +matrix_client_cinny_docker_image_registry_prefix_upstream: "{{ matrix_client_cinny_docker_image_registry_prefix_upstream_default }}" +matrix_client_cinny_docker_image_registry_prefix_upstream_default: docker.io/ matrix_client_cinny_docker_image_force_pull: "{{ matrix_client_cinny_docker_image.endswith(':latest') }}" matrix_client_cinny_data_path: "{{ matrix_base_data_path }}/client-cinny" @@ -143,9 +155,31 @@ matrix_client_cinny_path_prefix: / # Controls whether the self-check feature should validate SSL certificates. matrix_client_cinny_self_check_validate_certificates: true -# config.json +# Default homeserver URL to use in the `config.json` file. +# See `matrix_client_cinny_config_homeserverList`. matrix_client_cinny_default_hs_url: "" +# Controls the `defaultHomeserver` value in the `config.json` file. +matrix_client_cinny_config_defaultHomeserver: 0 # noqa var-naming + +# Controls the `homeserverList` value in the `config.json` file. +matrix_client_cinny_config_homeserverList: "{{ [matrix_client_cinny_default_hs_url] }}" # noqa var-naming + +# Controls the `allowCustomHomeservers` value in the `config.json` file. +matrix_client_cinny_config_allowCustomHomeservers: true # noqa var-naming + +# Controls the `featuredCommunities.spaces` value in the `config.json` file. +matrix_client_cinny_config_featuredCommunities_spaces: [] # noqa var-naming + +# Controls the `featuredCommunities.rooms` value in the `config.json` file. +matrix_client_cinny_config_featuredCommunities_rooms: [] # noqa var-naming + +# Controls the `featuredCommunities.servers` value in the `config.json` file. +matrix_client_cinny_config_featuredCommunities_servers: ["matrix.org"] # noqa var-naming + +# Controls the `featuredCommunities.openAsDefault` value in the `config.json` file. +matrix_client_cinny_config_featuredCommunities_openAsDefault: false # noqa var-naming + # Default Cinny configuration template which covers the generic use case. # You can customize it by controlling the various variables inside it. # diff --git a/roles/custom/matrix-client-cinny/tasks/main.yml b/roles/custom/matrix-client-cinny/tasks/main.yml index 40c6514b5..935b4ee03 100644 --- a/roles/custom/matrix-client-cinny/tasks/main.yml +++ b/roles/custom/matrix-client-cinny/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-client-cinny/tasks/self_check.yml b/roles/custom/matrix-client-cinny/tasks/self_check.yml index 8e8634153..054fdf87e 100644 --- a/roles/custom/matrix-client-cinny/tasks/self_check.yml +++ b/roles/custom/matrix-client-cinny/tasks/self_check.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-client-cinny/tasks/setup_install.yml b/roles/custom/matrix-client-cinny/tasks/setup_install.yml index ab3dcbf64..228aa0614 100644 --- a/roles/custom/matrix-client-cinny/tasks/setup_install.yml +++ b/roles/custom/matrix-client-cinny/tasks/setup_install.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Cinny paths exists ansible.builtin.file: diff --git a/roles/custom/matrix-client-cinny/tasks/setup_uninstall.yml b/roles/custom/matrix-client-cinny/tasks/setup_uninstall.yml index a73825623..7a8b5f1bc 100644 --- a/roles/custom/matrix-client-cinny/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-client-cinny/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-client-cinny.service ansible.builtin.stat: diff --git a/roles/custom/matrix-client-cinny/tasks/validate_config.yml b/roles/custom/matrix-client-cinny/tasks/validate_config.yml index 7a7ee2dfe..b3e324a38 100644 --- a/roles/custom/matrix-client-cinny/tasks/validate_config.yml +++ b/roles/custom/matrix-client-cinny/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Cinny settings not defined ansible.builtin.fail: @@ -9,6 +14,14 @@ - {'name': 'matrix_client_cinny_container_network', when: true} - {'name': 'matrix_client_cinny_container_labels_traefik_compression_middleware_name', when: "{{ matrix_client_cinny_container_labels_traefik_compression_middleware_enabled }}"} +- name: (Deprecation) Catch and report renamed Cinny variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_client_cinny_container_image_name_prefix', 'new': 'matrix_client_cinny_container_image_registry_prefix'} + - name: Fail if matrix_client_cinny_path_prefix is not / ansible.builtin.fail: msg: >- diff --git a/roles/custom/matrix-client-cinny/templates/config.json.j2 b/roles/custom/matrix-client-cinny/templates/config.json.j2 index 0da710acc..6c2b14313 100644 --- a/roles/custom/matrix-client-cinny/templates/config.json.j2 +++ b/roles/custom/matrix-client-cinny/templates/config.json.j2 @@ -1,6 +1,11 @@ { - "defaultHomeserver": 0, - "homeserverList": [ - {{ matrix_client_cinny_default_hs_url | string|to_json }} - ] + "defaultHomeserver": {{ matrix_client_cinny_config_defaultHomeserver | to_json }}, + "homeserverList": {{ matrix_client_cinny_config_homeserverList | to_json }}, + "allowCustomHomeservers": {{ matrix_client_cinny_config_allowCustomHomeservers | to_json }}, + "featuredCommunities": { + "spaces": {{ matrix_client_cinny_config_featuredCommunities_spaces | to_json }}, + "rooms": {{ matrix_client_cinny_config_featuredCommunities_rooms | to_json }}, + "servers": {{ matrix_client_cinny_config_featuredCommunities_servers | to_json }}, + "openAsDefault": {{ matrix_client_cinny_config_featuredCommunities_openAsDefault | to_json }} + } } diff --git a/roles/custom/matrix-client-cinny/templates/config.json.j2.license b/roles/custom/matrix-client-cinny/templates/config.json.j2.license new file mode 100644 index 000000000..33dc112bd --- /dev/null +++ b/roles/custom/matrix-client-cinny/templates/config.json.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-cinny/templates/labels.j2 b/roles/custom/matrix-client-cinny/templates/labels.j2 index e18e804c0..17e4057d0 100644 --- a/roles/custom/matrix-client-cinny/templates/labels.j2 +++ b/roles/custom/matrix-client-cinny/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_client_cinny_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-client-cinny/templates/nginx.conf.j2.license b/roles/custom/matrix-client-cinny/templates/nginx.conf.j2.license new file mode 100644 index 000000000..ec432fa3c --- /dev/null +++ b/roles/custom/matrix-client-cinny/templates/nginx.conf.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2024 James Reilly + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2 b/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2 index c5b5ab3ac..6aac5e9c3 100644 --- a/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2 +++ b/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2 @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-cinny 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-cinny 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-cinny 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-cinny -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-cinny 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-cinny 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-cinny 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2.license b/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2.license new file mode 100644 index 000000000..c751d3d6f --- /dev/null +++ b/roles/custom/matrix-client-cinny/templates/systemd/matrix-client-cinny.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-element/defaults/main.yml b/roles/custom/matrix-client-element/defaults/main.yml index 50f62fb22..5360ea1bf 100644 --- a/roles/custom/matrix-client-element/defaults/main.yml +++ b/roles/custom/matrix-client-element/defaults/main.yml @@ -1,3 +1,21 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 Paul Tötterman +# SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Christos Karamolegkos +# SPDX-FileCopyrightText: 2022 Joe Kappus +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Igor Goldenberg +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/element-hq/element-web @@ -10,11 +28,13 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/eleme # - https://github.com/element-hq/element-web/issues/19544 matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}" -# renovate: datasource=docker depName=vectorim/element-web -matrix_client_element_version: v1.11.86 +# renovate: datasource=docker depName=ghcr.io/element-hq/element-web +matrix_client_element_version: v1.11.95 -matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}" -matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_registry_prefix }}element-hq/element-web:{{ matrix_client_element_version }}" +matrix_client_element_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_client_element_docker_image_registry_prefix_upstream }}" +matrix_client_element_docker_image_registry_prefix_upstream: "{{ matrix_client_element_docker_image_registry_prefix_upstream_default }}" +matrix_client_element_docker_image_registry_prefix_upstream_default: ghcr.io/ matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}" matrix_client_element_data_path: "{{ matrix_base_data_path }}/client-element" @@ -28,9 +48,16 @@ matrix_client_element_container_network: '' # Use this to expose this container to a reverse proxy, which runs in a different container network. matrix_client_element_container_additional_networks: [] +# Controls the in-container port that Element will use. +# +# Also see: `matrix_client_element_container_http_host_bind_port` +matrix_client_element_container_port: 8080 + # Controls whether the matrix-client-element container exposes its HTTP port (tcp/8080 in the container). # # Takes an ":" or "" value (e.g. "127.0.0.1:8765"), or empty string to not expose. +# +# Also see: `matrix_client_element_container_port` matrix_client_element_container_http_host_bind_port: '' # matrix_client_element_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. @@ -83,6 +110,14 @@ matrix_client_element_container_extra_arguments: [] # List of systemd services that matrix-client-element.service depends on matrix_client_element_systemd_required_services_list: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" +# Controls the healthcheck command for the container. +# +# Leave empty to use the default (upstream) command. +# +# The default command is a patch until https://github.com/element-hq/element-web/pull/29471 +# lands in a release. +matrix_client_element_container_healthcheck_cmd: "wget -q --spider http://localhost:$ELEMENT_WEB_PORT/config.json" + # Specifies the value of the `X-XSS-Protection` header # Stops pages from loading when they detect reflected cross-site scripting (XSS) attacks. # @@ -255,7 +290,7 @@ matrix_client_element_self_check_validate_certificates: true # don't show the registration button on welcome page matrix_client_element_registration_enabled: false -# Default country code on welcome page when login by phone number +# An optional ISO 3166 alpha2 country code (eg: GB, the default) to use when showing phone number inputs matrix_client_element_default_country_code: "GB" # Controls whether presence will be enabled @@ -379,3 +414,19 @@ matrix_client_element_location_sharing_map_style_content_sources_localsource_til # matrix_client_element_location_sharing_map_style_content_sources_localsource_attribution: "© OpenStreetMap contributors" # Leave blank, if map does not require attribution. matrix_client_element_location_sharing_map_style_content_sources_localsource_attribution: "" + +# Optional URL to redirect the user to after they have logged out. +# See https://github.com/element-hq/element-web/blob/develop/docs/config.md#sso-setup +matrix_client_element_logout_redirect_url: '' + +# Controls the `ELEMENT_WEB_PORT` environment variable. +matrix_client_element_environment_variable_element_web_port: "{{ matrix_client_element_container_port }}" + +# Additional environment variables to pass to the container. +# +# Environment variables take priority over settings in the configuration file. +# +# Example: +# matrix_client_element_environment_variables_extension: | +# ELEMENT_WEB_PORT=8080 +matrix_client_element_environment_variables_extension: '' diff --git a/roles/custom/matrix-client-element/tasks/main.yml b/roles/custom/matrix-client-element/tasks/main.yml index 770200678..eddb03ad0 100644 --- a/roles/custom/matrix-client-element/tasks/main.yml +++ b/roles/custom/matrix-client-element/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-client-element/tasks/prepare_themes.yml b/roles/custom/matrix-client-element/tasks/prepare_themes.yml index cb3bf2bd4..56ddb3403 100644 --- a/roles/custom/matrix-client-element/tasks/prepare_themes.yml +++ b/roles/custom/matrix-client-element/tasks/prepare_themes.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # diff --git a/roles/custom/matrix-client-element/tasks/self_check.yml b/roles/custom/matrix-client-element/tasks/self_check.yml index 8a08d8d04..b2e70a5d1 100644 --- a/roles/custom/matrix-client-element/tasks/self_check.yml +++ b/roles/custom/matrix-client-element/tasks/self_check.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-client-element/tasks/setup_install.yml b/roles/custom/matrix-client-element/tasks/setup_install.yml index e528faa8b..10a8b61ae 100644 --- a/roles/custom/matrix-client-element/tasks/setup_install.yml +++ b/roles/custom/matrix-client-element/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Element Web paths exists @@ -84,12 +95,17 @@ owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" with_items: - - {src: "{{ role_path }}/templates/nginx.conf.j2", name: "nginx.conf"} - {src: "{{ role_path }}/templates/labels.j2", name: "labels"} + - {src: "{{ role_path }}/templates/env.j2", name: "env"} - {src: "{{ matrix_client_element_page_template_welcome_path }}", name: "welcome.html"} - {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"} when: "item.src is not none" +- name: Ensure Element Web nginx.conf file is removed + ansible.builtin.file: + path: "{{ matrix_client_element_data_path }}/nginx.conf" + state: absent + - name: Ensure Element Web config files removed ansible.builtin.file: path: "{{ matrix_client_element_data_path }}/{{ item.name }}" diff --git a/roles/custom/matrix-client-element/tasks/setup_uninstall.yml b/roles/custom/matrix-client-element/tasks/setup_uninstall.yml index 279dd8166..a8823ed4a 100644 --- a/roles/custom/matrix-client-element/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-client-element/tasks/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-client-element.service diff --git a/roles/custom/matrix-client-element/tasks/validate_config.yml b/roles/custom/matrix-client-element/tasks/validate_config.yml index a61d8bcaf..7ff71cc2f 100644 --- a/roles/custom/matrix-client-element/tasks/validate_config.yml +++ b/roles/custom/matrix-client-element/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Element Web settings not defined @@ -23,7 +29,7 @@ msg: >- Riot has been renamed to Element (https://element.io/blog/welcome-to-element/). The playbook will migrate your existing configuration and data automatically, but you need to adjust variable names. - Please change your configuration (vars.yml) to rename all riot-web variables (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). Also note that DNS configuration changes may be necessary. when: "vars | dict2items | selectattr('key', 'match', item.old) | list | items2dict" with_items: @@ -33,7 +39,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_client_element_showLabsSettings', 'new': 'matrix_client_element_show_lab_settings'} @@ -45,6 +51,7 @@ - {'old': 'matrix_client_element_branding_welcomeBackgroundUrl', 'new': 'matrix_client_element_branding_welcome_background_url'} - {'old': 'matrix_client_element_jitsi_preferredDomain', 'new': 'matrix_client_element_jitsi_preferred_domain'} - {'old': 'matrix_client_element_welcome_user_id', 'new': ''} + - {'old': 'matrix_client_element_docker_image_name_prefix', 'new': 'matrix_client_element_docker_image_registry_prefix'} - when: matrix_client_element_container_labels_traefik_enabled | bool block: diff --git a/roles/custom/matrix-client-element/templates/config.json.j2 b/roles/custom/matrix-client-element/templates/config.json.j2 index 8dba3e2df..7516abe48 100644 --- a/roles/custom/matrix-client-element/templates/config.json.j2 +++ b/roles/custom/matrix-client-element/templates/config.json.j2 @@ -40,6 +40,7 @@ {% if matrix_client_element_location_sharing_enabled %} "map_style_url": {{ matrix_client_element_map_style_url | to_json }}, {% endif %} + "logout_redirect_url": {{ matrix_client_element_logout_redirect_url | to_json }}, "branding": { "auth_footer_links": {{ matrix_client_element_branding_auth_footer_links | to_json }}, "auth_header_logo_url": {{ matrix_client_element_branding_auth_header_logo_url | to_json }}, diff --git a/roles/custom/matrix-client-element/templates/config.json.j2.license b/roles/custom/matrix-client-element/templates/config.json.j2.license new file mode 100644 index 000000000..d679203dd --- /dev/null +++ b/roles/custom/matrix-client-element/templates/config.json.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Aaron Raimist +SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2023 Igor Goldenberg + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-element/templates/env.j2 b/roles/custom/matrix-client-element/templates/env.j2 new file mode 100644 index 000000000..83d1cdca0 --- /dev/null +++ b/roles/custom/matrix-client-element/templates/env.j2 @@ -0,0 +1,9 @@ +{# +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +ELEMENT_WEB_PORT={{ matrix_client_element_environment_variable_element_web_port }} + +{{ matrix_client_element_environment_variables_extension }} diff --git a/roles/custom/matrix-client-element/templates/labels.j2 b/roles/custom/matrix-client-element/templates/labels.j2 index 67ed2b95a..2d12275e5 100644 --- a/roles/custom/matrix-client-element/templates/labels.j2 +++ b/roles/custom/matrix-client-element/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_client_element_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-client-element/templates/map_style.json.j2.license b/roles/custom/matrix-client-element/templates/map_style.json.j2.license new file mode 100644 index 000000000..bf4d752e6 --- /dev/null +++ b/roles/custom/matrix-client-element/templates/map_style.json.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-element/templates/nginx.conf.j2 b/roles/custom/matrix-client-element/templates/nginx.conf.j2 deleted file mode 100644 index fba16bbdc..000000000 --- a/roles/custom/matrix-client-element/templates/nginx.conf.j2 +++ /dev/null @@ -1,66 +0,0 @@ -#jinja2: lstrip_blocks: "True" -# This is a custom nginx configuration file that we use in the container (instead of the default one), -# because it allows us to run nginx with a non-root user. -# -# For this to work, the default vhost file (`/etc/nginx/conf.d/default.conf`) also needs to be removed. -# (mounting `/dev/null` over `/etc/nginx/conf.d/default.conf` works well) -# -# The following changes have been done compared to a default nginx configuration file: -# - default server port is changed (80 -> 8080), so that a non-root user can bind it -# - various temp paths are changed to `/tmp`, so that a non-root user can write to them -# - the `user` directive was removed, as we don't want nginx to switch users - -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /tmp/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - proxy_temp_path /tmp/proxy_temp; - client_body_temp_path /tmp/client_temp; - fastcgi_temp_path /tmp/fastcgi_temp; - uwsgi_temp_path /tmp/uwsgi_temp; - scgi_temp_path /tmp/scgi_temp; - - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - #gzip on; - - server { - listen 8080; - server_name localhost; - - root /usr/share/nginx/html; - - location / { - index index.html index.htm; - } - - location ~* ^/(config(.+)?\.json$|(.+)\.html$|i18n) { - expires -1; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } - } -} diff --git a/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2 b/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2 index 9748cfe7c..9a1475b49 100644 --- a/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2 +++ b/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2 @@ -10,9 +10,13 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-element 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-element 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-element 2>/dev/null || true' +{# + The custom healthcheck command is a patch until https://github.com/element-hq/element-web/pull/29471 + lands in a release. +#} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --rm \ --name=matrix-client-element \ @@ -22,11 +26,15 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --read-only \ --network={{ matrix_client_element_container_network }} \ {% if matrix_client_element_container_http_host_bind_port %} - -p {{ matrix_client_element_container_http_host_bind_port }}:8080 \ + -p {{ matrix_client_element_container_http_host_bind_port }}:{{ matrix_client_element_container_port }} \ {% endif %} --label-file={{ matrix_client_element_data_path }}/labels \ + --env-file={{ matrix_client_element_data_path }}/env \ --tmpfs=/tmp:rw,noexec,nosuid,size=10m \ - --mount type=bind,src={{ matrix_client_element_data_path }}/nginx.conf,dst=/etc/nginx/nginx.conf,ro \ + --tmpfs=/var/cache/nginx:rw,mode=777 \ + --tmpfs=/var/run:rw,mode=777 \ + --tmpfs=/tmp/element-web-config:rw,mode=777 \ + --tmpfs=/etc/nginx/conf.d:rw,mode=777 \ --mount type=bind,src={{ matrix_client_element_data_path }}/config.json,dst=/app/config.json,ro \ --mount type=bind,src={{ matrix_client_element_data_path }}/config.json,dst=/app/config.{{ matrix_server_fqn_element }}.json,ro \ {% if matrix_client_element_location_sharing_enabled %} @@ -36,6 +44,9 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --mount type=bind,src={{ matrix_client_element_data_path }}/home.html,dst=/app/home.html,ro \ {% endif %} --mount type=bind,src={{ matrix_client_element_data_path }}/welcome.html,dst=/app/welcome.html,ro \ + {% if matrix_client_element_container_healthcheck_cmd %} + --health-cmd="{{ matrix_client_element_container_healthcheck_cmd }}" \ + {% endif %} {% for arg in matrix_client_element_container_extra_arguments %} {{ arg }} \ {% endfor %} @@ -47,7 +58,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-element -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-element 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-element 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-element 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2.license b/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2.license new file mode 100644 index 000000000..909ecff79 --- /dev/null +++ b/roles/custom/matrix-client-element/templates/systemd/matrix-client-element.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-element/templates/welcome.html.j2.license b/roles/custom/matrix-client-element/templates/welcome.html.j2.license new file mode 100644 index 000000000..8338f12af --- /dev/null +++ b/roles/custom/matrix-client-element/templates/welcome.html.j2.license @@ -0,0 +1,9 @@ +SPDX-FileCopyrightText: 2019 Daniel Hoffend +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Clement Renaud +SPDX-FileCopyrightText: 2020 Stefan Warnat +SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-element/vars/main.yml b/roles/custom/matrix-client-element/vars/main.yml index 8237b5110..f332b4312 100644 --- a/roles/custom/matrix-client-element/vars/main.yml +++ b/roles/custom/matrix-client-element/vars/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_client_element_embedded_pages_home_url: "{{ ('' if matrix_client_element_embedded_pages_home_path is none else 'home.html') }}" diff --git a/roles/custom/matrix-client-fluffychat/defaults/main.yml b/roles/custom/matrix-client-fluffychat/defaults/main.yml new file mode 100644 index 000000000..417911a4c --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/defaults/main.yml @@ -0,0 +1,149 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- +# Project source code URL: https://github.com/krille-chan/fluffychat + +matrix_client_fluffychat_enabled: true + +matrix_client_fluffychat_container_image_self_build: false +matrix_client_fluffychat_container_image_self_build_repo: "https://github.com/etkecc/fluffychat-web.git" +matrix_client_fluffychat_container_image_self_build_version: "{{ 'main' if matrix_client_fluffychat_version == 'latest' else matrix_client_fluffychat_version }}" + +# renovate: datasource=docker depName=ghcr.io/etkecc/fluffychat-web +matrix_client_fluffychat_version: v1.25.1 +matrix_client_fluffychat_docker_image: "{{ matrix_client_fluffychat_docker_image_registry_prefix }}etkecc/fluffychat-web:{{ matrix_client_fluffychat_version }}" +matrix_client_fluffychat_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_fluffychat_container_image_self_build else matrix_client_fluffychat_docker_image_registry_prefix_upstream }}" +matrix_client_fluffychat_docker_image_registry_prefix_upstream: "{{ matrix_client_fluffychat_docker_image_registry_prefix_upstream_default }}" +matrix_client_fluffychat_docker_image_registry_prefix_upstream_default: ghcr.io/ +matrix_client_fluffychat_docker_image_force_pull: "{{ matrix_client_fluffychat_docker_image.endswith(':latest') }}" + +matrix_client_fluffychat_data_path: "{{ matrix_base_data_path }}/client-fluffychat" +matrix_client_fluffychat_container_src_files_path: "{{ matrix_client_fluffychat_data_path }}/docker-src" + +# The base container network +matrix_client_fluffychat_container_network: '' + +# A list of additional container networks that the container would be connected to. +# The role does not create these networks, so make sure they already exist. +# Use this to expose this container to a reverse proxy, which runs in a different container network. +matrix_client_fluffychat_container_additional_networks: "{{ matrix_client_fluffychat_container_additional_networks_auto + matrix_client_fluffychat_container_additional_networks_custom }}" +matrix_client_fluffychat_container_additional_networks_auto: [] +matrix_client_fluffychat_container_additional_networks_custom: [] + +# Controls whether the matrix-client-fluffychat container exposes its HTTP port (tcp/8080 in the container). +# +# Takes an ":" or "" value (e.g. "127.0.0.1:8765"), or empty string to not expose. +matrix_client_fluffychat_container_http_host_bind_port: '' + +# matrix_client_fluffychat_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. +# See `../templates/labels.j2` for details. +# +# To inject your own other container labels, see `matrix_client_fluffychat_container_labels_additional_labels`. +matrix_client_fluffychat_container_labels_traefik_enabled: true +matrix_client_fluffychat_container_labels_traefik_docker_network: "{{ matrix_client_fluffychat_container_network }}" +matrix_client_fluffychat_container_labels_traefik_hostname: "{{ matrix_client_fluffychat_hostname }}" +# The path prefix must either be `/` or not end with a slash (e.g. `/fluffychat`). +matrix_client_fluffychat_container_labels_traefik_path_prefix: "{{ matrix_client_fluffychat_path_prefix }}" +matrix_client_fluffychat_container_labels_traefik_rule: "Host(`{{ matrix_client_fluffychat_container_labels_traefik_hostname }}`){% if matrix_client_fluffychat_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_client_fluffychat_container_labels_traefik_path_prefix }}`){% endif %}" +matrix_client_fluffychat_container_labels_traefik_priority: 0 +matrix_client_fluffychat_container_labels_traefik_entrypoints: web-secure +matrix_client_fluffychat_container_labels_traefik_tls: "{{ matrix_client_fluffychat_container_labels_traefik_entrypoints != 'web' }}" +matrix_client_fluffychat_container_labels_traefik_tls_certResolver: default # noqa var-naming + +# Controls which additional headers to attach to all HTTP responses. +# To add your own headers, use `matrix_client_fluffychat_container_labels_traefik_additional_response_headers_custom` +matrix_client_fluffychat_container_labels_traefik_additional_response_headers: "{{ matrix_client_fluffychat_container_labels_traefik_additional_response_headers_auto | combine(matrix_client_fluffychat_container_labels_traefik_additional_response_headers_custom) }}" +matrix_client_fluffychat_container_labels_traefik_additional_response_headers_auto: | + {{ + {} + | combine ({'X-XSS-Protection': matrix_client_fluffychat_http_header_xss_protection} if matrix_client_fluffychat_http_header_xss_protection else {}) + | combine ({'X-Frame-Options': matrix_client_fluffychat_http_header_frame_options} if matrix_client_fluffychat_http_header_frame_options else {}) + | combine ({'X-Content-Type-Options': matrix_client_fluffychat_http_header_content_type_options} if matrix_client_fluffychat_http_header_content_type_options else {}) + | combine ({'Content-Security-Policy': matrix_client_fluffychat_http_header_content_security_policy} if matrix_client_fluffychat_http_header_content_security_policy else {}) + | combine ({'Permission-Policy': matrix_client_fluffychat_http_header_content_permission_policy} if matrix_client_fluffychat_http_header_content_permission_policy else {}) + | combine ({'Strict-Transport-Security': matrix_client_fluffychat_http_header_strict_transport_security} if matrix_client_fluffychat_http_header_strict_transport_security and matrix_client_fluffychat_container_labels_traefik_tls else {}) + }} +matrix_client_fluffychat_container_labels_traefik_additional_response_headers_custom: {} + +# matrix_client_fluffychat_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. +# See `../templates/labels.j2` for details. +# +# Example: +# matrix_client_fluffychat_container_labels_additional_labels: | +# my.label=1 +# another.label="here" +matrix_client_fluffychat_container_labels_additional_labels: '' + +# A list of extra arguments to pass to the container +matrix_client_fluffychat_container_extra_arguments: [] + +# List of systemd services that matrix-client-fluffychat.service depends on +matrix_client_fluffychat_systemd_required_services_list: "{{ matrix_client_fluffychat_systemd_required_services_list_default + matrix_client_fluffychat_systemd_required_services_list_auto + matrix_client_fluffychat_systemd_required_services_list_custom }}" +matrix_client_fluffychat_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" +matrix_client_fluffychat_systemd_required_services_list_auto: [] +matrix_client_fluffychat_systemd_required_services_list_custom: [] + +# Specifies the value of the `X-XSS-Protection` header +# Stops pages from loading when they detect reflected cross-site scripting (XSS) attacks. +# +# Learn more about it is here: +# - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection +# - https://portswigger.net/web-security/cross-site-scripting/reflected +matrix_client_fluffychat_http_header_xss_protection: "1; mode=block" + +# Specifies the value of the `X-Frame-Options` header which controls whether framing can happen. +# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options +matrix_client_fluffychat_http_header_frame_options: SAMEORIGIN + +# Specifies the value of the `X-Content-Type-Options` header. +# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options +matrix_client_fluffychat_http_header_content_type_options: nosniff + +# Specifies the value of the `Content-Security-Policy` header. +# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy +matrix_client_fluffychat_http_header_content_security_policy: frame-ancestors 'self' + +# Specifies the value of the `Permission-Policy` header. +# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permission-Policy +matrix_client_fluffychat_http_header_content_permission_policy: "{{ 'interest-cohort=()' if matrix_client_fluffychat_floc_optout_enabled else '' }}" + +# Specifies the value of the `Strict-Transport-Security` header. +# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security +matrix_client_fluffychat_http_header_strict_transport_security: "max-age=31536000; includeSubDomains{{ '; preload' if matrix_client_fluffychat_hsts_preload_enabled else '' }}" + +# Controls whether to send a "Permissions-Policy interest-cohort=();" header along with all responses +# +# Learn more about what it is here: +# - https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea +# - https://paramdeo.com/blog/opting-your-website-out-of-googles-floc-network +# - https://amifloced.org/ +# +# Of course, a better solution is to just stop using browsers (like Chrome), which participate in such tracking practices. +# See: `matrix_client_fluffychat_content_permission_policy` +matrix_client_fluffychat_floc_optout_enabled: true + +# Controls if HSTS preloading is enabled +# +# In its strongest and recommended form, the [HSTS policy](https://www.chromium.org/hsts) includes all subdomains, and +# indicates a willingness to be "preloaded" into browsers: +# `Strict-Transport-Security: max-age=31536000; includeSubDomains; preload` +# For more information visit: +# - https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security +# - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security +# - https://hstspreload.org/#opt-in +# See: `matrix_client_fluffychat_http_header_strict_transport_security` +matrix_client_fluffychat_hsts_preload_enabled: false + +matrix_client_fluffychat_scheme: https +# The hostname at which FluffyChat Web is served. +matrix_client_fluffychat_hostname: "{{ matrix_server_fqn_fluffychat }}" + +# The path at which FluffyChat Web is exposed. +# This value must either be `/` or not end with a slash (e.g. `/fluffychat`). +matrix_client_fluffychat_path_prefix: / + +# Controls whether the self-check feature should validate SSL certificates. +matrix_client_fluffychat_self_check_validate_certificates: true diff --git a/roles/custom/matrix-client-fluffychat/tasks/main.yml b/roles/custom/matrix-client-fluffychat/tasks/main.yml new file mode 100644 index 000000000..846913577 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/tasks/main.yml @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- tags: + - setup-all + - setup-client-fluffychat + - install-all + - install-client-fluffychat + block: + - when: matrix_client_fluffychat_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" + + - when: matrix_client_fluffychat_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" + +- tags: + - setup-all + - setup-client-fluffychat + block: + - when: not matrix_client_fluffychat_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" + +- tags: + - self-check + block: + - when: matrix_client_fluffychat_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check.yml" diff --git a/roles/custom/matrix-client-fluffychat/tasks/self_check.yml b/roles/custom/matrix-client-fluffychat/tasks/self_check.yml new file mode 100644 index 000000000..12f8bd298 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/tasks/self_check.yml @@ -0,0 +1,28 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- ansible.builtin.set_fact: + matrix_client_fluffychat_url_endpoint_public: "{{ matrix_client_fluffychat_scheme }}://{{ matrix_client_fluffychat_hostname }}/" + +- name: Check FluffyChat Web + ansible.builtin.uri: + url: "{{ matrix_client_fluffychat_url_endpoint_public }}" + follow_redirects: none + validate_certs: "{{ matrix_client_fluffychat_self_check_validate_certificates }}" + register: matrix_client_fluffychat_self_check_result + check_mode: false + ignore_errors: true + delegate_to: 127.0.0.1 + become: false + +- name: Fail if FluffyChat Web not working + ansible.builtin.fail: + msg: "Failed checking FluffyChat Web is up at `{{ matrix_server_fqn_fluffychat }}` (checked endpoint: `{{ matrix_client_fluffychat_url_endpoint_public }}`). Is FluffyChat Web running? Is port 443 open in your firewall? Full error: {{ matrix_client_fluffychat_self_check_result }}" + when: "matrix_client_fluffychat_self_check_result.failed or 'json' not in matrix_client_fluffychat_self_check_result" + +- name: Report working FluffyChat Web + ansible.builtin.debug: + msg: "FluffyChat Web at `{{ matrix_server_fqn_fluffychat }}` is working (checked endpoint: `{{ matrix_client_fluffychat_url_endpoint_public }}`)" diff --git a/roles/custom/matrix-client-fluffychat/tasks/setup_install.yml b/roles/custom/matrix-client-fluffychat/tasks/setup_install.yml new file mode 100644 index 000000000..a774ad724 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/tasks/setup_install.yml @@ -0,0 +1,74 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Ensure FluffyChat Web paths exists + ansible.builtin.file: + path: "{{ item.path }}" + state: directory + mode: 0750 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - {path: "{{ matrix_client_fluffychat_data_path }}", when: true} + - {path: "{{ matrix_client_fluffychat_container_src_files_path }}", when: "{{ matrix_client_fluffychat_container_image_self_build }}"} + when: "item.when | bool" + +- name: Ensure FluffyChat Web container image is pulled + community.docker.docker_image: + name: "{{ matrix_client_fluffychat_docker_image }}" + source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" + force_source: "{{ matrix_client_fluffychat_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_client_fluffychat_docker_image_force_pull }}" + when: "not matrix_client_fluffychat_container_image_self_build | bool" + register: result + retries: "{{ devture_playbook_help_container_retries_count }}" + delay: "{{ devture_playbook_help_container_retries_delay }}" + until: result is not failed + +- when: "matrix_client_fluffychat_container_image_self_build | bool" + block: + - name: Ensure FluffyChat Web repository is present on self-build + ansible.builtin.git: + repo: "{{ matrix_client_fluffychat_container_image_self_build_repo }}" + dest: "{{ matrix_client_fluffychat_container_src_files_path }}" + version: "{{ matrix_client_fluffychat_container_image_self_build_version }}" + force: "yes" + become: true + become_user: "{{ matrix_user_username }}" + register: matrix_client_fluffychat_git_pull_results + + - name: Ensure FluffyChat Web container image is built + ansible.builtin.command: + cmd: |- + {{ devture_systemd_docker_base_host_command_docker }} buildx build + --tag={{ matrix_client_fluffychat_docker_image }} + --file={{ matrix_client_fluffychat_container_src_files_path }}/Dockerfile + {{ matrix_client_fluffychat_container_src_files_path }} + changed_when: true + +- name: Ensure FluffyChat Web config files installed + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ matrix_client_fluffychat_data_path }}/{{ item.name }}" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - {src: "{{ role_path }}/templates/labels.j2", name: "labels"} + when: "item.src is not none" + +- name: Ensure FluffyChat Web container network is created + community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" + name: "{{ matrix_client_fluffychat_container_network }}" + driver: bridge + driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" + +- name: Ensure matrix-client-fluffychat.service installed + ansible.builtin.template: + src: "{{ role_path }}/templates/systemd/matrix-client-fluffychat.service.j2" + dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-fluffychat.service" + mode: 0644 diff --git a/roles/custom/matrix-client-fluffychat/tasks/setup_uninstall.yml b/roles/custom/matrix-client-fluffychat/tasks/setup_uninstall.yml new file mode 100644 index 000000000..140c95344 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/tasks/setup_uninstall.yml @@ -0,0 +1,29 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check existence of matrix-client-fluffychat.service + ansible.builtin.stat: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-fluffychat.service" + register: matrix_client_fluffychat_service_stat + +- when: matrix_client_fluffychat_service_stat.stat.exists | bool + block: + - name: Ensure matrix-client-fluffychat is stopped + ansible.builtin.service: + name: matrix-client-fluffychat + state: stopped + enabled: false + daemon_reload: true + + - name: Ensure matrix-client-fluffychat.service doesn't exist + ansible.builtin.file: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-fluffychat.service" + state: absent + + - name: Ensure FluffyChat Web path doesn't exist + ansible.builtin.file: + path: "{{ matrix_client_fluffychat_data_path }}" + state: absent diff --git a/roles/custom/matrix-client-fluffychat/tasks/validate_config.yml b/roles/custom/matrix-client-fluffychat/tasks/validate_config.yml new file mode 100644 index 000000000..f5a5ae961 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/tasks/validate_config.yml @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Fail if required FluffyChat Web settings not defined + ansible.builtin.fail: + msg: > + You need to define a required configuration setting (`{{ item }}`) for using FluffyChat Web. + when: "vars[item] == ''" + with_items: + - matrix_client_fluffychat_container_network + +- name: (Deprecation) Catch and report renamed FluffyChat Web variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_client_fluffychat_container_image_name_prefix', 'new': 'matrix_client_fluffychat_container_image_registry_prefix'} + +- when: matrix_client_fluffychat_container_labels_traefik_enabled | bool + block: + - name: Fail if required matrix-client-fluffychat Traefik settings not defined + ansible.builtin.fail: + msg: >- + You need to define a required configuration setting (`{{ item }}`). + when: "vars[item] == ''" + with_items: + - matrix_client_fluffychat_container_labels_traefik_hostname + - matrix_client_fluffychat_container_labels_traefik_path_prefix + + # We ensure it doesn't end with a slash, because we handle both (slash and no-slash). + # Knowing that `matrix_client_fluffychat_container_labels_traefik_path_prefix` does not end with a slash + # ensures we know how to set these routes up without having to do "does it end with a slash" checks elsewhere. + - name: Fail if matrix_client_fluffychat_container_labels_traefik_path_prefix ends with a slash + ansible.builtin.fail: + msg: >- + matrix_client_fluffychat_container_labels_traefik_path_prefix (`{{ matrix_client_fluffychat_container_labels_traefik_path_prefix }}`) must either be `/` or not end with a slash (e.g. `/fluffychat`). + when: "matrix_client_fluffychat_container_labels_traefik_path_prefix != '/' and matrix_client_fluffychat_container_labels_traefik_path_prefix[-1] == '/'" diff --git a/roles/custom/matrix-client-fluffychat/templates/labels.j2 b/roles/custom/matrix-client-fluffychat/templates/labels.j2 new file mode 100644 index 000000000..f3527c61a --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/templates/labels.j2 @@ -0,0 +1,52 @@ +{# +SPDX-FileCopyrightText: 2025 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +{% if matrix_client_fluffychat_container_labels_traefik_enabled %} +traefik.enable=true + +{% if matrix_client_fluffychat_container_labels_traefik_docker_network %} +traefik.docker.network={{ matrix_client_fluffychat_container_labels_traefik_docker_network }} +{% endif %} + +traefik.http.services.matrix-client-fluffychat.loadbalancer.server.port=8080 + +{% set middlewares = [] %} + +{% if matrix_client_fluffychat_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-client-fluffychat-slashless-redirect.redirectregex.regex=({{ matrix_client_fluffychat_container_labels_traefik_path_prefix | quote }})$ +traefik.http.middlewares.matrix-client-fluffychat-slashless-redirect.redirectregex.replacement=${1}/ +{% set middlewares = middlewares + ['matrix-client-fluffychat-slashless-redirect'] %} +{% endif %} + +{% if matrix_client_fluffychat_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-client-fluffychat-strip-prefix.stripprefix.prefixes={{ matrix_client_fluffychat_container_labels_traefik_path_prefix }} +{% set middlewares = middlewares + ['matrix-client-fluffychat-strip-prefix'] %} +{% endif %} + +{% if matrix_client_fluffychat_container_labels_traefik_additional_response_headers.keys() | length > 0 %} +{% for name, value in matrix_client_fluffychat_container_labels_traefik_additional_response_headers.items() %} +traefik.http.middlewares.matrix-client-fluffychat-add-headers.headers.customresponseheaders.{{ name }}={{ value }} +{% endfor %} +{% set middlewares = middlewares + ['matrix-client-fluffychat-add-headers'] %} +{% endif %} + +traefik.http.routers.matrix-client-fluffychat.rule={{ matrix_client_fluffychat_container_labels_traefik_rule }} +{% if matrix_client_fluffychat_container_labels_traefik_priority | int > 0 %} +traefik.http.routers.matrix-client-fluffychat.priority={{ matrix_client_fluffychat_container_labels_traefik_priority }} +{% endif %} +traefik.http.routers.matrix-client-fluffychat.service=matrix-client-fluffychat +{% if middlewares | length > 0 %} +traefik.http.routers.matrix-client-fluffychat.middlewares={{ middlewares | join(',') }} +{% endif %} +traefik.http.routers.matrix-client-fluffychat.entrypoints={{ matrix_client_fluffychat_container_labels_traefik_entrypoints }} +traefik.http.routers.matrix-client-fluffychat.tls={{ matrix_client_fluffychat_container_labels_traefik_tls | to_json }} +{% if matrix_client_fluffychat_container_labels_traefik_tls %} +traefik.http.routers.matrix-client-fluffychat.tls.certResolver={{ matrix_client_fluffychat_container_labels_traefik_tls_certResolver }} +{% endif %} + +{% endif %} + +{{ matrix_client_fluffychat_container_labels_additional_labels }} diff --git a/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2 b/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2 new file mode 100644 index 000000000..ad10c6297 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2 @@ -0,0 +1,48 @@ +#jinja2: lstrip_blocks: "True" +[Unit] +Description=Matrix FluffyChat Web server +{% for service in matrix_client_fluffychat_systemd_required_services_list %} +Requires={{ service }} +After={{ service }} +{% endfor %} +DefaultDependencies=no + +[Service] +Type=simple +Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-fluffychat 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-fluffychat 2>/dev/null || true' + +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ + --rm \ + --name=matrix-client-fluffychat \ + --log-driver=none \ + --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ + --cap-drop=ALL \ + --read-only \ + --network={{ matrix_client_fluffychat_container_network }} \ + {% if matrix_client_fluffychat_container_http_host_bind_port %} + -p {{ matrix_client_fluffychat_container_http_host_bind_port }}:8080 \ + {% endif %} + --label-file={{ matrix_client_fluffychat_data_path }}/labels \ + --tmpfs=/tmp:rw,noexec,nosuid,size=10m \ + {% for arg in matrix_client_fluffychat_container_extra_arguments %} + {{ arg }} \ + {% endfor %} + {{ matrix_client_fluffychat_docker_image }} + +{% for network in matrix_client_fluffychat_container_additional_networks %} +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-client-fluffychat +{% endfor %} + +ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-fluffychat + +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-fluffychat 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-fluffychat 2>/dev/null || true' + +Restart=always +RestartSec=30 +SyslogIdentifier=matrix-client-fluffychat + +[Install] +WantedBy=multi-user.target diff --git a/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2.license b/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2.license new file mode 100644 index 000000000..a12f6a9f4 --- /dev/null +++ b/roles/custom/matrix-client-fluffychat/templates/systemd/matrix-client-fluffychat.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2025 Nikita Chernyi +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-hydrogen/defaults/main.yml b/roles/custom/matrix-client-hydrogen/defaults/main.yml index 78d1b8618..eae7aed87 100644 --- a/roles/custom/matrix-client-hydrogen/defaults/main.yml +++ b/roles/custom/matrix-client-hydrogen/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Matthew Cengia +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/element-hq/hydrogen-web @@ -8,8 +19,10 @@ matrix_client_hydrogen_container_image_self_build_repo: "https://github.com/elem # renovate: datasource=docker depName=ghcr.io/element-hq/hydrogen-web matrix_client_hydrogen_version: v0.5.1 -matrix_client_hydrogen_docker_image: "{{ matrix_client_hydrogen_docker_image_name_prefix }}element-hq/hydrogen-web:{{ matrix_client_hydrogen_version }}" -matrix_client_hydrogen_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_hydrogen_container_image_self_build else 'ghcr.io/' }}" +matrix_client_hydrogen_docker_image: "{{ matrix_client_hydrogen_docker_image_registry_prefix }}element-hq/hydrogen-web:{{ matrix_client_hydrogen_version }}" +matrix_client_hydrogen_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_hydrogen_container_image_self_build else matrix_client_hydrogen_docker_image_registry_prefix_upstream }}" +matrix_client_hydrogen_docker_image_registry_prefix_upstream: "{{ matrix_client_hydrogen_docker_image_registry_prefix_upstream_default }}" +matrix_client_hydrogen_docker_image_registry_prefix_upstream_default: ghcr.io/ matrix_client_hydrogen_docker_image_force_pull: "{{ matrix_client_hydrogen_docker_image.endswith(':latest') }}" matrix_client_hydrogen_data_path: "{{ matrix_base_data_path }}/client-hydrogen" diff --git a/roles/custom/matrix-client-hydrogen/tasks/main.yml b/roles/custom/matrix-client-hydrogen/tasks/main.yml index 9e7445c0b..838b82a47 100644 --- a/roles/custom/matrix-client-hydrogen/tasks/main.yml +++ b/roles/custom/matrix-client-hydrogen/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-client-hydrogen/tasks/self_check.yml b/roles/custom/matrix-client-hydrogen/tasks/self_check.yml index 4892c40dc..b89cddc61 100644 --- a/roles/custom/matrix-client-hydrogen/tasks/self_check.yml +++ b/roles/custom/matrix-client-hydrogen/tasks/self_check.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-client-hydrogen/tasks/setup_install.yml b/roles/custom/matrix-client-hydrogen/tasks/setup_install.yml index 08727586c..f720fe5f5 100644 --- a/roles/custom/matrix-client-hydrogen/tasks/setup_install.yml +++ b/roles/custom/matrix-client-hydrogen/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Matthew Cengia +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2023 Julian Foad +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Hydrogen paths exists diff --git a/roles/custom/matrix-client-hydrogen/tasks/setup_uninstall.yml b/roles/custom/matrix-client-hydrogen/tasks/setup_uninstall.yml index d6caa5b97..d963ac0b8 100644 --- a/roles/custom/matrix-client-hydrogen/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-client-hydrogen/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-client-hydrogen.service diff --git a/roles/custom/matrix-client-hydrogen/tasks/validate_config.yml b/roles/custom/matrix-client-hydrogen/tasks/validate_config.yml index 93b9354eb..2bd1ae7ff 100644 --- a/roles/custom/matrix-client-hydrogen/tasks/validate_config.yml +++ b/roles/custom/matrix-client-hydrogen/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Hydrogen settings not defined @@ -10,6 +16,14 @@ - {'name': 'matrix_client_hydrogen_container_network', when: true} - {'name': 'matrix_client_hydrogen_container_labels_traefik_compression_middleware_name', when: "{{ matrix_client_hydrogen_container_labels_traefik_compression_middleware_enabled }}"} +- name: (Deprecation) Catch and report renamed Hydrogen variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_client_hydrogen_container_image_name_prefix', 'new': 'matrix_client_hydrogen_container_image_registry_prefix'} + - when: matrix_client_hydrogen_container_labels_traefik_enabled | bool block: - name: Fail if required matrix-client-hydrogen Traefik settings not defined diff --git a/roles/custom/matrix-client-hydrogen/templates/config.json.j2.license b/roles/custom/matrix-client-hydrogen/templates/config.json.j2.license new file mode 100644 index 000000000..a4ca23eb3 --- /dev/null +++ b/roles/custom/matrix-client-hydrogen/templates/config.json.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2021 - 2022 Aaron Raimist +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Matthew Cengia +SPDX-FileCopyrightText: 2022 Nikita Chernyi +SPDX-FileCopyrightText: 2023 Sergio Durigan Junior + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-hydrogen/templates/labels.j2 b/roles/custom/matrix-client-hydrogen/templates/labels.j2 index 011d02d1d..3431f7157 100644 --- a/roles/custom/matrix-client-hydrogen/templates/labels.j2 +++ b/roles/custom/matrix-client-hydrogen/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_client_hydrogen_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-client-hydrogen/templates/nginx.conf.j2.license b/roles/custom/matrix-client-hydrogen/templates/nginx.conf.j2.license new file mode 100644 index 000000000..c69a90227 --- /dev/null +++ b/roles/custom/matrix-client-hydrogen/templates/nginx.conf.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2021 Aaron Raimist +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2 b/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2 index 28867dd5a..5f6dbe30d 100644 --- a/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2 +++ b/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2 @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-hydrogen 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-hydrogen 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-hydrogen 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-hydrogen -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-hydrogen 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-hydrogen 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-hydrogen 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2.license b/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2.license new file mode 100644 index 000000000..0379e85ae --- /dev/null +++ b/roles/custom/matrix-client-hydrogen/templates/systemd/matrix-client-hydrogen.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 Aaron Raimist +SPDX-FileCopyrightText: 2022 Matthew Cengia + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-schildichat/defaults/main.yml b/roles/custom/matrix-client-schildichat/defaults/main.yml index bd7ab05d8..4619af27c 100644 --- a/roles/custom/matrix-client-schildichat/defaults/main.yml +++ b/roles/custom/matrix-client-schildichat/defaults/main.yml @@ -1,18 +1,33 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/SchildiChat/schildichat-desktop matrix_client_schildichat_enabled: true matrix_client_schildichat_container_image_self_build: false +matrix_client_schildichat_container_image_self_build_repo: "https://github.com/SchildiChat/schildichat-desktop.git" +matrix_client_schildichat_container_image_self_build_version: "{{ 'lite' if matrix_client_schildichat_version == 'latest' else ('v' + matrix_client_schildichat_version) }}" +# Controls whether to patch webpack.config.js when self-building, so that building can pass on low-memory systems (< 4 GB RAM): +# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357 +# - https://github.com/element-hq/element-web/issues/19544 +matrix_client_schildichat_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}" # renovate: datasource=docker depName=ghcr.io/etkecc/schildichat-web -matrix_client_schildichat_version: 1.11.36-sc.3 -matrix_client_schildichat_docker_image: "{{ matrix_client_schildichat_docker_image_name_prefix }}etkecc/schildichat-web:{{ matrix_client_schildichat_version }}" -matrix_client_schildichat_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_schildichat_container_image_self_build else 'ghcr.io/' }}" +matrix_client_schildichat_version: 1.11.86-sc.0.test.0 +matrix_client_schildichat_docker_image: "{{ matrix_client_schildichat_docker_image_registry_prefix }}etkecc/schildichat-web:{{ matrix_client_schildichat_version }}" +matrix_client_schildichat_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_schildichat_container_image_self_build else matrix_client_schildichat_docker_image_registry_prefix_upstream }}" +matrix_client_schildichat_docker_image_registry_prefix_upstream: "{{ matrix_client_schildichat_docker_image_registry_prefix_upstream_default }}" +matrix_client_schildichat_docker_image_registry_prefix_upstream_default: ghcr.io/ matrix_client_schildichat_docker_image_force_pull: "{{ matrix_client_schildichat_docker_image.endswith(':latest') }}" matrix_client_schildichat_data_path: "{{ matrix_base_data_path }}/client-schildichat" -matrix_client_schildichat_docker_src_files_path: "{{ matrix_client_schildichat_data_path }}/docker-src" +matrix_client_schildichat_container_src_files_path: "{{ matrix_client_schildichat_data_path }}/docker-src" # The base container network matrix_client_schildichat_container_network: '' @@ -183,7 +198,7 @@ matrix_client_schildichat_self_check_validate_certificates: true # don't show the registration button on welcome page matrix_client_schildichat_registration_enabled: false -# Default country code on welcome page when login by phone number +# An optional ISO 3166 alpha2 country code (eg: GB, the default) to use when showing phone number inputs matrix_client_schildichat_default_country_code: "GB" # Controls whether presence will be enabled diff --git a/roles/custom/matrix-client-schildichat/tasks/main.yml b/roles/custom/matrix-client-schildichat/tasks/main.yml index 240dee1cf..476bc76d5 100644 --- a/roles/custom/matrix-client-schildichat/tasks/main.yml +++ b/roles/custom/matrix-client-schildichat/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-client-schildichat/tasks/prepare_themes.yml b/roles/custom/matrix-client-schildichat/tasks/prepare_themes.yml index 521679bc0..4c2167bcd 100644 --- a/roles/custom/matrix-client-schildichat/tasks/prepare_themes.yml +++ b/roles/custom/matrix-client-schildichat/tasks/prepare_themes.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # diff --git a/roles/custom/matrix-client-schildichat/tasks/self_check.yml b/roles/custom/matrix-client-schildichat/tasks/self_check.yml index 5e8771111..255975cad 100644 --- a/roles/custom/matrix-client-schildichat/tasks/self_check.yml +++ b/roles/custom/matrix-client-schildichat/tasks/self_check.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-client-schildichat/tasks/setup_install.yml b/roles/custom/matrix-client-schildichat/tasks/setup_install.yml index 6dc9222c4..2a577df58 100644 --- a/roles/custom/matrix-client-schildichat/tasks/setup_install.yml +++ b/roles/custom/matrix-client-schildichat/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure SchildiChat Web paths exists @@ -9,10 +17,10 @@ group: "{{ matrix_user_groupname }}" with_items: - {path: "{{ matrix_client_schildichat_data_path }}", when: true} - - {path: "{{ matrix_client_schildichat_docker_src_files_path }}", when: "{{ matrix_client_schildichat_container_image_self_build }}"} + - {path: "{{ matrix_client_schildichat_container_src_files_path }}", when: "{{ matrix_client_schildichat_container_image_self_build }}"} when: "item.when | bool" -- name: Ensure SchildiChat Web Docker image is pulled +- name: Ensure SchildiChat Web container image is pulled community.docker.docker_image: name: "{{ matrix_client_schildichat_docker_image }}" source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" @@ -24,40 +32,40 @@ delay: "{{ devture_playbook_help_container_retries_delay }}" until: result is not failed -- name: Ensure SchildiChat Web repository is present on self-build - ansible.builtin.git: - repo: "{{ matrix_client_schildichat_container_image_self_build_repo }}" - dest: "{{ matrix_client_schildichat_docker_src_files_path }}" - version: "{{ matrix_client_schildichat_docker_image.split(':')[1] }}" - force: "yes" - become: true - become_user: "{{ matrix_user_username }}" - register: matrix_client_schildichat_git_pull_results - when: "matrix_client_schildichat_container_image_self_build | bool" +- when: "matrix_client_schildichat_container_image_self_build | bool" + block: + - name: Ensure SchildiChat Web repository is present on self-build + ansible.builtin.git: + repo: "{{ matrix_client_schildichat_container_image_self_build_repo }}" + dest: "{{ matrix_client_schildichat_container_src_files_path }}" + version: "{{ matrix_client_schildichat_container_image_self_build_version }}" + force: "yes" + become: true + become_user: "{{ matrix_user_username }}" + register: matrix_client_schildichat_git_pull_results -# See: -# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357 -# - https://github.com/vector-im/schildichat-web/issues/19544 -- # Update (2023-12-15): 404 -- name: Patch webpack.config.js to support building on low-memory (<4G RAM) devices - ansible.builtin.lineinfile: - path: "{{ matrix_client_schildichat_docker_src_files_path }}/webpack.config.js" - regexp: '(\s+)splitChunks: \{' - line: '\1splitChunks: { maxSize: 100000,' - backrefs: true - owner: root - group: root - mode: '0644' - when: "matrix_client_schildichat_container_image_self_build | bool and matrix_client_schildichat_container_image_self_build_low_memory_system_patch_enabled | bool" + # See: + # - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357 + # - https://github.com/vector-im/schildichat-web/issues/19544 — # Update (2023-12-15): 404 + - name: Patch webpack.config.js to support building on low-memory (<4G RAM) devices + ansible.builtin.lineinfile: + path: "{{ matrix_client_schildichat_container_src_files_path }}/element-web/webpack.config.js" + regexp: '(\s+)splitChunks: \{' + line: '\1splitChunks: { maxSize: 100000,' + backrefs: true + owner: root + group: root + mode: '0644' + when: "matrix_client_schildichat_container_image_self_build_low_memory_system_patch_enabled | bool" -- name: Ensure SchildiChat Web Docker image is built - ansible.builtin.command: - cmd: |- - {{ devture_systemd_docker_base_host_command_docker }} buildx build - --tag={{ matrix_client_schildichat_docker_image }} - --file={{ matrix_client_schildichat_docker_src_files_path }}/Dockerfile - {{ matrix_client_schildichat_docker_src_files_path }} - changed_when: true - when: matrix_client_schildichat_container_image_self_build | bool + - name: Ensure SchildiChat Web container image is built + ansible.builtin.command: + cmd: |- + {{ devture_systemd_docker_base_host_command_docker }} buildx build + --tag={{ matrix_client_schildichat_docker_image }} + --file={{ matrix_client_schildichat_container_src_files_path }}/Dockerfile + {{ matrix_client_schildichat_container_src_files_path }} + changed_when: true - name: Ensure SchildiChat Web configuration installed ansible.builtin.copy: diff --git a/roles/custom/matrix-client-schildichat/tasks/setup_uninstall.yml b/roles/custom/matrix-client-schildichat/tasks/setup_uninstall.yml index 67f6856ff..d53238fb4 100644 --- a/roles/custom/matrix-client-schildichat/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-client-schildichat/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-client-schildichat.service diff --git a/roles/custom/matrix-client-schildichat/tasks/validate_config.yml b/roles/custom/matrix-client-schildichat/tasks/validate_config.yml index a9cb7358c..09ef97434 100644 --- a/roles/custom/matrix-client-schildichat/tasks/validate_config.yml +++ b/roles/custom/matrix-client-schildichat/tasks/validate_config.yml @@ -1,13 +1,20 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed SchildiChat Web settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_client_schildichat_welcome_user_id', 'new': ''} + - {'old': 'matrix_client_schildichat_container_image_name_prefix', 'new': 'matrix_client_schildichat_container_image_registry_prefix'} - name: Fail if required SchildiChat Web settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-client-schildichat/templates/config.json.j2.license b/roles/custom/matrix-client-schildichat/templates/config.json.j2.license new file mode 100644 index 000000000..2d30733cd --- /dev/null +++ b/roles/custom/matrix-client-schildichat/templates/config.json.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-schildichat/templates/labels.j2 b/roles/custom/matrix-client-schildichat/templates/labels.j2 index 25f19f6b4..e7b87ad72 100644 --- a/roles/custom/matrix-client-schildichat/templates/labels.j2 +++ b/roles/custom/matrix-client-schildichat/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_client_schildichat_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-client-schildichat/templates/map_style.json.j2.license b/roles/custom/matrix-client-schildichat/templates/map_style.json.j2.license new file mode 100644 index 000000000..d84b8388e --- /dev/null +++ b/roles/custom/matrix-client-schildichat/templates/map_style.json.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2 b/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2 index 98941d47e..ab223e166 100644 --- a/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2 +++ b/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2 @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-schildichat 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-schildichat 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-schildichat 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -46,7 +46,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-schildichat -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-schildichat 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-schildichat 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-schildichat 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2.license b/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2.license new file mode 100644 index 000000000..4f7c9af82 --- /dev/null +++ b/roles/custom/matrix-client-schildichat/templates/systemd/matrix-client-schildichat.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-schildichat/templates/welcome.html.j2.license b/roles/custom/matrix-client-schildichat/templates/welcome.html.j2.license new file mode 100644 index 000000000..27cec7bdf --- /dev/null +++ b/roles/custom/matrix-client-schildichat/templates/welcome.html.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-client-schildichat/vars/main.yml b/roles/custom/matrix-client-schildichat/vars/main.yml index bbd0d3dd0..d338feb65 100644 --- a/roles/custom/matrix-client-schildichat/vars/main.yml +++ b/roles/custom/matrix-client-schildichat/vars/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_client_schildichat_embedded_pages_home_url: "{{ ('' if matrix_client_schildichat_embedded_pages_home_path is none else 'home.html') }}" diff --git a/roles/custom/matrix-common-after/tasks/main.yml b/roles/custom/matrix-common-after/tasks/main.yml index 5e4dc76b9..30e32027a 100644 --- a/roles/custom/matrix-common-after/tasks/main.yml +++ b/roles/custom/matrix-common-after/tasks/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Marcel Partap +# SPDX-FileCopyrightText: 2019 Stuart Mumford +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-common-after/tasks/run_docker_prune.yml b/roles/custom/matrix-common-after/tasks/run_docker_prune.yml index 58f0e7933..0917d019d 100644 --- a/roles/custom/matrix-common-after/tasks/run_docker_prune.yml +++ b/roles/custom/matrix-common-after/tasks/run_docker_prune.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Run Docker System Prune diff --git a/roles/custom/matrix-conduit/defaults/main.yml b/roles/custom/matrix-conduit/defaults/main.yml index f8f53ba33..726c39d29 100644 --- a/roles/custom/matrix-conduit/defaults/main.yml +++ b/roles/custom/matrix-conduit/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Samuel Meenzen +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Charles Wright +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Conduit is a simple, fast and reliable chat server powered by Matrix # Project source code URL: https://gitlab.com/famedly/conduit @@ -7,8 +14,10 @@ matrix_conduit_enabled: true matrix_conduit_hostname: '' -matrix_conduit_docker_image: "{{ matrix_conduit_docker_image_name_prefix }}matrixconduit/matrix-conduit:{{ matrix_conduit_docker_image_tag }}" -matrix_conduit_docker_image_name_prefix: "docker.io/" +matrix_conduit_docker_image: "{{ matrix_conduit_docker_image_registry_prefix }}matrixconduit/matrix-conduit:{{ matrix_conduit_docker_image_tag }}" +matrix_conduit_docker_image_registry_prefix: "{{ matrix_conduit_docker_image_registry_prefix_upstream }}" +matrix_conduit_docker_image_registry_prefix_upstream: "{{ matrix_conduit_docker_image_registry_prefix_upstream_default }}" +matrix_conduit_docker_image_registry_prefix_upstream_default: docker.io/ # renovate: datasource=docker depName=matrixconduit/matrix-conduit matrix_conduit_docker_image_tag: "v0.9.0" matrix_conduit_docker_image_force_pull: "{{ matrix_conduit_docker_image.endswith(':latest') }}" @@ -113,7 +122,7 @@ matrix_conduit_container_extra_arguments: [] # Specifies which template files to use when configuring Conduit. # If you'd like to have your own different configuration, feel free to copy and paste # the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) -# and then change the specific host's `vars.yaml` file like this: +# and then change the specific host's `vars.yml` file like this: # matrix_conduit_template_conduit_config: "{{ playbook_dir }}/inventory/host_vars/matrix.example.com/conduit.toml.j2" matrix_conduit_template_conduit_config: "{{ role_path }}/templates/conduit.toml.j2" @@ -131,7 +140,7 @@ matrix_conduit_allow_registration: false matrix_conduit_allow_federation: true # Enable the display name lightning bolt on registration. -matrix_conduit_enable_lightning_bolt: true +matrix_conduit_enable_lightning_bolt: false matrix_conduit_trusted_servers: - "matrix.org" diff --git a/roles/custom/matrix-conduit/tasks/main.yml b/roles/custom/matrix-conduit/tasks/main.yml index d8389a5b9..1c790ce58 100644 --- a/roles/custom/matrix-conduit/tasks/main.yml +++ b/roles/custom/matrix-conduit/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Charles Wright +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-conduit/tasks/setup_install.yml b/roles/custom/matrix-conduit/tasks/setup_install.yml index 5db1ba225..a4a65b097 100644 --- a/roles/custom/matrix-conduit/tasks/setup_install.yml +++ b/roles/custom/matrix-conduit/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Charles Wright +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Conduit config path exists diff --git a/roles/custom/matrix-conduit/tasks/setup_uninstall.yml b/roles/custom/matrix-conduit/tasks/setup_uninstall.yml index 1745ff973..d8b4743de 100644 --- a/roles/custom/matrix-conduit/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-conduit/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Charles Wright +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-conduit service diff --git a/roles/custom/matrix-conduit/tasks/validate_config.yml b/roles/custom/matrix-conduit/tasks/validate_config.yml index 7d643c654..2e5bdc3e2 100644 --- a/roles/custom/matrix-conduit/tasks/validate_config.yml +++ b/roles/custom/matrix-conduit/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Conduit settings not defined @@ -9,3 +13,11 @@ - {'name': 'matrix_conduit_hostname', when: true} - {'name': 'matrix_conduit_container_network', when: true} - {'name': 'matrix_conduit_container_labels_internal_client_api_traefik_entrypoints', when: "{{ matrix_conduit_container_labels_internal_client_api_enabled }}"} + +- name: (Deprecation) Catch and report renamed Conduit variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_conduit_container_image_name_prefix', 'new': 'matrix_conduit_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-conduit/templates/conduit.toml.j2 b/roles/custom/matrix-conduit/templates/conduit.toml.j2 index 42f215f5a..e1ae99dee 100644 --- a/roles/custom/matrix-conduit/templates/conduit.toml.j2 +++ b/roles/custom/matrix-conduit/templates/conduit.toml.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Charles Wright +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # ============================================================================= # This is the official example config for Conduit. # If you use it for your server, you will need to adjust it to your own needs. diff --git a/roles/custom/matrix-conduit/templates/labels.j2 b/roles/custom/matrix-conduit/templates/labels.j2 index 33c2789a0..9dafbef81 100644 --- a/roles/custom/matrix-conduit/templates/labels.j2 +++ b/roles/custom/matrix-conduit/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2024 Daniel Lo Nigro +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_conduit_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2 b/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2 index 4084f6a11..1ae8b7e97 100644 --- a/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2 +++ b/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2 @@ -9,7 +9,7 @@ After={{ service }} [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduit 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduit 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduit 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -40,7 +40,7 @@ ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach m ExecStartPost=-{{ matrix_host_command_sleep }} {{ matrix_conduit_systemd_service_post_start_delay_seconds }} {% endif %} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduit 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduit 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduit 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-conduit /bin/sh -c 'kill -HUP 1' Restart=always diff --git a/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2.license b/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2.license new file mode 100644 index 000000000..e05b9cf3f --- /dev/null +++ b/roles/custom/matrix-conduit/templates/systemd/matrix-conduit.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Charles Wright + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-conduit/vars/main.yml b/roles/custom/matrix-conduit/vars/main.yml index 633204070..8ac0e1257 100644 --- a/roles/custom/matrix-conduit/vars/main.yml +++ b/roles/custom/matrix-conduit/vars/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Charles Wright +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_conduit_client_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduit_hostname }}/_matrix/client/versions" matrix_conduit_federation_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduit_hostname }}:{{ matrix_federation_public_port }}/_matrix/federation/v1/version" diff --git a/roles/custom/matrix-conduwuit/defaults/main.yml b/roles/custom/matrix-conduwuit/defaults/main.yml new file mode 100644 index 000000000..37db36882 --- /dev/null +++ b/roles/custom/matrix-conduwuit/defaults/main.yml @@ -0,0 +1,195 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- +# conduwuit is a very cool, featureful fork of conduit (https://gitlab.com/famedly/conduit). +# Project source code URL: https://github.com/girlbossceo/conduwuit +# See: https://conduwuit.puppyirl.gay/ + +matrix_conduwuit_enabled: true + +matrix_conduwuit_hostname: '' + +matrix_conduwuit_docker_image: "{{ matrix_conduwuit_docker_image_registry_prefix }}girlbossceo/conduwuit:{{ matrix_conduwuit_docker_image_tag }}" +# renovate: datasource=docker depName=ghcr.io/girlbossceo/conduwuit +matrix_conduwuit_docker_image_tag: v0.4.6-8f7ade4c22533a3177bfd8f175e178573ba6c1d4 +matrix_conduwuit_docker_image_force_pull: "{{ matrix_conduwuit_docker_image.endswith(':latest') }}" +matrix_conduwuit_docker_image_registry_prefix: "{{ matrix_conduwuit_docker_image_registry_prefix_upstream }}" +matrix_conduwuit_docker_image_registry_prefix_upstream: "{{ matrix_conduwuit_docker_image_registry_prefix_upstream_default }}" +matrix_conduwuit_docker_image_registry_prefix_upstream_default: ghcr.io/ + +matrix_conduwuit_base_path: "{{ matrix_base_data_path }}/conduwuit" +matrix_conduwuit_config_path: "{{ matrix_conduwuit_base_path }}/config" +matrix_conduwuit_data_path: "{{ matrix_conduwuit_base_path }}/data" + +matrix_conduwuit_config_port_number: 6167 + +matrix_conduwuit_tmp_directory_size_mb: 500 + +# List of systemd services that matrix-conduwuit.service depends on +matrix_conduwuit_systemd_required_services_list: "{{ matrix_conduwuit_systemd_required_services_list_default + matrix_conduwuit_systemd_required_services_list_auto + matrix_conduwuit_systemd_required_services_list_custom }}" +matrix_conduwuit_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" +matrix_conduwuit_systemd_required_services_list_auto: [] +matrix_conduwuit_systemd_required_services_list_custom: [] + +# List of systemd services that matrix-conduwuit.service wants +matrix_conduwuit_systemd_wanted_services_list: [] + +# Controls how long to sleep for after starting the matrix-synapse container. +# +# Delaying, so that the homeserver can manage to fully start and various services +# that depend on it (`matrix_conduwuit_systemd_required_services_list` and `matrix_conduwuit_systemd_wanted_services_list`) +# may only start after the homeserver is up and running. +# +# This can be set to 0 to remove the delay. +matrix_conduwuit_systemd_service_post_start_delay_seconds: 3 + +# The base container network. It will be auto-created by this role if it doesn't exist already. +matrix_conduwuit_container_network: "" + +# A list of additional container networks that the container would be connected to. +# The role does not create these networks, so make sure they already exist. +# Use this to expose this container to another reverse proxy, which runs in a different container network. +matrix_conduwuit_container_additional_networks: "{{ matrix_conduwuit_container_additional_networks_auto + matrix_conduwuit_container_additional_networks_custom }}" +matrix_conduwuit_container_additional_networks_auto: [] +matrix_conduwuit_container_additional_networks_custom: [] + +# matrix_conduwuit_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. +# See `../templates/labels.j2` for details. +# +# To inject your own other container labels, see `matrix_conduwuit_container_labels_additional_labels`. +matrix_conduwuit_container_labels_traefik_enabled: true +matrix_conduwuit_container_labels_traefik_docker_network: "{{ matrix_conduwuit_container_network }}" +matrix_conduwuit_container_labels_traefik_entrypoints: web-secure +matrix_conduwuit_container_labels_traefik_tls_certResolver: default # noqa var-naming + +# Controls whether labels will be added for handling the root (/) path on a public Traefik entrypoint. +matrix_conduwuit_container_labels_public_client_root_enabled: true +matrix_conduwuit_container_labels_public_client_root_traefik_hostname: "{{ matrix_conduwuit_hostname }}" +matrix_conduwuit_container_labels_public_client_root_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_client_root_traefik_hostname }}`) && Path(`/`)" +matrix_conduwuit_container_labels_public_client_root_traefik_priority: 0 +matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}" +matrix_conduwuit_container_labels_public_client_root_traefik_tls: "{{ matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints != 'web' }}" +matrix_conduwuit_container_labels_public_client_root_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming +matrix_conduwuit_container_labels_public_client_root_redirection_enabled: false +matrix_conduwuit_container_labels_public_client_root_redirection_url: "" + +# Controls whether labels will be added that expose the Client-Server API on a public Traefik entrypoint. +matrix_conduwuit_container_labels_public_client_api_enabled: true +matrix_conduwuit_container_labels_public_client_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}" +matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix: /_matrix +matrix_conduwuit_container_labels_public_client_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_client_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix }}`)" +matrix_conduwuit_container_labels_public_client_api_traefik_priority: 0 +matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}" +matrix_conduwuit_container_labels_public_client_api_traefik_tls: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints != 'web' }}" +matrix_conduwuit_container_labels_public_client_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming + +# Controls whether labels will be added that expose the Client-Server API on the internal Traefik entrypoint. +# This is similar to `matrix_conduwuit_container_labels_public_client_api_enabled`, but the entrypoint and intent is different. +matrix_conduwuit_container_labels_internal_client_api_enabled: false +matrix_conduwuit_container_labels_internal_client_api_traefik_path_prefix: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix }}" +matrix_conduwuit_container_labels_internal_client_api_traefik_rule: "PathPrefix(`{{ matrix_conduwuit_container_labels_internal_client_api_traefik_path_prefix }}`)" +matrix_conduwuit_container_labels_internal_client_api_traefik_priority: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_priority }}" +matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints: "" + +# Controls whether labels will be added that expose the Server-Server API (Federation API) on a public Traefik entrypoint. +matrix_conduwuit_container_labels_public_federation_api_enabled: "{{ matrix_conduwuit_config_allow_federation }}" +matrix_conduwuit_container_labels_public_federation_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}" +matrix_conduwuit_container_labels_public_federation_api_traefik_path_prefix: /_matrix +matrix_conduwuit_container_labels_public_federation_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_federation_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_federation_api_traefik_path_prefix }}`)" +matrix_conduwuit_container_labels_public_federation_api_traefik_priority: 0 +matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints: '' +# TLS is force-enabled here, because the spec (https://spec.matrix.org/v1.9/server-server-api/#tls) says that the federation API must use HTTPS. +matrix_conduwuit_container_labels_public_federation_api_traefik_tls: true +matrix_conduwuit_container_labels_public_federation_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming + +# Controls whether labels will be added that expose the `/_conduwuit` path prefix on a public Traefik entrypoint. +matrix_conduwuit_container_labels_public_conduwuit_api_enabled: true +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}" +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_path_prefix: /_conduwuit +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_path_prefix }}`)" +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority: 0 +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}" +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls: "{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints != 'web' }}" +matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming + +# matrix_conduwuit_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. +# See `../templates/labels.j2` for details. +# +# Example: +# matrix_conduwuit_container_labels_additional_labels: | +# my.label=1 +# another.label="here" +matrix_conduwuit_container_labels_additional_labels: '' + +# Extra arguments for the Docker container +matrix_conduwuit_container_extra_arguments: [] + +# Specifies which template files to use when configuring conduwuit. +# If you'd like to have your own different configuration, feel free to copy and paste +# the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`) +# and then change the specific host's `vars.yml` file like this: +# matrix_conduwuit_template_conduwuit_config: "{{ playbook_dir }}/inventory/host_vars/matrix.example.com/conduwuit.toml.j2" +matrix_conduwuit_template_conduwuit_config: "{{ role_path }}/templates/conduwuit.toml.j2" + +# Max size for uploads, in bytes +matrix_conduwuit_config_server_name: "{{ matrix_domain }}" + +# Max size for uploads, in bytes +matrix_conduwuit_config_max_request_size: 20_000_000 + +# Enables registration. If set to false, no users can register on this server. +matrix_conduwuit_config_allow_registration: false + +# Controls the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting. +# This is only used when `matrix_conduwuit_config_allow_registration` is set to true and no registration token is configured. +matrix_conduwuit_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse: false + +# Controls the `registration_token` setting. +# When registration is enabled (`matrix_conduwuit_config_allow_registration`) you: +# - either need to set a token to protect registration from abuse +# - or you need to enable the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting +# (see `matrix_conduwuit_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse`), +# to allow registration without any form of 2nd-step. +matrix_conduwuit_config_registration_token: '' + +# Controls the `new_user_displayname_suffix` setting. +# This is the suffix that will be added to the displayname of new users. +# Upstream defaults this to "🏳️‍⚧️", but we keep this consistent across all homeserver implementations and do not enable a suffix. +matrix_conduwuit_config_new_user_displayname_suffix: "" + +# Controls the `allow_check_for_updates` setting. +matrix_conduwuit_config_allow_check_for_updates: false + +# Controls the `emergency_password` setting. +matrix_conduwuit_config_emergency_password: '' + +# Controls the `allow_federation` setting. +matrix_conduwuit_config_allow_federation: true + +matrix_conduwuit_trusted_servers: + - "matrix.org" + +matrix_conduwuit_config_log: "info,state_res=warn,rocket=off,_=off,sled=off" + +# TURN integration. +# See: https://conduwuit.puppyirl.gay/turn.html +matrix_conduwuit_config_turn_uris: [] +matrix_conduwuit_config_turn_secret: '' +matrix_conduwuit_config_turn_username: '' +matrix_conduwuit_config_turn_password: '' + +# Controls whether the self-check feature should validate SSL certificates. +matrix_conduwuit_self_check_validate_certificates: true + +# Additional environment variables to pass to the container. +# +# Environment variables take priority over settings in the configuration file. +# +# Example: +# matrix_conduwuit_environment_variables_extension: | +# CONDUWUIT_MAX_REQUEST_SIZE=50000000 +# CONDUWUIT_REQUEST_TIMEOUT=60 +matrix_conduwuit_environment_variables_extension: '' diff --git a/roles/custom/matrix-conduwuit/tasks/install.yml b/roles/custom/matrix-conduwuit/tasks/install.yml new file mode 100644 index 000000000..aa489386e --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/install.yml @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Ensure conduwuit config path exists + ansible.builtin.file: + path: "{{ matrix_conduwuit_config_path }}" + state: directory + mode: 0750 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit data path exists + ansible.builtin.file: + path: "{{ matrix_conduwuit_data_path }}" + state: directory + mode: 0770 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit configuration installed + ansible.builtin.template: + src: "{{ matrix_conduwuit_template_conduwuit_config }}" + dest: "{{ matrix_conduwuit_config_path }}/conduwuit.toml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit support files installed + ansible.builtin.template: + src: "{{ role_path }}/templates/{{ item }}.j2" + dest: "{{ matrix_conduwuit_base_path }}/{{ item }}" + mode: 0640 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - labels + - env + +- name: Ensure conduwuit container network is created + community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" + name: "{{ matrix_conduwuit_container_network }}" + driver: bridge + driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" + +- name: Ensure conduwuit container image is pulled + community.docker.docker_image: + name: "{{ matrix_conduwuit_docker_image }}" + source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" + force_source: "{{ matrix_conduwuit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduwuit_docker_image_force_pull }}" + register: result + retries: "{{ devture_playbook_help_container_retries_count }}" + delay: "{{ devture_playbook_help_container_retries_delay }}" + until: result is not failed + +- name: Ensure matrix-conduwuit.service installed + ansible.builtin.template: + src: "{{ role_path }}/templates/systemd/matrix-conduwuit.service.j2" + dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + mode: 0644 diff --git a/roles/custom/matrix-conduwuit/tasks/main.yml b/roles/custom/matrix-conduwuit/tasks/main.yml new file mode 100644 index 000000000..425f81bee --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/main.yml @@ -0,0 +1,34 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- tags: + - setup-all + - setup-conduwuit + - install-all + - install-conduwuit + block: + - when: matrix_conduwuit_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" + + - when: matrix_conduwuit_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml" + +- tags: + - setup-all + - setup-conduwuit + block: + - when: not matrix_conduwuit_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml" + +- tags: + - self-check + block: + - when: matrix_conduwuit_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_client_api.yml" + + - when: matrix_conduwuit_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_federation_api.yml" diff --git a/roles/custom/matrix-conduwuit/tasks/self_check_client_api.yml b/roles/custom/matrix-conduwuit/tasks/self_check_client_api.yml new file mode 100644 index 000000000..5ea3f830f --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/self_check_client_api.yml @@ -0,0 +1,28 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check Matrix Client API + ansible.builtin.uri: + url: "{{ matrix_conduwuit_client_api_url_endpoint_public }}" + follow_redirects: none + validate_certs: "{{ matrix_conduwuit_self_check_validate_certificates }}" + register: result_matrix_conduwuit_client_api + ignore_errors: true + check_mode: false + when: matrix_conduwuit_enabled | bool + delegate_to: 127.0.0.1 + become: false + +- name: Fail if Matrix Client API not working + ansible.builtin.fail: + msg: "Failed checking Matrix Client API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_conduwuit_client_api_url_endpoint_public }}`). Is conduwuit running? Is port 443 open in your firewall? Full error: {{ result_matrix_conduwuit_client_api }}" + when: "matrix_conduwuit_enabled | bool and (result_matrix_conduwuit_client_api.failed or 'json' not in result_matrix_conduwuit_client_api)" + +- name: Report working Matrix Client API + ansible.builtin.debug: + msg: "The Matrix Client API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_conduwuit_client_api_url_endpoint_public }}`) is working" + when: matrix_conduwuit_enabled | bool diff --git a/roles/custom/matrix-conduwuit/tasks/self_check_federation_api.yml b/roles/custom/matrix-conduwuit/tasks/self_check_federation_api.yml new file mode 100644 index 000000000..000a4b608 --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/self_check_federation_api.yml @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check Matrix Federation API + ansible.builtin.uri: + url: "{{ matrix_synapse_federation_api_url_endpoint_public }}" + follow_redirects: none + validate_certs: "{{ matrix_synapse_self_check_validate_certificates }}" + register: result_matrix_synapse_federation_api + ignore_errors: true + check_mode: false + when: matrix_synapse_enabled | bool + delegate_to: 127.0.0.1 + become: false + +- name: Fail if Matrix Federation API not working + ansible.builtin.fail: + msg: "Failed checking Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`). Is Synapse running? Is port {{ matrix_federation_public_port }} open in your firewall? Full error: {{ result_matrix_synapse_federation_api }}" + when: "matrix_synapse_enabled | bool and matrix_synapse_federation_enabled | bool and (result_matrix_synapse_federation_api.failed or 'json' not in result_matrix_synapse_federation_api)" + +- name: Fail if Matrix Federation API unexpectedly enabled + ansible.builtin.fail: + msg: "Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) despite being disabled." + when: "matrix_synapse_enabled | bool and not matrix_synapse_federation_enabled | bool and not result_matrix_synapse_federation_api.failed" + +- name: Report working Matrix Federation API + ansible.builtin.debug: + msg: "The Matrix Federation API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) is working" + when: "matrix_synapse_enabled | bool and matrix_synapse_federation_enabled | bool" diff --git a/roles/custom/matrix-conduwuit/tasks/setup_install.yml b/roles/custom/matrix-conduwuit/tasks/setup_install.yml new file mode 100644 index 000000000..4a5651fcf --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/setup_install.yml @@ -0,0 +1,63 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Ensure conduwuit config path exists + ansible.builtin.file: + path: "{{ matrix_conduwuit_config_path }}" + state: directory + mode: 0750 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit data path exists + ansible.builtin.file: + path: "{{ matrix_conduwuit_data_path }}" + state: directory + mode: 0770 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit configuration installed + ansible.builtin.template: + src: "{{ matrix_conduwuit_template_conduwuit_config }}" + dest: "{{ matrix_conduwuit_config_path }}/conduwuit.toml" + mode: 0644 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + +- name: Ensure conduwuit support files installed + ansible.builtin.template: + src: "{{ role_path }}/templates/{{ item }}.j2" + dest: "{{ matrix_conduwuit_base_path }}/{{ item }}" + mode: 0640 + owner: "{{ matrix_user_username }}" + group: "{{ matrix_user_groupname }}" + with_items: + - labels + +- name: Ensure conduwuit container network is created + community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" + name: "{{ matrix_conduwuit_container_network }}" + driver: bridge + driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" + +- name: Ensure conduwuit container image is pulled + community.docker.docker_image: + name: "{{ matrix_conduwuit_docker_image }}" + source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" + force_source: "{{ matrix_conduwuit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" + force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduwuit_docker_image_force_pull }}" + register: result + retries: "{{ devture_playbook_help_container_retries_count }}" + delay: "{{ devture_playbook_help_container_retries_delay }}" + until: result is not failed + +- name: Ensure matrix-conduwuit.service installed + ansible.builtin.template: + src: "{{ role_path }}/templates/systemd/matrix-conduwuit.service.j2" + dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + mode: 0644 diff --git a/roles/custom/matrix-conduwuit/tasks/setup_uninstall.yml b/roles/custom/matrix-conduwuit/tasks/setup_uninstall.yml new file mode 100644 index 000000000..24326b337 --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/setup_uninstall.yml @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check existence of matrix-conduwuit service + ansible.builtin.stat: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + register: matrix_conduwuit_service_stat + +- when: matrix_conduwuit_service_stat.stat.exists | bool + block: + - name: Ensure matrix-conduwuit is stopped + ansible.builtin.systemd: + name: matrix-conduwuit + state: stopped + daemon_reload: true + + - name: Ensure matrix-conduwuit.service doesn't exist + ansible.builtin.file: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + state: absent diff --git a/roles/custom/matrix-conduwuit/tasks/uninstall.yml b/roles/custom/matrix-conduwuit/tasks/uninstall.yml new file mode 100644 index 000000000..9755d5ad1 --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/uninstall.yml @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Check existence of matrix-conduwuit service + ansible.builtin.stat: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + register: matrix_conduwuit_service_stat + +- when: matrix_conduwuit_service_stat.stat.exists | bool + block: + - name: Ensure matrix-conduwuit is stopped + ansible.builtin.systemd: + name: matrix-conduwuit + state: stopped + daemon_reload: true + + - name: Ensure matrix-conduwuit.service doesn't exist + ansible.builtin.file: + path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service" + state: absent diff --git a/roles/custom/matrix-conduwuit/tasks/validate_config.yml b/roles/custom/matrix-conduwuit/tasks/validate_config.yml new file mode 100644 index 000000000..acb95bec1 --- /dev/null +++ b/roles/custom/matrix-conduwuit/tasks/validate_config.yml @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Fail if required conduwuit settings not defined + ansible.builtin.fail: + msg: >- + You need to define a required configuration setting (`{{ item.name }}`). + when: "item.when | bool and vars[item.name] == ''" + with_items: + - {'name': 'matrix_conduwuit_hostname', when: true} + - {'name': 'matrix_conduwuit_container_network', when: true} + - {'name': 'matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints', when: "{{ matrix_conduwuit_container_labels_internal_client_api_enabled }}"} diff --git a/roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2 b/roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2 new file mode 100644 index 000000000..0438a2d97 --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2 @@ -0,0 +1,1546 @@ +{# +SPDX-FileCopyrightText: 2025 MDAD project contributors +SPDX-FileCopyrightText: 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +### conduwuit Configuration +### See: +### https://conduwuit.puppyirl.gay/configuration.html + +[global] + +# The server_name is the pretty name of this server. It is used as a +# suffix for user and room IDs/aliases. +# +# See the docs for reverse proxying and delegation: +# https://conduwuit.puppyirl.gay/deploying/generic.html#setting-up-the-reverse-proxy +# +# Also see the `[global.well_known]` config section at the very bottom. +# +# Examples of delegation: +# - https://puppygock.gay/.well-known/matrix/server +# - https://puppygock.gay/.well-known/matrix/client +# +# YOU NEED TO EDIT THIS. THIS CANNOT BE CHANGED AFTER WITHOUT A DATABASE +# WIPE. +# +# example: "conduwuit.woof" +# +server_name = {{ matrix_conduwuit_config_server_name | to_json }} + +# The default address (IPv4 or IPv6) conduwuit will listen on. +# +# If you are using Docker or a container NAT networking setup, this must +# be "0.0.0.0". +# +# To listen on multiple addresses, specify a vector e.g. ["127.0.0.1", +# "::1"] +# +address = "0.0.0.0" + +# The port(s) conduwuit will listen on. +# +# For reverse proxying, see: +# https://conduwuit.puppyirl.gay/deploying/generic.html#setting-up-the-reverse-proxy +# +# If you are using Docker, don't change this, you'll need to map an +# external port to this. +# +# To listen on multiple ports, specify a vector e.g. [8080, 8448] +# +port = {{ matrix_conduwuit_config_port_number }} + +# The UNIX socket conduwuit will listen on. +# +# conduwuit cannot listen on both an IP address and a UNIX socket. If +# listening on a UNIX socket, you MUST remove/comment the `address` key. +# +# Remember to make sure that your reverse proxy has access to this socket +# file, either by adding your reverse proxy to the 'conduwuit' group or +# granting world R/W permissions with `unix_socket_perms` (666 minimum). +# +# example: "/run/conduwuit/conduwuit.sock" +# +#unix_socket_path = + +# The default permissions (in octal) to create the UNIX socket with. +# +#unix_socket_perms = 660 + +# This is the only directory where conduwuit will save its data, including +# media. Note: this was previously "/var/lib/matrix-conduit". +# +# YOU NEED TO EDIT THIS. +# +# example: "/var/lib/conduwuit" +# +database_path = "/var/lib/conduwuit" + +# conduwuit supports online database backups using RocksDB's Backup engine +# API. To use this, set a database backup path that conduwuit can write +# to. +# +# For more information, see: +# https://conduwuit.puppyirl.gay/maintenance.html#backups +# +# example: "/opt/conduwuit-db-backups" +# +#database_backup_path = + +# The amount of online RocksDB database backups to keep/retain, if using +# "database_backup_path", before deleting the oldest one. +# +#database_backups_to_keep = 1 + +# Text which will be added to the end of the user's displayname upon +# registration with a space before the text. In Conduit, this was the +# lightning bolt emoji. +# +# To disable, set this to "" (an empty string). +# +# The default is the trans pride flag. +# +# example: "🏳️‍⚧️" +# +new_user_displayname_suffix = {{ matrix_conduwuit_config_new_user_displayname_suffix | to_json }} + +# If enabled, conduwuit will send a simple GET request periodically to +# `https://pupbrain.dev/check-for-updates/stable` for any new +# announcements made. Despite the name, this is not an update check +# endpoint, it is simply an announcement check endpoint. +# +# This is disabled by default as this is rarely used except for security +# updates or major updates. +# +allow_check_for_updates = {{ matrix_conduwuit_config_allow_check_for_updates | to_json }} + +# Set this to any float value to multiply conduwuit's in-memory LRU caches +# with such as "auth_chain_cache_capacity". +# +# May be useful if you have significant memory to spare to increase +# performance. +# +# If you have low memory, reducing this may be viable. +# +# By default, the individual caches such as "auth_chain_cache_capacity" +# are scaled by your CPU core count. +# +#cache_capacity_modifier = 1.0 + +# Set this to any float value in megabytes for conduwuit to tell the +# database engine that this much memory is available for database read +# caches. +# +# May be useful if you have significant memory to spare to increase +# performance. +# +# Similar to the individual LRU caches, this is scaled up with your CPU +# core count. +# +# This defaults to 128.0 + (64.0 * CPU core count). +# +#db_cache_capacity_mb = varies by system + +# Set this to any float value in megabytes for conduwuit to tell the +# database engine that this much memory is available for database write +# caches. +# +# May be useful if you have significant memory to spare to increase +# performance. +# +# Similar to the individual LRU caches, this is scaled up with your CPU +# core count. +# +# This defaults to 48.0 + (4.0 * CPU core count). +# +#db_write_buffer_capacity_mb = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#pdu_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#auth_chain_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#shorteventid_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#eventidshort_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#eventid_pdu_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#shortstatekey_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#statekeyshort_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#servernameevent_data_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#server_visibility_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#user_visibility_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#stateinfo_cache_capacity = varies by system + +# This item is undocumented. Please contribute documentation for it. +# +#roomid_spacehierarchy_cache_capacity = varies by system + +# Maximum entries stored in DNS memory-cache. The size of an entry may +# vary so please take care if raising this value excessively. Only +# decrease this when using an external DNS cache. Please note that +# systemd-resolved does *not* count as an external cache, even when +# configured to do so. +# +#dns_cache_entries = 32768 + +# Minimum time-to-live in seconds for entries in the DNS cache. The +# default may appear high to most administrators; this is by design as the +# majority of NXDOMAINs are correct for a long time (e.g. the server is no +# longer running Matrix). Only decrease this if you are using an external +# DNS cache. +# +#dns_min_ttl = 10800 + +# Minimum time-to-live in seconds for NXDOMAIN entries in the DNS cache. +# This value is critical for the server to federate efficiently. +# NXDOMAIN's are assumed to not be returning to the federation and +# aggressively cached rather than constantly rechecked. +# +# Defaults to 3 days as these are *very rarely* false negatives. +# +#dns_min_ttl_nxdomain = 259200 + +# Number of DNS nameserver retries after a timeout or error. +# +#dns_attempts = 10 + +# The number of seconds to wait for a reply to a DNS query. Please note +# that recursive queries can take up to several seconds for some domains, +# so this value should not be too low, especially on slower hardware or +# resolvers. +# +#dns_timeout = 10 + +# Fallback to TCP on DNS errors. Set this to false if unsupported by +# nameserver. +# +#dns_tcp_fallback = true + +# Enable to query all nameservers until the domain is found. Referred to +# as "trust_negative_responses" in hickory_resolver. This can avoid +# useless DNS queries if the first nameserver responds with NXDOMAIN or +# an empty NOERROR response. +# +#query_all_nameservers = true + +# Enable using *only* TCP for querying your specified nameservers instead +# of UDP. +# +# If you are running conduwuit in a container environment, this config +# option may need to be enabled. For more details, see: +# https://conduwuit.puppyirl.gay/troubleshooting.html#potential-dns-issues-when-using-docker +# +#query_over_tcp_only = false + +# DNS A/AAAA record lookup strategy +# +# Takes a number of one of the following options: +# 1 - Ipv4Only (Only query for A records, no AAAA/IPv6) +# +# 2 - Ipv6Only (Only query for AAAA records, no A/IPv4) +# +# 3 - Ipv4AndIpv6 (Query for A and AAAA records in parallel, uses whatever +# returns a successful response first) +# +# 4 - Ipv6thenIpv4 (Query for AAAA record, if that fails then query the A +# record) +# +# 5 - Ipv4thenIpv6 (Query for A record, if that fails then query the AAAA +# record) +# +# If you don't have IPv6 networking, then for better DNS performance it +# may be suitable to set this to Ipv4Only (1) as you will never ever use +# the AAAA record contents even if the AAAA record is successful instead +# of the A record. +# +#ip_lookup_strategy = 5 + +# Max request size for file uploads in bytes. Defaults to 20MB. +# +max_request_size = {{ matrix_conduwuit_config_max_request_size }} + +# This item is undocumented. Please contribute documentation for it. +# +#max_fetch_prev_events = 192 + +# Default/base connection timeout (seconds). This is used only by URL +# previews and update/news endpoint checks. +# +#request_conn_timeout = 10 + +# Default/base request timeout (seconds). The time waiting to receive more +# data from another server. This is used only by URL previews, +# update/news, and misc endpoint checks. +# +#request_timeout = 35 + +# Default/base request total timeout (seconds). The time limit for a whole +# request. This is set very high to not cancel healthy requests while +# serving as a backstop. This is used only by URL previews and update/news +# endpoint checks. +# +#request_total_timeout = 320 + +# Default/base idle connection pool timeout (seconds). This is used only +# by URL previews and update/news endpoint checks. +# +#request_idle_timeout = 5 + +# Default/base max idle connections per host. This is used only by URL +# previews and update/news endpoint checks. Defaults to 1 as generally the +# same open connection can be re-used. +# +#request_idle_per_host = 1 + +# Federation well-known resolution connection timeout (seconds). +# +#well_known_conn_timeout = 6 + +# Federation HTTP well-known resolution request timeout (seconds). +# +#well_known_timeout = 10 + +# Federation client request timeout (seconds). You most definitely want +# this to be high to account for extremely large room joins, slow +# homeservers, your own resources etc. +# +#federation_timeout = 300 + +# Federation client idle connection pool timeout (seconds). +# +#federation_idle_timeout = 25 + +# Federation client max idle connections per host. Defaults to 1 as +# generally the same open connection can be re-used. +# +#federation_idle_per_host = 1 + +# Federation sender request timeout (seconds). The time it takes for the +# remote server to process sent transactions can take a while. +# +#sender_timeout = 180 + +# Federation sender idle connection pool timeout (seconds). +# +#sender_idle_timeout = 180 + +# Federation sender transaction retry backoff limit (seconds). +# +#sender_retry_backoff_limit = 86400 + +# Appservice URL request connection timeout. Defaults to 35 seconds as +# generally appservices are hosted within the same network. +# +#appservice_timeout = 35 + +# Appservice URL idle connection pool timeout (seconds). +# +#appservice_idle_timeout = 300 + +# Notification gateway pusher idle connection pool timeout. +# +#pusher_idle_timeout = 15 + +# Enables registration. If set to false, no users can register on this +# server. +# +# If set to true without a token configured, users can register with no +# form of 2nd-step only if you set the following option to true: +# `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` +# +# If you would like registration only via token reg, please configure +# `registration_token` or `registration_token_file`. +# +allow_registration = {{ matrix_conduwuit_config_allow_registration | to_json }} + +yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = {{ matrix_conduwuit_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse | to_json }} + +allow_federation = {{ matrix_conduwuit_config_allow_federation | to_json }} + +# This item is undocumented. Please contribute documentation for it. +# +#yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = false + +# A static registration token that new users will have to provide when +# creating an account. If unset and `allow_registration` is true, +# registration is open without any condition. +# +# YOU NEED TO EDIT THIS OR USE registration_token_file. +# +# example: "o&^uCtes4HPf0Vu@F20jQeeWE7" +# +registration_token = {{ matrix_conduwuit_config_registration_token | to_json }} + +# Path to a file on the system that gets read for the registration token. +# this config option takes precedence/priority over "registration_token". +# +# conduwuit must be able to access the file, and it must not be empty +# +# example: "/etc/conduwuit/.reg_token" +# +#registration_token_file = + +# Controls whether encrypted rooms and events are allowed. +# +#allow_encryption = true + +# Controls whether federation is allowed or not. It is not recommended to +# disable this after the fact due to potential federation breakage. +# +#allow_federation = true + +# This item is undocumented. Please contribute documentation for it. +# +#federation_loopback = false + +# Set this to true to require authentication on the normally +# unauthenticated profile retrieval endpoints (GET) +# "/_matrix/client/v3/profile/{userId}". +# +# This can prevent profile scraping. +# +#require_auth_for_profile_requests = false + +# Set this to true to allow your server's public room directory to be +# federated. Set this to false to protect against /publicRooms spiders, +# but will forbid external users from viewing your server's public room +# directory. If federation is disabled entirely (`allow_federation`), this +# is inherently false. +# +#allow_public_room_directory_over_federation = false + +# Set this to true to allow your server's public room directory to be +# queried without client authentication (access token) through the Client +# APIs. Set this to false to protect against /publicRooms spiders. +# +#allow_public_room_directory_without_auth = false + +# Allow guests/unauthenticated users to access TURN credentials. +# +# This is the equivalent of Synapse's `turn_allow_guests` config option. +# This allows any unauthenticated user to call the endpoint +# `/_matrix/client/v3/voip/turnServer`. +# +# It is unlikely you need to enable this as all major clients support +# authentication for this endpoint and prevents misuse of your TURN server +# from potential bots. +# +#turn_allow_guests = false + +# Set this to true to lock down your server's public room directory and +# only allow admins to publish rooms to the room directory. Unpublishing +# is still allowed by all users with this enabled. +# +#lockdown_public_room_directory = false + +# Set this to true to allow federating device display names / allow +# external users to see your device display name. If federation is +# disabled entirely (`allow_federation`), this is inherently false. For +# privacy reasons, this is best left disabled. +# +#allow_device_name_federation = false + +# Config option to allow or disallow incoming federation requests that +# obtain the profiles of our local users from +# `/_matrix/federation/v1/query/profile` +# +# Increases privacy of your local user's such as display names, but some +# remote users may get a false "this user does not exist" error when they +# try to invite you to a DM or room. Also can protect against profile +# spiders. +# +# This is inherently false if `allow_federation` is disabled +# +#allow_inbound_profile_lookup_federation_requests = true + +# Allow standard users to create rooms. Appservices and admins are always +# allowed to create rooms +# +#allow_room_creation = true + +# Set to false to disable users from joining or creating room versions +# that aren't officially supported by conduwuit. +# +# conduwuit officially supports room versions 6 - 11. +# +# conduwuit has slightly experimental (though works fine in practice) +# support for versions 3 - 5. +# +#allow_unstable_room_versions = true + +# Default room version conduwuit will create rooms with. +# +# Per spec, room version 10 is the default. +# +#default_room_version = 10 + +# This item is undocumented. Please contribute documentation for it. +# +#allow_jaeger = false + +# This item is undocumented. Please contribute documentation for it. +# +#jaeger_filter = "info" + +# If the 'perf_measurements' compile-time feature is enabled, enables +# collecting folded stack trace profile of tracing spans using +# tracing_flame. The resulting profile can be visualized with inferno[1], +# speedscope[2], or a number of other tools. +# +# [1]: https://github.com/jonhoo/inferno +# [2]: www.speedscope.app +# +#tracing_flame = false + +# This item is undocumented. Please contribute documentation for it. +# +#tracing_flame_filter = "info" + +# This item is undocumented. Please contribute documentation for it. +# +#tracing_flame_output_path = "./tracing.folded" + +# Examples: +# +# - No proxy (default): +# +# proxy = "none" +# +# - For global proxy, create the section at the bottom of this file: +# +# [global.proxy] +# global = { url = "socks5h://localhost:9050" } +# +# - To proxy some domains: +# +# [global.proxy] +# [[global.proxy.by_domain]] +# url = "socks5h://localhost:9050" +# include = ["*.onion", "matrix.myspecial.onion"] +# exclude = ["*.myspecial.onion"] +# +# Include vs. Exclude: +# +# - If include is an empty list, it is assumed to be `["*"]`. +# +# - If a domain matches both the exclude and include list, the proxy will +# only be used if it was included because of a more specific rule than +# it was excluded. In the above example, the proxy would be used for +# `ordinary.onion`, `matrix.myspecial.onion`, but not +# `hello.myspecial.onion`. +# +#proxy = "none" + +# Servers listed here will be used to gather public keys of other servers +# (notary trusted key servers). +# +# Currently, conduwuit doesn't support inbound batched key requests, so +# this list should only contain other Synapse servers. +# +# example: ["matrix.org", "envs.net", "constellatory.net", "tchncs.de"] +# +trusted_servers = {{ matrix_conduwuit_trusted_servers | to_json }} + +# Whether to query the servers listed in trusted_servers first or query +# the origin server first. For best security, querying the origin server +# first is advised to minimize the exposure to a compromised trusted +# server. For maximum federation/join performance this can be set to true, +# however other options exist to query trusted servers first under +# specific high-load circumstances and should be evaluated before setting +# this to true. +# +#query_trusted_key_servers_first = false + +# Whether to query the servers listed in trusted_servers first +# specifically on room joins. This option limits the exposure to a +# compromised trusted server to room joins only. The join operation +# requires gathering keys from many origin servers which can cause +# significant delays. Therefor this defaults to true to mitigate +# unexpected delays out-of-the-box. The security-paranoid or those willing +# to tolerate delays are advised to set this to false. Note that setting +# query_trusted_key_servers_first to true causes this option to be +# ignored. +# +#query_trusted_key_servers_first_on_join = true + +# Only query trusted servers for keys and never the origin server. This is +# intended for clusters or custom deployments using their trusted_servers +# as forwarding-agents to cache and deduplicate requests. Notary servers +# do not act as forwarding-agents by default, therefor do not enable this +# unless you know exactly what you are doing. +# +#only_query_trusted_key_servers = false + +# Maximum number of keys to request in each trusted server batch query. +# +#trusted_server_batch_size = 1024 + +# Max log level for conduwuit. Allows debug, info, warn, or error. +# +# See also: +# https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives +# +# **Caveat**: +# For release builds, the tracing crate is configured to only implement +# levels higher than error to avoid unnecessary overhead in the compiled +# binary from trace macros. For debug builds, this restriction is not +# applied. +# +log = {{ matrix_conduwuit_config_log | to_json }} + +# Output logs with ANSI colours. +# +#log_colors = true + +# Configures the span events which will be outputted with the log. +# +#log_span_events = "none" + +# Configures whether CONDUWUIT_LOG EnvFilter matches values using regular +# expressions. See the tracing_subscriber documentation on Directives. +# +#log_filter_regex = true + +# Toggles the display of ThreadId in tracing log output. +# +#log_thread_ids = false + +# OpenID token expiration/TTL in seconds. +# +# These are the OpenID tokens that are primarily used for Matrix account +# integrations (e.g. Vector Integrations in Element), *not* OIDC/OpenID +# Connect/etc. +# +#openid_token_ttl = 3600 + +# Allow an existing session to mint a login token for another client. +# This requires interactive authentication, but has security ramifications +# as a malicious client could use the mechanism to spawn more than one +# session. +# Enabled by default. +# +#login_via_existing_session = true + +# Login token expiration/TTL in milliseconds. +# +# These are short-lived tokens for the m.login.token endpoint. +# This is used to allow existing sessions to create new sessions. +# see login_via_existing_session. +# +#login_token_ttl = 120000 + +# Static TURN username to provide the client if not using a shared secret +# ("turn_secret"), It is recommended to use a shared secret over static +# credentials. +# +#turn_username = false + +# Static TURN password to provide the client if not using a shared secret +# ("turn_secret"). It is recommended to use a shared secret over static +# credentials. +# +#turn_password = false + +# Vector list of TURN URIs/servers to use. +# +# Replace "example.turn.uri" with your TURN domain, such as the coturn +# "realm" config option. If using TURN over TLS, replace the URI prefix +# "turn:" with "turns:". +# +# example: ["turn:example.turn.uri?transport=udp", +# "turn:example.turn.uri?transport=tcp"] +# +turn_uris = {{ matrix_conduwuit_config_turn_uris | to_json }} + +# TURN secret to use for generating the HMAC-SHA1 hash apart of username +# and password generation. +# +# This is more secure, but if needed you can use traditional static +# username/password credentials. +# +#turn_secret = false +{% if matrix_conduwuit_config_turn_secret != '' %} +turn_secret = {{ matrix_conduwuit_config_turn_secret | to_json }} +{% endif %} + +# If you have your TURN server configured to use a username and password +# you can provide these information too. In this case comment out `turn_secret above`! +{% if matrix_conduwuit_config_turn_username != '' or matrix_conduwuit_config_turn_password != '' %} +turn_username = {{ matrix_conduwuit_config_turn_username | to_json }} +turn_password = {{ matrix_conduwuit_config_turn_password | to_json }} +{% endif %} + +# TURN secret to use that's read from the file path specified. +# +# This takes priority over "turn_secret" first, and falls back to +# "turn_secret" if invalid or failed to open. +# +# example: "/etc/conduwuit/.turn_secret" +# +#turn_secret_file = + +# TURN TTL, in seconds. +# +#turn_ttl = 86400 + +# List/vector of room IDs or room aliases that conduwuit will make newly +# registered users join. The rooms specified must be rooms that you have +# joined at least once on the server, and must be public. +# +# example: ["#conduwuit:puppygock.gay", +# "!eoIzvAvVwY23LPDay8:puppygock.gay"] +# +#auto_join_rooms = [] + +# Config option to automatically deactivate the account of any user who +# attempts to join a: +# - banned room +# - forbidden room alias +# - room alias or ID with a forbidden server name +# +# This may be useful if all your banned lists consist of toxic rooms or +# servers that no good faith user would ever attempt to join, and +# to automatically remediate the problem without any admin user +# intervention. +# +# This will also make the user leave all rooms. Federation (e.g. remote +# room invites) are ignored here. +# +# Defaults to false as rooms can be banned for non-moderation-related +# reasons and this performs a full user deactivation. +# +#auto_deactivate_banned_room_attempts = false + +# RocksDB log level. This is not the same as conduwuit's log level. This +# is the log level for the RocksDB engine/library which show up in your +# database folder/path as `LOG` files. conduwuit will log RocksDB errors +# as normal through tracing or panics if severe for safety. +# +#rocksdb_log_level = "error" + +# This item is undocumented. Please contribute documentation for it. +# +#rocksdb_log_stderr = false + +# Max RocksDB `LOG` file size before rotating in bytes. Defaults to 4MB in +# bytes. +# +#rocksdb_max_log_file_size = 4194304 + +# Time in seconds before RocksDB will forcibly rotate logs. +# +#rocksdb_log_time_to_roll = 0 + +# Set this to true to use RocksDB config options that are tailored to HDDs +# (slower device storage). +# +# It is worth noting that by default, conduwuit will use RocksDB with +# Direct IO enabled. *Generally* speaking this improves performance as it +# bypasses buffered I/O (system page cache). However there is a potential +# chance that Direct IO may cause issues with database operations if your +# setup is uncommon. This has been observed with FUSE filesystems, and +# possibly ZFS filesystem. RocksDB generally deals/corrects these issues +# but it cannot account for all setups. If you experience any weird +# RocksDB issues, try enabling this option as it turns off Direct IO and +# feel free to report in the conduwuit Matrix room if this option fixes +# your DB issues. +# +# For more information, see: +# https://github.com/facebook/rocksdb/wiki/Direct-IO +# +#rocksdb_optimize_for_spinning_disks = false + +# Enables direct-io to increase database performance via unbuffered I/O. +# +# For more details about direct I/O and RockDB, see: +# https://github.com/facebook/rocksdb/wiki/Direct-IO +# +# Set this option to false if the database resides on a filesystem which +# does not support direct-io like FUSE, or any form of complex filesystem +# setup such as possibly ZFS. +# +#rocksdb_direct_io = true + +# Amount of threads that RocksDB will use for parallelism on database +# operations such as cleanup, sync, flush, compaction, etc. Set to 0 to +# use all your logical threads. Defaults to your CPU logical thread count. +# +#rocksdb_parallelism_threads = varies by system + +# Maximum number of LOG files RocksDB will keep. This must *not* be set to +# 0. It must be at least 1. Defaults to 3 as these are not very useful +# unless troubleshooting/debugging a RocksDB bug. +# +#rocksdb_max_log_files = 3 + +# Type of RocksDB database compression to use. +# +# Available options are "zstd", "zlib", "bz2", "lz4", or "none". +# +# It is best to use ZSTD as an overall good balance between +# speed/performance, storage, IO amplification, and CPU usage. For more +# performance but less compression (more storage used) and less CPU usage, +# use LZ4. +# +# For more details, see: +# https://github.com/facebook/rocksdb/wiki/Compression +# +# "none" will disable compression. +# +#rocksdb_compression_algo = "zstd" + +# Level of compression the specified compression algorithm for RocksDB to +# use. +# +# Default is 32767, which is internally read by RocksDB as the default +# magic number and translated to the library's default compression level +# as they all differ. See their `kDefaultCompressionLevel`. +# +#rocksdb_compression_level = 32767 + +# Level of compression the specified compression algorithm for the +# bottommost level/data for RocksDB to use. Default is 32767, which is +# internally read by RocksDB as the default magic number and translated to +# the library's default compression level as they all differ. See their +# `kDefaultCompressionLevel`. +# +# Since this is the bottommost level (generally old and least used data), +# it may be desirable to have a very high compression level here as it's +# less likely for this data to be used. Research your chosen compression +# algorithm. +# +#rocksdb_bottommost_compression_level = 32767 + +# Whether to enable RocksDB's "bottommost_compression". +# +# At the expense of more CPU usage, this will further compress the +# database to reduce more storage. It is recommended to use ZSTD +# compression with this for best compression results. This may be useful +# if you're trying to reduce storage usage from the database. +# +# See https://github.com/facebook/rocksdb/wiki/Compression for more details. +# +#rocksdb_bottommost_compression = false + +# Database recovery mode (for RocksDB WAL corruption). +# +# Use this option when the server reports corruption and refuses to start. +# Set mode 2 (PointInTime) to cleanly recover from this corruption. The +# server will continue from the last good state, several seconds or +# minutes prior to the crash. Clients may have to run "clear-cache & +# reload" to account for the rollback. Upon success, you may reset the +# mode back to default and restart again. Please note in some cases the +# corruption error may not be cleared for at least 30 minutes of operation +# in PointInTime mode. +# +# As a very last ditch effort, if PointInTime does not fix or resolve +# anything, you can try mode 3 (SkipAnyCorruptedRecord) but this will +# leave the server in a potentially inconsistent state. +# +# The default mode 1 (TolerateCorruptedTailRecords) will automatically +# drop the last entry in the database if corrupted during shutdown, but +# nothing more. It is extraordinarily unlikely this will desynchronize +# clients. To disable any form of silent rollback set mode 0 +# (AbsoluteConsistency). +# +# The options are: +# 0 = AbsoluteConsistency +# 1 = TolerateCorruptedTailRecords (default) +# 2 = PointInTime (use me if trying to recover) +# 3 = SkipAnyCorruptedRecord (you now voided your conduwuit warranty) +# +# For more information on these modes, see: +# https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes +# +# For more details on recovering a corrupt database, see: +# https://conduwuit.puppyirl.gay/troubleshooting.html#database-corruption +# +#rocksdb_recovery_mode = 1 + +# Enables or disables paranoid SST file checks. This can improve RocksDB +# database consistency at a potential performance impact due to further +# safety checks ran. +# +# For more information, see: +# https://github.com/facebook/rocksdb/wiki/Online-Verification#columnfamilyoptionsparanoid_file_checks +# +#rocksdb_paranoid_file_checks = false + +# Database repair mode (for RocksDB SST corruption). +# +# Use this option when the server reports corruption while running or +# panics. If the server refuses to start use the recovery mode options +# first. Corruption errors containing the acronym 'SST' which occur after +# startup will likely require this option. +# +# - Backing up your database directory is recommended prior to running the +# repair. +# +# - Disabling repair mode and restarting the server is recommended after +# running the repair. +# +# See https://conduwuit.puppyirl.gay/troubleshooting.html#database-corruption for more details on recovering a corrupt database. +# +#rocksdb_repair = false + +# This item is undocumented. Please contribute documentation for it. +# +#rocksdb_read_only = false + +# This item is undocumented. Please contribute documentation for it. +# +#rocksdb_secondary = false + +# Enables idle CPU priority for compaction thread. This is not enabled by +# default to prevent compaction from falling too far behind on busy +# systems. +# +#rocksdb_compaction_prio_idle = false + +# Enables idle IO priority for compaction thread. This prevents any +# unexpected lag in the server's operation and is usually a good idea. +# Enabled by default. +# +#rocksdb_compaction_ioprio_idle = true + +# Disables RocksDB compaction. You should never ever have to set this +# option to true. If you for some reason find yourself needing to use this +# option as part of troubleshooting or a bug, please reach out to us in +# the conduwuit Matrix room with information and details. +# +# Disabling compaction will lead to a significantly bloated and +# explosively large database, gradually poor performance, unnecessarily +# excessive disk read/writes, and slower shutdowns and startups. +# +#rocksdb_compaction = true + +# Level of statistics collection. Some admin commands to display database +# statistics may require this option to be set. Database performance may +# be impacted by higher settings. +# +# Option is a number ranging from 0 to 6: +# 0 = No statistics. +# 1 = No statistics in release mode (default). +# 2 to 3 = Statistics with no performance impact. +# 3 to 5 = Statistics with possible performance impact. +# 6 = All statistics. +# +#rocksdb_stats_level = 1 + +# This is a password that can be configured that will let you login to the +# server bot account (currently `@conduit`) for emergency troubleshooting +# purposes such as recovering/recreating your admin room, or inviting +# yourself back. +# +# See https://conduwuit.puppyirl.gay/troubleshooting.html#lost-access-to-admin-room for other ways to get back into your admin room. +# +# Once this password is unset, all sessions will be logged out for +# security purposes. +# +# example: "F670$2CP@Hw8mG7RY1$%!#Ic7YA" +# +emergency_password = {{ matrix_conduwuit_config_emergency_password | to_json }} + +# This item is undocumented. Please contribute documentation for it. +# +#notification_push_path = "/_matrix/push/v1/notify" + +# Allow local (your server only) presence updates/requests. +# +# Note that presence on conduwuit is very fast unlike Synapse's. If using +# outgoing presence, this MUST be enabled. +# +#allow_local_presence = true + +# Allow incoming federated presence updates/requests. +# +# This option receives presence updates from other servers, but does not +# send any unless `allow_outgoing_presence` is true. Note that presence on +# conduwuit is very fast unlike Synapse's. +# +#allow_incoming_presence = true + +# Allow outgoing presence updates/requests. +# +# This option sends presence updates to other servers, but does not +# receive any unless `allow_incoming_presence` is true. Note that presence +# on conduwuit is very fast unlike Synapse's. If using outgoing presence, +# you MUST enable `allow_local_presence` as well. +# +#allow_outgoing_presence = true + +# How many seconds without presence updates before you become idle. +# Defaults to 5 minutes. +# +#presence_idle_timeout_s = 300 + +# How many seconds without presence updates before you become offline. +# Defaults to 30 minutes. +# +#presence_offline_timeout_s = 1800 + +# Enable the presence idle timer for remote users. +# +# Disabling is offered as an optimization for servers participating in +# many large rooms or when resources are limited. Disabling it may cause +# incorrect presence states (i.e. stuck online) to be seen for some remote +# users. +# +#presence_timeout_remote_users = true + +# Allow receiving incoming read receipts from remote servers. +# +#allow_incoming_read_receipts = true + +# Allow sending read receipts to remote servers. +# +#allow_outgoing_read_receipts = true + +# Allow outgoing typing updates to federation. +# +#allow_outgoing_typing = true + +# Allow incoming typing updates from federation. +# +#allow_incoming_typing = true + +# Maximum time federation user can indicate typing. +# +#typing_federation_timeout_s = 30 + +# Minimum time local client can indicate typing. This does not override a +# client's request to stop typing. It only enforces a minimum value in +# case of no stop request. +# +#typing_client_timeout_min_s = 15 + +# Maximum time local client can indicate typing. +# +#typing_client_timeout_max_s = 45 + +# Set this to true for conduwuit to compress HTTP response bodies using +# zstd. This option does nothing if conduwuit was not built with +# `zstd_compression` feature. Please be aware that enabling HTTP +# compression may weaken TLS. Most users should not need to enable this. +# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH +# before deciding to enable this. +# +#zstd_compression = false + +# Set this to true for conduwuit to compress HTTP response bodies using +# gzip. This option does nothing if conduwuit was not built with +# `gzip_compression` feature. Please be aware that enabling HTTP +# compression may weaken TLS. Most users should not need to enable this. +# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH before +# deciding to enable this. +# +# If you are in a large amount of rooms, you may find that enabling this +# is necessary to reduce the significantly large response bodies. +# +#gzip_compression = false + +# Set this to true for conduwuit to compress HTTP response bodies using +# brotli. This option does nothing if conduwuit was not built with +# `brotli_compression` feature. Please be aware that enabling HTTP +# compression may weaken TLS. Most users should not need to enable this. +# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH +# before deciding to enable this. +# +#brotli_compression = false + +# Set to true to allow user type "guest" registrations. Some clients like +# Element attempt to register guest users automatically. +# +#allow_guest_registration = false + +# Set to true to log guest registrations in the admin room. Note that +# these may be noisy or unnecessary if you're a public homeserver. +# +#log_guest_registrations = false + +# Set to true to allow guest registrations/users to auto join any rooms +# specified in `auto_join_rooms`. +# +#allow_guests_auto_join_rooms = false + +# Enable the legacy unauthenticated Matrix media repository endpoints. +# These endpoints consist of: +# - /_matrix/media/*/config +# - /_matrix/media/*/upload +# - /_matrix/media/*/preview_url +# - /_matrix/media/*/download/* +# - /_matrix/media/*/thumbnail/* +# +# The authenticated equivalent endpoints are always enabled. +# +# Defaults to true for now, but this is highly subject to change, likely +# in the next release. +# +#allow_legacy_media = true + +# This item is undocumented. Please contribute documentation for it. +# +#freeze_legacy_media = true + +# Check consistency of the media directory at startup: +# 1. When `media_compat_file_link` is enabled, this check will upgrade +# media when switching back and forth between Conduit and conduwuit. +# Both options must be enabled to handle this. +# 2. When media is deleted from the directory, this check will also delete +# its database entry. +# +# If none of these checks apply to your use cases, and your media +# directory is significantly large setting this to false may reduce +# startup time. +# +#media_startup_check = true + +# Enable backward-compatibility with Conduit's media directory by creating +# symlinks of media. +# +# This option is only necessary if you plan on using Conduit again. +# Otherwise setting this to false reduces filesystem clutter and overhead +# for managing these symlinks in the directory. This is now disabled by +# default. You may still return to upstream Conduit but you have to run +# conduwuit at least once with this set to true and allow the +# media_startup_check to take place before shutting down to return to +# Conduit. +# +#media_compat_file_link = false + +# Prune missing media from the database as part of the media startup +# checks. +# +# This means if you delete files from the media directory the +# corresponding entries will be removed from the database. This is +# disabled by default because if the media directory is accidentally moved +# or inaccessible, the metadata entries in the database will be lost with +# sadness. +# +#prune_missing_media = false + +# Vector list of servers that conduwuit will refuse to download remote +# media from. +# +#prevent_media_downloads_from = [] + +# List of forbidden server names that we will block incoming AND outgoing +# federation with, and block client room joins / remote user invites. +# +# This check is applied on the room ID, room alias, sender server name, +# sender user's server name, inbound federation X-Matrix origin, and +# outbound federation handler. +# +# Basically "global" ACLs. +# +#forbidden_remote_server_names = [] + +# List of forbidden server names that we will block all outgoing federated +# room directory requests for. Useful for preventing our users from +# wandering into bad servers or spaces. +# +#forbidden_remote_room_directory_server_names = [] + +# Vector list of IPv4 and IPv6 CIDR ranges / subnets *in quotes* that you +# do not want conduwuit to send outbound requests to. Defaults to +# RFC1918, unroutable, loopback, multicast, and testnet addresses for +# security. +# +# Please be aware that this is *not* a guarantee. You should be using a +# firewall with zones as doing this on the application layer may have +# bypasses. +# +# Currently this does not account for proxies in use like Synapse does. +# +# To disable, set this to be an empty vector (`[]`). +# +# Defaults to: +# ["127.0.0.0/8", "10.0.0.0/8", "172.16.0.0/12", +# "192.168.0.0/16", "100.64.0.0/10", "192.0.0.0/24", "169.254.0.0/16", +# "192.88.99.0/24", "198.18.0.0/15", "192.0.2.0/24", "198.51.100.0/24", +# "203.0.113.0/24", "224.0.0.0/4", "::1/128", "fe80::/10", "fc00::/7", +# "2001:db8::/32", "ff00::/8", "fec0::/10"] +# +#ip_range_denylist = + +# Optional IP address or network interface-name to bind as the source of +# URL preview requests. If not set, it will not bind to a specific +# address or interface. +# +# Interface names only supported on Linux, Android, and Fuchsia platforms; +# all other platforms can specify the IP address. To list the interfaces +# on your system, use the command `ip link show`. +# +# example: `"eth0"` or `"1.2.3.4"` +# +#url_preview_bound_interface = + +# Vector list of domains allowed to send requests to for URL previews. +# +# This is a *contains* match, not an explicit match. Putting "google.com" +# will match "https://google.com" and +# "http://mymaliciousdomainexamplegoogle.com" Setting this to "*" will +# allow all URL previews. Please note that this opens up significant +# attack surface to your server, you are expected to be aware of the risks +# by doing so. +# +#url_preview_domain_contains_allowlist = [] + +# Vector list of explicit domains allowed to send requests to for URL +# previews. +# +# This is an *explicit* match, not a contains match. Putting "google.com" +# will match "https://google.com", "http://google.com", but not +# "https://mymaliciousdomainexamplegoogle.com". Setting this to "*" will +# allow all URL previews. Please note that this opens up significant +# attack surface to your server, you are expected to be aware of the risks +# by doing so. +# +#url_preview_domain_explicit_allowlist = [] + +# Vector list of explicit domains not allowed to send requests to for URL +# previews. +# +# This is an *explicit* match, not a contains match. Putting "google.com" +# will match "https://google.com", "http://google.com", but not +# "https://mymaliciousdomainexamplegoogle.com". The denylist is checked +# first before allowlist. Setting this to "*" will not do anything. +# +#url_preview_domain_explicit_denylist = [] + +# Vector list of URLs allowed to send requests to for URL previews. +# +# Note that this is a *contains* match, not an explicit match. Putting +# "google.com" will match "https://google.com/", +# "https://google.com/url?q=https://mymaliciousdomainexample.com", and +# "https://mymaliciousdomainexample.com/hi/google.com" Setting this to "*" +# will allow all URL previews. Please note that this opens up significant +# attack surface to your server, you are expected to be aware of the risks +# by doing so. +# +#url_preview_url_contains_allowlist = [] + +# Maximum amount of bytes allowed in a URL preview body size when +# spidering. Defaults to 256KB in bytes. +# +#url_preview_max_spider_size = 256000 + +# Option to decide whether you would like to run the domain allowlist +# checks (contains and explicit) on the root domain or not. Does not apply +# to URL contains allowlist. Defaults to false. +# +# Example usecase: If this is enabled and you have "wikipedia.org" allowed +# in the explicit and/or contains domain allowlist, it will allow all +# subdomains under "wikipedia.org" such as "en.m.wikipedia.org" as the +# root domain is checked and matched. Useful if the domain contains +# allowlist is still too broad for you but you still want to allow all the +# subdomains under a root domain. +# +#url_preview_check_root_domain = false + +# List of forbidden room aliases and room IDs as strings of regex +# patterns. +# +# Regex can be used or explicit contains matches can be done by just +# specifying the words (see example). +# +# This is checked upon room alias creation, custom room ID creation if +# used, and startup as warnings if any room aliases in your database have +# a forbidden room alias/ID. +# +# example: ["19dollarfortnitecards", "b[4a]droom"] +# +#forbidden_alias_names = [] + +# List of forbidden username patterns/strings. +# +# Regex can be used or explicit contains matches can be done by just +# specifying the words (see example). +# +# This is checked upon username availability check, registration, and +# startup as warnings if any local users in your database have a forbidden +# username. +# +# example: ["administrator", "b[a4]dusernam[3e]"] +# +#forbidden_usernames = [] + +# Retry failed and incomplete messages to remote servers immediately upon +# startup. This is called bursting. If this is disabled, said messages may +# not be delivered until more messages are queued for that server. Do not +# change this option unless server resources are extremely limited or the +# scale of the server's deployment is huge. Do not disable this unless you +# know what you are doing. +# +#startup_netburst = true + +# Messages are dropped and not reattempted. The `startup_netburst` option +# must be enabled for this value to have any effect. Do not change this +# value unless you know what you are doing. Set this value to -1 to +# reattempt every message without trimming the queues; this may consume +# significant disk. Set this value to 0 to drop all messages without any +# attempt at redelivery. +# +#startup_netburst_keep = 50 + +# Block non-admin local users from sending room invites (local and +# remote), and block non-admin users from receiving remote room invites. +# +# Admins are always allowed to send and receive all room invites. +# +#block_non_admin_invites = false + +# Allow admins to enter commands in rooms other than "#admins" (admin +# room) by prefixing your message with "\!admin" or "\\!admin" followed up +# a normal conduwuit admin command. The reply will be publicly visible to +# the room, originating from the sender. +# +# example: \\!admin debug ping puppygock.gay +# +#admin_escape_commands = true + +# Automatically activate the conduwuit admin room console / CLI on +# startup. This option can also be enabled with `--console` conduwuit +# argument. +# +#admin_console_automatic = false + +# List of admin commands to execute on startup. +# +# This option can also be configured with the `--execute` conduwuit +# argument and can take standard shell commands and environment variables +# +# For example: `./conduwuit --execute "server admin-notice conduwuit has +# started up at $(date)"` +# +# example: admin_execute = ["debug ping puppygock.gay", "debug echo hi"]` +# +#admin_execute = [] + +# Ignore errors in startup commands. +# +# If false, conduwuit will error and fail to start if an admin execute +# command (`--execute` / `admin_execute`) fails. +# +#admin_execute_errors_ignore = false + +# Controls the max log level for admin command log captures (logs +# generated from running admin commands). Defaults to "info" on release +# builds, else "debug" on debug builds. +# +#admin_log_capture = "info" + +# The default room tag to apply on the admin room. +# +# On some clients like Element, the room tag "m.server_notice" is a +# special pinned room at the very bottom of your room list. The conduwuit +# admin room can be pinned here so you always have an easy-to-access +# shortcut dedicated to your admin room. +# +#admin_room_tag = "m.server_notice" + +# Sentry.io crash/panic reporting, performance monitoring/metrics, etc. +# This is NOT enabled by default. conduwuit's default Sentry reporting +# endpoint domain is `o4506996327251968.ingest.us.sentry.io`. +# +#sentry = false + +# Sentry reporting URL, if a custom one is desired. +# +#sentry_endpoint = "https://fe2eb4536aa04949e28eff3128d64757@o4506996327251968.ingest.us.sentry.io/4506996334657536" + +# Report your conduwuit server_name in Sentry.io crash reports and +# metrics. +# +#sentry_send_server_name = false + +# Performance monitoring/tracing sample rate for Sentry.io. +# +# Note that too high values may impact performance, and can be disabled by +# setting it to 0.0 (0%) This value is read as a percentage to Sentry, +# represented as a decimal. Defaults to 15% of traces (0.15) +# +#sentry_traces_sample_rate = 0.15 + +# Whether to attach a stacktrace to Sentry reports. +# +#sentry_attach_stacktrace = false + +# Send panics to Sentry. This is true by default, but Sentry has to be +# enabled. The global `sentry` config option must be enabled to send any +# data. +# +#sentry_send_panic = true + +# Send errors to sentry. This is true by default, but sentry has to be +# enabled. This option is only effective in release-mode; forced to false +# in debug-mode. +# +#sentry_send_error = true + +# Controls the tracing log level for Sentry to send things like +# breadcrumbs and transactions +# +#sentry_filter = "info" + +# Enable the tokio-console. This option is only relevant to developers. +# +# For more information, see: +# https://conduwuit.puppyirl.gay/development.html#debugging-with-tokio-console +# +#tokio_console = false + +# This item is undocumented. Please contribute documentation for it. +# +#test = false + +# Controls whether admin room notices like account registrations, password +# changes, account deactivations, room directory publications, etc will be +# sent to the admin room. Update notices and normal admin command +# responses will still be sent. +# +#admin_room_notices = true + +# Enable database pool affinity support. On supporting systems, block +# device queue topologies are detected and the request pool is optimized +# for the hardware; db_pool_workers is determined automatically. +# +#db_pool_affinity = true + +# Sets the number of worker threads in the frontend-pool of the database. +# This number should reflect the I/O capabilities of the system, +# such as the queue-depth or the number of simultaneous requests in +# flight. Defaults to 32 or four times the number of CPU cores, whichever +# is greater. +# +# Note: This value is only used if db_pool_affinity is disabled or not +# detected on the system, otherwise it is determined automatically. +# +#db_pool_workers = 32 + +# When db_pool_affinity is enabled and detected, the size of any worker +# group will not exceed the determined value. This is necessary when +# thread-pooling approach does not scale to the full capabilities of +# high-end hardware; using detected values without limitation could +# degrade performance. +# +# The value is multiplied by the number of cores which share a device +# queue, since group workers can be scheduled on any of those cores. +# +#db_pool_workers_limit = 64 + +# Determines the size of the queues feeding the database's frontend-pool. +# The size of the queue is determined by multiplying this value with the +# number of pool workers. When this queue is full, tokio tasks conducting +# requests will yield until space is available; this is good for +# flow-control by avoiding buffer-bloat, but can inhibit throughput if +# too low. +# +#db_pool_queue_mult = 4 + +# Sets the initial value for the concurrency of streams. This value simply +# allows overriding the default in the code. The default is 32, which is +# the same as the default in the code. Note this value is itself +# overridden by the computed stream_width_scale, unless that is disabled; +# this value can serve as a fixed-width instead. +# +#stream_width_default = 32 + +# Scales the stream width starting from a base value detected for the +# specific system. The base value is the database pool worker count +# determined from the hardware queue size (e.g. 32 for SSD or 64 or 128+ +# for NVMe). This float allows scaling the width up or down by multiplying +# it (e.g. 1.5, 2.0, etc). The maximum result can be the size of the pool +# queue (see: db_pool_queue_mult) as any larger value will stall the tokio +# task. The value can also be scaled down (e.g. 0.5) to improve +# responsiveness for many users at the cost of throughput for each. +# +# Setting this value to 0.0 causes the stream width to be fixed at the +# value of stream_width_default. The default scale is 1.0 to match the +# capabilities detected for the system. +# +#stream_width_scale = 1.0 + +# Sets the initial amplification factor. This controls batch sizes of +# requests made by each pool worker, multiplying the throughput of each +# stream. This value is somewhat abstract from specific hardware +# characteristics and can be significantly larger than any thread count or +# queue size. This is because each database query may require several +# index lookups, thus many database queries in a batch may make progress +# independently while also sharing index and data blocks which may or may +# not be cached. It is worthwhile to submit huge batches to reduce +# complexity. The maximum value is 32768, though sufficient hardware is +# still advised for that. +# +#stream_amplification = 1024 + +# Number of sender task workers; determines sender parallelism. Default is +# '0' which means the value is determined internally, likely matching the +# number of tokio worker-threads or number of cores, etc. Override by +# setting a non-zero value. +# +#sender_workers = 0 + +[global.well_known] + +# The server URL that the client well-known file will serve. This should +# not contain a port, and should just be a valid HTTPS URL. +# +# example: "https://matrix.example.com" +# +#client = + +# The server base domain of the URL with a specific port that the server +# well-known file will serve. This should contain a port at the end, and +# should not be a URL. +# +# example: "matrix.example.com:443" +# +#server = + +# This item is undocumented. Please contribute documentation for it. +# +#support_page = + +# This item is undocumented. Please contribute documentation for it. +# +#support_role = + +# This item is undocumented. Please contribute documentation for it. +# +#support_email = + +# This item is undocumented. Please contribute documentation for it. +# +#support_mxid = diff --git a/roles/custom/matrix-conduwuit/templates/env.j2 b/roles/custom/matrix-conduwuit/templates/env.j2 new file mode 100644 index 000000000..026bfe308 --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/env.j2 @@ -0,0 +1 @@ +{{ matrix_conduwuit_environment_variables_extension }} diff --git a/roles/custom/matrix-conduwuit/templates/env.j2.license b/roles/custom/matrix-conduwuit/templates/env.j2.license new file mode 100644 index 000000000..a149c4232 --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/env.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-conduwuit/templates/labels.j2 b/roles/custom/matrix-conduwuit/templates/labels.j2 new file mode 100644 index 000000000..bcaf3b2dc --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/labels.j2 @@ -0,0 +1,173 @@ +{# +SPDX-FileCopyrightText: 2025 MDAD project contributors +SPDX-FileCopyrightText: 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + +{% if matrix_conduwuit_container_labels_traefik_enabled %} +traefik.enable=true + +{% if matrix_conduwuit_container_labels_traefik_docker_network %} +traefik.docker.network={{ matrix_conduwuit_container_labels_traefik_docker_network }} +{% endif %} + +traefik.http.services.matrix-conduwuit.loadbalancer.server.port={{ matrix_conduwuit_config_port_number }} + + +{% if matrix_conduwuit_container_labels_public_client_root_enabled %} +############################################################ +# # +# Public Root path (/) # +# # +############################################################ + +{% set client_root_middlewares = [] %} + +{% if matrix_conduwuit_container_labels_public_client_root_redirection_enabled %} +{% set client_root_middlewares = client_root_middlewares + ['matrix-conduwuit-client-root-redirect'] %} +traefik.http.middlewares.matrix-conduwuit-client-root-redirect.redirectregex.regex=(.*) +traefik.http.middlewares.matrix-conduwuit-client-root-redirect.redirectregex.replacement={{ matrix_conduwuit_container_labels_public_client_root_redirection_url }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-public-client-root.rule={{ matrix_conduwuit_container_labels_public_client_root_traefik_rule }} + +traefik.http.routers.matrix-conduwuit-public-client-root.middlewares={{ client_root_middlewares | join(',') }} + +{% if matrix_conduwuit_container_labels_public_client_root_traefik_priority | int > 0 %} +traefik.http.routers.matrix-conduwuit-public-client-root.priority={{ matrix_conduwuit_container_labels_public_client_root_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-public-client-root.service=matrix-conduwuit +traefik.http.routers.matrix-conduwuit-public-client-root.entrypoints={{ matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints }} +traefik.http.routers.matrix-conduwuit-public-client-root.tls={{ matrix_conduwuit_container_labels_public_client_root_traefik_tls | to_json }} + +{% if matrix_conduwuit_container_labels_public_client_root_traefik_tls %} +traefik.http.routers.matrix-conduwuit-public-client-root.tls.certResolver={{ matrix_conduwuit_container_labels_public_client_root_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Public Root path (/) # +# # +############################################################ +{% endif %} + + +{% if matrix_conduwuit_container_labels_public_client_api_enabled %} +############################################################ +# # +# Public Client-API (/_matrix) # +# # +############################################################ + +traefik.http.routers.matrix-conduwuit-public-client-api.rule={{ matrix_conduwuit_container_labels_public_client_api_traefik_rule }} + +{% if matrix_conduwuit_container_labels_public_client_api_traefik_priority | int > 0 %} +traefik.http.routers.matrix-conduwuit-public-client-api.priority={{ matrix_conduwuit_container_labels_public_client_api_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-public-client-api.service=matrix-conduwuit +traefik.http.routers.matrix-conduwuit-public-client-api.entrypoints={{ matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints }} + +traefik.http.routers.matrix-conduwuit-public-client-api.tls={{ matrix_conduwuit_container_labels_public_client_api_traefik_tls | to_json }} +{% if matrix_conduwuit_container_labels_public_client_api_traefik_tls %} +traefik.http.routers.matrix-conduwuit-public-client-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_client_api_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Public Client-API (/_matrix) # +# # +############################################################ +{% endif %} + + +{% if matrix_conduwuit_container_labels_internal_client_api_enabled %} +############################################################ +# # +# Internal Client-API (/_matrix) # +# # +############################################################ + +traefik.http.routers.matrix-conduwuit-internal-client-api.rule={{ matrix_conduwuit_container_labels_internal_client_api_traefik_rule }} + +{% if matrix_conduwuit_container_labels_internal_client_api_traefik_priority | int > 0 %} +traefik.http.routers.matrix-conduwuit-internal-client-api.priority={{ matrix_conduwuit_container_labels_internal_client_api_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-internal-client-api.service=matrix-conduwuit +traefik.http.routers.matrix-conduwuit-internal-client-api.entrypoints={{ matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints }} + +############################################################ +# # +# /Internal Client-API (/_matrix) # +# # +############################################################ +{% endif %} + + +{% if matrix_conduwuit_container_labels_public_federation_api_enabled %} +############################################################ +# # +# Public Federation-API (/_matrix) # +# # +############################################################ + +traefik.http.routers.matrix-conduwuit-public-federation-api.rule={{ matrix_conduwuit_container_labels_public_federation_api_traefik_rule }} + +{% if matrix_conduwuit_container_labels_public_federation_api_traefik_priority | int > 0 %} +traefik.http.routers.matrix-conduwuit-public-federation-api.priority={{ matrix_conduwuit_container_labels_public_federation_api_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-public-federation-api.service=matrix-conduwuit +traefik.http.routers.matrix-conduwuit-public-federation-api.entrypoints={{ matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints }} + +traefik.http.routers.matrix-conduwuit-public-federation-api.tls={{ matrix_conduwuit_container_labels_public_federation_api_traefik_tls | to_json }} +{% if matrix_conduwuit_container_labels_public_federation_api_traefik_tls %} +traefik.http.routers.matrix-conduwuit-public-federation-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_federation_api_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Public Federation-API (/_matrix) # +# # +############################################################ +{% endif %} + + + + +{% if matrix_conduwuit_container_labels_public_conduwuit_api_enabled %} +############################################################ +# # +# Public conduwuit-API (/_conduwuit) # +# # +############################################################ + +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.rule={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_rule }} + +{% if matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority | int > 0 %} +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.priority={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority }} +{% endif %} + +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.service=matrix-conduwuit +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.entrypoints={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints }} + +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.tls={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls | to_json }} +{% if matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls %} +traefik.http.routers.matrix-conduwuit-public-conduwuit-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls_certResolver }} +{% endif %} + +############################################################ +# # +# /Public conduwuit-API (/_conduwuit) # +# # +############################################################ +{% endif %} + + +{% endif %} + +{{ matrix_conduwuit_container_labels_additional_labels }} diff --git a/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2 b/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2 new file mode 100644 index 000000000..2c05c7872 --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2 @@ -0,0 +1,51 @@ +#jinja2: lstrip_blocks: "True" +[Unit] +Description=conduwuit Matrix homeserver +{% for service in matrix_conduwuit_systemd_required_services_list %} +Requires={{ service }} +After={{ service }} +{% endfor %} + +[Service] +Type=simple +Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduwuit 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduwuit 2>/dev/null || true' + +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ + --rm \ + --name=matrix-conduwuit \ + --log-driver=none \ + --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ + --cap-drop=ALL \ + --read-only \ + --tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_conduwuit_tmp_directory_size_mb }}m \ + --network={{ matrix_conduwuit_container_network }} \ + --env CONDUWUIT_CONFIG=/etc/conduwuit/conduwuit.toml \ + --label-file={{ matrix_conduwuit_base_path }}/labels \ + --mount type=bind,src={{ matrix_conduwuit_data_path }},dst=/var/lib/conduwuit \ + --mount type=bind,src={{ matrix_conduwuit_config_path }},dst=/etc/conduwuit,ro \ + {% for arg in matrix_conduwuit_container_extra_arguments %} + {{ arg }} \ + {% endfor %} + {{ matrix_conduwuit_docker_image }} + +{% for network in matrix_conduwuit_container_additional_networks %} +ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-conduwuit +{% endfor %} + +ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-conduwuit + +{% if matrix_conduwuit_systemd_service_post_start_delay_seconds != 0 %} +ExecStartPost=-{{ matrix_host_command_sleep }} {{ matrix_conduwuit_systemd_service_post_start_delay_seconds }} +{% endif %} + +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-conduwuit 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduwuit 2>/dev/null || true' +ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-conduwuit /bin/sh -c 'kill -HUP 1' +Restart=always +RestartSec=30 +SyslogIdentifier=matrix-conduwuit + +[Install] +WantedBy=multi-user.target diff --git a/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2.license b/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2.license new file mode 100644 index 000000000..6fe7fc50c --- /dev/null +++ b/roles/custom/matrix-conduwuit/templates/systemd/matrix-conduwuit.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2025 MDAD project contributors +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-conduwuit/vars/main.yml b/roles/custom/matrix-conduwuit/vars/main.yml new file mode 100644 index 000000000..fa5ec9d6e --- /dev/null +++ b/roles/custom/matrix-conduwuit/vars/main.yml @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +matrix_conduwuit_client_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduwuit_hostname }}/_matrix/client/versions" +matrix_conduwuit_federation_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduwuit_hostname }}:{{ matrix_federation_public_port }}/_matrix/federation/v1/version" diff --git a/roles/custom/matrix-corporal/defaults/main.yml b/roles/custom/matrix-corporal/defaults/main.yml index fbffad634..53151c2b0 100644 --- a/roles/custom/matrix-corporal/defaults/main.yml +++ b/roles/custom/matrix-corporal/defaults/main.yml @@ -1,11 +1,22 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Sylvia van Os +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-corporal is a reconciliator and gateway for a managed Matrix server. # Project source code URL: https://github.com/devture/matrix-corporal matrix_corporal_enabled: true -# renovate: datasource=docker depName=devture/matrix-corporal -matrix_corporal_version: 3.0.0 +# renovate: datasource=docker depName=ghcr.io/devture/matrix-corporal +matrix_corporal_version: 3.1.4 matrix_corporal_container_image_self_build: false matrix_corporal_container_image_self_build_repo: "https://github.com/devture/matrix-corporal.git" @@ -81,8 +92,10 @@ matrix_corporal_systemd_required_services_list_default: "{{ [devture_systemd_doc matrix_corporal_systemd_required_services_list_auto: [] matrix_corporal_systemd_required_services_list_custom: [] -matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_name_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}" -matrix_corporal_docker_image_name_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_registry_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}" +matrix_corporal_docker_image_registry_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else matrix_corporal_docker_image_registry_prefix_upstream }}" +matrix_corporal_docker_image_registry_prefix_upstream: "{{ matrix_corporal_docker_image_registry_prefix_upstream_default }}" +matrix_corporal_docker_image_registry_prefix_upstream_default: ghcr.io/ matrix_corporal_docker_image_tag: "{{ matrix_corporal_version }}" # for backward-compatibility matrix_corporal_docker_image_force_pull: "{{ matrix_corporal_docker_image.endswith(':latest') }}" diff --git a/roles/custom/matrix-corporal/tasks/main.yml b/roles/custom/matrix-corporal/tasks/main.yml index 54ca8ef78..0af9f70c9 100644 --- a/roles/custom/matrix-corporal/tasks/main.yml +++ b/roles/custom/matrix-corporal/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-corporal/tasks/self_check.yml b/roles/custom/matrix-corporal/tasks/self_check.yml index 0758863f8..262c30bed 100644 --- a/roles/custom/matrix-corporal/tasks/self_check.yml +++ b/roles/custom/matrix-corporal/tasks/self_check.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check Matrix Corporal HTTP gateway diff --git a/roles/custom/matrix-corporal/tasks/setup_install.yml b/roles/custom/matrix-corporal/tasks/setup_install.yml index a8633ffc9..cdbf3af87 100644 --- a/roles/custom/matrix-corporal/tasks/setup_install.yml +++ b/roles/custom/matrix-corporal/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix Corporal paths exist diff --git a/roles/custom/matrix-corporal/tasks/setup_uninstall.yml b/roles/custom/matrix-corporal/tasks/setup_uninstall.yml index 6c6e8063a..9631e37f3 100644 --- a/roles/custom/matrix-corporal/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-corporal/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-corporal service diff --git a/roles/custom/matrix-corporal/tasks/validate_config.yml b/roles/custom/matrix-corporal/tasks/validate_config.yml index 39f7190d4..366527fcb 100644 --- a/roles/custom/matrix-corporal/tasks/validate_config.yml +++ b/roles/custom/matrix-corporal/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-corporal settings not defined @@ -21,8 +27,9 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_corporal_container_expose_ports', 'new': ''} - {'old': 'matrix_corporal_reconciliation_user_id_local_part', 'new': 'matrix_corporal_corporal_user_id_local_part'} + - {'old': 'matrix_corporal_container_image_name_prefix', 'new': 'matrix_corporal_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-corporal/templates/config.json.j2.license b/roles/custom/matrix-corporal/templates/config.json.j2.license new file mode 100644 index 000000000..e2fc3ce69 --- /dev/null +++ b/roles/custom/matrix-corporal/templates/config.json.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-corporal/templates/labels.j2 b/roles/custom/matrix-corporal/templates/labels.j2 index e28fd7761..9c068309b 100644 --- a/roles/custom/matrix-corporal/templates/labels.j2 +++ b/roles/custom/matrix-corporal/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_corporal_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2 b/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2 index 41900d130..473d9450b 100644 --- a/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2 +++ b/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2 @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-corporal 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-corporal 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-corporal 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -43,7 +43,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-corporal -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-corporal 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-corporal 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-corporal 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2.license b/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2.license new file mode 100644 index 000000000..8d7f54f75 --- /dev/null +++ b/roles/custom/matrix-corporal/templates/systemd/matrix-corporal.service.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 Chris van Dijk + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-coturn/defaults/main.yml b/roles/custom/matrix-coturn/defaults/main.yml index edf616129..9c82097c4 100644 --- a/roles/custom/matrix-coturn/defaults/main.yml +++ b/roles/custom/matrix-coturn/defaults/main.yml @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Stuart Mumford +# SPDX-FileCopyrightText: 2019 Sylvia van Os +# SPDX-FileCopyrightText: 2020 - 2021 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Hefty Zauk +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/coturn/coturn @@ -10,13 +25,15 @@ matrix_coturn_container_image_self_build_repo_dockerfile_path: "docker/coturn/al # renovate: datasource=docker depName=coturn/coturn matrix_coturn_version: 4.6.2-r11 -matrix_coturn_docker_image: "{{ matrix_coturn_docker_image_name_prefix }}coturn/coturn:{{ matrix_coturn_version }}-alpine" -matrix_coturn_docker_image_name_prefix: "{{ 'localhost/' if matrix_coturn_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_coturn_docker_image: "{{ matrix_coturn_docker_image_registry_prefix }}coturn/coturn:{{ matrix_coturn_version }}-alpine" +matrix_coturn_docker_image_registry_prefix: "{{ 'localhost/' if matrix_coturn_container_image_self_build else matrix_coturn_docker_image_registry_prefix_upstream }}" +matrix_coturn_docker_image_registry_prefix_upstream: "{{ matrix_coturn_docker_image_registry_prefix_upstream_default }}" +matrix_coturn_docker_image_registry_prefix_upstream_default: docker.io/ matrix_coturn_docker_image_force_pull: "{{ matrix_coturn_docker_image.endswith(':latest') }}" -# The Docker network that Coturn would be put into. +# The Docker network that coturn would be put into. # -# Because Coturn relays traffic to unvalidated IP addresses, +# Because coturn relays traffic to unvalidated IP addresses, # using a dedicated network, isolated from other Docker (and local) services is preferrable. # # Setting up deny/allow rules with `matrix_coturn_allowed_peer_ips`/`matrix_coturn_denied_peer_ips` is also @@ -24,7 +41,7 @@ matrix_coturn_docker_image_force_pull: "{{ matrix_coturn_docker_image.endswith(' # # Setting `matrix_coturn_container_network` to 'host' will run the container with host networking, # which will drastically improve performance when thousands of ports are opened due to Docker not having to set up forwarding rules for each port. -# Running with host networking can be dangerous, as it potentially exposes your local network and its services to Coturn peers. +# Running with host networking can be dangerous, as it potentially exposes your local network and its services to coturn peers. # Regardless of the networking mode, we apply a deny list which via `matrix_coturn_denied_peer_ips`, # which hopefully prevents access to such private network ranges. # When running in host-networking mode, you need to adjust the firewall yourself, so that ports are opened. @@ -51,17 +68,35 @@ matrix_coturn_container_additional_volumes: [] # A list of extra arguments to pass to the container matrix_coturn_container_extra_arguments: [] -# Controls whether the Coturn container exposes its plain STUN port (tcp/3478 and udp/3478 in the container). +# Controls whether the coturn container exposes its plain STUN port (tcp/3478 in the container) over TCP. # # Takes an ":" or "" value (e.g. "127.0.0.1:3478"), or empty string to not expose. -matrix_coturn_container_stun_plain_host_bind_port: "{{ '3478' if matrix_coturn_container_network != 'host' else '' }}" +matrix_coturn_container_stun_plain_host_bind_port_tcp: "{{ '3478' if matrix_coturn_container_network != 'host' else '' }}" -# Controls whether the Coturn container exposes its TLS STUN port (tcp/5349 and udp/5349 in the container). +# Controls whether the coturn container exposes its plain STUN port (udp/3478 in the container) over UDP. +# +# Takes an ":" or "" value (e.g. "127.0.0.1:3478"), or empty string to not expose. +# +# Ideally, we'd like to set this to "" to avoid exposing this port and decrease the risk of DDoS amplification attacks. +# See: https://stormwall.network/resources/blog/protect-against-ddos-based-on-stun-exploit +# In practice, old Element clients only support talking to the STUN port over UDP, not TCP, so we need to keep this enabled for now. +matrix_coturn_container_stun_plain_host_bind_port_udp: "{{ '3478' if matrix_coturn_container_network != 'host' else '' }}" + +# Controls whether the coturn container exposes its TLS STUN port (tcp/5349 in the container) over TCP. # # Takes an ":" or "" value (e.g. "127.0.0.1:5349"), or empty string to not expose. -matrix_coturn_container_stun_tls_host_bind_port: "{{ '5349' if matrix_coturn_container_network != 'host' else '' }}" +matrix_coturn_container_stun_tls_host_bind_port_tcp: "{{ '5349' if matrix_coturn_container_network != 'host' else '' }}" -# Controls whether the Coturn container exposes its TURN UDP port range and which interface to do it on. +# Controls whether the coturn container exposes its TLS STUN port (udp/5349 in the container) over UDP. +# +# Takes an ":" or "" value (e.g. "127.0.0.1:5349"), or empty string to not expose. +# +# This is enabled by default, unlike `matrix_coturn_container_stun_plain_host_bind_port_udp`, +# because the risk of DDoS amplification attacks is lower for TLS +# due to the handshake requiring two-way authentication and being generally more expensive. +matrix_coturn_container_stun_tls_host_bind_port_udp: "{{ '5349' if matrix_coturn_container_network != 'host' else '' }}" + +# Controls whether the coturn container exposes its TURN UDP port range and which interface to do it on. # # Takes an interface "" (e.g. "127.0.0.1"), or empty string to listen on all interfaces. # Takes a null/none value (`~`) or 'none' (as a string) to prevent listening. @@ -85,7 +120,7 @@ matrix_coturn_turn_udp_max_port: 49172 matrix_coturn_authentication_method: auth-secret # A shared secret used for authentication when `matrix_coturn_authentication_method` is `auth-secret`. -# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`). +# You can put any string here, but generating a strong one is preferred. You can create one with a command like `pwgen -s 64 1`. matrix_coturn_turn_static_auth_secret: "" # A username used authentication when `matrix_coturn_authentication_method` is `lt-cred-mech`. @@ -93,7 +128,7 @@ matrix_coturn_lt_cred_mech_username: "" # A password used authentication when `matrix_coturn_authentication_method` is `lt-cred-mech`. matrix_coturn_lt_cred_mech_password: "" -# The external IP address of the machine where Coturn is. +# The external IP address of the machine where coturn is. # If do not define an IP address here or in `matrix_coturn_turn_external_ip_addresses`, auto-detection via an EchoIP service will be done. # See `matrix_coturn_turn_external_ip_address_auto_detection_enabled` matrix_coturn_turn_external_ip_address: '' @@ -117,11 +152,11 @@ matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_retries_del matrix_coturn_allowed_peer_ips: [] # We block loopback interfaces and private networks by default to prevent private resources from being accessible. -# This is especially important when Coturn does not run within a container network (e.g. `matrix_coturn_container_network: host`). +# This is especially important when coturn does not run within a container network (e.g. `matrix_coturn_container_network: host`). # # Learn more: https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/ # -# If you're running Coturn for local network peers, you may wish to override these rules. +# If you're running coturn for local network peers, you may wish to override these rules. matrix_coturn_denied_peer_ips: - 0.0.0.0-0.255.255.255 - 10.0.0.0-10.255.255.255 @@ -186,3 +221,9 @@ matrix_coturn_tls_key_path: ~ matrix_coturn_tls_v1_enabled: false matrix_coturn_tls_v1_1_enabled: false + +# systemd calendar configuration for the reload job +# the actual job may run with a delay (see matrix_coturn_reload_schedule_randomized_delay_sec) +matrix_coturn_reload_schedule: "*-*-* 06:30:00" +# the delay with which the systemd timer may run in relation to the `matrix_coturn_reload_schedule` schedule +matrix_coturn_reload_schedule_randomized_delay_sec: 1h diff --git a/roles/custom/matrix-coturn/tasks/main.yml b/roles/custom/matrix-coturn/tasks/main.yml index 1b1332fb7..0aa46f58f 100644 --- a/roles/custom/matrix-coturn/tasks/main.yml +++ b/roles/custom/matrix-coturn/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-coturn/tasks/setup_install.yml b/roles/custom/matrix-coturn/tasks/setup_install.yml index 8ee3d5606..697edb4ee 100644 --- a/roles/custom/matrix-coturn/tasks/setup_install.yml +++ b/roles/custom/matrix-coturn/tasks/setup_install.yml @@ -1,3 +1,17 @@ +# SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 - 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Béla Becker +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - when: matrix_coturn_turn_external_ip_address_auto_detection_enabled | bool @@ -32,7 +46,7 @@ - ansible.builtin.set_fact: matrix_coturn_turn_external_ip_address: "{{ result_matrix_coturn_turn_external_ip_address_auto_detection_echoip_response.json.ip }}" -- name: Ensure Matrix Coturn path exists +- name: Ensure Matrix coturn path exists ansible.builtin.file: path: "{{ item.path }}" state: directory @@ -43,7 +57,7 @@ - {path: "{{ matrix_coturn_docker_src_files_path }}", when: "{{ matrix_coturn_container_image_self_build }}"} when: "item.when | bool" -- name: Ensure Coturn image is pulled +- name: Ensure coturn image is pulled community.docker.docker_image: name: "{{ matrix_coturn_docker_image }}" source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" @@ -57,7 +71,7 @@ - when: "matrix_coturn_container_image_self_build | bool" block: - - name: Ensure Coturn repository is present on self-build + - name: Ensure coturn repository is present on self-build ansible.builtin.git: repo: "{{ matrix_coturn_container_image_self_build_repo }}" dest: "{{ matrix_coturn_docker_src_files_path }}" @@ -67,7 +81,7 @@ become_user: "{{ matrix_user_username }}" register: matrix_coturn_git_pull_results - - name: Ensure Coturn Docker image is built + - name: Ensure coturn Docker image is built community.docker.docker_image: name: "{{ matrix_coturn_docker_image }}" source: build @@ -78,7 +92,7 @@ path: "{{ matrix_coturn_docker_src_files_path }}" pull: true -- name: Ensure Coturn configuration path exists +- name: Ensure coturn configuration path exists ansible.builtin.file: path: "{{ matrix_coturn_base_path }}" state: directory @@ -94,9 +108,10 @@ owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" -- name: Ensure Coturn network is created in Docker +- name: Ensure coturn network is created in Docker when: matrix_coturn_container_network not in ['', 'host'] community.docker.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" name: "{{ matrix_coturn_container_network }}" driver: bridge driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" diff --git a/roles/custom/matrix-coturn/tasks/setup_uninstall.yml b/roles/custom/matrix-coturn/tasks/setup_uninstall.yml index e747ff094..57746906c 100644 --- a/roles/custom/matrix-coturn/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-coturn/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-coturn service diff --git a/roles/custom/matrix-coturn/tasks/validate_config.yml b/roles/custom/matrix-coturn/tasks/validate_config.yml index 96205b0e0..4d7568cee 100644 --- a/roles/custom/matrix-coturn/tasks/validate_config.yml +++ b/roles/custom/matrix-coturn/tasks/validate_config.yml @@ -1,13 +1,21 @@ +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -- name: (Deprecation) Catch and report renamed Coturn settings +- name: (Deprecation) Catch and report renamed coturn settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_coturn_docker_network', 'new': 'matrix_coturn_container_network'} + - {'old': 'matrix_coturn_container_stun_plain_host_bind_port', 'new': 'superseded by matrix_coturn_container_stun_plain_host_bind_port_tcp and matrix_coturn_container_stun_plain_host_bind_port_udp'} + - {'old': 'matrix_coturn_container_stun_tls_host_bind_port', 'new': 'superseded by matrix_coturn_container_stun_tls_host_bind_port_tcp and matrix_coturn_container_stun_tls_host_bind_port_udp'} + - {'old': 'matrix_coturn_container_image_name_prefix', 'new': 'matrix_coturn_docker_image_registry_prefix'} - name: Fail if matrix_coturn_authentication_method is invalid ansible.builtin.fail: @@ -15,7 +23,7 @@ Invalid authentication method specified in `matrix_coturn_authentication_method` when: "matrix_coturn_authentication_method not in ['auth-secret', 'lt-cred-mech']" -- name: Fail if required Coturn settings not defined +- name: Fail if required coturn settings not defined ansible.builtin.fail: msg: >- You need to define a required configuration setting (`{{ item.name }}`). diff --git a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.service.j2 b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.service.j2 index 7d12f6ec8..f1f3d0f6a 100644 --- a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.service.j2 +++ b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.service.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + [Unit] Description=Reloads matrix-coturn so that new SSL certificates can kick in diff --git a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.timer.j2 b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.timer.j2 index 528945412..902ed5821 100644 --- a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.timer.j2 +++ b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn-reload.timer.j2 @@ -1,10 +1,18 @@ +{# +SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 Hardy Erlinger +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + [Unit] Description=Reloads matrix-coturn periodically so that new SSL certificates can kick in [Timer] Unit=matrix-coturn-reload.service -OnCalendar=*-*-* 06:30:00 -RandomizedDelaySec=1h +OnCalendar={{ matrix_coturn_reload_schedule }} +RandomizedDelaySec={{ matrix_coturn_reload_schedule_randomized_delay_sec }} [Install] WantedBy=timers.target diff --git a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2 b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2 index c72f2bc08..5aec071f6 100644 --- a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2 +++ b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2 @@ -1,6 +1,6 @@ #jinja2: lstrip_blocks: "True" [Unit] -Description=Matrix Coturn server +Description=Matrix coturn server {% for service in matrix_coturn_systemd_required_services_list %} Requires={{ service }} After={{ service }} @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-coturn 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-coturn 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-coturn 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -24,13 +24,17 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --read-only \ --tmpfs=/var/tmp:rw,noexec,nosuid,size=100m \ --network={{ matrix_coturn_container_network }} \ - {% if matrix_coturn_container_stun_plain_host_bind_port != '' %} - -p {{ matrix_coturn_container_stun_plain_host_bind_port }}:3478 \ - -p {{ matrix_coturn_container_stun_plain_host_bind_port }}:3478/udp \ + {% if matrix_coturn_container_stun_plain_host_bind_port_tcp != '' %} + -p {{ matrix_coturn_container_stun_plain_host_bind_port_tcp }}:3478 \ {% endif %} - {% if matrix_coturn_container_stun_tls_host_bind_port != '' %} - -p {{ matrix_coturn_container_stun_tls_host_bind_port }}:5349 \ - -p {{ matrix_coturn_container_stun_tls_host_bind_port }}:5349/udp \ + {% if matrix_coturn_container_stun_plain_host_bind_port_udp != '' %} + -p {{ matrix_coturn_container_stun_plain_host_bind_port_udp }}:3478/udp \ + {% endif %} + {% if matrix_coturn_container_stun_tls_host_bind_port_tcp != '' %} + -p {{ matrix_coturn_container_stun_tls_host_bind_port_tcp }}:5349 \ + {% endif %} + {% if matrix_coturn_container_stun_tls_host_bind_port_udp != '' %} + -p {{ matrix_coturn_container_stun_tls_host_bind_port_udp }}:5349/udp \ {% endif %} {% if matrix_coturn_container_turn_range_listen_interface is not in [none, 'none'] %} -p {{ matrix_coturn_container_turn_range_listen_interface }}{{ ':' if matrix_coturn_container_turn_range_listen_interface else '' }}{{ matrix_coturn_turn_udp_min_port }}-{{ matrix_coturn_turn_udp_max_port }}:{{ matrix_coturn_turn_udp_min_port }}-{{ matrix_coturn_turn_udp_max_port }}/udp \ @@ -51,7 +55,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-coturn -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-coturn 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-coturn 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-coturn 2>/dev/null || true' # This only reloads certificates (not other configuration). diff --git a/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2.license b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2.license new file mode 100644 index 000000000..df5eb9b5a --- /dev/null +++ b/roles/custom/matrix-coturn/templates/systemd/matrix-coturn.service.j2.license @@ -0,0 +1,8 @@ +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2021 Dan Arnfield +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-coturn/templates/turnserver.conf.j2.license b/roles/custom/matrix-coturn/templates/turnserver.conf.j2.license new file mode 100644 index 000000000..98807515d --- /dev/null +++ b/roles/custom/matrix-coturn/templates/turnserver.conf.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Stuart Mumford +SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-coturn/vars/main.yml b/roles/custom/matrix-coturn/vars/main.yml new file mode 100644 index 000000000..4391c2853 --- /dev/null +++ b/roles/custom/matrix-coturn/vars/main.yml @@ -0,0 +1,21 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +matrix_coturn_turn_uris: |- + {{ + ([ + 'turns:' + matrix_server_fqn_matrix + '?transport=udp', + 'turns:' + matrix_server_fqn_matrix + '?transport=tcp', + ] if matrix_coturn_tls_enabled else []) + + + ([ + 'turn:' + matrix_server_fqn_matrix + '?transport=udp', + ] if (matrix_coturn_container_stun_plain_host_bind_port_udp != '' or matrix_coturn_container_network == 'host') else []) + + + ([ + 'turn:' + matrix_server_fqn_matrix + '?transport=tcp', + ] if (matrix_coturn_container_stun_plain_host_bind_port_tcp != '' or matrix_coturn_container_network == 'host') else []) + }} diff --git a/roles/custom/matrix-dendrite/defaults/main.yml b/roles/custom/matrix-dendrite/defaults/main.yml index fd6c50ed5..50e9116eb 100644 --- a/roles/custom/matrix-dendrite/defaults/main.yml +++ b/roles/custom/matrix-dendrite/defaults/main.yml @@ -1,3 +1,17 @@ +# SPDX-FileCopyrightText: 2022 - 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Darren Rambaud +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Shaleen Jain +# SPDX-FileCopyrightText: 2023 Isaiah Becker-Mayer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Dendrite is a second-generation Matrix homeserver currently in Beta # Project source code URL: https://github.com/matrix-org/dendrite @@ -10,10 +24,12 @@ matrix_dendrite_container_image_self_build: false matrix_dendrite_container_image_self_build_repo: "https://github.com/matrix-org/dendrite.git" matrix_dendrite_docker_image_path: "matrixdotorg/dendrite-monolith" -matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}{{ matrix_dendrite_docker_image_path }}:{{ matrix_dendrite_docker_image_tag }}" -matrix_dendrite_docker_image_name_prefix: "{{ 'localhost/' if matrix_dendrite_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_registry_prefix }}{{ matrix_dendrite_docker_image_path }}:{{ matrix_dendrite_docker_image_tag }}" +matrix_dendrite_docker_image_registry_prefix: "{{ 'localhost/' if matrix_dendrite_container_image_self_build else matrix_dendrite_docker_image_registry_prefix_upstream }}" +matrix_dendrite_docker_image_registry_prefix_upstream: "{{ matrix_dendrite_docker_image_registry_prefix_upstream_default }}" +matrix_dendrite_docker_image_registry_prefix_upstream_default: docker.io/ # renovate: datasource=docker depName=matrixdotorg/dendrite-monolith -matrix_dendrite_docker_image_tag: "v0.13.8" +matrix_dendrite_docker_image_tag: "v0.14.1" matrix_dendrite_docker_image_force_pull: "{{ matrix_dendrite_docker_image.endswith(':latest') }}" matrix_dendrite_base_path: "{{ matrix_base_data_path }}/dendrite" diff --git a/roles/custom/matrix-dendrite/tasks/main.yml b/roles/custom/matrix-dendrite/tasks/main.yml index 78d81524c..b241677b1 100644 --- a/roles/custom/matrix-dendrite/tasks/main.yml +++ b/roles/custom/matrix-dendrite/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-dendrite/tasks/register_user.yml b/roles/custom/matrix-dendrite/tasks/register_user.yml index 8ee18ed2f..fa2c0339b 100644 --- a/roles/custom/matrix-dendrite/tasks/register_user.yml +++ b/roles/custom/matrix-dendrite/tasks/register_user.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-dendrite/tasks/self_check_client_api.yml b/roles/custom/matrix-dendrite/tasks/self_check_client_api.yml index f6eb602c6..d681793a1 100644 --- a/roles/custom/matrix-dendrite/tasks/self_check_client_api.yml +++ b/roles/custom/matrix-dendrite/tasks/self_check_client_api.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check Matrix Client API ansible.builtin.uri: diff --git a/roles/custom/matrix-dendrite/tasks/self_check_federation_api.yml b/roles/custom/matrix-dendrite/tasks/self_check_federation_api.yml index bba20ff16..82b220679 100644 --- a/roles/custom/matrix-dendrite/tasks/self_check_federation_api.yml +++ b/roles/custom/matrix-dendrite/tasks/self_check_federation_api.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check Matrix Federation API ansible.builtin.uri: diff --git a/roles/custom/matrix-dendrite/tasks/setup_install.yml b/roles/custom/matrix-dendrite/tasks/setup_install.yml index acc2558f7..262f16d04 100644 --- a/roles/custom/matrix-dendrite/tasks/setup_install.yml +++ b/roles/custom/matrix-dendrite/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2023 Isaiah Becker-Mayer +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Dendrite paths exist ansible.builtin.file: diff --git a/roles/custom/matrix-dendrite/tasks/setup_uninstall.yml b/roles/custom/matrix-dendrite/tasks/setup_uninstall.yml index f6a537b30..fb744a88f 100644 --- a/roles/custom/matrix-dendrite/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-dendrite/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-dendrite service diff --git a/roles/custom/matrix-dendrite/tasks/validate_config.yml b/roles/custom/matrix-dendrite/tasks/validate_config.yml index 581825a38..2f91bfa74 100644 --- a/roles/custom/matrix-dendrite/tasks/validate_config.yml +++ b/roles/custom/matrix-dendrite/tasks/validate_config.yml @@ -1,10 +1,17 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed Dendrite settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_dendrite_enable_registration_captcha', 'new': 'matrix_dendrite_client_api_enable_registration_captcha'} @@ -27,6 +34,7 @@ - {'old': 'matrix_dendrite_pushserver_database', 'new': 'matrix_dendrite_push_server_database'} - {'old': 'matrix_dendrite_relayapi_database', 'new': 'matrix_dendrite_relay_api_database'} - {'old': 'matrix_dendrite_keyserver_database', 'new': 'matrix_dendrite_key_server_database'} + - {'old': 'matrix_dendrite_container_image_name_prefix', 'new': 'matrix_dendrite_docker_image_registry_prefix'} - name: Fail if required Dendrite settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-dendrite/templates/bin/create-account.j2.license b/roles/custom/matrix-dendrite/templates/bin/create-account.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-dendrite/templates/bin/create-account.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-dendrite/templates/dendrite.yaml.j2 b/roles/custom/matrix-dendrite/templates/dendrite.yaml.j2 index 4f1c02f21..8f03b16db 100644 --- a/roles/custom/matrix-dendrite/templates/dendrite.yaml.j2 +++ b/roles/custom/matrix-dendrite/templates/dendrite.yaml.j2 @@ -1,3 +1,13 @@ +{# +SPDX-FileCopyrightText: 2022 - 2023 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Jip J. Dekker +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # This is the Dendrite configuration file. # # The configuration is split up into sections - each Dendrite component has a @@ -12,7 +22,7 @@ # for "connection_string": # SQLite: file:filename.db # file:///path/to/filename.db -# PostgreSQL: postgresql://user:pass@hostname/database?params=... +# PostgreSQL: postgresql://user:pass@hostname/database?params=… # # SQLite is embedded into Dendrite and therefore no further prerequisites are # needed for the database when using SQLite mode. However, performance with @@ -213,7 +223,7 @@ client_api: threshold: {{ matrix_dendrite_client_api_rate_limiting_threshold | to_json }} cooloff_ms: {{ matrix_dendrite_client_api_rate_limiting_cooloff_ms | to_json }} exempt_user_ids: - # - "@user:{{ matrix_domain }}" + # - "@alice:{{ matrix_domain }}" # Configuration for the Federation API. federation_api: diff --git a/roles/custom/matrix-dendrite/templates/labels.j2 b/roles/custom/matrix-dendrite/templates/labels.j2 index d74424b99..18a69573a 100644 --- a/roles/custom/matrix-dendrite/templates/labels.j2 +++ b/roles/custom/matrix-dendrite/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_dendrite_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2 b/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2 index 7dff4e0f9..ca09cb292 100644 --- a/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2 +++ b/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dendrite 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dendrite 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dendrite 2>/dev/null || true' {% if (postgres_identifier + '.service') in matrix_dendrite_systemd_required_services_list %} @@ -67,7 +67,7 @@ ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach m ExecStartPost=-{{ matrix_host_command_sleep }} {{ matrix_dendrite_systemd_service_post_start_delay_seconds }} {% endif %} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dendrite 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dendrite 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dendrite 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-dendrite /bin/sh -c 'kill -HUP 1' Restart=always diff --git a/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2.license b/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2.license new file mode 100644 index 000000000..e4e9cc7ca --- /dev/null +++ b/roles/custom/matrix-dendrite/templates/systemd/matrix-dendrite.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Charles Wright +SPDX-FileCopyrightText: 2022 Jip J. Dekker +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2022 Shaleen Jain + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-dendrite/vars/main.yml b/roles/custom/matrix-dendrite/vars/main.yml index 28a0f1bde..0a09d57c1 100644 --- a/roles/custom/matrix-dendrite/vars/main.yml +++ b/roles/custom/matrix-dendrite/vars/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jip J. Dekker +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_dendrite_client_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_dendrite_hostname }}/_matrix/client/versions" matrix_dendrite_federation_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_dendrite_hostname }}:{{ matrix_federation_public_port }}/_matrix/federation/v1/version" diff --git a/roles/custom/matrix-dimension/defaults/main.yml b/roles/custom/matrix-dimension/defaults/main.yml index 1a19e9452..8d4a11c7e 100644 --- a/roles/custom/matrix-dimension/defaults/main.yml +++ b/roles/custom/matrix-dimension/defaults/main.yml @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: 2019 - 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Edgars Voroboks +# SPDX-FileCopyrightText: 2019 Sylvia van Os +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/turt2live/matrix-dimension @@ -16,7 +31,7 @@ matrix_dimension_path_prefix: / # For information on how to acquire an access token, visit https://t2bot.io/docs/access_tokens matrix_dimension_access_token: "" -# Users in form: ['@user1:example.com', '@user2:example.com'] +# Users in form: ['@alice:example.com', '@bob:example.com'] matrix_dimension_admins: [] # Whether to allow Dimension widgets serve websites with invalid or self signed SSL certificates @@ -31,8 +46,10 @@ matrix_dimension_docker_src_files_path: "{{ matrix_base_data_path }}/docker-src/ # renovate: datasource=docker depName=turt2live/matrix-dimension matrix_dimension_version: latest -matrix_dimension_docker_image: "{{ matrix_dimension_docker_image_name_prefix }}turt2live/matrix-dimension:{{ matrix_dimension_version }}" -matrix_dimension_docker_image_name_prefix: "{{ 'localhost/' if matrix_dimension_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_dimension_docker_image: "{{ matrix_dimension_docker_image_registry_prefix }}turt2live/matrix-dimension:{{ matrix_dimension_version }}" +matrix_dimension_docker_image_registry_prefix: "{{ 'localhost/' if matrix_dimension_container_image_self_build else matrix_dimension_docker_image_registry_prefix_upstream }}" +matrix_dimension_docker_image_registry_prefix_upstream: "{{ matrix_dimension_docker_image_registry_prefix_upstream_default }}" +matrix_dimension_docker_image_registry_prefix_upstream_default: docker.io/ matrix_dimension_docker_image_force_pull: "{{ matrix_dimension_docker_image.endswith(':latest') }}" # List of systemd services that matrix-dimension.service depends on. diff --git a/roles/custom/matrix-dimension/tasks/main.yml b/roles/custom/matrix-dimension/tasks/main.yml index 1e949d3f2..19385f106 100644 --- a/roles/custom/matrix-dimension/tasks/main.yml +++ b/roles/custom/matrix-dimension/tasks/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Edgars Voroboks +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-dimension/tasks/setup_install.yml b/roles/custom/matrix-dimension/tasks/setup_install.yml index ce7080c52..5aaeb6d1e 100644 --- a/roles/custom/matrix-dimension/tasks/setup_install.yml +++ b/roles/custom/matrix-dimension/tasks/setup_install.yml @@ -1,3 +1,16 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Yannick Goossens +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: @@ -105,7 +118,7 @@ delay: "{{ devture_playbook_help_container_retries_delay }}" until: matrix_dimension_pull_results is not failed -- name: Ensure dimension repository is present on self-build +- name: Ensure Dimension repository is present on self-build ansible.builtin.git: repo: "{{ matrix_dimension_container_image_self_build_repo }}" dest: "{{ matrix_dimension_docker_src_files_path }}" diff --git a/roles/custom/matrix-dimension/tasks/setup_uninstall.yml b/roles/custom/matrix-dimension/tasks/setup_uninstall.yml index 239e4d892..b52995681 100644 --- a/roles/custom/matrix-dimension/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-dimension/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-dimension service diff --git a/roles/custom/matrix-dimension/tasks/validate_config.yml b/roles/custom/matrix-dimension/tasks/validate_config.yml index b001ceedb..39120d536 100644 --- a/roles/custom/matrix-dimension/tasks/validate_config.yml +++ b/roles/custom/matrix-dimension/tasks/validate_config.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Edgars Voroboks +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Dimension settings not defined @@ -18,10 +27,11 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_dimension_container_expose_port', 'new': ''} + - {'old': 'matrix_dimension_container_image_name_prefix', 'new': 'matrix_dimension_docker_image_registry_prefix'} - when: matrix_dimension_container_labels_traefik_enabled | bool block: diff --git a/roles/custom/matrix-dimension/templates/config.yaml.j2.license b/roles/custom/matrix-dimension/templates/config.yaml.j2.license new file mode 100644 index 000000000..2c26fe3c7 --- /dev/null +++ b/roles/custom/matrix-dimension/templates/config.yaml.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2020 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-dimension/templates/labels.j2 b/roles/custom/matrix-dimension/templates/labels.j2 index 09ad07b96..d5d76aeaa 100644 --- a/roles/custom/matrix-dimension/templates/labels.j2 +++ b/roles/custom/matrix-dimension/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_dimension_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2 b/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2 index 7898a7ba3..33a800838 100644 --- a/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2 +++ b/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dimension 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dimension 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dimension 2>/dev/null || true' # Fixup database ownership if it got changed somehow (during a server migration, etc.) @@ -47,7 +47,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-dimension -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dimension 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dimension 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dimension 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2.license b/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2.license new file mode 100644 index 000000000..22f65f580 --- /dev/null +++ b/roles/custom/matrix-dimension/templates/systemd/matrix-dimension.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Edgars Voroboks +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 Chris van Dijk + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-dimension/vars/main.yml b/roles/custom/matrix-dimension/vars/main.yml index 0415989fa..4a931a6aa 100644 --- a/roles/custom/matrix-dimension/vars/main.yml +++ b/roles/custom/matrix-dimension/vars/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Edgars Voroboks +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Doing `|from_yaml` when the extension contains nothing yields an empty string (""). diff --git a/roles/custom/matrix-dynamic-dns/defaults/main.yml b/roles/custom/matrix-dynamic-dns/defaults/main.yml index c2810e3d9..6ecdcd404 100644 --- a/roles/custom/matrix-dynamic-dns/defaults/main.yml +++ b/roles/custom/matrix-dynamic-dns/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Scott Crossen +# SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Project source code URL: https://github.com/linuxserver/docker-ddclient @@ -8,12 +18,14 @@ matrix_dynamic_dns_enabled: true matrix_dynamic_dns_daemon_interval: '300' # renovate: datasource=docker depName=linuxserver/ddclient versioning=semver -matrix_dynamic_dns_version: 3.11.2 +matrix_dynamic_dns_version: 4.0.0 # The docker container to use when in mode -matrix_dynamic_dns_docker_image: "{{ matrix_dynamic_dns_docker_image_name_prefix }}linuxserver/ddclient:{{ matrix_dynamic_dns_version }}" +matrix_dynamic_dns_docker_image: "{{ matrix_dynamic_dns_docker_image_registry_prefix }}linuxserver/ddclient:{{ matrix_dynamic_dns_version }}" -matrix_dynamic_dns_docker_image_name_prefix: "{{ 'localhost/' if matrix_dynamic_dns_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_dynamic_dns_docker_image_registry_prefix: "{{ 'localhost/' if matrix_dynamic_dns_container_image_self_build else matrix_dynamic_dns_docker_image_registry_prefix_upstream }}" +matrix_dynamic_dns_docker_image_registry_prefix_upstream: "{{ matrix_dynamic_dns_docker_image_registry_prefix_upstream_default }}" +matrix_dynamic_dns_docker_image_registry_prefix_upstream_default: docker.io/ # The image to force pull matrix_dynamic_dns_docker_image_force_pull: "{{ matrix_dynamic_dns_docker_image.endswith(':latest') }}" diff --git a/roles/custom/matrix-dynamic-dns/tasks/main.yml b/roles/custom/matrix-dynamic-dns/tasks/main.yml index 8327a84ac..e56d44c0f 100644 --- a/roles/custom/matrix-dynamic-dns/tasks/main.yml +++ b/roles/custom/matrix-dynamic-dns/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Scott Crossen +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-dynamic-dns/tasks/setup_install.yml b/roles/custom/matrix-dynamic-dns/tasks/setup_install.yml index 8440d791b..45eac171d 100644 --- a/roles/custom/matrix-dynamic-dns/tasks/setup_install.yml +++ b/roles/custom/matrix-dynamic-dns/tasks/setup_install.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Scott Crossen +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Dynamic DNS image is pulled diff --git a/roles/custom/matrix-dynamic-dns/tasks/setup_uninstall.yml b/roles/custom/matrix-dynamic-dns/tasks/setup_uninstall.yml index 8f9f1b040..af7ce670b 100644 --- a/roles/custom/matrix-dynamic-dns/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-dynamic-dns/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Scott Crossen +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-dynamic-dns service diff --git a/roles/custom/matrix-dynamic-dns/tasks/validate_config.yml b/roles/custom/matrix-dynamic-dns/tasks/validate_config.yml index 8174a8487..3b567415a 100644 --- a/roles/custom/matrix-dynamic-dns/tasks/validate_config.yml +++ b/roles/custom/matrix-dynamic-dns/tasks/validate_config.yml @@ -1,12 +1,17 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Scott Crossen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -- name: Fail if no configurations specified +- name: Fail if no matrix-dynamic-dns configurations specified ansible.builtin.fail: msg: >- You need to define at least one configuration in `matrix_dynamic_dns_domain_configurations` for using matrix-dynamic-dns. when: "matrix_dynamic_dns_domain_configurations | length == 0" -- name: Fail if required settings not defined in configuration blocks +- name: Fail if required matrix-dynamic-dns settings not defined in configuration blocks ansible.builtin.fail: msg: >- One of the configurations in matrix_dynamic_dns_domain_configurations is missing a required key (domain, provider, protocol). @@ -15,10 +20,18 @@ loop_control: loop_var: configuration -- name: Fail if required mautrix-dynamic-dns settings not defined +- name: Fail if required matrix-dynamic-dns settings not defined ansible.builtin.fail: msg: >- You need to define a required configuration setting (`{{ item.name }}`). when: "item.when | bool and vars[item.name] == ''" with_items: - {'name': 'matrix_dynamic_dns_container_network', when: true} + +- name: (Deprecation) Catch and report renamed matrix-dynamic-dns variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_dynamic_dns_container_image_name_prefix', 'new': 'matrix_dynamic_dns_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-dynamic-dns/templates/ddclient.conf.j2 b/roles/custom/matrix-dynamic-dns/templates/ddclient.conf.j2 index 1480d834e..158f9f66e 100644 --- a/roles/custom/matrix-dynamic-dns/templates/ddclient.conf.j2 +++ b/roles/custom/matrix-dynamic-dns/templates/ddclient.conf.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + daemon={{ matrix_dynamic_dns_daemon_interval }} syslog=no pid=/var/run/ddclient/ddclient.pid diff --git a/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2 b/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2 index 488c692ad..97c0b5989 100644 --- a/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2 +++ b/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dynamic-dns 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dynamic-dns 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dynamic-dns 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -23,7 +23,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --network={{ matrix_dynamic_dns_container_network }} \ -e PUID={{ matrix_user_uid }} \ -e PGID={{ matrix_user_gid }} \ - --mount type=bind,src={{ matrix_dynamic_dns_config_path }},dst=/config \ + --mount type=bind,src={{ matrix_dynamic_dns_config_path }},dst=/config/ddclient \ {% for arg in matrix_dynamic_dns_container_extra_arguments %} {{ arg }} \ {% endfor %} @@ -36,7 +36,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-dynamic-dns -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dynamic-dns 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-dynamic-dns 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-dynamic-dns 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2.license b/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2.license new file mode 100644 index 000000000..ba251d31b --- /dev/null +++ b/roles/custom/matrix-dynamic-dns/templates/systemd/matrix-dynamic-dns.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Scott Crossen + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-email2matrix/defaults/main.yml b/roles/custom/matrix-email2matrix/defaults/main.yml deleted file mode 100644 index 3f5d89d7b..000000000 --- a/roles/custom/matrix-email2matrix/defaults/main.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -# Project source code URL: https://github.com/devture/email2matrix - -matrix_email2matrix_enabled: true - -matrix_email2matrix_base_path: "{{ matrix_base_data_path }}/email2matrix" -matrix_email2matrix_config_dir_path: "{{ matrix_email2matrix_base_path }}/config" -matrix_email2matrix_docker_src_files_path: "{{ matrix_email2matrix_base_path }}/docker-src" - -matrix_email2matrix_container_image_self_build: false -matrix_email2matrix_container_image_self_build_repo: "https://github.com/devture/email2matrix.git" -matrix_email2matrix_container_image_self_build_branch: "{{ matrix_email2matrix_version }}" - -# renovate: datasource=docker depName=devture/email2matrix -matrix_email2matrix_version: 1.1.0 -matrix_email2matrix_docker_image_prefix: "{{ 'localhost/' if matrix_email2matrix_container_image_self_build else matrix_container_global_registry_prefix }}" -matrix_email2matrix_docker_image: "{{ matrix_email2matrix_docker_image_prefix }}devture/email2matrix:{{ matrix_email2matrix_version }}" -matrix_email2matrix_docker_image_force_pull: "{{ matrix_email2matrix_docker_image.endswith(':latest') }}" - -matrix_email2matrix_container_network: "" - -matrix_email2matrix_container_additional_networks: "{{ matrix_email2matrix_container_additional_networks_auto + matrix_email2matrix_container_additional_networks_custom }}" -matrix_email2matrix_container_additional_networks_auto: [] -matrix_email2matrix_container_additional_networks_custom: [] - -# A list of extra arguments to pass to the container -matrix_email2matrix_container_extra_arguments: [] - -# List of systemd services that matrix-corporal.service depends on -matrix_email2matrix_systemd_required_services_list: "{{ matrix_email2matrix_systemd_required_services_list_default + matrix_email2matrix_systemd_required_services_list_auto + matrix_email2matrix_systemd_required_services_list_custom }}" -matrix_email2matrix_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" -matrix_email2matrix_systemd_required_services_list_auto: [] -matrix_email2matrix_systemd_required_services_list_custom: [] - -# Controls where the matrix-email2matrix container exposes the SMTP (tcp/2525 in the container). -# -# Takes an ":" or "" value (e.g. "127.0.0.1:2525"). -# -# By default, we listen on port 25 on all of the host's network interfaces. -matrix_email2matrix_smtp_host_bind_port: "25" - -matrix_email2matrix_smtp_hostname: "{{ matrix_server_fqn_matrix }}" - -# A list of mailbox to Matrix mappings. -# -# Example: -# matrix_email2matrix_matrix_mappings: -# - MailboxName: "mailbox1" -# MatrixRoomId: "!qporfwt:{{ matrix_domain }}" -# MatrixHomeserverUrl: "{{ matrix_homeserver_url }}" -# MatrixUserId: "@email2matrix:{{ matrix_domain }}" -# MatrixAccessToken: "MATRIX_ACCESS_TOKEN_HERE" -# IgnoreSubject: false -# IgnoreBody: false -# SkipMarkdown: false -# -# - MailboxName: "mailbox2" -# MatrixRoomId: "!aaabaa:{{ matrix_domain }}" -# MatrixHomeserverUrl: "{{ matrix_homeserver_url }}" -# MatrixUserId: "@email2matrix:{{ matrix_domain }}" -# MatrixAccessToken: "MATRIX_ACCESS_TOKEN_HERE" -# IgnoreSubject: true -# IgnoreBody: false -# SkipMarkdown: true -matrix_email2matrix_matrix_mappings: [] - -matrix_email2matrix_misc_debug: false diff --git a/roles/custom/matrix-email2matrix/tasks/main.yml b/roles/custom/matrix-email2matrix/tasks/main.yml deleted file mode 100644 index acd2c9c1e..000000000 --- a/roles/custom/matrix-email2matrix/tasks/main.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- - -- tags: - - setup-all - - setup-email2matrix - - install-all - - install-email2matrix - block: - - when: matrix_email2matrix_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" - - - when: matrix_email2matrix_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" - -- tags: - - setup-all - - setup-email2matrix - block: - - when: not matrix_email2matrix_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" diff --git a/roles/custom/matrix-email2matrix/tasks/setup_install.yml b/roles/custom/matrix-email2matrix/tasks/setup_install.yml deleted file mode 100644 index 5cf88c002..000000000 --- a/roles/custom/matrix-email2matrix/tasks/setup_install.yml +++ /dev/null @@ -1,70 +0,0 @@ ---- - -- name: Ensure Email2Matrix paths exist - ansible.builtin.file: - path: "{{ item.path }}" - state: directory - mode: 0750 - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - with_items: - - {path: "{{ matrix_email2matrix_base_path }}", when: true} - - {path: "{{ matrix_email2matrix_config_dir_path }}", when: true} - - {path: "{{ matrix_email2matrix_docker_src_files_path }}", when: "{{ matrix_email2matrix_container_image_self_build }}"} - when: "item.when | bool" - -- name: Ensure Email2Matrix configuration file created - ansible.builtin.template: - src: "{{ role_path }}/templates/config.json.j2" - dest: "{{ matrix_email2matrix_config_dir_path }}/config.json" - owner: "{{ matrix_user_username }}" - group: "{{ matrix_user_groupname }}" - mode: 0640 - -- name: Ensure Email2Matrix image is pulled - community.docker.docker_image: - name: "{{ matrix_email2matrix_docker_image }}" - source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" - force_source: "{{ matrix_email2matrix_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_email2matrix_docker_image_force_pull }}" - when: "not matrix_email2matrix_container_image_self_build | bool" - register: result - retries: "{{ devture_playbook_help_container_retries_count }}" - delay: "{{ devture_playbook_help_container_retries_delay }}" - until: result is not failed - -- name: Ensure Email2Matrix repository is present on self-build - ansible.builtin.git: - repo: "{{ matrix_email2matrix_container_image_self_build_repo }}" - dest: "{{ matrix_email2matrix_docker_src_files_path }}" - version: "{{ matrix_email2matrix_container_image_self_build_branch }}" - force: "yes" - become: true - become_user: "{{ matrix_user_username }}" - register: matrix_email2matrix_git_pull_results - when: "matrix_email2matrix_container_image_self_build | bool" - -- name: Ensure Email2Matrix Docker image is built - community.docker.docker_image: - name: "{{ matrix_email2matrix_docker_image }}" - source: build - force_source: "{{ matrix_email2matrix_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_email2matrix_git_pull_results.changed }}" - build: - dockerfile: etc/docker/Dockerfile - path: "{{ matrix_email2matrix_docker_src_files_path }}" - pull: true - when: "matrix_email2matrix_container_image_self_build | bool" - -- name: Ensure matrix-email2matrix container network is created - community.general.docker_network: - enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" - name: "{{ matrix_email2matrix_container_network }}" - driver: bridge - driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" - -- name: Ensure matrix-email2matrix.service installed - ansible.builtin.template: - src: "{{ role_path }}/templates/systemd/matrix-email2matrix.service.j2" - dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-email2matrix.service" - mode: 0644 diff --git a/roles/custom/matrix-email2matrix/tasks/setup_uninstall.yml b/roles/custom/matrix-email2matrix/tasks/setup_uninstall.yml deleted file mode 100644 index e95ce6617..000000000 --- a/roles/custom/matrix-email2matrix/tasks/setup_uninstall.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- - -- name: Check existence of matrix-email2matrix service - ansible.builtin.stat: - path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-email2matrix.service" - register: matrix_email2matrix_service_stat - -- when: matrix_email2matrix_service_stat.stat.exists | bool - block: - - name: Ensure matrix-email2matrix is stopped - ansible.builtin.service: - name: matrix-email2matrix - state: stopped - enabled: false - daemon_reload: true - - - name: Ensure matrix-email2matrix.service doesn't exist - ansible.builtin.file: - path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-email2matrix.service" - state: absent - - - name: Ensure Email2Matrix data path doesn't exist - ansible.builtin.file: - path: "{{ matrix_email2matrix_base_path }}" - state: absent diff --git a/roles/custom/matrix-email2matrix/tasks/validate_config.yml b/roles/custom/matrix-email2matrix/tasks/validate_config.yml deleted file mode 100644 index 27cd9eaa0..000000000 --- a/roles/custom/matrix-email2matrix/tasks/validate_config.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- - -- name: Fail if no email2matrix mappings - ansible.builtin.fail: - msg: > - You need to define at least one mapping in `matrix_email2matrix_matrix_mappings` for enabling Email2Matrix. - when: "matrix_email2matrix_matrix_mappings | length == 0" - -- name: Fail if required email2matrix settings not defined - ansible.builtin.fail: - msg: >- - You need to define a required configuration setting (`{{ item.name }}`). - when: "item.when | bool and vars[item.name] == ''" - with_items: - - {'name': 'matrix_email2matrix_container_network', when: true} diff --git a/roles/custom/matrix-email2matrix/templates/config.json.j2 b/roles/custom/matrix-email2matrix/templates/config.json.j2 deleted file mode 100644 index a7ca7bc47..000000000 --- a/roles/custom/matrix-email2matrix/templates/config.json.j2 +++ /dev/null @@ -1,14 +0,0 @@ -#jinja2: lstrip_blocks: "True" -{ - "Smtp": { - "ListenInterface": "0.0.0.0:2525", - "Hostname": {{ matrix_email2matrix_smtp_hostname|to_json }}, - "Workers": 10 - }, - "Matrix": { - "Mappings": {{ matrix_email2matrix_matrix_mappings | to_nice_json }} - }, - "Misc": { - "Debug": {{ matrix_email2matrix_misc_debug|to_json }} - } -} diff --git a/roles/custom/matrix-email2matrix/templates/systemd/matrix-email2matrix.service.j2 b/roles/custom/matrix-email2matrix/templates/systemd/matrix-email2matrix.service.j2 deleted file mode 100644 index 10d4de04d..000000000 --- a/roles/custom/matrix-email2matrix/templates/systemd/matrix-email2matrix.service.j2 +++ /dev/null @@ -1,44 +0,0 @@ -#jinja2: lstrip_blocks: "True" -[Unit] -Description=Email2Matrix -{% for service in matrix_email2matrix_systemd_required_services_list %} -Requires={{ service }} -After={{ service }} -{% endfor %} -DefaultDependencies=no - -[Service] -Type=simple -Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-email2matrix 2>/dev/null || true' -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-email2matrix 2>/dev/null || true' - -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ - --rm \ - --name=matrix-email2matrix \ - --log-driver=none \ - --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ - --cap-drop=ALL \ - --read-only \ - --network={{ matrix_email2matrix_container_network }} \ - -p {{ matrix_email2matrix_smtp_host_bind_port }}:2525 \ - --mount type=bind,src={{ matrix_email2matrix_config_dir_path }}/config.json,dst=/config.json,ro \ - {% for arg in matrix_email2matrix_container_extra_arguments %} - {{ arg }} \ - {% endfor %} - {{ matrix_email2matrix_docker_image }} - -{% for network in matrix_email2matrix_container_additional_networks %} -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-email2matrix -{% endfor %} - -ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-email2matrix - -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-email2matrix 2>/dev/null || true' -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-email2matrix 2>/dev/null || true' -Restart=always -RestartSec=30 -SyslogIdentifier=matrix-email2matrix - -[Install] -WantedBy=multi-user.target diff --git a/roles/custom/matrix-ldap-registration-proxy/defaults/main.yml b/roles/custom/matrix-ldap-registration-proxy/defaults/main.yml index ce9ba1259..4ff410860 100644 --- a/roles/custom/matrix-ldap-registration-proxy/defaults/main.yml +++ b/roles/custom/matrix-ldap-registration-proxy/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix_ldap_registration_proxy - Want to build a large-scale Matrix server using external registration on LDAP? # Project source code URL: https://gitlab.com/activism.international/matrix_ldap_registration_proxy @@ -6,7 +12,12 @@ matrix_ldap_registration_proxy_enabled: true matrix_ldap_registration_proxy_hostname: '' -matrix_ldap_registration_proxy_docker_image: matrix_ldap_registration_proxy +matrix_ldap_registration_proxy_docker_image: "{{ matrix_ldap_registration_proxy_docker_image_registry_prefix }}matrix_ldap_registration_proxy" +matrix_ldap_registration_proxy_docker_image_registry_prefix: "{{ 'localhost/' if matrix_ldap_registration_proxy_container_image_self_build else matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream }}" +matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream: "{{ matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream_default }}" +matrix_ldap_registration_proxy_docker_image_registry_prefix_upstream_default: "" + +matrix_ldap_registration_proxy_container_image_self_build: true matrix_ldap_registration_proxy_container_image_self_build_repo: "https://gitlab.com/activism.international/matrix_ldap_registration_proxy.git" matrix_ldap_registration_proxy_container_image_self_build_branch: "{{ matrix_ldap_registration_proxy_version }}" diff --git a/roles/custom/matrix-ldap-registration-proxy/tasks/main.yml b/roles/custom/matrix-ldap-registration-proxy/tasks/main.yml index 9a7f24d2d..191a3538b 100644 --- a/roles/custom/matrix-ldap-registration-proxy/tasks/main.yml +++ b/roles/custom/matrix-ldap-registration-proxy/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-ldap-registration-proxy/tasks/setup_install.yml b/roles/custom/matrix-ldap-registration-proxy/tasks/setup_install.yml index 43f16292e..e068a629b 100644 --- a/roles/custom/matrix-ldap-registration-proxy/tasks/setup_install.yml +++ b/roles/custom/matrix-ldap-registration-proxy/tasks/setup_install.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix_ldap_registration_proxy paths exist diff --git a/roles/custom/matrix-ldap-registration-proxy/tasks/setup_uninstall.yml b/roles/custom/matrix-ldap-registration-proxy/tasks/setup_uninstall.yml index 20e98a6e4..281488b18 100644 --- a/roles/custom/matrix-ldap-registration-proxy/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-ldap-registration-proxy/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-matrix_ldap_registration_proxy service diff --git a/roles/custom/matrix-ldap-registration-proxy/tasks/validate_config.yml b/roles/custom/matrix-ldap-registration-proxy/tasks/validate_config.yml index d8fcdf96b..fc2d870b5 100644 --- a/roles/custom/matrix-ldap-registration-proxy/tasks/validate_config.yml +++ b/roles/custom/matrix-ldap-registration-proxy/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-ldap-registration-proxy settings not defined @@ -17,7 +24,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_ldap_registration_proxy_registration_addr_with_container', 'new': ''} diff --git a/roles/custom/matrix-ldap-registration-proxy/templates/labels.j2 b/roles/custom/matrix-ldap-registration-proxy/templates/labels.j2 index 8ce1832f1..73a7d25ed 100644 --- a/roles/custom/matrix-ldap-registration-proxy/templates/labels.j2 +++ b/roles/custom/matrix-ldap-registration-proxy/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_ldap_registration_proxy_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-ldap-registration-proxy/templates/ldap-registration-proxy.env.j2 b/roles/custom/matrix-ldap-registration-proxy/templates/ldap-registration-proxy.env.j2 index 0def38932..d40193e1b 100644 --- a/roles/custom/matrix-ldap-registration-proxy/templates/ldap-registration-proxy.env.j2 +++ b/roles/custom/matrix-ldap-registration-proxy/templates/ldap-registration-proxy.env.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # please specify the configuration here # # these settings are mandatory diff --git a/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2 b/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2 index 5d3ef7f47..5668d0a86 100644 --- a/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2 +++ b/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ldap-registration-proxy 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ldap-registration-proxy 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-ldap-registration-proxy 2>/dev/null || true' # matrix_ldap_registration_proxy writes an SQLite shared library (libsqlitejdbc.so) to /tmp and executes it from there, @@ -42,7 +42,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-ldap-registration-proxy -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ldap-registration-proxy 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ldap-registration-proxy 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-ldap-registration-proxy 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2.license b/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2.license new file mode 100644 index 000000000..618b21aeb --- /dev/null +++ b/roles/custom/matrix-ldap-registration-proxy/templates/systemd/matrix-ldap-registration-proxy.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-ma1sd/defaults/main.yml b/roles/custom/matrix-ma1sd/defaults/main.yml index 52aff183f..05be4717e 100644 --- a/roles/custom/matrix-ma1sd/defaults/main.yml +++ b/roles/custom/matrix-ma1sd/defaults/main.yml @@ -1,3 +1,17 @@ +# SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2020 Matt Cengia +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # ma1sd is a Federated Matrix Identity Server # Project source code URL: https://github.com/ma1uta/ma1sd @@ -14,8 +28,10 @@ matrix_ma1sd_container_image_self_build_branch: "{{ matrix_ma1sd_version }}" # renovate: datasource=docker depName=ma1uta/ma1sd matrix_ma1sd_version: "2.5.0" -matrix_ma1sd_docker_image: "{{ matrix_ma1sd_docker_image_name_prefix }}ma1uta/ma1sd:{{ matrix_ma1sd_version }}" -matrix_ma1sd_docker_image_name_prefix: "{{ 'localhost/' if matrix_ma1sd_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_ma1sd_docker_image: "{{ matrix_ma1sd_docker_image_registry_prefix }}ma1uta/ma1sd:{{ matrix_ma1sd_version }}" +matrix_ma1sd_docker_image_registry_prefix: "{{ 'localhost/' if matrix_ma1sd_container_image_self_build else matrix_ma1sd_docker_image_registry_prefix_upstream }}" +matrix_ma1sd_docker_image_registry_prefix_upstream: "{{ matrix_ma1sd_docker_image_registry_prefix_upstream_default }}" +matrix_ma1sd_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_ma1sd_docker_image_force_pull: "{{ matrix_ma1sd_docker_image.endswith(':latest') }}" matrix_ma1sd_base_path: "{{ matrix_base_data_path }}/ma1sd" @@ -189,7 +205,7 @@ matrix_ma1sd_self_check_validate_certificates: true # Controls ma1sd logging verbosity for troubleshooting. # -# According to: https://github.com/ma1uta/ma1sd/blob/master/docs/troubleshooting.md#increase-verbosity +# See: https://github.com/ma1uta/ma1sd/blob/master/docs/troubleshooting.md#increase-verbosity matrix_ma1sd_verbose_logging: false # Setting up support for API prefixes diff --git a/roles/custom/matrix-ma1sd/tasks/main.yml b/roles/custom/matrix-ma1sd/tasks/main.yml index 09e7114bf..5376e5ace 100644 --- a/roles/custom/matrix-ma1sd/tasks/main.yml +++ b/roles/custom/matrix-ma1sd/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-ma1sd/tasks/self_check.yml b/roles/custom/matrix-ma1sd/tasks/self_check.yml index 7ce57e1ec..d1a1714a6 100644 --- a/roles/custom/matrix-ma1sd/tasks/self_check.yml +++ b/roles/custom/matrix-ma1sd/tasks/self_check.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check ma1sd Identity Service diff --git a/roles/custom/matrix-ma1sd/tasks/setup_install.yml b/roles/custom/matrix-ma1sd/tasks/setup_install.yml index e77f2d689..93aa2f14e 100644 --- a/roles/custom/matrix-ma1sd/tasks/setup_install.yml +++ b/roles/custom/matrix-ma1sd/tasks/setup_install.yml @@ -1,3 +1,17 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2020 Matt Cengia +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure ma1sd paths exist diff --git a/roles/custom/matrix-ma1sd/tasks/setup_uninstall.yml b/roles/custom/matrix-ma1sd/tasks/setup_uninstall.yml index b27df269e..2bfbdeeb5 100644 --- a/roles/custom/matrix-ma1sd/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-ma1sd/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-ma1sd service diff --git a/roles/custom/matrix-ma1sd/tasks/validate_config.yml b/roles/custom/matrix-ma1sd/tasks/validate_config.yml index 8e4787507..14c8acb4e 100644 --- a/roles/custom/matrix-ma1sd/tasks/validate_config.yml +++ b/roles/custom/matrix-ma1sd/tasks/validate_config.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2021 boris runakov +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Warn about ma1sd variables that are not used anymore @@ -60,7 +67,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_ma1sd_container_expose_port', 'new': ''} @@ -68,13 +75,14 @@ - {'old': 'matrix_ma1sd_default_port', 'new': 'matrix_ma1sd_container_port'} - {'old': 'matrix_ma1sd_container_labels_matrix_client_user_directory_search_path', 'new': 'matrix_ma1sd_container_labels_matrix_client_user_directory_search_path_regexp'} - {'old': 'matrix_ma1sd_container_labels_matrix_client_3pid_registration_path', 'new': 'matrix_ma1sd_container_labels_matrix_client_3pid_registration_path_regexp'} + - {'old': 'matrix_ma1sd_docker_image_name_prefix', 'new': 'matrix_ma1sd_docker_image_registry_prefix'} - name: (Deprecation) Catch and report mxisd variables ansible.builtin.fail: msg: >- mxisd is deprecated and has been replaced with ma1sd (https://github.com/ma1uta/ma1sd), a compatible fork. The playbook will migrate your existing mxisd configuration and data automatically, but you need to adjust variable names. - Please change your configuration (vars.yml) to rename all mxisd variables (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "vars | dict2items | selectattr('key', 'match', item.old) | list | items2dict" with_items: - {'old': 'matrix_mxisd_.*', 'new': 'matrix_ma1sd_.*'} diff --git a/roles/custom/matrix-ma1sd/templates/labels.j2 b/roles/custom/matrix-ma1sd/templates/labels.j2 index 4570e3b23..b3df693e8 100644 --- a/roles/custom/matrix-ma1sd/templates/labels.j2 +++ b/roles/custom/matrix-ma1sd/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_ma1sd_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-ma1sd/templates/ma1sd.yaml.j2.license b/roles/custom/matrix-ma1sd/templates/ma1sd.yaml.j2.license new file mode 100644 index 000000000..a519212f1 --- /dev/null +++ b/roles/custom/matrix-ma1sd/templates/ma1sd.yaml.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2 b/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2 index 36e6a353b..7f9ec27f4 100644 --- a/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2 +++ b/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ma1sd 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ma1sd 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-ma1sd 2>/dev/null || true' # ma1sd writes an SQLite shared library (libsqlitejdbc.so) to /tmp and executes it from there, @@ -47,7 +47,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-ma1sd -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ma1sd 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-ma1sd 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-ma1sd 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2.license b/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2.license new file mode 100644 index 000000000..713174173 --- /dev/null +++ b/roles/custom/matrix-ma1sd/templates/systemd/matrix-ma1sd.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors +SPDX-FileCopyrightText: 2021 boris runakov + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-ma1sd/vars/main.yml b/roles/custom/matrix-ma1sd/vars/main.yml index 3adc735e9..944099e50 100644 --- a/roles/custom/matrix-ma1sd/vars/main.yml +++ b/roles/custom/matrix-ma1sd/vars/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Doing `|from_yaml` when the extension contains nothing yields an empty string (""). diff --git a/roles/custom/matrix-media-repo/defaults/main.yml b/roles/custom/matrix-media-repo/defaults/main.yml index 606b5f245..c2485207e 100755 --- a/roles/custom/matrix-media-repo/defaults/main.yml +++ b/roles/custom/matrix-media-repo/defaults/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-media-repo is a highly customizable multi-domain media repository for Matrix. # Intended for medium to large environments consisting of several homeservers, this @@ -16,10 +24,12 @@ matrix_media_repo_container_image_self_build: false matrix_media_repo_container_image_self_build_repo: "https://github.com/turt2live/matrix-media-repo.git" matrix_media_repo_docker_image_path: "t2bot/matrix-media-repo" -matrix_media_repo_docker_image: "{{ matrix_media_repo_docker_image_name_prefix }}{{ matrix_media_repo_docker_image_path }}:{{ matrix_media_repo_docker_image_tag }}" -matrix_media_repo_docker_image_name_prefix: "{{ 'localhost/' if matrix_media_repo_container_image_self_build else 'ghcr.io/' }}" +matrix_media_repo_docker_image: "{{ matrix_media_repo_docker_image_registry_prefix }}{{ matrix_media_repo_docker_image_path }}:{{ matrix_media_repo_docker_image_tag }}" +matrix_media_repo_docker_image_registry_prefix: "{{ 'localhost/' if matrix_media_repo_container_image_self_build else matrix_media_repo_docker_image_registry_prefix_upstream }}" +matrix_media_repo_docker_image_registry_prefix_upstream: "{{ matrix_media_repo_docker_image_registry_prefix_upstream_default }}" +matrix_media_repo_docker_image_registry_prefix_upstream_default: "ghcr.io/" # renovate: datasource=docker depName=ghcr.io/t2bot/matrix-media-repo -matrix_media_repo_docker_image_tag: "v1.3.7" +matrix_media_repo_docker_image_tag: "v1.3.8" matrix_media_repo_docker_image_force_pull: "{{ matrix_media_repo_docker_image.endswith(':latest') }}" matrix_media_repo_base_path: "{{ matrix_base_data_path }}/{{ matrix_media_repo_identifier }}" @@ -384,7 +394,7 @@ matrix_media_repo_access_tokens_appservices: [] # See docs/admin.md for information on what these people can do. They must belong to one of the # configured homeservers above. # matrix_media_repo_admins: [ -# "@your_username:example.org" +# "@alice:example.org" # ] matrix_media_repo_admins: [] diff --git a/roles/custom/matrix-media-repo/tasks/main.yml b/roles/custom/matrix-media-repo/tasks/main.yml index 4bf63251d..2ebd19ef1 100644 --- a/roles/custom/matrix-media-repo/tasks/main.yml +++ b/roles/custom/matrix-media-repo/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Michael Hollister +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-media-repo/tasks/setup_install.yml b/roles/custom/matrix-media-repo/tasks/setup_install.yml index 67bf8bec2..525df257f 100755 --- a/roles/custom/matrix-media-repo/tasks/setup_install.yml +++ b/roles/custom/matrix-media-repo/tasks/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +# SPDX-FileCopyrightText: 2024 Daniel A. Maierhofer +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure media-repo paths exist diff --git a/roles/custom/matrix-media-repo/tasks/setup_uninstall.yml b/roles/custom/matrix-media-repo/tasks/setup_uninstall.yml index 449cd48b8..45595daee 100644 --- a/roles/custom/matrix-media-repo/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-media-repo/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Michael Hollister +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of media-repo service diff --git a/roles/custom/matrix-media-repo/tasks/validate_config.yml b/roles/custom/matrix-media-repo/tasks/validate_config.yml index 8b0ecb7cd..4d10a44ed 100644 --- a/roles/custom/matrix-media-repo/tasks/validate_config.yml +++ b/roles/custom/matrix-media-repo/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 Michael Hollister +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-media-repo settings not defined @@ -14,7 +20,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_media_repo_access_tokens', 'new': ''} @@ -34,3 +40,4 @@ - {'old': 'matrix_media_repo_container_labels_traefik_admin_path_prefix', 'new': 'matrix_media_repo_container_labels_traefik_admin_path_regexp'} - {'old': 'matrix_media_repo_container_labels_traefik_logout_federation_path_prefix', 'new': 'matrix_media_repo_container_labels_traefik_logout_federation_path_regexp'} - {'old': 'matrix_media_repo_container_labels_traefik_admin_federation_path_prefix', 'new': 'matrix_media_repo_container_labels_traefik_admin_federation_path_regexp'} + - {'old': 'matrix_media_repo_docker_image_name_prefix', 'new': 'matrix_media_repo_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-media-repo/templates/grafana/media-repo.json.license b/roles/custom/matrix-media-repo/templates/grafana/media-repo.json.license new file mode 100644 index 000000000..147b2c483 --- /dev/null +++ b/roles/custom/matrix-media-repo/templates/grafana/media-repo.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-media-repo/templates/media-repo/env.j2 b/roles/custom/matrix-media-repo/templates/media-repo/env.j2 index 8b26f77d7..e325e595d 100644 --- a/roles/custom/matrix-media-repo/templates/media-repo/env.j2 +++ b/roles/custom/matrix-media-repo/templates/media-repo/env.j2 @@ -1 +1,7 @@ +{# +SPDX-FileCopyrightText: 2023 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + REPO_CONFIG=/config/media-repo.yaml diff --git a/roles/custom/matrix-media-repo/templates/media-repo/labels.j2 b/roles/custom/matrix-media-repo/templates/media-repo/labels.j2 index 57b21d897..17eac5cc9 100755 --- a/roles/custom/matrix-media-repo/templates/media-repo/labels.j2 +++ b/roles/custom/matrix-media-repo/templates/media-repo/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_media_repo_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-media-repo/templates/media-repo/media-repo.yaml.j2 b/roles/custom/matrix-media-repo/templates/media-repo/media-repo.yaml.j2 index 01d38fc9b..fa60434fa 100644 --- a/roles/custom/matrix-media-repo/templates/media-repo/media-repo.yaml.j2 +++ b/roles/custom/matrix-media-repo/templates/media-repo/media-repo.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # General repo configuration repo: bindAddress: {{ matrix_media_repo_bind_address | to_json }} @@ -172,7 +179,7 @@ admins: | to_nice_yaml(indent=2, width=999999, sort_keys=false) | indent(width=2, first=true) }} {% else %} #admins: -# - "@your_username:example.org" +# - "@alice:example.org" {% endif %} # Shared secret auth is useful for applications building on top of the media repository, such diff --git a/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2 b/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2 index ea2fb125f..cb8e6a547 100755 --- a/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2 +++ b/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_media_repo_identifier }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_media_repo_identifier }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_media_repo_identifier }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -46,7 +46,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_media_repo_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_media_repo_identifier }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_media_repo_identifier }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_media_repo_identifier }} 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec {{ matrix_media_repo_identifier }} /bin/sh -c 'kill -HUP 1' Restart=always diff --git a/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2.license b/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2.license new file mode 100644 index 000000000..1c5c26f3b --- /dev/null +++ b/roles/custom/matrix-media-repo/templates/media-repo/systemd/matrix-media-repo.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-pantalaimon/defaults/main.yml b/roles/custom/matrix-pantalaimon/defaults/main.yml index 8746519d3..1302c60f7 100644 --- a/roles/custom/matrix-pantalaimon/defaults/main.yml +++ b/roles/custom/matrix-pantalaimon/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # E2EE aware proxy daemon for Matrix clients. # Project source code URL: https://github.com/matrix-org/pantalaimon @@ -10,8 +15,10 @@ matrix_pantalaimon_container_image_self_build: false matrix_pantalaimon_container_image_self_build_repo: "https://github.com/matrix-org/pantalaimon.git" matrix_pantalaimon_container_image_self_build_repo_version: "{{ 'main' if matrix_pantalaimon_version == 'latest' else matrix_pantalaimon_version }}" -matrix_pantalaimon_docker_image: "{{ matrix_pantalaimon_docker_image_name_prefix }}matrixdotorg/pantalaimon:v{{ matrix_pantalaimon_version }}" -matrix_pantalaimon_docker_image_name_prefix: "{{ 'localhost/' if matrix_pantalaimon_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_pantalaimon_docker_image: "{{ matrix_pantalaimon_docker_image_registry_prefix }}matrixdotorg/pantalaimon:v{{ matrix_pantalaimon_version }}" +matrix_pantalaimon_docker_image_registry_prefix: "{{ 'localhost/' if matrix_pantalaimon_container_image_self_build else matrix_pantalaimon_docker_image_registry_prefix_upstream }}" +matrix_pantalaimon_docker_image_registry_prefix_upstream: "{{ matrix_pantalaimon_docker_image_registry_prefix_upstream_default }}" +matrix_pantalaimon_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_pantalaimon_docker_image_force_pull: "{{ matrix_pantalaimon_docker_image.endswith(':latest') }}" matrix_pantalaimon_base_path: "{{ matrix_base_data_path }}/pantalaimon" @@ -42,7 +49,7 @@ matrix_pantalaimon_systemd_wanted_services_list_default: [] matrix_pantalaimon_systemd_wanted_services_list_auto: [] matrix_pantalaimon_systemd_wanted_services_list_custom: [] -# Pantalaimon log level, case-insensitive (Error, Warning, Info, Debug) +# Valid values: Error, Warning, Info, Debug matrix_pantalaimon_log_level: Warning # Base URL where matrix-pantalaimon can reach your homeserver C-S API. diff --git a/roles/custom/matrix-pantalaimon/tasks/install.yml b/roles/custom/matrix-pantalaimon/tasks/install.yml index 9a9b9a38c..256aa2f83 100644 --- a/roles/custom/matrix-pantalaimon/tasks/install.yml +++ b/roles/custom/matrix-pantalaimon/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-pantalaimon paths exist @@ -57,6 +62,7 @@ - name: Ensure pantalaimon container network is created community.general.docker_network: + enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" name: "{{ matrix_pantalaimon_container_network }}" driver: bridge driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" diff --git a/roles/custom/matrix-pantalaimon/tasks/main.yml b/roles/custom/matrix-pantalaimon/tasks/main.yml index 63cdef198..b3b670eb1 100644 --- a/roles/custom/matrix-pantalaimon/tasks/main.yml +++ b/roles/custom/matrix-pantalaimon/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-pantalaimon/tasks/uninstall.yml b/roles/custom/matrix-pantalaimon/tasks/uninstall.yml index a6c7cd5f6..eb6165405 100644 --- a/roles/custom/matrix-pantalaimon/tasks/uninstall.yml +++ b/roles/custom/matrix-pantalaimon/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-pantalaimon service diff --git a/roles/custom/matrix-pantalaimon/tasks/validate_config.yml b/roles/custom/matrix-pantalaimon/tasks/validate_config.yml index 00fc96ced..ff3116355 100644 --- a/roles/custom/matrix-pantalaimon/tasks/validate_config.yml +++ b/roles/custom/matrix-pantalaimon/tasks/validate_config.yml @@ -1,8 +1,20 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -- name: Fail if required variables are undefined +- name: Fail if required Pantalaimon variables are undefined ansible.builtin.fail: msg: "The `{{ item }}` variable must be defined and have a non-null value." with_items: - "matrix_pantalaimon_homeserver_url" when: "vars[item] == '' or vars[item] is none" + +- name: (Deprecation) Catch and report renamed Pantalaimon variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_pantalaimon_docker_image_name_prefix', 'new': 'matrix_pantalaimon_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-pantalaimon/templates/pantalaimon.conf.j2 b/roles/custom/matrix-pantalaimon/templates/pantalaimon.conf.j2 index 9e8f6fd97..4cd01c478 100644 --- a/roles/custom/matrix-pantalaimon/templates/pantalaimon.conf.j2 +++ b/roles/custom/matrix-pantalaimon/templates/pantalaimon.conf.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + [Default] LogLevel = {{ matrix_pantalaimon_log_level }} diff --git a/roles/custom/matrix-pantalaimon/templates/systemd/matrix-pantalaimon.service.j2.license b/roles/custom/matrix-pantalaimon/templates/systemd/matrix-pantalaimon.service.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-pantalaimon/templates/systemd/matrix-pantalaimon.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/defaults/main.yml b/roles/custom/matrix-prometheus-nginxlog-exporter/defaults/main.yml index a7177861e..3cbed7a22 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/defaults/main.yml +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # prometheus-nginxlog-exporter exports nginx logs in a prometheus usable format on a `/metrics/ endpoint # See: https://github.com/martin-helmich/prometheus-nginxlog-exporter/ @@ -17,9 +24,11 @@ matrix_prometheus_nginxlog_exporter_container_metrics_port: '4040' matrix_prometheus_nginxlog_exporter_container_syslog_port: '6514' matrix_prometheus_nginxlog_exporter_docker_image_arch: ['amd64', 'arm64'] -matrix_prometheus_nginxlog_exporter_docker_image_name_prefix: "{{ 'ghcr.io/martin-helmich/' }}" +matrix_prometheus_nginxlog_exporter_docker_image: "{{ matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix }}martin-helmich/prometheus-nginxlog-exporter/exporter:{{ matrix_prometheus_nginxlog_exporter_docker_image_tag }}" +matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix: "{{ matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream }}" +matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream: "{{ matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream_default }}" +matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_prometheus_nginxlog_exporter_docker_image_tag: "{{ 'latest' if matrix_prometheus_nginxlog_exporter_version == 'master' else matrix_prometheus_nginxlog_exporter_version }}-{{ matrix_architecture }}" -matrix_prometheus_nginxlog_exporter_docker_image: "{{ matrix_prometheus_nginxlog_exporter_docker_image_name_prefix }}prometheus-nginxlog-exporter/exporter:{{ matrix_prometheus_nginxlog_exporter_docker_image_tag }}" matrix_prometheus_nginxlog_exporter_docker_image_force_pull: "{{ matrix_prometheus_nginxlog_exporter_docker_image.endswith(':latest') }}" matrix_prometheus_nginxlog_exporter_docker_image_arch_check_enabled: true diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/examples/grafana.png.license b/roles/custom/matrix-prometheus-nginxlog-exporter/examples/grafana.png.license new file mode 100644 index 000000000..bf4d752e6 --- /dev/null +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/examples/grafana.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/examples/metrics.png.license b/roles/custom/matrix-prometheus-nginxlog-exporter/examples/metrics.png.license new file mode 100644 index 000000000..bf4d752e6 --- /dev/null +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/examples/metrics.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/main.yml b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/main.yml index 124bb61d9..5b2ea34b3 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/main.yml +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_install.yml b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_install.yml index f7a0ee213..702c65e3a 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_install.yml +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-prometheus-nginxlog-exporter image is pulled diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_uninstall.yml b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_uninstall.yml index 8828f4ecb..9b1e5035e 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-prometheus-nginxlog-exporter service diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/validate_config.yml b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/validate_config.yml index bf97f4cbc..67668dc7e 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/validate_config.yml +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/tasks/validate_config.yml @@ -1,13 +1,20 @@ +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed prometheus-nginxlog-exporter settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_prometheus_nginxlog_exporter_container_hostname', 'new': 'matrix_prometheus_nginxlog_exporter_identifier'} + - {'old': 'matrix_prometheus_nginxlog_exporter_docker_image_name_prefix', 'new': 'matrix_prometheus_nginxlog_exporter_docker_image_registry_prefix'} - name: Fail if docker image not availble for arch ansible.builtin.fail: diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/grafana/nginx-proxy.json.license b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/grafana/nginx-proxy.json.license new file mode 100644 index 000000000..9c2c35bce --- /dev/null +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/grafana/nginx-proxy.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/labels.j2 b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/labels.j2 index e5aa3c620..7aa35d9c6 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/labels.j2 +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_prometheus_nginxlog_exporter_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/nginx-proxy.json.license b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/nginx-proxy.json.license new file mode 100644 index 000000000..bf4d752e6 --- /dev/null +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/nginx-proxy.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/prometheus-nginxlog-exporter.yaml.j2 b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/prometheus-nginxlog-exporter.yaml.j2 index 2816ec087..b4c9b94b6 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/prometheus-nginxlog-exporter.yaml.j2 +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/prometheus-nginxlog-exporter.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + listen: port: {{ matrix_prometheus_nginxlog_exporter_container_metrics_port }} address: "0.0.0.0" diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2 b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2 index 63ea4f1ef..027ab8ddc 100644 --- a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2 +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -44,7 +44,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_prometheus_nginxlog_exporter_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_prometheus_nginxlog_exporter_identifier }} 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2.license b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2.license new file mode 100644 index 000000000..fcdcd2e0e --- /dev/null +++ b/roles/custom/matrix-prometheus-nginxlog-exporter/templates/systemd/matrix-prometheus-nginxlog-exporter.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 MDAD project contributors +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-prometheus-services-connect/defaults/main.yml b/roles/custom/matrix-prometheus-services-connect/defaults/main.yml index f9d12e7f4..ccbaefdb8 100644 --- a/roles/custom/matrix-prometheus-services-connect/defaults/main.yml +++ b/roles/custom/matrix-prometheus-services-connect/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-prometheus-services-connect is a role which helps integrate diff --git a/roles/custom/matrix-prometheus-services-connect/tasks/install_synapse_rules.yml b/roles/custom/matrix-prometheus-services-connect/tasks/install_synapse_rules.yml index 78b218aca..76b2d9453 100644 --- a/roles/custom/matrix-prometheus-services-connect/tasks/install_synapse_rules.yml +++ b/roles/custom/matrix-prometheus-services-connect/tasks/install_synapse_rules.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Download synapse-v2.rules diff --git a/roles/custom/matrix-prometheus-services-connect/tasks/main.yml b/roles/custom/matrix-prometheus-services-connect/tasks/main.yml index f2c22b7f4..ef698e41e 100644 --- a/roles/custom/matrix-prometheus-services-connect/tasks/main.yml +++ b/roles/custom/matrix-prometheus-services-connect/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-rageshake/defaults/main.yml b/roles/custom/matrix-rageshake/defaults/main.yml index 77caeab1b..a643619ae 100644 --- a/roles/custom/matrix-rageshake/defaults/main.yml +++ b/roles/custom/matrix-rageshake/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # rageshake is a bug report collection service @@ -17,18 +24,19 @@ matrix_rageshake_path_prefix: / # There are no stable container image tags yet. # See: https://github.com/matrix-org/rageshake/issues/69 # renovate: datasource=docker depName=ghcr.io/matrix-org/rageshake -matrix_rageshake_version: 1.13.0 +matrix_rageshake_version: 1.15.0 matrix_rageshake_base_path: "{{ matrix_base_data_path }}/rageshake" matrix_rageshake_config_path: "{{ matrix_rageshake_base_path }}/config" matrix_rageshake_data_path: "{{ matrix_rageshake_base_path }}/data" matrix_rageshake_container_src_files_path: "{{ matrix_rageshake_base_path }}/container-src" -matrix_rageshake_container_image: "{{ matrix_rageshake_container_image_name_prefix }}matrix-org/rageshake:{{ matrix_rageshake_container_image_tag }}" -matrix_rageshake_container_image_name_prefix: "{{ 'localhost/' if matrix_rageshake_container_image_self_build else matrix_rageshake_container_registry_prefix }}" +matrix_rageshake_container_image: "{{ matrix_rageshake_container_image_registry_prefix }}matrix-org/rageshake:{{ matrix_rageshake_container_image_tag }}" +matrix_rageshake_container_image_registry_prefix: "{{ 'localhost/' if matrix_rageshake_container_image_self_build else matrix_rageshake_container_image_registry_prefix_upstream }}" +matrix_rageshake_container_image_registry_prefix_upstream: "{{ matrix_rageshake_container_image_registry_prefix_upstream_default }}" +matrix_rageshake_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_rageshake_container_image_force_pull: "{{ matrix_rageshake_container_image.endswith(':master') }}" matrix_rageshake_container_image_tag: "{{ matrix_rageshake_version }}" -matrix_rageshake_container_registry_prefix: ghcr.io/ matrix_rageshake_container_image_self_build: false matrix_rageshake_container_image_self_build_repo: "https://github.com/matrix-org/rageshake/" @@ -93,7 +101,7 @@ matrix_rageshake_config_api_prefix: "{{ matrix_rageshake_scheme }}://{{ matrix_r # # For a more advanced customization, you can extend the default (see `matrix_rageshake_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_rageshake_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}" +matrix_rageshake_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_rageshake_configuration_extension_yaml: | # Your custom YAML configuration for Synapse goes here. diff --git a/roles/custom/matrix-rageshake/tasks/install.yml b/roles/custom/matrix-rageshake/tasks/install.yml index 572f03f1f..796adf852 100644 --- a/roles/custom/matrix-rageshake/tasks/install.yml +++ b/roles/custom/matrix-rageshake/tasks/install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2024 lavi Pantaleev +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure rageshake paths exist @@ -19,7 +26,7 @@ - name: Ensure rageshake config file created ansible.builtin.copy: content: "{{ matrix_rageshake_configuration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_rageshake_config_path }}/config.yml" + dest: "{{ matrix_rageshake_config_path }}/config.yaml" owner: "{{ matrix_user_username }}" group: "{{ matrix_user_groupname }}" mode: 0640 diff --git a/roles/custom/matrix-rageshake/tasks/main.yml b/roles/custom/matrix-rageshake/tasks/main.yml index a211296d0..d314be440 100644 --- a/roles/custom/matrix-rageshake/tasks/main.yml +++ b/roles/custom/matrix-rageshake/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-rageshake/tasks/uninstall.yml b/roles/custom/matrix-rageshake/tasks/uninstall.yml index 8f04d9894..d0f0c8a47 100644 --- a/roles/custom/matrix-rageshake/tasks/uninstall.yml +++ b/roles/custom/matrix-rageshake/tasks/uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-rageshake service diff --git a/roles/custom/matrix-rageshake/tasks/validate_config.yml b/roles/custom/matrix-rageshake/tasks/validate_config.yml index b61a486d2..80db54151 100644 --- a/roles/custom/matrix-rageshake/tasks/validate_config.yml +++ b/roles/custom/matrix-rageshake/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Benjamin Kampmann +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required rageshake settings not defined @@ -10,6 +15,14 @@ - matrix_rageshake_path_prefix - matrix_rageshake_container_network +- name: (Deprecation) Catch and report renamed rageshake variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_rageshake_docker_image_name_prefix', 'new': 'matrix_rageshake_docker_image_registry_prefix'} + - when: matrix_rageshake_container_labels_traefik_enabled | bool block: - name: Fail if required rageshake Traefik settings not defined diff --git a/roles/custom/matrix-rageshake/templates/config.yml.j2 b/roles/custom/matrix-rageshake/templates/config.yaml.j2 similarity index 53% rename from roles/custom/matrix-rageshake/templates/config.yml.j2 rename to roles/custom/matrix-rageshake/templates/config.yaml.j2 index 6790f2938..a616c5629 100644 --- a/roles/custom/matrix-rageshake/templates/config.yml.j2 +++ b/roles/custom/matrix-rageshake/templates/config.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + # Default configuration for rageshake. # To extend it, use `matrix_rageshake_configuration_extension_yaml`. diff --git a/roles/custom/matrix-rageshake/templates/labels.j2 b/roles/custom/matrix-rageshake/templates/labels.j2 index 626c2fb7c..f5db88f0d 100644 --- a/roles/custom/matrix-rageshake/templates/labels.j2 +++ b/roles/custom/matrix-rageshake/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_rageshake_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2 b/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2 index 9abaf3db5..fc90ea1e0 100644 --- a/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2 +++ b/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-rageshake 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-rageshake 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-rageshake 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -32,7 +32,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ {{ arg }} \ {% endfor %} {{ matrix_rageshake_container_image }} \ - --config /config/config.yml + --config /config/config.yaml {% for network in matrix_rageshake_container_additional_networks %} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-rageshake @@ -40,7 +40,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-rageshake -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-rageshake 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-rageshake 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-rageshake 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2.license b/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2.license new file mode 100644 index 000000000..2d5160f8f --- /dev/null +++ b/roles/custom/matrix-rageshake/templates/systemd/matrix-rageshake.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Benjamin Kampmann +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-registration/defaults/main.yml b/roles/custom/matrix-registration/defaults/main.yml index 9e8a350ab..40b840f84 100644 --- a/roles/custom/matrix-registration/defaults/main.yml +++ b/roles/custom/matrix-registration/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-registration is a simple python application to have a token based Matrix registration # See: https://zeratax.github.io/matrix-registration/ @@ -25,8 +35,10 @@ matrix_registration_docker_src_files_path: "{{ matrix_registration_base_path }}/ # renovate: datasource=docker depName=zeratax/matrix-registration matrix_registration_version: "v0.7.2" -matrix_registration_docker_image: "{{ matrix_registration_docker_image_name_prefix }}zeratax/matrix-registration:{{ matrix_registration_version }}" -matrix_registration_docker_image_name_prefix: "{{ 'localhost/' if matrix_registration_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_registration_docker_image: "{{ matrix_registration_docker_image_registry_prefix }}zeratax/matrix-registration:{{ matrix_registration_version }}" +matrix_registration_docker_image_registry_prefix: "{{ 'localhost/' if matrix_registration_container_image_self_build else matrix_registration_docker_image_registry_prefix_upstream }}" +matrix_registration_docker_image_registry_prefix_upstream: "{{ matrix_registration_docker_image_registry_prefix_upstream_default }}" +matrix_registration_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_registration_docker_image_force_pull: "{{ matrix_registration_docker_image.endswith(':latest') }}" matrix_registration_container_network: "" diff --git a/roles/custom/matrix-registration/tasks/generate_token.yml b/roles/custom/matrix-registration/tasks/generate_token.yml index aa2b0111f..0a3e47258 100644 --- a/roles/custom/matrix-registration/tasks/generate_token.yml +++ b/roles/custom/matrix-registration/tasks/generate_token.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-registration/tasks/list_tokens.yml b/roles/custom/matrix-registration/tasks/list_tokens.yml index 1001c4fa2..f5c85a04d 100644 --- a/roles/custom/matrix-registration/tasks/list_tokens.yml +++ b/roles/custom/matrix-registration/tasks/list_tokens.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Call matrix-registration list all tokens API diff --git a/roles/custom/matrix-registration/tasks/main.yml b/roles/custom/matrix-registration/tasks/main.yml index 7b5647dc0..dcae5528e 100644 --- a/roles/custom/matrix-registration/tasks/main.yml +++ b/roles/custom/matrix-registration/tasks/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-registration/tasks/setup_install.yml b/roles/custom/matrix-registration/tasks/setup_install.yml index 2358da0c4..9a97c1704 100644 --- a/roles/custom/matrix-registration/tasks/setup_install.yml +++ b/roles/custom/matrix-registration/tasks/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Stuart Mumford +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-registration/tasks/setup_uninstall.yml b/roles/custom/matrix-registration/tasks/setup_uninstall.yml index 97c144358..b8037d59d 100644 --- a/roles/custom/matrix-registration/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-registration/tasks/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-registration service diff --git a/roles/custom/matrix-registration/tasks/validate_config.yml b/roles/custom/matrix-registration/tasks/validate_config.yml index 50996a7cb..dba8f7497 100644 --- a/roles/custom/matrix-registration/tasks/validate_config.yml +++ b/roles/custom/matrix-registration/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-registration settings not defined @@ -18,7 +23,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_registration_docker_repo', 'new': 'matrix_registration_container_image_self_build_repo'} diff --git a/roles/custom/matrix-registration/templates/config.yaml.j2 b/roles/custom/matrix-registration/templates/config.yaml.j2 index 39211b249..2884d6800 100644 --- a/roles/custom/matrix-registration/templates/config.yaml.j2 +++ b/roles/custom/matrix-registration/templates/config.yaml.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + server_location: {{ matrix_registration_server_location|to_json }} server_name: {{ matrix_registration_server_name|to_json }} shared_secret: {{ matrix_registration_shared_secret|to_json }} diff --git a/roles/custom/matrix-registration/templates/labels.j2 b/roles/custom/matrix-registration/templates/labels.j2 index 7a87d1b06..7961e84aa 100644 --- a/roles/custom/matrix-registration/templates/labels.j2 +++ b/roles/custom/matrix-registration/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_registration_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2 b/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2 index 0544676c1..1888a2448 100644 --- a/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2 +++ b/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-registration 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-registration 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-registration 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-registration -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-registration 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-registration 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-registration 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2.license b/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2.license new file mode 100644 index 000000000..9d697f20f --- /dev/null +++ b/roles/custom/matrix-registration/templates/systemd/matrix-registration.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-sliding-sync/defaults/main.yml b/roles/custom/matrix-sliding-sync/defaults/main.yml index adc6312ac..6e1e2c10f 100644 --- a/roles/custom/matrix-sliding-sync/defaults/main.yml +++ b/roles/custom/matrix-sliding-sync/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 David Mehren +# SPDX-FileCopyrightText: 2023 Kabir Kwatra +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# SPDX-FileCopyrightText: 2024 HarHarLinks +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Sliding Sync proxy is an implementation of MSC3575 for the new sliding sync @@ -24,11 +35,12 @@ matrix_sliding_sync_container_image_self_build_repo: https://github.com/matrix-o matrix_sliding_sync_container_image_self_build_repo_version: "{{ 'main' if matrix_sliding_sync_version == 'main' else matrix_sliding_sync_version }}" matrix_sliding_sync_container_src_path: "{{ matrix_sliding_sync_base_path }}/container-src" -matrix_sliding_sync_container_image: "{{ matrix_sliding_sync_container_image_name_prefix }}matrix-org/sliding-sync:{{ matrix_sliding_sync_container_image_tag }}" -matrix_sliding_sync_container_image_name_prefix: "{{ 'localhost/' if matrix_sliding_sync_container_image_self_build else matrix_sliding_sync_container_image_registry_prefix }}" +matrix_sliding_sync_container_image: "{{ matrix_sliding_sync_container_image_registry_prefix }}matrix-org/sliding-sync:{{ matrix_sliding_sync_container_image_tag }}" +matrix_sliding_sync_container_image_registry_prefix: "{{ 'localhost/' if matrix_sliding_sync_container_image_self_build else matrix_sliding_sync_container_image_registry_prefix_upstream }}" +matrix_sliding_sync_container_image_registry_prefix_upstream: "{{ matrix_sliding_sync_container_image_registry_prefix_upstream_default }}" +matrix_sliding_sync_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_sliding_sync_container_image_tag: "{{ matrix_sliding_sync_version }}" matrix_sliding_sync_container_image_force_pull: "{{ matrix_sliding_sync_container_image.endswith(':main') }}" -matrix_sliding_sync_container_image_registry_prefix: ghcr.io/ # The base container network. It will be auto-created by this role if it doesn't exist already. matrix_sliding_sync_container_network: '' @@ -93,13 +105,13 @@ matrix_sliding_sync_container_labels_additional_labels: '' # A list of extra arguments to pass to the container matrix_sliding_sync_container_extra_arguments: [] -# List of systemd services that matrix-sliding-sync-proxy.service depends on +# List of systemd services that matrix-sliding-sync.service depends on matrix_sliding_sync_systemd_required_services_list: "{{ matrix_sliding_sync_systemd_required_services_list_default + matrix_sliding_sync_systemd_required_services_list_auto + matrix_sliding_sync_systemd_required_services_list_custom }}" matrix_sliding_sync_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" matrix_sliding_sync_systemd_required_services_list_auto: [] matrix_sliding_sync_systemd_required_services_list_custom: [] -# List of systemd services that matrix-sliding-sync-proxy.service wants +# List of systemd services that matrix-sliding-sync.service wants matrix_sliding_sync_systemd_wanted_services_list: [] # Controls the SYNCV3_SERVER environment variable diff --git a/roles/custom/matrix-sliding-sync/tasks/install.yml b/roles/custom/matrix-sliding-sync/tasks/install.yml index 3526aa644..50128b583 100644 --- a/roles/custom/matrix-sliding-sync/tasks/install.yml +++ b/roles/custom/matrix-sliding-sync/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-sliding-sync paths exist diff --git a/roles/custom/matrix-sliding-sync/tasks/main.yml b/roles/custom/matrix-sliding-sync/tasks/main.yml index 521f16fe7..ad97616b3 100644 --- a/roles/custom/matrix-sliding-sync/tasks/main.yml +++ b/roles/custom/matrix-sliding-sync/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-sliding-sync/tasks/uninstall.yml b/roles/custom/matrix-sliding-sync/tasks/uninstall.yml index 8a559cacc..085b9c548 100644 --- a/roles/custom/matrix-sliding-sync/tasks/uninstall.yml +++ b/roles/custom/matrix-sliding-sync/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-sliding-sync service diff --git a/roles/custom/matrix-sliding-sync/tasks/validate_config.yml b/roles/custom/matrix-sliding-sync/tasks/validate_config.yml index 8b1fee201..24a29539d 100644 --- a/roles/custom/matrix-sliding-sync/tasks/validate_config.yml +++ b/roles/custom/matrix-sliding-sync/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-sliding-sync settings not defined ansible.builtin.fail: @@ -13,3 +18,11 @@ - {'name': 'matrix_sliding_sync_container_network', when: true} - {'name': 'matrix_sliding_sync_metrics_proxying_hostname', when: "{{ matrix_sliding_sync_metrics_proxying_enabled }}"} - {'name': 'matrix_sliding_sync_metrics_proxying_path_prefix', when: "{{ matrix_sliding_sync_metrics_proxying_enabled }}"} + +- name: (Deprecation) Catch and report renamed matrix-sliding-sync variables + ansible.builtin.fail: + msg: >- + The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. + when: "item.old in vars" + with_items: + - {'old': 'matrix_sliding_sync_container_image_name_prefix', 'new': 'matrix_sliding_sync_container_image_registry_prefix'} diff --git a/roles/custom/matrix-sliding-sync/templates/env.j2 b/roles/custom/matrix-sliding-sync/templates/env.j2 index 352e7d958..4a3a06dd4 100644 --- a/roles/custom/matrix-sliding-sync/templates/env.j2 +++ b/roles/custom/matrix-sliding-sync/templates/env.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + SYNCV3_SERVER={{ matrix_sliding_sync_environment_variable_syncv3_server }} SYNCV3_SECRET={{ matrix_sliding_sync_environment_variable_syncv3_secret }} SYNCV3_BINDADDR=:8008 diff --git a/roles/custom/matrix-sliding-sync/templates/labels.j2 b/roles/custom/matrix-sliding-sync/templates/labels.j2 index 736a94354..e2c76c8a4 100644 --- a/roles/custom/matrix-sliding-sync/templates/labels.j2 +++ b/roles/custom/matrix-sliding-sync/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_sliding_sync_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2 b/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2 index d3a22e1d4..20ca0edf3 100644 --- a/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2 +++ b/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sliding-sync 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sliding-sync 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sliding-sync 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -38,7 +38,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-sliding-sync -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sliding-sync 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sliding-sync 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sliding-sync 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2.license b/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2.license new file mode 100644 index 000000000..97357d3ef --- /dev/null +++ b/roles/custom/matrix-sliding-sync/templates/systemd/matrix-sliding-sync.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-sliding-sync/vars/main.yml b/roles/custom/matrix-sliding-sync/vars/main.yml index 8ec69c087..50fc46bf1 100644 --- a/roles/custom/matrix-sliding-sync/vars/main.yml +++ b/roles/custom/matrix-sliding-sync/vars/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Public facing base URL of the Sliding Sync service. diff --git a/roles/custom/matrix-static-files/defaults/main.yml b/roles/custom/matrix-static-files/defaults/main.yml index a107d36af..64b75a3b5 100644 --- a/roles/custom/matrix-static-files/defaults/main.yml +++ b/roles/custom/matrix-static-files/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-static-files is a role which generates and serves `/.well-known/matrix` files for the purposes of Matrix Delegation. @@ -8,7 +13,7 @@ matrix_static_files_enabled: true matrix_static_files_identifier: matrix-static-files # renovate: datasource=docker depName=joseluisq/static-web-server -matrix_static_files_version: 2.33.1 +matrix_static_files_version: 2.36.0 matrix_static_files_base_path: "{{ matrix_base_data_path }}/{{ 'static-files' if matrix_static_files_identifier == 'matrix-static-files' else matrix_static_files_identifier }}" matrix_static_files_config_path: "{{ matrix_static_files_base_path }}/config" @@ -25,7 +30,10 @@ matrix_static_files_systemd_wanted_services_list: "{{ matrix_static_files_system matrix_static_files_systemd_wanted_services_list_auto: [] matrix_static_files_systemd_wanted_services_list_custom: [] -matrix_static_files_container_image: "{{ matrix_container_global_registry_prefix }}joseluisq/static-web-server:{{ matrix_static_files_container_image_tag }}" +matrix_static_files_container_image: "{{ matrix_static_files_container_image_registry_prefix }}joseluisq/static-web-server:{{ matrix_static_files_container_image_tag }}" +matrix_static_files_container_image_registry_prefix: "{{ matrix_static_files_container_image_registry_prefix_upstream }}" +matrix_static_files_container_image_registry_prefix_upstream: "{{ matrix_static_files_container_image_registry_prefix_upstream_default }}" +matrix_static_files_container_image_registry_prefix_upstream_default: "docker.io/" matrix_static_files_container_image_tag: "{{ 'latest' if matrix_static_files_version == 'latest' else (matrix_static_files_version + '-alpine') }}" matrix_static_files_container_image_force_pull: "{{ matrix_static_files_container_image.endswith(':latest') }}" @@ -84,7 +92,7 @@ matrix_static_files_container_labels_base_domain_traefik_tls: "{{ matrix_static_ matrix_static_files_container_labels_base_domain_traefik_tls_certResolver: "{{ matrix_static_files_container_labels_traefik_tls_certResolver }}" # noqa var-naming # Controls whether the root path (/) at the base domain would respond with a redirect to some URL. matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false -matrix_static_files_container_labels_base_domain_root_path_redirection_regex: "^{{ matrix_static_files_scheme }}://{{ matrix_static_files_container_labels_base_domain_traefik_hostname }}{{ matrix_static_files_container_labels_base_domain_traefik_path_prefix }}$" +matrix_static_files_container_labels_base_domain_root_path_redirection_regex: "^{{ matrix_static_files_scheme }}://{{ matrix_static_files_container_labels_base_domain_traefik_hostname }}{{ matrix_static_files_container_labels_base_domain_traefik_path_prefix }}(\\?.*)?$" matrix_static_files_container_labels_base_domain_root_path_redirection_url: "" # matrix_static_files_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. diff --git a/roles/custom/matrix-static-files/tasks/install.yml b/roles/custom/matrix-static-files/tasks/install.yml index b70079434..5b8609011 100644 --- a/roles/custom/matrix-static-files/tasks/install.yml +++ b/roles/custom/matrix-static-files/tasks/install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-static-files paths exist diff --git a/roles/custom/matrix-static-files/tasks/main.yml b/roles/custom/matrix-static-files/tasks/main.yml index 7b5f25377..145a6952f 100644 --- a/roles/custom/matrix-static-files/tasks/main.yml +++ b/roles/custom/matrix-static-files/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-static-files/tasks/self_check_well_known.yml b/roles/custom/matrix-static-files/tasks/self_check_well_known.yml index b6b8f5494..807ffa55a 100644 --- a/roles/custom/matrix-static-files/tasks/self_check_well_known.yml +++ b/roles/custom/matrix-static-files/tasks/self_check_well_known.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2018 Aaron Raimist +# SPDX-FileCopyrightText: 2019 - 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Marcel Partap +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Determine well-known files to check (start with /.well-known/matrix/client) diff --git a/roles/custom/matrix-static-files/tasks/self_check_well_known_file.yml b/roles/custom/matrix-static-files/tasks/self_check_well_known_file.yml index 7dace4be2..03cd81823 100644 --- a/roles/custom/matrix-static-files/tasks/self_check_well_known_file.yml +++ b/roles/custom/matrix-static-files/tasks/self_check_well_known_file.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Alexandros Afentoulis +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-static-files/tasks/uninstall.yml b/roles/custom/matrix-static-files/tasks/uninstall.yml index 5e5208ef6..610a33585 100644 --- a/roles/custom/matrix-static-files/tasks/uninstall.yml +++ b/roles/custom/matrix-static-files/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-static-files systemd service diff --git a/roles/custom/matrix-static-files/tasks/validate_config.yml b/roles/custom/matrix-static-files/tasks/validate_config.yml index 9a590ea06..2697fa654 100644 --- a/roles/custom/matrix-static-files/tasks/validate_config.yml +++ b/roles/custom/matrix-static-files/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-static-files settings not defined diff --git a/roles/custom/matrix-static-files/templates/config.toml.j2.license b/roles/custom/matrix-static-files/templates/config.toml.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-static-files/templates/config.toml.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-static-files/templates/env.j2 b/roles/custom/matrix-static-files/templates/env.j2 index 23c21aa86..0dd9b6f10 100644 --- a/roles/custom/matrix-static-files/templates/env.j2 +++ b/roles/custom/matrix-static-files/templates/env.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + SERVER_PORT={{ matrix_static_files_environment_variable_server_port }} SERVER_LOG_LEVEL={{ matrix_static_files_environment_variable_server_log_level }} diff --git a/roles/custom/matrix-static-files/templates/labels.j2 b/roles/custom/matrix-static-files/templates/labels.j2 index b2fe0ccf0..2d5be3895 100644 --- a/roles/custom/matrix-static-files/templates/labels.j2 +++ b/roles/custom/matrix-static-files/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_static_files_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-static-files/templates/public/.well-known/matrix/client.j2.license b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/client.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/client.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-static-files/templates/public/.well-known/matrix/server.j2.license b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/server.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/server.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-static-files/templates/public/.well-known/matrix/support.j2.license b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/support.j2.license new file mode 100644 index 000000000..e64bd56b9 --- /dev/null +++ b/roles/custom/matrix-static-files/templates/public/.well-known/matrix/support.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2 b/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2 index b1bc2dd1b..ef828c22d 100755 --- a/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2 +++ b/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-static-files 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-static-files 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-static-files 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-static-files -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-static-files 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-static-files 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-static-files 2>/dev/null || true' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2.license b/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2.license new file mode 100644 index 000000000..e18b238ea --- /dev/null +++ b/roles/custom/matrix-static-files/templates/systemd/matrix-static-files.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-sygnal/defaults/main.yml b/roles/custom/matrix-sygnal/defaults/main.yml index 4dbd8e505..540dece4e 100644 --- a/roles/custom/matrix-sygnal/defaults/main.yml +++ b/roles/custom/matrix-sygnal/defaults/main.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Sygnal is a reference Push Gateway for Matrix. @@ -27,7 +36,9 @@ matrix_sygnal_systemd_wanted_services_list: [] matrix_sygnal_docker_image: "{{ matrix_sygnal_docker_image_registry_prefix }}matrixdotorg/sygnal:{{ matrix_sygnal_docker_image_tag }}" matrix_sygnal_docker_image_tag: "{{ matrix_sygnal_version }}" -matrix_sygnal_docker_image_registry_prefix: "{{ matrix_container_global_registry_prefix }}" +matrix_sygnal_docker_image_registry_prefix: "{{ matrix_sygnal_docker_image_registry_prefix_upstream }}" +matrix_sygnal_docker_image_registry_prefix_upstream: "{{ matrix_sygnal_docker_image_registry_prefix_upstream_default }}" +matrix_sygnal_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_sygnal_docker_image_force_pull: "{{ matrix_sygnal_docker_image.endswith(':latest') }}" # The base container network. It will be auto-created by this role if it doesn't exist already. @@ -103,7 +114,7 @@ matrix_sygnal_metrics_prometheus_enabled: false # # For a more advanced customization, you can extend the default (see `matrix_sygnal_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_sygnal_configuration_yaml: "{{ lookup('template', 'templates/sygnal.yaml.j2') }}" +matrix_sygnal_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_sygnal_configuration_extension_yaml: | # Your custom YAML configuration for Sygnal goes here. diff --git a/roles/custom/matrix-sygnal/tasks/install.yml b/roles/custom/matrix-sygnal/tasks/install.yml index 7ac656819..af6b88fe9 100644 --- a/roles/custom/matrix-sygnal/tasks/install.yml +++ b/roles/custom/matrix-sygnal/tasks/install.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Sygnal paths exists diff --git a/roles/custom/matrix-sygnal/tasks/main.yml b/roles/custom/matrix-sygnal/tasks/main.yml index a586cbd02..c194a800f 100644 --- a/roles/custom/matrix-sygnal/tasks/main.yml +++ b/roles/custom/matrix-sygnal/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-sygnal/tasks/uninstall.yml b/roles/custom/matrix-sygnal/tasks/uninstall.yml index 5f01daf1f..cc67c59fd 100644 --- a/roles/custom/matrix-sygnal/tasks/uninstall.yml +++ b/roles/custom/matrix-sygnal/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-sygnal service diff --git a/roles/custom/matrix-sygnal/tasks/validate_config.yml b/roles/custom/matrix-sygnal/tasks/validate_config.yml index 1cdf20381..dfb806a18 100644 --- a/roles/custom/matrix-sygnal/tasks/validate_config.yml +++ b/roles/custom/matrix-sygnal/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Sygnal settings not defined diff --git a/roles/custom/matrix-sygnal/templates/sygnal.yaml.j2 b/roles/custom/matrix-sygnal/templates/config.yaml.j2 similarity index 97% rename from roles/custom/matrix-sygnal/templates/sygnal.yaml.j2 rename to roles/custom/matrix-sygnal/templates/config.yaml.j2 index bb81ea9a4..aba36a9dd 100644 --- a/roles/custom/matrix-sygnal/templates/sygnal.yaml.j2 +++ b/roles/custom/matrix-sygnal/templates/config.yaml.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + ## # This is a configuration for Sygnal, the reference Push Gateway for Matrix # See: matrix.org diff --git a/roles/custom/matrix-sygnal/templates/labels.j2 b/roles/custom/matrix-sygnal/templates/labels.j2 index 3ef6731c3..83a415752 100644 --- a/roles/custom/matrix-sygnal/templates/labels.j2 +++ b/roles/custom/matrix-sygnal/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_sygnal_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2 b/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2 index 12140146a..96e6ea72e 100644 --- a/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2 +++ b/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sygnal 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sygnal 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sygnal 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -41,7 +41,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-sygnal -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sygnal 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-sygnal 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-sygnal 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2.license b/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2.license new file mode 100644 index 000000000..0e5f722c4 --- /dev/null +++ b/roles/custom/matrix-sygnal/templates/systemd/matrix-sygnal.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-admin/defaults/main.yml b/roles/custom/matrix-synapse-admin/defaults/main.yml index 4dc80e510..350b3b5cd 100644 --- a/roles/custom/matrix-synapse-admin/defaults/main.yml +++ b/roles/custom/matrix-synapse-admin/defaults/main.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Dennis Ciba +# SPDX-FileCopyrightText: 2021 - 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2021 Ahmad Haghighi +# SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-synapse-admin is a web UI for managing the Synapse Matrix server # Project source code URL: https://github.com/Awesome-Technologies/synapse-admin @@ -14,9 +25,11 @@ matrix_synapse_admin_container_image_self_build: false matrix_synapse_admin_container_image_self_build_repo: "https://github.com/etkecc/synapse-admin.git" # renovate: datasource=docker depName=ghcr.io/etkecc/synapse-admin -matrix_synapse_admin_version: v0.10.3-etke31 -matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}etkecc/synapse-admin:{{ matrix_synapse_admin_version }}" -matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else 'ghcr.io/' }}" +matrix_synapse_admin_version: v0.10.3-etke38 +matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_registry_prefix }}etkecc/synapse-admin:{{ matrix_synapse_admin_version }}" +matrix_synapse_admin_docker_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_synapse_admin_docker_image_registry_prefix_upstream }}" +matrix_synapse_admin_docker_image_registry_prefix_upstream: "{{ matrix_synapse_admin_docker_image_registry_prefix_upstream_default }}" +matrix_synapse_admin_docker_image_registry_prefix_upstream_default: "ghcr.io/" matrix_synapse_admin_docker_image_force_pull: "{{ matrix_synapse_admin_docker_image.endswith(':latest') }}" # The base container network @@ -49,6 +62,11 @@ matrix_synapse_admin_container_labels_traefik_priority: 0 matrix_synapse_admin_container_labels_traefik_entrypoints: web-secure matrix_synapse_admin_container_labels_traefik_tls: "{{ matrix_synapse_admin_container_labels_traefik_entrypoints != 'web' }}" matrix_synapse_admin_container_labels_traefik_tls_certResolver: default # noqa var-naming +# This setting is to define a list ip addresses to allow access to synapse-admin. +# Each IP address should be in CIDR format, e.g. xxx.xxx.xxx.xxx/xx. +# For more information, see: https://doc.traefik.io/traefik/middlewares/http/ipallowlist/ +# If the list is empty, all IP addresses are allowed. +matrix_synapse_admin_container_labels_traefik_ipallowlist_sourcerange: [] # Controls which additional headers to attach to all HTTP responses. # To add your own headers, use `matrix_synapse_admin_container_labels_traefik_additional_response_headers_custom` @@ -149,7 +167,6 @@ matrix_synapse_admin_path_prefix: /synapse-admin matrix_synapse_admin_configuration_default: restrictBaseUrl: "{{ matrix_synapse_admin_config_restrictBaseUrl }}" asManagedUsers: "{{ matrix_synapse_admin_config_asManagedUsers }}" - supportURL: "{{ matrix_synapse_admin_config_supportURL }}" menu: "{{ matrix_synapse_admin_config_menu }}" # Your custom JSON configuration for synapse-admin should go to `matrix_synapse_admin_configuration_extension_json`. @@ -169,7 +186,10 @@ matrix_synapse_admin_configuration_default: # } matrix_synapse_admin_configuration_extension_json: '{}' -matrix_synapse_admin_configuration_extension: "{{ matrix_synapse_admin_configuration_extension_json | from_json if matrix_synapse_admin_configuration_extension_json | from_json is mapping else {} }}" +# This is similar to `matrix_synapse_admin_configuration_extension_json`, but intended for use by playbook or group vars +matrix_synapse_admin_configuration_extension_json_auto: {} + +matrix_synapse_admin_configuration_extension: "{{ matrix_synapse_admin_configuration_extension_json_auto | combine(matrix_synapse_admin_configuration_extension_json | from_json if matrix_synapse_admin_configuration_extension_json | from_json is mapping else {}, recursive=True) }}" # Holds the final synapse-admin configuration (a combination of the default and its extension). # You most likely don't need to touch this variable. Instead, see `matrix_synapse_admin_configuration_default`. @@ -194,10 +214,6 @@ matrix_synapse_admin_config_restrictBaseUrl: "{{ [matrix_homeserver_url] }}" # # ] matrix_synapse_admin_config_menu: [] -# Controls the supportURL configuration setting, which, if defined, replaces the default link to the Synapse Admin GitHub repository. -# DEPRECATED: use matrix_synapse_admin_config_menu instead (migrated automatically). -matrix_synapse_admin_config_supportURL: '' # noqa var-naming - # Controls the asManagedUsers configuration setting (managed by playbook), which, if defined, # restricts modifications of the specified users (e.g., bridge-managed). # You should use JS regex syntax to match the user IDs. diff --git a/roles/custom/matrix-synapse-admin/tasks/main.yml b/roles/custom/matrix-synapse-admin/tasks/main.yml index da3f2b56d..c66e9998e 100644 --- a/roles/custom/matrix-synapse-admin/tasks/main.yml +++ b/roles/custom/matrix-synapse-admin/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-synapse-admin/tasks/setup_install.yml b/roles/custom/matrix-synapse-admin/tasks/setup_install.yml index 2dcdd0cfb..1c3fb8673 100644 --- a/roles/custom/matrix-synapse-admin/tasks/setup_install.yml +++ b/roles/custom/matrix-synapse-admin/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Dennis Ciba +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-synapse-admin paths exists diff --git a/roles/custom/matrix-synapse-admin/tasks/setup_uninstall.yml b/roles/custom/matrix-synapse-admin/tasks/setup_uninstall.yml index 69820a005..5436bc82b 100644 --- a/roles/custom/matrix-synapse-admin/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-synapse-admin/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-synapse-admin service diff --git a/roles/custom/matrix-synapse-admin/tasks/validate_config.yml b/roles/custom/matrix-synapse-admin/tasks/validate_config.yml index 0fa3ce77b..d0e953d24 100644 --- a/roles/custom/matrix-synapse-admin/tasks/validate_config.yml +++ b/roles/custom/matrix-synapse-admin/tasks/validate_config.yml @@ -1,10 +1,16 @@ +# SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- -- name: (Deprecation) Catch and report renamed settings +- name: (Deprecation) Catch and report renamed matrix-synapse-admin settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_synapse_admin_docker_repo', 'new': 'matrix_synapse_admin_container_self_build_repo'} @@ -12,6 +18,7 @@ - {'old': 'matrix_synapse_admin_container_self_build_repo', 'new': 'matrix_synapse_admin_container_image_self_build_repo'} - {'old': 'matrix_synapse_admin_public_endpoint', 'new': 'matrix_synapse_admin_path_prefix'} - {'old': 'matrix_synapse_admin_nginx_proxy_integration_enabled', 'new': ''} + - {'old': 'matrix_synapse_admin_docker_image_name_prefix', 'new': 'matrix_synapse_admin_docker_image_registry_prefix'} - when: matrix_synapse_admin_container_labels_traefik_enabled | bool block: diff --git a/roles/custom/matrix-synapse-admin/templates/labels.j2 b/roles/custom/matrix-synapse-admin/templates/labels.j2 index b4e973e00..bab69cec3 100644 --- a/roles/custom/matrix-synapse-admin/templates/labels.j2 +++ b/roles/custom/matrix-synapse-admin/templates/labels.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2025 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_synapse_admin_container_labels_traefik_enabled %} traefik.enable=true @@ -9,6 +16,11 @@ traefik.http.services.matrix-synapse-admin.loadbalancer.server.port=80 {% set middlewares = [] %} +{% if matrix_synapse_admin_container_labels_traefik_ipallowlist_sourcerange | length > 0 %} +traefik.http.middlewares.matrix-synapse-admin-ipallowlist.ipallowlist.sourcerange={{ matrix_synapse_admin_container_labels_traefik_ipallowlist_sourcerange | join(',') }} +{% set middlewares = middlewares + ['matrix-synapse-admin-ipallowlist'] %} +{% endif %} + {% if matrix_synapse_admin_container_labels_traefik_path_prefix != '/' %} traefik.http.middlewares.matrix-synapse-admin-slashless-redirect.redirectregex.regex=({{ matrix_synapse_admin_container_labels_traefik_path_prefix | quote }})$ traefik.http.middlewares.matrix-synapse-admin-slashless-redirect.redirectregex.replacement=${1}/ diff --git a/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2 b/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2 index ed72bef7c..dd3675fae 100644 --- a/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2 +++ b/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-admin 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-admin 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-admin 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -42,7 +42,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-synapse-admin -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-admin 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-admin 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-admin 2>/dev/null || true' Restart=always diff --git a/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2.license b/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2.license new file mode 100644 index 000000000..9b305e18b --- /dev/null +++ b/roles/custom/matrix-synapse-admin/templates/systemd/matrix-synapse-admin.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2020 Dan Arnfield + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-auto-compressor/defaults/main.yml b/roles/custom/matrix-synapse-auto-compressor/defaults/main.yml index e80ce35f0..78a07a9ed 100644 --- a/roles/custom/matrix-synapse-auto-compressor/defaults/main.yml +++ b/roles/custom/matrix-synapse-auto-compressor/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # synapse_auto_compressor tool @@ -8,11 +15,11 @@ matrix_synapse_auto_compressor_enabled: true # renovate: datasource=docker depName=registry.gitlab.com/etke.cc/rust-synapse-compress-state matrix_synapse_auto_compressor_version: v0.1.4 -# note: UID/GID better to match the UID/GID of the postgres container, but it doesn't really matter, as volumes are not used here +# note: UID/GID better to match the UID/GID of the Postgres container, but it doesn't really matter, as volumes are not used here matrix_synapse_auto_compressor_uid: '' matrix_synapse_auto_compressor_gid: '' -# note: the postgres image version doesn't matter, as it is used for a SQL script that doesn't use any specific features +# note: the Postgres image version doesn't matter, as it is used for a SQL script that doesn't use any specific features matrix_synapse_auto_compressor_postgres_image: "postgres" matrix_synapse_auto_compressor_base_path: "{{ matrix_base_data_path }}/synapse-auto-compressor" @@ -22,8 +29,10 @@ matrix_synapse_auto_compressor_container_image_self_build: false matrix_synapse_auto_compressor_container_image_self_build_repo: "https://github.com/matrix-org/rust-synapse-compress-state.git" matrix_synapse_auto_compressor_container_image_self_build_version: "{{ 'main' if matrix_synapse_auto_compressor_version == 'latest' else matrix_synapse_auto_compressor_version }}" -matrix_synapse_auto_compressor_container_image: "{{ matrix_synapse_auto_compressor_container_image_name_prefix }}etke.cc/rust-synapse-compress-state:{{ matrix_synapse_auto_compressor_version }}" -matrix_synapse_auto_compressor_container_image_name_prefix: "{{ 'localhost/' if matrix_synapse_auto_compressor_container_image_self_build else 'registry.gitlab.com/' }}" +matrix_synapse_auto_compressor_container_image: "{{ matrix_synapse_auto_compressor_container_image_registry_prefix }}etke.cc/rust-synapse-compress-state:{{ matrix_synapse_auto_compressor_version }}" +matrix_synapse_auto_compressor_container_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_auto_compressor_container_image_self_build else matrix_synapse_auto_compressor_container_image_registry_prefix_upstream }}" +matrix_synapse_auto_compressor_container_image_registry_prefix_upstream: "{{ matrix_synapse_auto_compressor_container_image_registry_prefix_upstream_default }}" +matrix_synapse_auto_compressor_container_image_registry_prefix_upstream_default: "registry.gitlab.com/" matrix_synapse_auto_compressor_container_image_force_pull: "{{ matrix_synapse_auto_compressor_container_image.endswith(':latest') }}" # The base container network. It will be auto-created by this role if it doesn't exist already. @@ -56,7 +65,7 @@ matrix_synapse_auto_compressor_database_name: 'synapse' matrix_synapse_auto_compressor_synapse_database: 'postgres://{{ matrix_synapse_auto_compressor_database_username | urlencode() }}:{{ matrix_synapse_auto_compressor_database_password | urlencode() }}@{{ matrix_synapse_auto_compressor_database_hostname }}:{{ matrix_synapse_auto_compressor_database_port }}/{{ matrix_synapse_auto_compressor_database_name }}' # systemd calendar configuration for the compressor job -matrix_synapse_auto_compressor_calendar: "*-*-* 00:00:00" +matrix_synapse_auto_compressor_schedule: "*-*-* 00:00:00" # The number of state groups to work on at once. # All of the entries from state_groups_state are requested from the database for state groups that are worked on. diff --git a/roles/custom/matrix-synapse-auto-compressor/tasks/install.yml b/roles/custom/matrix-synapse-auto-compressor/tasks/install.yml index 2f51b5a0b..3e69d9f5d 100644 --- a/roles/custom/matrix-synapse-auto-compressor/tasks/install.yml +++ b/roles/custom/matrix-synapse-auto-compressor/tasks/install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure synapse-auto-compressor paths exist diff --git a/roles/custom/matrix-synapse-auto-compressor/tasks/main.yml b/roles/custom/matrix-synapse-auto-compressor/tasks/main.yml index 5993e4f9b..746896ab3 100644 --- a/roles/custom/matrix-synapse-auto-compressor/tasks/main.yml +++ b/roles/custom/matrix-synapse-auto-compressor/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-synapse-auto-compressor/tasks/uninstall.yml b/roles/custom/matrix-synapse-auto-compressor/tasks/uninstall.yml index 075f3c101..d29e40bc3 100644 --- a/roles/custom/matrix-synapse-auto-compressor/tasks/uninstall.yml +++ b/roles/custom/matrix-synapse-auto-compressor/tasks/uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-synapse-auto-compressor service ansible.builtin.stat: diff --git a/roles/custom/matrix-synapse-auto-compressor/tasks/validate_config.yml b/roles/custom/matrix-synapse-auto-compressor/tasks/validate_config.yml index b0dbfab06..ccaf4b42a 100644 --- a/roles/custom/matrix-synapse-auto-compressor/tasks/validate_config.yml +++ b/roles/custom/matrix-synapse-auto-compressor/tasks/validate_config.yml @@ -1,4 +1,20 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- +- name: (Deprecation) Catch and report renamed matrix-synapse-auto-compressor settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - "old": "matrix_synapse_auto_compressor_calendar" + "new": "matrix_synapse_auto_compressor_schedule" + - "old": "matrix_synapse_auto_compressor_container_image_name_prefix" + "new": "matrix_synapse_auto_compressor_container_image_registry_prefix" - name: Fail if required matrix-synapse-auto-compressor settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-synapse-auto-compressor/templates/env.j2 b/roles/custom/matrix-synapse-auto-compressor/templates/env.j2 index 85f18066d..85b0d20cd 100644 --- a/roles/custom/matrix-synapse-auto-compressor/templates/env.j2 +++ b/roles/custom/matrix-synapse-auto-compressor/templates/env.j2 @@ -1,3 +1,10 @@ +{# +SPDX-FileCopyrightText: 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + POSTGRES_LOCATION={{ matrix_synapse_auto_compressor_environment_variable_postgres_location }} # PG-prefixed variables below are for the matrix-synapse-auto-compressor-fix.sh script diff --git a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor-fix.sh.j2.license b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor-fix.sh.j2.license new file mode 100644 index 000000000..b1840694f --- /dev/null +++ b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor-fix.sh.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Nikita Chernyi + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2 b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2 index 842f33670..486579f8a 100644 --- a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2 +++ b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=oneshot Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-auto-compressor 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-auto-compressor 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-auto-compressor 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} {{ matrix_synapse_auto_compressor_base_path }}/matrix-synapse-auto-compressor-fix.sh @@ -39,7 +39,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-synapse-auto-compressor -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-auto-compressor 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-auto-compressor 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-auto-compressor 2>/dev/null || true' SyslogIdentifier=matrix-synapse-auto-compressor diff --git a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2.license b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2.license new file mode 100644 index 000000000..f86013a08 --- /dev/null +++ b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Nikita Chernyi +SPDX-FileCopyrightText: 2023 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.timer.j2 b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.timer.j2 index 1d7b16d33..1bced0d46 100644 --- a/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.timer.j2 +++ b/roles/custom/matrix-synapse-auto-compressor/templates/matrix-synapse-auto-compressor.timer.j2 @@ -1,9 +1,16 @@ +{# +SPDX-FileCopyrightText: 2023 Nikita Chernyi +SPDX-FileCopyrightText: 2025 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + [Unit] Description=Synapse State Auto Compressor Timer [Timer] Unit=matrix-synapse-auto-compressor.service -OnCalendar={{ matrix_synapse_auto_compressor_calendar }} +OnCalendar={{ matrix_synapse_auto_compressor_schedule }} [Install] WantedBy=timers.target diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml b/roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml index 3d9173bd3..57b208d84 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Dan Arnfield +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Charles Wright +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Michael Hollister +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-synapse-reverse-proxy-companion is a role which brings up a containerized nginx webserver which helps with reverse-proxying to Synapse when workers are enabled. @@ -13,7 +23,7 @@ matrix_synapse_reverse_proxy_companion_enabled: true # renovate: datasource=docker depName=nginx -matrix_synapse_reverse_proxy_companion_version: 1.27.2-alpine +matrix_synapse_reverse_proxy_companion_version: 1.27.4-alpine matrix_synapse_reverse_proxy_companion_base_path: "{{ matrix_synapse_base_path }}/reverse-proxy-companion" matrix_synapse_reverse_proxy_companion_confd_path: "{{ matrix_synapse_reverse_proxy_companion_base_path }}/conf.d" @@ -30,7 +40,11 @@ matrix_synapse_reverse_proxy_companion_systemd_wanted_services_list: ['matrix-sy # We use an official nginx image, which we fix-up to run unprivileged. # An alternative would be an `nginxinc/nginx-unprivileged` image, but # that is frequently out of date. -matrix_synapse_reverse_proxy_companion_container_image: "{{ matrix_container_global_registry_prefix }}nginx:{{ matrix_synapse_reverse_proxy_companion_version }}" +matrix_synapse_reverse_proxy_companion_container_image: "{{ matrix_synapse_reverse_proxy_companion_container_image_registry_prefix }}nginx:{{ matrix_synapse_reverse_proxy_companion_container_image_tag }}" +matrix_synapse_reverse_proxy_companion_container_image_registry_prefix: "{{ matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream }}" +matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream: "{{ matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream_default }}" +matrix_synapse_reverse_proxy_companion_container_image_registry_prefix_upstream_default: "docker.io/" +matrix_synapse_reverse_proxy_companion_container_image_tag: "{{ matrix_synapse_reverse_proxy_companion_version }}" matrix_synapse_reverse_proxy_companion_container_image_force_pull: "{{ matrix_synapse_reverse_proxy_companion_container_image.endswith(':latest') }}" matrix_synapse_reverse_proxy_companion_container_network: "" @@ -190,7 +204,7 @@ matrix_synapse_reverse_proxy_companion_send_timeout: 60 # For OCSP purposes, we need to define a resolver at the `server{}` level or `http{}` level (we do the latter). # # Otherwise, we get warnings like this: -# > [warn] 22#22: no resolver defined to resolve r3.o.lencr.org while requesting certificate status, responder: r3.o.lencr.org, certificate: "/matrix/ssl/config/live/.../fullchain.pem" +# > [warn] 22#22: no resolver defined to resolve r3.o.lencr.org while requesting certificate status, responder: r3.o.lencr.org, certificate: "/matrix/ssl/config/live/…/fullchain.pem" # # We point it to the internal Docker resolver, which likely delegates to nameservers defined in `/etc/resolv.conf`. matrix_synapse_reverse_proxy_companion_http_level_resolver: 127.0.0.11 @@ -199,14 +213,26 @@ matrix_synapse_reverse_proxy_companion_hostname: "matrix-synapse-reverse-proxy-c # matrix_synapse_reverse_proxy_companion_client_api_addr specifies the address where the Client-Server API is matrix_synapse_reverse_proxy_companion_client_api_addr: 'matrix-synapse:{{ matrix_synapse_container_client_api_port }}' + +# The maximum body size for client requests to any of the endpoints on the Client-Server API. # This needs to be equal or higher than the maximum upload size accepted by Synapse. -matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb: 50 +matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb: 100 + +# The buffer size for client requests to any of the endpoints on the Client-Server API. +matrix_synapse_reverse_proxy_companion_client_api_client_body_buffer_size_mb: "{{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}" # matrix_synapse_reverse_proxy_companion_federation_api_enabled specifies whether reverse proxying for the Federation (Server-Server) API should be done matrix_synapse_reverse_proxy_companion_federation_api_enabled: true # matrix_synapse_reverse_proxy_companion_federation_api_addr specifies the address where the Federation (Server-Server) API is matrix_synapse_reverse_proxy_companion_federation_api_addr: 'matrix-synapse:{{ matrix_synapse_container_federation_api_plain_port }}' -matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb: "{{ (matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb | int) * 3 }}" + +# The maximum body size for client requests to any of the endpoints on the Federation API. +# We auto-calculate this based on the Client-Server API's maximum body size, but use a minimum value to ensure we don't go to low. +matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb: "{{ [matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb_minimum, (matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb | int) * 3] | max }}" +matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb_minimum: 100 + +# The buffer size for client requests to any of the endpoints on the Federation API. +matrix_synapse_reverse_proxy_companion_federation_api_client_body_buffer_size_mb: "{{ matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb }}" # A list of strings containing additional configuration blocks to add to the nginx vhost handling the Synapse Client-Server API matrix_synapse_reverse_proxy_companion_synapse_client_api_additional_server_configuration_blocks: [] diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/main.yml b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/main.yml index e4149cbb3..bd8c3f680 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/main.yml +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_install.yml b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_install.yml index edfa7c212..34ab589d8 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_install.yml +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-synapse-reverse-proxy-companion paths exist diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_uninstall.yml b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_uninstall.yml index 7b820b35b..ff0686345 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-synapse-reverse-proxy-companion service diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml index 4da323182..7a8ef3e29 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required matrix-synapse-reverse-proxy-companion settings not defined diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2 b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2 index 8b8bd7cdb..8b8945d2e 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2 +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_synapse_reverse_proxy_companion_container_labels_traefik_enabled %} traefik.enable=true @@ -75,7 +81,7 @@ traefik.http.routers.matrix-synapse-reverse-proxy-companion-internal-client-api. {% if matrix_synapse_reverse_proxy_companion_container_labels_public_client_synapse_client_api_enabled %} ############################################################ # # -# Public Synapse Admin API (/_synapse/client) # +# Public Synapse Client API (/_synapse/client) # # # ############################################################ @@ -105,7 +111,7 @@ traefik.http.routers.matrix-synapse-reverse-proxy-companion-public-client-synaps ############################################################ # # -# /Public Synapse Admin API (/_synapse/client) # +# /Public Synapse Client API (/_synapse/client) # # # ############################################################ {% endif %} diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2 b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2 index f32fe1e27..46dbb010e 100644 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2 +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2 @@ -16,10 +16,18 @@ {% macro render_worker_upstream(name, workers, load_balance) %} {% if workers | length > 0 %} upstream {{ name }} { + {# + We need to use a zone so that the upstream is stored in shared memory, + otherwise we can't use `resolve` below, as reported by nginx: + > resolving names at run time requires upstream ".." in ... to be in shared memory + #} + zone {{ name }} 64k; + {{ load_balance }} keepalive {{ ((workers | length) * 2) | string }}; + resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; {% for worker in workers %} - server "{{ worker.name }}:{{ worker.port }}"; + server "{{ worker.name }}:{{ worker.port }}" resolve; {% endfor %} } {% endif %} @@ -29,7 +37,6 @@ {% for location in locations %} location ~ {{ location }} { proxy_pass http://{{ upstream_name }}$request_uri; - proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Connection ""; } @@ -91,35 +98,30 @@ server { server_tokens off; root /dev/null; + client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; + client_body_buffer_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_body_buffer_size_mb }}M; + + proxy_buffering on; + proxy_max_temp_file_size 0; + proxy_set_header Host $host; + {% if matrix_synapse_reverse_proxy_companion_synapse_workers_enabled %} - # Client-server overrides -- These locations must go to the main Synapse process + # Client-server overrides — These locations must go to the main Synapse process location ~ {{ matrix_synapse_reverse_proxy_companion_client_server_main_override_locations_regex }} { {# FIXME: This block was copied from the main Synapse fallback below. It would be better to have it in one place and avoid duplication. #} {# Use the embedded DNS resolver in Docker containers to discover the service #} resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_client_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } - # Client-server SSO overrides -- These locations must go to the main Synapse process + # Client-server SSO overrides — These locations must go to the main Synapse process location ~ {{ matrix_synapse_reverse_proxy_companion_client_server_sso_override_locations_regex }} { {# FIXME: This block was copied from the main Synapse fallback below. It would be better to have it in one place and avoid duplication. #} {# Use the embedded DNS resolver in Docker containers to discover the service #} resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_client_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } # QR code login (`rendezvous`) locations need to go to the same Synapse process. @@ -131,12 +133,6 @@ server { resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_client_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } {# Workers redirects BEGIN #} @@ -197,14 +193,8 @@ server { {% for location in matrix_synapse_reverse_proxy_companion_synapse_media_repository_locations %} location ~ {{ location }} { proxy_pass http://media_repository_workers_upstream$request_uri; - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; {% if matrix_synapse_reverse_proxy_companion_synapse_cache_enabled %} - proxy_buffering on; proxy_cache {{ matrix_synapse_reverse_proxy_companion_synapse_cache_keys_zone_name }}; proxy_cache_valid any {{ matrix_synapse_reverse_proxy_companion_synapse_cache_proxy_cache_valid_time }}; proxy_force_ranges on; @@ -231,12 +221,6 @@ server { resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_client_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } } @@ -246,47 +230,40 @@ server { server_name {{ matrix_synapse_reverse_proxy_companion_hostname }}; server_tokens off; - root /dev/null; + client_max_body_size {{ matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb }}M; + client_body_buffer_size {{ matrix_synapse_reverse_proxy_companion_federation_api_client_body_buffer_size_mb }}M; + + proxy_buffering on; + proxy_max_temp_file_size 0; + proxy_set_header Host $host; + {% if matrix_synapse_reverse_proxy_companion_synapse_workers_enabled %} - # Federation overrides -- These locations must go to the main Synapse process + # Federation overrides — These locations must go to the main Synapse process location ~ {{ matrix_synapse_reverse_proxy_companion_federation_override_locations_regex }} { {# FIXME: This block was copied from the fallback location below. It would be better to have it in one place and avoid duplication. #} {# Use the embedded DNS resolver in Docker containers to discover the service #} resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_federation_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } {% if room_workers | length > 0 %} # https://tcpipuk.github.io/synapse/deployment/workers.html {{ render_locations_to_upstream(matrix_synapse_reverse_proxy_companion_synapse_room_worker_federation_locations, 'room_workers_upstream') }} {% endif %} - {% if federation_reader_workers | length > 0 %} - # https://tcpipuk.github.io/synapse/deployment/workers.html - {{ render_locations_to_upstream(matrix_synapse_reverse_proxy_companion_synapse_federation_reader_federation_locations, 'federation_reader_workers_upstream') }} - {% endif %} + {% if generic_workers | length > 0 %} # https://matrix-org.github.io/synapse/latest/workers.html#synapseappgeneric_worker {{ render_locations_to_upstream(matrix_synapse_reverse_proxy_companion_synapse_generic_worker_federation_locations, 'generic_workers_upstream') }} {% endif %} + {% if media_repository_workers | length > 0 %} # https://matrix-org.github.io/synapse/latest/workers.html#synapseappmedia_repository {% for location in matrix_synapse_reverse_proxy_companion_synapse_media_repository_locations %} location ~ {{ location }} { proxy_pass http://media_repository_workers_upstream$request_uri; - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; {% if matrix_synapse_reverse_proxy_companion_synapse_cache_enabled %} proxy_buffering on; @@ -298,6 +275,20 @@ server { } {% endfor %} {% endif %} + + {# + This is last, because we'd like more-specific requests (e.g. `/_matrix/federation/v1/media/` that may be handled by a media repository worker, if enabled) + to be routed to more specialized workers via their respective `locations` defined earlier (above). + + As https://nginx.org/en/docs/http/ngx_http_core_module.html#location says about location matching: + > .. Then regular expressions are checked, in the order of their appearance in the configuration file. + + See: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3918 + #} + {% if federation_reader_workers | length > 0 %} + # https://tcpipuk.github.io/synapse/deployment/workers.html + {{ render_locations_to_upstream(matrix_synapse_reverse_proxy_companion_synapse_federation_reader_federation_locations, 'federation_reader_workers_upstream') }} + {% endif %} {% endif %} {% for configuration_block in matrix_synapse_reverse_proxy_companion_synapse_federation_api_additional_server_configuration_blocks %} @@ -309,12 +300,6 @@ server { resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s; set $backend "{{ matrix_synapse_reverse_proxy_companion_federation_api_addr }}"; proxy_pass http://$backend; - - proxy_set_header Host $host; - - client_body_buffer_size 25M; - client_max_body_size {{ matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb }}M; - proxy_max_temp_file_size 0; } } {% endif %} diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2.license b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2.license new file mode 100644 index 000000000..2124bb25d --- /dev/null +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/matrix-synapse-reverse-proxy-companion.conf.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Charles Wright +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/nginx-http.conf.j2.license b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/nginx-http.conf.j2.license new file mode 100644 index 000000000..7b1e56adc --- /dev/null +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/conf.d/nginx-http.conf.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/nginx.conf.j2.license b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/nginx.conf.j2.license new file mode 100644 index 000000000..7f7a5e8fa --- /dev/null +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/nginx/nginx.conf.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2 b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2 index 3e1732369..0a2434061 100755 --- a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2 +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-reverse-proxy-companion 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-reverse-proxy-companion 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-reverse-proxy-companion 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -48,7 +48,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-synapse-reverse-proxy-companion -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-reverse-proxy-companion 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse-reverse-proxy-companion 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse-reverse-proxy-companion 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-synapse-reverse-proxy-companion /usr/sbin/nginx -s reload Restart=always diff --git a/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2.license b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2.license new file mode 100644 index 000000000..c3e289cc7 --- /dev/null +++ b/roles/custom/matrix-synapse-reverse-proxy-companion/templates/systemd/matrix-synapse-reverse-proxy-companion.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-usage-exporter/defaults/main.yml b/roles/custom/matrix-synapse-usage-exporter/defaults/main.yml index 71f7b7423..b4256d3bc 100644 --- a/roles/custom/matrix-synapse-usage-exporter/defaults/main.yml +++ b/roles/custom/matrix-synapse-usage-exporter/defaults/main.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Michael Hollister +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Synapse Usage Exporter @@ -21,8 +27,10 @@ matrix_synapse_usage_exporter_container_image_self_build: true matrix_synapse_usage_exporter_container_image_self_build_repo: "https://github.com/loelkes/synapse-usage-exporter.git" matrix_synapse_usage_exporter_container_image_path: "loelkes/synapse-usage-exporter" -matrix_synapse_usage_exporter_container_image: "{{ matrix_synapse_usage_exporter_container_image_name_prefix }}{{ matrix_synapse_usage_exporter_container_image_path }}:{{ matrix_synapse_usage_exporter_container_image_tag }}" -matrix_synapse_usage_exporter_container_image_name_prefix: "{{ 'localhost/' if matrix_synapse_usage_exporter_container_image_self_build else matrix_container_global_registry_prefix }}" +matrix_synapse_usage_exporter_container_image: "{{ matrix_synapse_usage_exporter_container_image_registry_prefix }}{{ matrix_synapse_usage_exporter_container_image_path }}:{{ matrix_synapse_usage_exporter_container_image_tag }}" +matrix_synapse_usage_exporter_container_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_usage_exporter_container_image_self_build else matrix_synapse_usage_exporter_container_image_registry_prefix_upstream }}" +matrix_synapse_usage_exporter_container_image_registry_prefix_upstream: "{{ matrix_synapse_usage_exporter_container_image_registry_prefix_upstream_default }}" +matrix_synapse_usage_exporter_container_image_registry_prefix_upstream_default: "docker.io/" matrix_synapse_usage_exporter_container_image_tag: "{{ 'main' if matrix_synapse_usage_exporter_container_image_self_build else 'latest' }}" matrix_synapse_usage_exporter_container_image_force_pull: "{{ matrix_synapse_usage_exporter_container_image.endswith(':latest') }}" diff --git a/roles/custom/matrix-synapse-usage-exporter/tasks/main.yml b/roles/custom/matrix-synapse-usage-exporter/tasks/main.yml index 0ac9c1f50..892dfac01 100644 --- a/roles/custom/matrix-synapse-usage-exporter/tasks/main.yml +++ b/roles/custom/matrix-synapse-usage-exporter/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Michael Hollister +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: @@ -6,6 +11,9 @@ - install-all - install-synapse-usage-exporter block: + - when: matrix_synapse_usage_exporter_enabled | bool + ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" + - when: matrix_synapse_usage_exporter_enabled | bool ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" diff --git a/roles/custom/matrix-synapse-usage-exporter/tasks/setup_install.yml b/roles/custom/matrix-synapse-usage-exporter/tasks/setup_install.yml index 72cdbd37c..591e377e3 100644 --- a/roles/custom/matrix-synapse-usage-exporter/tasks/setup_install.yml +++ b/roles/custom/matrix-synapse-usage-exporter/tasks/setup_install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 David Mehren +# SPDX-FileCopyrightText: 2024 Michael Hollister +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure synapse-usage-exporter paths exist diff --git a/roles/custom/matrix-synapse-usage-exporter/tasks/setup_uninstall.yml b/roles/custom/matrix-synapse-usage-exporter/tasks/setup_uninstall.yml index 1b1492bb4..bf085df0e 100644 --- a/roles/custom/matrix-synapse-usage-exporter/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-synapse-usage-exporter/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Michael Hollister +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of synapse-usage-exporter service diff --git a/roles/custom/matrix-synapse-usage-exporter/tasks/validate_config.yml b/roles/custom/matrix-synapse-usage-exporter/tasks/validate_config.yml new file mode 100644 index 000000000..c6fa07e23 --- /dev/null +++ b/roles/custom/matrix-synapse-usage-exporter/tasks/validate_config.yml @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: (Deprecation) Catch and report renamed matrix-synapse-usage-exporter settings + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_synapse_usage_exporter_docker_image_name_prefix', 'new': 'matrix_synapse_usage_exporter_container_image_registry_prefix'} diff --git a/roles/custom/matrix-synapse-usage-exporter/templates/env.j2 b/roles/custom/matrix-synapse-usage-exporter/templates/env.j2 index e3f1e814d..0420d358a 100644 --- a/roles/custom/matrix-synapse-usage-exporter/templates/env.j2 +++ b/roles/custom/matrix-synapse-usage-exporter/templates/env.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + PROMETHEUS_MULTIPROC_DIR=/tmp/prometheus WERKZEUG_LOG_LEVEL=INFO APP_LOG_LEVEL=INFO diff --git a/roles/custom/matrix-synapse-usage-exporter/templates/grafana/synapse-usage-exporter.json.license b/roles/custom/matrix-synapse-usage-exporter/templates/grafana/synapse-usage-exporter.json.license new file mode 100644 index 000000000..2265e3041 --- /dev/null +++ b/roles/custom/matrix-synapse-usage-exporter/templates/grafana/synapse-usage-exporter.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse-usage-exporter/templates/labels.j2 b/roles/custom/matrix-synapse-usage-exporter/templates/labels.j2 index 7811c3372..50c3ca82f 100755 --- a/roles/custom/matrix-synapse-usage-exporter/templates/labels.j2 +++ b/roles/custom/matrix-synapse-usage-exporter/templates/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_synapse_usage_exporter_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2 b/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2 index da09078c3..1b560dc9a 100644 --- a/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2 +++ b/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -36,7 +36,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_synapse_usage_exporter_identifier }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_synapse_usage_exporter_identifier }} 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec {{ matrix_synapse_usage_exporter_identifier }} /bin/sh -c 'kill -HUP 1' Restart=always diff --git a/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2.license b/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2.license new file mode 100644 index 000000000..eceecc820 --- /dev/null +++ b/roles/custom/matrix-synapse-usage-exporter/templates/systemd/matrix-synapse-usage-exporter.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2024 Michael Hollister +SPDX-FileCopyrightText: 2025 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/defaults/main.yml b/roles/custom/matrix-synapse/defaults/main.yml index e8c0441e7..9a99d5cd1 100644 --- a/roles/custom/matrix-synapse/defaults/main.yml +++ b/roles/custom/matrix-synapse/defaults/main.yml @@ -16,7 +16,7 @@ matrix_synapse_enabled: true matrix_synapse_github_org_and_repo: element-hq/synapse # renovate: datasource=docker depName=ghcr.io/element-hq/synapse -matrix_synapse_version: v1.119.0 +matrix_synapse_version: v1.126.0 matrix_synapse_username: '' matrix_synapse_uid: '' @@ -48,6 +48,10 @@ matrix_synapse_container_image_customizations_enabled: |- # The version that will be installed is specified in `matrix_synapse_ext_synapse_s3_storage_provider_version`. matrix_synapse_container_image_customizations_s3_storage_provider_installation_enabled: "{{ matrix_synapse_ext_synapse_s3_storage_provider_enabled }}" +# Controls whether to install an old version of boto3 and botocore, to work around the following issue: +# https://github.com/aws/aws-cli/issues/9214 +matrix_synapse_container_image_customizations_s3_storage_provider_installation_old_boto_workaround_enabled: true + # Controls whether custom build steps will be added to the Dockerfile for installing auto-accept-invite module. # The version that will be installed is specified in `matrix_synapse_ext_synapse_auto_accept_invite_version`. matrix_synapse_container_image_customizations_auto_accept_invite_installation_enabled: "{{ matrix_synapse_ext_synapse_auto_accept_invite_enabled }}" @@ -56,7 +60,7 @@ matrix_synapse_container_image_customizations_auto_accept_invite_installation_en # # Example usage: # -# ```yml +# ```yaml # matrix_synapse_container_image_customizations_templates_enabled: true # # The templates are expected to be in a `templates/` subdirectory in # matrix_synapse_container_image_customizations_templates_in_container_template_files_relative_path: templates/ @@ -78,7 +82,9 @@ matrix_synapse_container_image_customizations_templates_git_repository_keyscan_h # matrix_synapse_container_image_customizations_dockerfile_body contains your custom Dockerfile steps # for building your customized Synapse image based on the original (upstream) image (`matrix_synapse_docker_image`). -# A `FROM ...` clause is included automatically so you don't have to. +# A `FROM …` clause is included automatically so you don't have to. +# +# For this to take effect, you need to enable customizations (`matrix_synapse_container_image_customizations_enabled: true`). # # Example: # matrix_synapse_container_image_customizations_dockerfile_body_custom: | @@ -87,12 +93,13 @@ matrix_synapse_container_image_customizations_templates_git_repository_keyscan_h # RUN echo 'You do NOT need to include a FROM clause yourself.' matrix_synapse_container_image_customizations_dockerfile_body_custom: '' -matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}{{ matrix_synapse_docker_image_name }}:{{ matrix_synapse_docker_image_tag }}" -matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_synapse_docker_image_registry_prefix }}" +matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_registry_prefix }}{{ matrix_synapse_docker_image_name }}:{{ matrix_synapse_docker_image_tag }}" matrix_synapse_docker_image_name: "{{ matrix_synapse_github_org_and_repo }}" matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}" matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}" -matrix_synapse_docker_image_registry_prefix: ghcr.io/ +matrix_synapse_docker_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_synapse_docker_image_registry_prefix_upstream }}" +matrix_synapse_docker_image_registry_prefix_upstream: "{{ matrix_synapse_docker_image_registry_prefix_upstream_default }}" +matrix_synapse_docker_image_registry_prefix_upstream_default: "ghcr.io/" # matrix_synapse_docker_image_customized is the name of the locally built Synapse image # which adds various customizations on top of the original (upstream) Synapse image. @@ -509,7 +516,7 @@ matrix_synapse_allow_public_rooms_without_auth: false # # For private servers, you may wish to forbid it to align yourself with upstream defaults. # However, disabling federation completely (see `matrix_synapse_federation_enabled`) is a better way to make your server private, -# instead of relying on security-by-obscurity -- federating with others, having your public rooms joinable by anyone, +# instead of relying on security-by-obscurity — federating with others, having your public rooms joinable by anyone, # but hiding them and thinking you've secured them. matrix_synapse_allow_public_rooms_over_federation: true @@ -744,10 +751,37 @@ matrix_synapse_password_providers_enabled: false # to load message content directly from the homeserver. matrix_synapse_push_include_content: true -# If url previews should be generated. This will cause a request from Synapse to -# URLs shared by users. +# If url previews should be generated. This will cause a request from Synapse to URLs shared by users. +# Also see `matrix_synapse_url_preview_ip_range_blacklist`. matrix_synapse_url_preview_enabled: true +# List of IP address CIDR ranges that the URL preview spider is denied from accessing. +# Note: The value is ignored when an HTTP proxy is in use +# See the comment about this setting in `templates/synapse/homeserver.yaml.j2` for more details. +matrix_synapse_url_preview_ip_range_blacklist: + - '127.0.0.0/8' + - '10.0.0.0/8' + - '172.16.0.0/12' + - '192.168.0.0/16' + - '100.64.0.0/10' + - '192.0.0.0/24' + - '169.254.0.0/16' + - '192.88.99.0/24' + - '198.18.0.0/15' + - '192.0.2.0/24' + - '198.51.100.0/24' + - '203.0.113.0/24' + - '224.0.0.0/4' + - '::1/128' + - 'fe80::/10' + - 'fc00::/7' + - '2001:db8::/32' + - 'ff00::/8' + - 'fec0::/10' + +# List of IP address CIDR ranges that the URL preview spider is allowed to access even if they are specified in `matrix_synapse_url_preview_ip_range_blacklist`. +matrix_synapse_url_preview_ip_range_whitelist: [] + # A list of values for the Accept-Language HTTP header used when downloading webpages during URL preview generation matrix_url_preview_accept_language: ['en-US', 'en'] @@ -1010,10 +1044,10 @@ matrix_synapse_workers_media_repository_workers_container_arguments: [] # Adjusting this value manually is generally not necessary. matrix_synapse_enable_media_repo: "{{ not matrix_synapse_ext_media_repo_enabled and (not matrix_synapse_workers_enabled or (matrix_synapse_workers_enabled_list | selectattr('type', 'equalto', 'media_repository') | list | length == 0)) }}" -# matrix_synapse_enable_authenticated_media controls if authenticated media is enabled. If enabled all "old" media remains accessible over the legacy endpoints but new media is blocked. +# matrix_synapse_enable_authenticated_media controls if authenticated media is enabled. +# If enabled all "old" media remains accessible over the legacy endpoints but new media is blocked. # while this option is enabled all media access and downloads have to be done via authenticated endpoints. -# FIX_ME_WHEN_DEFAULT_TRUE: This option is going to become set to default true in Synapse at a later date. -matrix_synapse_enable_authenticated_media: false +matrix_synapse_enable_authenticated_media: true # matrix_synapse_media_instance_running_background_jobs populates the `media_instance_running_background_jobs` Synapse configuration used when Synapse workers are in use (`matrix_synapse_workers_enabled`). # `media_instance_running_background_jobs` is meant to point to a single media-repository worker, which is dedicated to running background tasks that maintain the media repository. @@ -1111,12 +1145,13 @@ matrix_synapse_redis_host: "" matrix_synapse_redis_port: 6379 matrix_synapse_redis_password: "" matrix_synapse_redis_dbid: 0 +matrix_synapse_redis_use_tls: false # Controls whether Synapse starts a replication listener necessary for workers. # # If Redis is available, we prefer to use that, instead of talking over Synapse's custom replication protocol. # -# matrix_synapse_replication_listener_enabled: "{{ matrix_synapse_workers_enabled and not redis_enabled }}" +# matrix_synapse_replication_listener_enabled: "{{ matrix_synapse_workers_enabled and matrix_synapse_redis_enabled }}" # We force-enable this listener for now until we debug why communication via Redis fails. matrix_synapse_replication_listener_enabled: true @@ -1217,6 +1252,15 @@ matrix_synapse_experimental_features_msc4108_enabled: false ################################################################################ +# Controls whether to enable the "room summary API" experimental feature. +# See https://github.com/matrix-org/matrix-spec-proposals/pull/3266 +# Despite being experimental, this feature is mandatory for the next-generation Element X clients, which is why it is enabled by default: +# https://github.com/element-hq/element-x-ios/issues/3713#issuecomment-2620958291 +# If you're worried about the privacy implications of this unauthenticated API, see: +# https://github.com/deepbluev7/matrix-doc/blob/room-summaries/proposals/3266-room-summary.md#client-server-api +# Set this to false if you still want to disable to API for some reason. Note that doing so breaks Element X compatibility though. +matrix_synapse_experimental_features_msc3266_enabled: true + # Enable this to activate the REST auth password provider module. # See: https://github.com/ma1uta/matrix-synapse-rest-password-provider matrix_synapse_ext_password_provider_rest_auth_enabled: false @@ -1377,8 +1421,10 @@ matrix_synapse_ext_media_repo_enabled: false matrix_s3_media_store_enabled: false matrix_s3_media_store_custom_endpoint_enabled: false -matrix_s3_goofys_docker_image: "{{ matrix_s3_goofys_docker_image_name_prefix }}ewoutp/goofys:latest" -matrix_s3_goofys_docker_image_name_prefix: "docker.io/" +matrix_s3_goofys_docker_image: "{{ matrix_s3_goofys_docker_image_registry_prefix }}ewoutp/goofys:latest" +matrix_s3_goofys_docker_image_registry_prefix: "{{ matrix_s3_goofys_docker_image_registry_prefix_upstream }}" +matrix_s3_goofys_docker_image_registry_prefix_upstream: "{{ matrix_s3_goofys_docker_image_registry_prefix_upstream_default }}" +matrix_s3_goofys_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_s3_goofys_docker_image_force_pull: "{{ matrix_s3_goofys_docker_image.endswith(':latest') }}" matrix_s3_media_store_custom_endpoint: "your-custom-endpoint" matrix_s3_media_store_bucket_name: "your-bucket-name" @@ -1411,6 +1457,7 @@ matrix_synapse_default_room_version: "10" # Controls whether leaving a room will automatically forget it. # The upstream default is `false`, but we try to make Synapse less wasteful of resources, so we do things differently. +# Also see: `matrix_synapse_forgotten_room_retention_period` matrix_synapse_forget_rooms_on_leave: true # Controls the Synapse `modules` list. @@ -1439,7 +1486,7 @@ matrix_synapse_media_storage_providers_auto: | # matrix_synapse_media_storage_providers_custom: # - module: module.SomeModule # store_local: True -# # ... +# # … matrix_synapse_media_storage_providers_custom: [] matrix_synapse_encryption_enabled_by_default_for_room_type: "off" @@ -1451,8 +1498,9 @@ matrix_synapse_redaction_retention_period: 7d # Controls how long to keep locally forgotten rooms before purging them from the DB. # Defaults to `null`, meaning it's disabled. +# Also see: `matrix_synapse_forget_rooms_on_leave` # Example value: 28d -matrix_synapse_forgotten_room_retention_period: ~ +matrix_synapse_forgotten_room_retention_period: 28d matrix_synapse_user_ips_max_age: 28d diff --git a/roles/custom/matrix-synapse/defaults/main.yml.license b/roles/custom/matrix-synapse/defaults/main.yml.license new file mode 100644 index 000000000..1bca653ea --- /dev/null +++ b/roles/custom/matrix-synapse/defaults/main.yml.license @@ -0,0 +1,39 @@ +SPDX-FileCopyrightText: 2019 - 2020 Dan Arnfield +SPDX-FileCopyrightText: 2019 - 2022 Aaron Raimist +SPDX-FileCopyrightText: 2019 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Alexander Acevedo +SPDX-FileCopyrightText: 2019 Hugues Morisset +SPDX-FileCopyrightText: 2019 Lee Verberne +SPDX-FileCopyrightText: 2019 Lyubomir Popov +SPDX-FileCopyrightText: 2019 Oleg Fiksel +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Horvath Gergely +SPDX-FileCopyrightText: 2020 Justin Croonenberghs +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2020 Max Klenk +SPDX-FileCopyrightText: 2020 Paul Tötterman +SPDX-FileCopyrightText: 2021 Ahmad Haghighi +SPDX-FileCopyrightText: 2021 Alejo Diaz +SPDX-FileCopyrightText: 2021 Davy Landman +SPDX-FileCopyrightText: 2021 Janar Juusu +SPDX-FileCopyrightText: 2021 Pablo Montepagano +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2021 boris runakov +SPDX-FileCopyrightText: 2022 - 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Benjamin Castellan +SPDX-FileCopyrightText: 2022 Joe Kappus +SPDX-FileCopyrightText: 2022 Marko Weltzer +SPDX-FileCopyrightText: 2022 Quentin Young +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2022 Yan Minagawa +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2023 Aeris One +SPDX-FileCopyrightText: 2023 Luke D Iremadze +SPDX-FileCopyrightText: 2023 Samuel Meenzen +SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +SPDX-FileCopyrightText: 2024 Charles Wright + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_install.yml index b8046033b..97ee49673 100644 --- a/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Download matrix_encryption_disabler diff --git a/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_uninstall.yml index c223f6e85..d169ad539 100644 --- a/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/encryption-disabler/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix_encryption_disabler doesn't exist diff --git a/roles/custom/matrix-synapse/tasks/ext/ldap-auth/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/ldap-auth/setup_install.yml index 6d4843771..baf0a285a 100644 --- a/roles/custom/matrix-synapse/tasks/ext/ldap-auth/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/ldap-auth/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2018 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2018 Thomas vO +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_install.yml index 0fc2a7506..ea43bb34a 100644 --- a/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure git installed diff --git a/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_uninstall.yml index 8211d51ae..67fff39a5 100644 --- a/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/mjolnir-antispam/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure mjolnir-antispam doesn't exist diff --git a/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_install.yml index 4c59a4b1f..d50a32cd9 100644 --- a/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2018 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Michael Haak +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if REST Auth endpoint not configured diff --git a/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_uninstall.yml index d95dd1c7c..7c094f847 100644 --- a/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/rest-auth/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-synapse-rest-auth doesn't exist diff --git a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_install.yml index 384f16815..d3c7b8610 100644 --- a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_install.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # We install this into Synapse by making `matrix_synapse_ext_synapse_s3_storage_provider_enabled` influence other variables: @@ -43,7 +47,7 @@ ansible.builtin.template: src: "{{ role_path }}/templates/synapse/ext/s3-storage-provider/systemd/{{ item }}.j2" dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ item }}" - mode: 0640 + mode: 0644 with_items: - matrix-synapse-s3-storage-provider-migrate.service - matrix-synapse-s3-storage-provider-migrate.timer diff --git a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_uninstall.yml index 83e8a0f7d..0301df667 100644 --- a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-synapse-s3-storage-provider-migrate.service and timer don't exist diff --git a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/validate_config.yml b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/validate_config.yml index 406f186dc..b9e84a3d2 100644 --- a/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/validate_config.yml +++ b/roles/custom/matrix-synapse/tasks/ext/s3-storage-provider/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Luke Moch +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required s3-storage-provider settings not defined ansible.builtin.fail: diff --git a/roles/custom/matrix-synapse/tasks/ext/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/setup_install.yml index f7be477aa..17bd5670b 100644 --- a/roles/custom/matrix-synapse/tasks/ext/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2019 Hugues Morisset +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # encryption-disabler diff --git a/roles/custom/matrix-synapse/tasks/ext/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/setup_uninstall.yml index f584f584d..21aa141de 100644 --- a/roles/custom/matrix-synapse/tasks/ext/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # encryption-disabler diff --git a/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_install.yml index ecec3e803..ac09fe46e 100644 --- a/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_install.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Michael Haak +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if Shared Secret Auth secret not set diff --git a/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_uninstall.yml index b2f909443..8bb39dc92 100644 --- a/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/shared-secret-auth/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure matrix-synapse-shared-secret-auth doesn't exist diff --git a/roles/custom/matrix-synapse/tasks/ext/synapse-auto-accept-invite/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/synapse-auto-accept-invite/setup_install.yml index 182d42b03..9bbabdbaf 100644 --- a/roles/custom/matrix-synapse/tasks/ext/synapse-auto-accept-invite/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/synapse-auto-accept-invite/setup_install.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml b/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml index e62c62dfe..8f2b4ac6e 100644 --- a/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Michael Haak +# SPDX-FileCopyrightText: 2020 Christian Wolf +# SPDX-FileCopyrightText: 2022 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if Synapse Simple Antispam blocked homeservers is not set diff --git a/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_uninstall.yml index b1d558aa5..bcfb1d694 100644 --- a/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure synapse-simple-antispam doesn't exist diff --git a/roles/custom/matrix-synapse/tasks/goofys/setup_install.yml b/roles/custom/matrix-synapse/tasks/goofys/setup_install.yml index dd6d3e922..f057bcc48 100644 --- a/roles/custom/matrix-synapse/tasks/goofys/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/goofys/setup_install.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.include_role: diff --git a/roles/custom/matrix-synapse/tasks/goofys/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/goofys/setup_uninstall.yml index 252877dee..3c784cfcc 100644 --- a/roles/custom/matrix-synapse/tasks/goofys/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/goofys/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-goofys service diff --git a/roles/custom/matrix-synapse/tasks/import_media_store.yml b/roles/custom/matrix-synapse/tasks/import_media_store.yml index a6c085874..f9757df39 100644 --- a/roles/custom/matrix-synapse/tasks/import_media_store.yml +++ b/roles/custom/matrix-synapse/tasks/import_media_store.yml @@ -1,3 +1,12 @@ +# SPDX-FileCopyrightText: 2017 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jan Christian Grünhage +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Pre-checks diff --git a/roles/custom/matrix-synapse/tasks/import_synapse_sqlite_db.yml b/roles/custom/matrix-synapse/tasks/import_synapse_sqlite_db.yml index 92bd36b42..a8ba6f153 100644 --- a/roles/custom/matrix-synapse/tasks/import_synapse_sqlite_db.yml +++ b/roles/custom/matrix-synapse/tasks/import_synapse_sqlite_db.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-synapse/tasks/init.yml b/roles/custom/matrix-synapse/tasks/init.yml index 341350a49..cbf204a2f 100644 --- a/roles/custom/matrix-synapse/tasks/init.yml +++ b/roles/custom/matrix-synapse/tasks/init.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2021 Aaron Raimist +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This validation task is here, not in validate_config.yml, diff --git a/roles/custom/matrix-synapse/tasks/main.yml b/roles/custom/matrix-synapse/tasks/main.yml index 8bdf05e84..01d35eebf 100644 --- a/roles/custom/matrix-synapse/tasks/main.yml +++ b/roles/custom/matrix-synapse/tasks/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Lyubomir Popov +# SPDX-FileCopyrightText: 2021 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-synapse/tasks/register_user.yml b/roles/custom/matrix-synapse/tasks/register_user.yml index 215409593..55ece72ed 100644 --- a/roles/custom/matrix-synapse/tasks/register_user.yml +++ b/roles/custom/matrix-synapse/tasks/register_user.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2017 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jan Christian Grünhage +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/compress_room.yml b/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/compress_room.yml index 300571059..c7235b0e9 100644 --- a/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/compress_room.yml +++ b/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/compress_room.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2021 Béla Becker +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.debug: diff --git a/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/main.yml b/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/main.yml index efebe6e92..f691a74ba 100644 --- a/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/main.yml +++ b/roles/custom/matrix-synapse/tasks/rust-synapse-compress-state/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Pre-checks diff --git a/roles/custom/matrix-synapse/tasks/self_check_client_api.yml b/roles/custom/matrix-synapse/tasks/self_check_client_api.yml index 7ec3fb09b..dc0a27814 100644 --- a/roles/custom/matrix-synapse/tasks/self_check_client_api.yml +++ b/roles/custom/matrix-synapse/tasks/self_check_client_api.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 - 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check Matrix Client API diff --git a/roles/custom/matrix-synapse/tasks/self_check_federation_api.yml b/roles/custom/matrix-synapse/tasks/self_check_federation_api.yml index fde73dae0..d50098eef 100644 --- a/roles/custom/matrix-synapse/tasks/self_check_federation_api.yml +++ b/roles/custom/matrix-synapse/tasks/self_check_federation_api.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 - 2020 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Lorrin Nelson +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check Matrix Federation API diff --git a/roles/custom/matrix-synapse/tasks/setup_install.yml b/roles/custom/matrix-synapse/tasks/setup_install.yml index a2185da57..d131bd118 100644 --- a/roles/custom/matrix-synapse/tasks/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/setup_install.yml @@ -1,3 +1,14 @@ +# SPDX-FileCopyrightText: 2018 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2020 Max Klenk +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Quentin Young +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Synapse paths exist diff --git a/roles/custom/matrix-synapse/tasks/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/setup_uninstall.yml index 66cda3e7d..c8e24493f 100644 --- a/roles/custom/matrix-synapse/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/setup_uninstall.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-synapse/tasks/synapse/setup.yml b/roles/custom/matrix-synapse/tasks/synapse/setup.yml index 80f761e59..19fb2983c 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/setup.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/setup.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.import_tasks: "{{ role_path }}/tasks/synapse/setup_install.yml" diff --git a/roles/custom/matrix-synapse/tasks/synapse/setup_install.yml b/roles/custom/matrix-synapse/tasks/synapse/setup_install.yml index 1181fd7c8..dcc009050 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/setup_install.yml @@ -1,3 +1,18 @@ +# SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Jan Christian Grünhage +# SPDX-FileCopyrightText: 2019 Lyubomir Popov +# SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Horvath Gergely +# SPDX-FileCopyrightText: 2022 Jim Myhrberg +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This will throw a Permission Denied error if already mounted using fuse diff --git a/roles/custom/matrix-synapse/tasks/synapse/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/synapse/setup_uninstall.yml index 6b8ae5a01..4798983c5 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/setup_uninstall.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Sebastian Gumprich +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-synapse service diff --git a/roles/custom/matrix-synapse/tasks/synapse/workers/init.yml b/roles/custom/matrix-synapse/tasks/synapse/workers/init.yml index 8bf8201a0..2f16215e8 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/workers/init.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/workers/init.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2022 Michael Hollister +# SPDX-FileCopyrightText: 2024 Charles Wright +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Below is a huge hack for dynamically building a list of workers and finally assigning it to `matrix_synapse_workers_enabled_list`. # diff --git a/roles/custom/matrix-synapse/tasks/synapse/workers/setup_install.yml b/roles/custom/matrix-synapse/tasks/synapse/workers/setup_install.yml index b474be92a..e50df3259 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/workers/setup_install.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/workers/setup_install.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2020 - 2021 Marcel Partap +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Determine current worker configs diff --git a/roles/custom/matrix-synapse/tasks/synapse/workers/setup_uninstall.yml b/roles/custom/matrix-synapse/tasks/synapse/workers/setup_uninstall.yml index 2b0d21df4..5677a5a89 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/workers/setup_uninstall.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/workers/setup_uninstall.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2020 Marcel Partap +# SPDX-FileCopyrightText: 2021 - 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Populate service facts diff --git a/roles/custom/matrix-synapse/tasks/synapse/workers/util/inject_worker.yml b/roles/custom/matrix-synapse/tasks/synapse/workers/util/inject_worker.yml index c52777ebd..9338ce30b 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/workers/util/inject_worker.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/workers/util/inject_worker.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # The tasks below run before `validate_config.yml`. # To avoid failing with a cryptic error message, we'll do validation here. diff --git a/roles/custom/matrix-synapse/tasks/synapse/workers/util/setup_files_for_worker.yml b/roles/custom/matrix-synapse/tasks/synapse/workers/util/setup_files_for_worker.yml index 480ffba02..c09291d4a 100644 --- a/roles/custom/matrix-synapse/tasks/synapse/workers/util/setup_files_for_worker.yml +++ b/roles/custom/matrix-synapse/tasks/synapse/workers/util/setup_files_for_worker.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# SPDX-FileCopyrightText: 2024 Michael Hollister +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - ansible.builtin.set_fact: diff --git a/roles/custom/matrix-synapse/tasks/update_user_password.yml b/roles/custom/matrix-synapse/tasks/update_user_password.yml index 32d24a154..cd8c44fe0 100644 --- a/roles/custom/matrix-synapse/tasks/update_user_password.yml +++ b/roles/custom/matrix-synapse/tasks/update_user_password.yml @@ -1,3 +1,13 @@ +# SPDX-FileCopyrightText: 2019 Dan Arnfield +# SPDX-FileCopyrightText: 2019 Lyubomir Popov +# SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2020 Chris van Dijk +# SPDX-FileCopyrightText: 2020 Christian Wolf +# SPDX-FileCopyrightText: 2020 MDAD project contributors +# SPDX-FileCopyrightText: 2022 Marko Weltzer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if playbook called incorrectly diff --git a/roles/custom/matrix-synapse/tasks/validate_config.yml b/roles/custom/matrix-synapse/tasks/validate_config.yml index e1e6fbe27..40c843794 100644 --- a/roles/custom/matrix-synapse/tasks/validate_config.yml +++ b/roles/custom/matrix-synapse/tasks/validate_config.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Charles Wright +# SPDX-FileCopyrightText: 2024 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if required Synapse settings not defined @@ -66,7 +72,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_synapse_email_riot_base_url', 'new': ''} @@ -102,12 +108,14 @@ - {'old': 'matrix_synapse_caches_autotuning_target_cache_memory_usage', 'new': 'matrix_synapse_cache_autotuning_target_cache_memory_usage'} - {'old': 'matrix_synapse_caches_autotuning_min_cache_ttl', 'new': 'matrix_synapse_cache_autotuning_min_cache_ttl'} - {'old': 'matrix_synapse_memtotal_kb', 'new': ''} + - {'old': 'matrix_synapse_docker_image_name_prefix', 'new': 'matrix_synapse_docker_image_registry_prefix'} + - {'old': 'matrix_s3_goofys_docker_image_name_prefix', 'new': 'matrix_s3_goofys_docker_image_registry_prefix'} - name: (Deprecation) Catch and report renamed settings in matrix_synapse_configuration_extension_yaml ansible.builtin.fail: msg: >- Your matrix_synapse_configuration_extension_yaml configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in matrix_synapse_configuration_extension" with_items: - {'old': 'federation_ip_range_blacklist', 'new': 'ip_range_blacklist'} diff --git a/roles/custom/matrix-synapse/templates/goofys/env-goofys.j2.license b/roles/custom/matrix-synapse/templates/goofys/env-goofys.j2.license new file mode 100644 index 000000000..72b378d97 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/goofys/env-goofys.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Alexander Acevedo +SPDX-FileCopyrightText: 2019 Hugues De Keyzer + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2 b/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2 index 0f7a83620..8459cd723 100644 --- a/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2 +++ b/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2 @@ -10,7 +10,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} %n +ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} %n ExecStartPre=-{{ devture_systemd_docker_base_host_command_docker }} rm %n ExecStart={{ devture_systemd_docker_base_host_command_docker }} run --rm --name %n \ @@ -33,7 +33,7 @@ ExecStartPost={{ matrix_host_command_sleep }} 3 TimeoutStartSec=5min ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop %n -ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} %n +ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} %n ExecStop=-{{ devture_systemd_docker_base_host_command_docker }} rm %n ExecStop=-{{ matrix_host_command_fusermount }} -u {{ matrix_s3_media_store_path }} Restart=always diff --git a/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2.license b/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2.license new file mode 100644 index 000000000..cf2001184 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/goofys/systemd/matrix-goofys.service.j2.license @@ -0,0 +1,7 @@ +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Alexander Acevedo +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2024 Jim Myhrberg + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/bin/register-user.j2.license b/roles/custom/matrix-synapse/templates/synapse/bin/register-user.j2.license new file mode 100644 index 000000000..d75acb7c2 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/bin/register-user.j2.license @@ -0,0 +1,6 @@ +SPDX-FileCopyrightText: 2017 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Julian Foad +SPDX-FileCopyrightText: 2021 boris runakov + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2 b/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2 index 39367fe09..d01268a4a 100644 --- a/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2 @@ -6,8 +6,12 @@ RUN pip install synapse-auto-accept-invite=={{ matrix_synapse_ext_synapse_auto_a {% endif %} {% if matrix_synapse_container_image_customizations_s3_storage_provider_installation_enabled %} +{% if matrix_synapse_container_image_customizations_s3_storage_provider_installation_old_boto_workaround_enabled %} +RUN pip install 'boto3<1.36.0' 'botocore<1.36.0' synapse-s3-storage-provider=={{ matrix_synapse_ext_synapse_s3_storage_provider_version }} +{% else %} RUN pip install synapse-s3-storage-provider=={{ matrix_synapse_ext_synapse_s3_storage_provider_version }} {% endif %} +{% endif %} {% if matrix_synapse_container_image_customizations_templates_enabled %} {# diff --git a/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2.license b/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2.license new file mode 100644 index 000000000..183cfa51b --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/customizations/Dockerfile.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2024 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/migrate.j2.license b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/migrate.j2.license new file mode 100644 index 000000000..a4cf34b72 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/migrate.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2024 Tiago Carrondo + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/shell.j2.license b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/shell.j2.license new file mode 100644 index 000000000..939a124be --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/bin/shell.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2024 Tiago Carrondo + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/database.yaml.j2 b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/database.yaml.j2 index ed11645eb..6b9cf159b 100644 --- a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/database.yaml.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/database.yaml.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + user: {{ matrix_synapse_database_user | to_json }} password: {{ matrix_synapse_database_password | to_json }} database: {{ matrix_synapse_database_database | to_json }} diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/env.j2 b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/env.j2 index e50bf7e54..f9d8cd8f4 100644 --- a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/env.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/env.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if not matrix_synapse_ext_synapse_s3_storage_provider_config_ec2_instance_profile | bool %} AWS_ACCESS_KEY_ID={{ matrix_synapse_ext_synapse_s3_storage_provider_config_access_key_id }} AWS_SECRET_ACCESS_KEY={{ matrix_synapse_ext_synapse_s3_storage_provider_config_secret_access_key }} diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/media_storage_provider.yaml.j2 b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/media_storage_provider.yaml.j2 index 97387e55c..988ff9868 100644 --- a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/media_storage_provider.yaml.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/media_storage_provider.yaml.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2022 - 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + module: s3_storage_provider.S3StorageProviderBackend store_local: {{ matrix_synapse_ext_synapse_s3_storage_provider_store_local | to_json }} store_remote: {{ matrix_synapse_ext_synapse_s3_storage_provider_store_remote | to_json }} diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.service.j2.license b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.service.j2.license new file mode 100644 index 000000000..7b1e56adc --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.service.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.timer.j2.license b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.timer.j2.license new file mode 100644 index 000000000..63cfcee34 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/ext/s3-storage-provider/systemd/matrix-synapse-s3-storage-provider-migrate.timer.j2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2 b/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2 index a5d578bc2..dbfbdffaf 100644 --- a/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2 @@ -30,7 +30,7 @@ modules: {{ matrix_synapse_modules|to_json }} # # The server_name name will appear at the end of usernames and room addresses # created on this server. For example if the server_name was example.com, -# usernames on this server would be in the format @user:example.com +# usernames on this server would be in the format @alice:example.com # # In most cases you should avoid using a Matrix specific subdomain such as # matrix.example.com or synapse.example.com as the server_name for the same @@ -55,7 +55,7 @@ pid_file: /homeserver.pid #web_client_location: https://riot.example.com/ # The public-facing base URL that clients use to access this Homeserver (not -# including _matrix/...). This is the same URL a user might enter into the +# including _matrix/…). This is the same URL a user might enter into the # 'Custom Homeserver URL' field on their client. If you use Synapse with a # reverse proxy, this should be the URL to reach Synapse via the proxy. # Otherwise, it should be the URL to reach Synapse's client HTTP listener (see @@ -837,7 +837,7 @@ caches: # before reconnecting. Defaults to 0, which means no limit. # # 'allow_unsafe_locale' is an option specific to Postgres. Under the default behavior, Synapse will refuse to -# start if the postgres db is set to a non-C locale. You can override this behavior (which is *not* recommended) +# start if the Postgres db is set to a non-C locale. You can override this behavior (which is *not* recommended) # by setting 'allow_unsafe_locale' to true. Note that doing so may corrupt your database. You can find more information # here: https://matrix-org.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype and here: # https://wiki.postgresql.org/wiki/Locale_data_changes @@ -1131,26 +1131,9 @@ url_preview_enabled: {{ matrix_synapse_url_preview_enabled|to_json }} # # Note: The value is ignored when an HTTP proxy is in use # -url_preview_ip_range_blacklist: - - '127.0.0.0/8' - - '10.0.0.0/8' - - '172.16.0.0/12' - - '192.168.0.0/16' - - '100.64.0.0/10' - - '192.0.0.0/24' - - '169.254.0.0/16' - - '192.88.99.0/24' - - '198.18.0.0/15' - - '192.0.2.0/24' - - '198.51.100.0/24' - - '203.0.113.0/24' - - '224.0.0.0/4' - - '::1/128' - - 'fe80::/10' - - 'fc00::/7' - - '2001:db8::/32' - - 'ff00::/8' - - 'fec0::/10' +{% if matrix_synapse_url_preview_enabled %} +url_preview_ip_range_blacklist: {{ matrix_synapse_url_preview_ip_range_blacklist | to_json }} +{% endif %} # List of IP address CIDR ranges that the URL preview spider is allowed # to access even if they are specified in url_preview_ip_range_blacklist. @@ -1158,8 +1141,9 @@ url_preview_ip_range_blacklist: # target IP ranges - e.g. for enabling URL previews for a specific private # website only visible in your network. # -#url_preview_ip_range_whitelist: -# - '192.168.1.1' +{% if matrix_synapse_url_preview_enabled %} +url_preview_ip_range_whitelist: {{ matrix_synapse_url_preview_ip_range_whitelist | to_json }} +{% endif %} # Optional list of URL matches that the URL preview spider is # denied from accessing. You should use url_preview_ip_range_blacklist @@ -2462,34 +2446,34 @@ email: # # Subject to use to notify about one message from one or more user(s) in a # room which has a name. - #message_from_person_in_room: "[%(app)s] You have a message on %(app)s from %(person)s in the %(room)s room..." + #message_from_person_in_room: "[%(app)s] You have a message on %(app)s from %(person)s in the %(room)s room…" # # Subject to use to notify about one message from one or more user(s) in a # room which doesn't have a name. - #message_from_person: "[%(app)s] You have a message on %(app)s from %(person)s..." + #message_from_person: "[%(app)s] You have a message on %(app)s from %(person)s…" # # Subject to use to notify about multiple messages from one or more users in # a room which doesn't have a name. - #messages_from_person: "[%(app)s] You have messages on %(app)s from %(person)s..." + #messages_from_person: "[%(app)s] You have messages on %(app)s from %(person)s…" # # Subject to use to notify about multiple messages in a room which has a # name. - #messages_in_room: "[%(app)s] You have messages on %(app)s in the %(room)s room..." + #messages_in_room: "[%(app)s] You have messages on %(app)s in the %(room)s room…" # # Subject to use to notify about multiple messages in multiple rooms. - #messages_in_room_and_others: "[%(app)s] You have messages on %(app)s in the %(room)s room and others..." + #messages_in_room_and_others: "[%(app)s] You have messages on %(app)s in the %(room)s room and others…" # # Subject to use to notify about multiple messages from multiple persons in # multiple rooms. This is similar to the setting above except it's used when # the room in which the notification was triggered has no name. - #messages_from_person_and_others: "[%(app)s] You have messages on %(app)s from %(person)s and others..." + #messages_from_person_and_others: "[%(app)s] You have messages on %(app)s from %(person)s and others…" # # Subject to use to notify about an invite to a room which has a name. - #invite_from_person_to_room: "[%(app)s] %(person)s has invited you to join the %(room)s room on %(app)s..." + #invite_from_person_to_room: "[%(app)s] %(person)s has invited you to join the %(room)s room on %(app)s…" # # Subject to use to notify about an invite to a room which doesn't have a # name. - #invite_from_person: "[%(app)s] %(person)s has invited you to chat on %(app)s..." + #invite_from_person: "[%(app)s] %(person)s has invited you to chat on %(app)s…" # Subject for emails related to account administration. # @@ -2846,8 +2830,8 @@ opentracing: # By default, the list is empty. # #force_tracing_for_users: - # - "@user1:server_name" - # - "@user2:server_name" + # - "@alice:server_name" + # - "@bob:server_name" # Jaeger can be configured to sample traces at different rates. # All configuration options provided by Jaeger can be set here. @@ -2935,20 +2919,23 @@ media_instance_running_background_jobs: {{ matrix_synapse_media_instance_running redis: # Uncomment the below to enable Redis support. # - enabled: {{ matrix_synapse_redis_enabled }} + enabled: {{ matrix_synapse_redis_enabled | to_json }} # Optional host and port to use to connect to redis. Defaults to # localhost and 6379 # - host: {{ matrix_synapse_redis_host }} - port: {{ matrix_synapse_redis_port }} + host: {{ matrix_synapse_redis_host | to_json }} + port: {{ matrix_synapse_redis_port | to_json }} # Optional database ID to connect to. Defaults to 0. - dbid: {{ matrix_synapse_redis_dbid }} + dbid: {{ matrix_synapse_redis_dbid | to_json }} # Optional password if configured on the Redis instance - # - password: {{ matrix_synapse_redis_password }} + {% if matrix_synapse_redis_password %} + password: {{ matrix_synapse_redis_password | to_json }} + {% endif %} + + use_tls: {{ matrix_synapse_redis_use_tls | to_json }} ## Background Updates ## @@ -2997,5 +2984,8 @@ experimental_features: {% if matrix_synapse_experimental_features_msc4108_enabled %} msc4108_enabled: true {% endif %} + {% if matrix_synapse_experimental_features_msc3266_enabled %} + msc3266_enabled: true + {% endif %} # vim:ft=yaml diff --git a/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2.license b/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2.license new file mode 100644 index 000000000..6cb772fc7 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2.license @@ -0,0 +1,33 @@ +SPDX-FileCopyrightText: 2018 - 2024 MDAD project contributors +SPDX-FileCopyrightText: 2018 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Hugues Morisset +SPDX-FileCopyrightText: 2018 Thomas vO +SPDX-FileCopyrightText: 2019 - 2021 Marcel Partap +SPDX-FileCopyrightText: 2019 - 2022 Aaron Raimist +SPDX-FileCopyrightText: 2019 Ciaran Ainsworth +SPDX-FileCopyrightText: 2019 Dan Arnfield +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Lee Verberne +SPDX-FileCopyrightText: 2019 Lyubomir Popov +SPDX-FileCopyrightText: 2019 Oleg Fiksel +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2020 Justin Croonenberghs +SPDX-FileCopyrightText: 2020 Max Klenk +SPDX-FileCopyrightText: 2021 Ahmad Haghighi +SPDX-FileCopyrightText: 2021 Alejo Diaz +SPDX-FileCopyrightText: 2021 Pablo Montepagano +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2021 boris runakov +SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Benjamin Castellan +SPDX-FileCopyrightText: 2022 Jim Myhrberg +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2022 Yan Minagawa +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2023 Aeris One +SPDX-FileCopyrightText: 2023 Alexis Yushin +SPDX-FileCopyrightText: 2023 Luke D Iremadze +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/labels.j2 b/roles/custom/matrix-synapse/templates/synapse/labels.j2 index 940e5b457..0d522c356 100644 --- a/roles/custom/matrix-synapse/templates/synapse/labels.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_synapse_container_labels_traefik_enabled %} traefik.enable=true @@ -130,7 +136,7 @@ traefik.http.routers.matrix-synapse-internal-client-api.entrypoints={{ matrix_sy {% if matrix_synapse_container_labels_public_client_synapse_client_api_enabled %} ############################################################ # # -# Public Synapse Admin API (/_synapse/client) # +# Public Synapse Client API (/_synapse/client) # # # ############################################################ @@ -160,7 +166,7 @@ traefik.http.routers.matrix-synapse-public-client-synapse-client-api.tls.certRes ############################################################ # # -# /Public Synapse Admin API (/_synapse/client) # +# /Public Synapse Client API (/_synapse/client) # # # ############################################################ {% endif %} diff --git a/roles/custom/matrix-synapse/templates/synapse/prometheus/external_prometheus.yml.example.j2 b/roles/custom/matrix-synapse/templates/synapse/prometheus/external_prometheus.yml.example.j2 index de39e36fa..897c19fce 100644 --- a/roles/custom/matrix-synapse/templates/synapse/prometheus/external_prometheus.yml.example.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/prometheus/external_prometheus.yml.example.j2 @@ -1,3 +1,11 @@ +{# +SPDX-FileCopyrightText: 2021 MDAD project contributors +SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Kim Brose + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + global: scrape_interval: 5s diff --git a/roles/custom/matrix-synapse/templates/synapse/synapse.log.config.j2.license b/roles/custom/matrix-synapse/templates/synapse/synapse.log.config.j2.license new file mode 100644 index 000000000..17b1ad961 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/synapse.log.config.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev +SPDX-FileCopyrightText: 2018 Aaron Raimist +SPDX-FileCopyrightText: 2019 Hugues De Keyzer + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 index 21b747b0e..bdd5b5742 100644 --- a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 @@ -37,7 +37,7 @@ Requires=matrix-synapse.service Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -83,7 +83,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_synapse_worker_container_name }} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_synapse_worker_container_name }} 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec {{ matrix_synapse_worker_container_name }} /bin/sh -c 'kill -HUP 1' diff --git a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2.license b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2.license new file mode 100644 index 000000000..18a2c5037 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2.license @@ -0,0 +1,5 @@ +SPDX-FileCopyrightText: 2021 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 index a22c09b1e..9fa7a1dfb 100644 --- a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 @@ -21,7 +21,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse 2>/dev/null || true' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse 2>/dev/null || true' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse 2>/dev/null || true' ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ @@ -73,7 +73,7 @@ ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach m ExecStartPost=-{{ matrix_host_command_sleep }} {{ matrix_synapse_systemd_service_post_start_delay_seconds }} {% endif %} -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse 2>/dev/null || true' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-synapse 2>/dev/null || true' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-synapse 2>/dev/null || true' ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-synapse /bin/sh -c 'kill -HUP 1' diff --git a/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2.license b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2.license new file mode 100644 index 000000000..4ebda2856 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2.license @@ -0,0 +1,13 @@ +SPDX-FileCopyrightText: 2017 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 - 2021 MDAD project contributors +SPDX-FileCopyrightText: 2019 Aaron Raimist +SPDX-FileCopyrightText: 2019 Hugues De Keyzer +SPDX-FileCopyrightText: 2019 Sylvia van Os +SPDX-FileCopyrightText: 2020 - 2021 Marcel Partap +SPDX-FileCopyrightText: 2020 Chris van Dijk +SPDX-FileCopyrightText: 2021 boris runakov +SPDX-FileCopyrightText: 2022 László Várady +SPDX-FileCopyrightText: 2022 Shaleen Jain +SPDX-FileCopyrightText: 2024 Michael Hollister + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/templates/synapse/worker-labels.j2 b/roles/custom/matrix-synapse/templates/synapse/worker-labels.j2 index 9cf4feaed..2fcbe4add 100644 --- a/roles/custom/matrix-synapse/templates/synapse/worker-labels.j2 +++ b/roles/custom/matrix-synapse/templates/synapse/worker-labels.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2024 Slavi Pantaleev + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + {% if matrix_synapse_worker_container_labels_traefik_enabled %} traefik.enable=true diff --git a/roles/custom/matrix-synapse/templates/synapse/worker.yaml.j2.license b/roles/custom/matrix-synapse/templates/synapse/worker.yaml.j2.license new file mode 100644 index 000000000..2ab771284 --- /dev/null +++ b/roles/custom/matrix-synapse/templates/synapse/worker.yaml.j2.license @@ -0,0 +1,8 @@ +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2020 Max Klenk +SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev +SPDX-FileCopyrightText: 2021 boris runakov +SPDX-FileCopyrightText: 2022 David Mehren +SPDX-FileCopyrightText: 2024 Charles Wright + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-synapse/vars/main.yml b/roles/custom/matrix-synapse/vars/main.yml index 88edcb187..f4de30ac8 100644 --- a/roles/custom/matrix-synapse/vars/main.yml +++ b/roles/custom/matrix-synapse/vars/main.yml @@ -1,3 +1,11 @@ +# SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2022 Nikita Chernyi +# SPDX-FileCopyrightText: 2023 Alexis Yushin +# SPDX-FileCopyrightText: 2024 Charles Wright +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- matrix_synapse_client_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_server_fqn_matrix }}/_matrix/client/versions" @@ -246,7 +254,7 @@ matrix_synapse_workers_media_repository_endpoints: - ^/_matrix/client/v1/media/ - ^/_matrix/federation/v1/media/ - # ... and the following regular expressions matching media-specific administration APIs: + # … and the following regular expressions matching media-specific administration APIs: - ^/_synapse/admin/v1/purge_media_cache$ - ^/_synapse/admin/v1/room/.*/media.*$ diff --git a/roles/custom/matrix-user-creator/defaults/main.yml b/roles/custom/matrix-user-creator/defaults/main.yml index 20aad3d10..00642521c 100644 --- a/roles/custom/matrix-user-creator/defaults/main.yml +++ b/roles/custom/matrix-user-creator/defaults/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-user-creator is a role that aims to automate initial Matrix user account creation. diff --git a/roles/custom/matrix-user-creator/tasks/main.yml b/roles/custom/matrix-user-creator/tasks/main.yml index 2d9cc1c38..6a1a0b20c 100644 --- a/roles/custom/matrix-user-creator/tasks/main.yml +++ b/roles/custom/matrix-user-creator/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 Nikita Chernyi +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-user-creator/tasks/setup.yml b/roles/custom/matrix-user-creator/tasks/setup.yml index 55e1dedef..efb9647dc 100644 --- a/roles/custom/matrix-user-creator/tasks/setup.yml +++ b/roles/custom/matrix-user-creator/tasks/setup.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Validate Matrix users to create diff --git a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduit.yml b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduit.yml index 8bbd147b5..fa961d08f 100644 --- a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduit.yml +++ b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduit.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Conduit user registered - {{ user.username | quote }} diff --git a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduwuit.yml b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduwuit.yml new file mode 100644 index 000000000..a322db2f2 --- /dev/null +++ b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_conduwuit.yml @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +- name: Ensure conduwuit user registered - {{ user.username | quote }} + ansible.builtin.debug: + msg: "Not registering user. To register conduwuit users, message the conduwuit bot" diff --git a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_dendrite.yml b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_dendrite.yml index 2fede49f8..2db976f3e 100644 --- a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_dendrite.yml +++ b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_dendrite.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Dendrite user registered - {{ user.username | quote }} diff --git a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_matrix_authentication_service.yml b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_matrix_authentication_service.yml index ddf8eeff1..4fbeb03bf 100644 --- a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_matrix_authentication_service.yml +++ b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_matrix_authentication_service.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix Authentication Service user registered - {{ user.username | quote }} diff --git a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_synapse.yml b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_synapse.yml index 00189e5c5..1ae191e21 100644 --- a/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_synapse.yml +++ b/roles/custom/matrix-user-creator/tasks/util/ensure_user_registered_synapse.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Synapse user registered - {{ user.username | quote }} diff --git a/roles/custom/matrix-user-creator/tasks/util/validate_user.yml b/roles/custom/matrix-user-creator/tasks/util/validate_user.yml index e35475d4e..d21ffd0e1 100644 --- a/roles/custom/matrix-user-creator/tasks/util/validate_user.yml +++ b/roles/custom/matrix-user-creator/tasks/util/validate_user.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Fail if invalid username diff --git a/roles/custom/matrix-user-creator/vars/main.yml b/roles/custom/matrix-user-creator/vars/main.yml index 7b65bb8aa..e5ed50746 100644 --- a/roles/custom/matrix-user-creator/vars/main.yml +++ b/roles/custom/matrix-user-creator/vars/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix_user_creator_users holds a list of users that should be created on the Matrix homeserver. @@ -18,7 +23,7 @@ # initial_password: some-password # initial_type: admin # -# - username: john +# - username: alice # initial_password: some-password # initial_type: user # diff --git a/roles/custom/matrix-user-verification-service/defaults/main.yml b/roles/custom/matrix-user-verification-service/defaults/main.yml index d46b99194..1bc8cf60f 100644 --- a/roles/custom/matrix-user-verification-service/defaults/main.yml +++ b/roles/custom/matrix-user-verification-service/defaults/main.yml @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Samuel Meenzen +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # matrix-user-verification-service - Service to verify details of a user based on an Open ID token @@ -13,7 +20,6 @@ matrix_user_verification_service_container_image_self_build: "{{ matrix_architec matrix_user_verification_service_container_image_self_build_repo: "https://github.com/matrix-org/matrix-user-verification-service" matrix_user_verification_service_container_image_self_build_branch: "{{ 'master' if matrix_registration_version == 'latest' else matrix_user_verification_service_version }}" -# Fix version tag # renovate: datasource=docker depName=matrixdotorg/matrix-user-verification-service matrix_user_verification_service_version: "v3.0.0" @@ -24,8 +30,10 @@ matrix_user_verification_service_config_env_file: "{{ matrix_user_verification_s matrix_user_verification_service_docker_src_files_path: "{{ matrix_user_verification_service_base_path }}/docker-src" # Docker -matrix_user_verification_service_docker_image_name_prefix: "{{ matrix_container_global_registry_prefix }}" -matrix_user_verification_service_docker_image: "{{ matrix_user_verification_service_docker_image_name_prefix }}matrixdotorg/matrix-user-verification-service:{{ matrix_user_verification_service_version }}" +matrix_user_verification_service_docker_image: "{{ matrix_user_verification_service_docker_image_registry_prefix }}matrixdotorg/matrix-user-verification-service:{{ matrix_user_verification_service_version }}" +matrix_user_verification_service_docker_image_registry_prefix: "{{ 'localhost/' if matrix_user_verification_service_container_image_self_build else matrix_user_verification_service_docker_image_registry_prefix_upstream }}" +matrix_user_verification_service_docker_image_registry_prefix_upstream: "{{ matrix_user_verification_service_docker_image_registry_prefix_upstream_default }}" +matrix_user_verification_service_docker_image_registry_prefix_upstream_default: "docker.io/" matrix_user_verification_service_docker_image_force_pull: "{{ matrix_user_verification_service_docker_image.endswith(':latest') }}" # The base container network. It will be auto-created by this role if it doesn't exist already. diff --git a/roles/custom/matrix-user-verification-service/tasks/main.yml b/roles/custom/matrix-user-verification-service/tasks/main.yml index 1b65f86a6..7f7f8616e 100644 --- a/roles/custom/matrix-user-verification-service/tasks/main.yml +++ b/roles/custom/matrix-user-verification-service/tasks/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: diff --git a/roles/custom/matrix-user-verification-service/tasks/setup_install.yml b/roles/custom/matrix-user-verification-service/tasks/setup_install.yml index 8fa4b670e..a539168b5 100644 --- a/roles/custom/matrix-user-verification-service/tasks/setup_install.yml +++ b/roles/custom/matrix-user-verification-service/tasks/setup_install.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2024 David Mehren +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: "Ensure Matrix User Verification Service paths exist" diff --git a/roles/custom/matrix-user-verification-service/tasks/setup_uninstall.yml b/roles/custom/matrix-user-verification-service/tasks/setup_uninstall.yml index b61f9cdd2..8ce0c0234 100644 --- a/roles/custom/matrix-user-verification-service/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-user-verification-service/tasks/setup_uninstall.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-user-verification-service service diff --git a/roles/custom/matrix-user-verification-service/tasks/validate_config.yml b/roles/custom/matrix-user-verification-service/tasks/validate_config.yml index e283ce6c3..449cad532 100644 --- a/roles/custom/matrix-user-verification-service/tasks/validate_config.yml +++ b/roles/custom/matrix-user-verification-service/tasks/validate_config.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2023 MDAD project contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Verify homeserver_url is not empty @@ -32,3 +37,12 @@ with_items: - {'name': 'matrix_user_verification_service_uvs_homeserver_url', when: true} - {'name': 'matrix_user_verification_service_container_network', when: true} + +- name: (Deprecation) Catch and report renamed matrix-user-verification-service variables + ansible.builtin.fail: + msg: >- + Your configuration contains a variable, which now has a different name. + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). + when: "item.old in vars" + with_items: + - {'old': 'matrix_user_verification_service_docker_image_name_prefix', 'new': 'matrix_user_verification_service_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-user-verification-service/templates/.env.j2 b/roles/custom/matrix-user-verification-service/templates/.env.j2 index 359eed2a1..e07870e02 100644 --- a/roles/custom/matrix-user-verification-service/templates/.env.j2 +++ b/roles/custom/matrix-user-verification-service/templates/.env.j2 @@ -1,3 +1,9 @@ +{# +SPDX-FileCopyrightText: 2023 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +#} + UVS_ACCESS_TOKEN={{ matrix_user_verification_service_uvs_access_token }} UVS_HOMESERVER_URL={{ matrix_user_verification_service_uvs_homeserver_url }} UVS_DISABLE_IP_BLACKLIST={{ matrix_user_verification_service_uvs_disable_ip_blacklist }} @@ -8,4 +14,3 @@ UVS_LOG_LEVEL={{ matrix_user_verification_service_uvs_log_level }} {% if matrix_user_verification_service_uvs_pin_openid_verify_server_name | bool %} UVS_OPENID_VERIFY_SERVER_NAME={{ matrix_user_verification_service_uvs_openid_verify_server_name }} {% endif %} - diff --git a/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2 b/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2 index 19956496b..16df27a1c 100644 --- a/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2 +++ b/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2 @@ -13,7 +13,7 @@ DefaultDependencies=no [Service] Type=simple Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_user_verification_service_container_name }} 2>/dev/null' +ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_user_verification_service_container_name }} 2>/dev/null' ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_user_verification_service_container_name }} 2>/dev/null' @@ -40,7 +40,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network conne {% endfor %} ExecStart=/usr/bin/env docker start --attach matrix-user-verification-service -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_user_verification_service_container_name }} 2>/dev/null' +ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} {{ matrix_user_verification_service_container_name }} 2>/dev/null' ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_user_verification_service_container_name }} 2>/dev/null' Restart=always RestartSec=30 diff --git a/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2.license b/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2.license new file mode 100644 index 000000000..68dc46f44 --- /dev/null +++ b/roles/custom/matrix-user-verification-service/templates/systemd/matrix-user-verification-service.service.j2.license @@ -0,0 +1,4 @@ +SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2023 MDAD project contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix_playbook_migration/defaults/main.yml b/roles/custom/matrix_playbook_migration/defaults/main.yml index ba672d092..2cac16e45 100644 --- a/roles/custom/matrix_playbook_migration/defaults/main.yml +++ b/roles/custom/matrix_playbook_migration/defaults/main.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Controls if (`matrix_prometheus_node_exporter` -> `prometheus_node_exporter`) validation will run. @@ -18,6 +23,12 @@ matrix_playbook_migration_matrix_ntfy_migration_validation_enabled: true # Controls if (`matrix_redis` -> `redis`) validation will run. matrix_playbook_migration_matrix_redis_migration_validation_enabled: true +# Controls if (`redis` -> `valkey`) validation will run. +matrix_playbook_migration_redis_valkey_migration_validation_enabled: true + +# Controls if (`keydb` -> `valkey`) validation will run. +matrix_playbook_migration_keydb_valkey_migration_validation_enabled: true + # Controls if (`matrix_etherpad` -> `etherpad`) validation will run. matrix_playbook_migration_matrix_etherpad_migration_validation_enabled: true diff --git a/roles/custom/matrix_playbook_migration/tasks/cleanup_matrix_static_files_well_known.yml b/roles/custom/matrix_playbook_migration/tasks/cleanup_matrix_static_files_well_known.yml index 9e95826bd..7912d7eb4 100644 --- a/roles/custom/matrix_playbook_migration/tasks/cleanup_matrix_static_files_well_known.yml +++ b/roles/custom/matrix_playbook_migration/tasks/cleanup_matrix_static_files_well_known.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # Files used to be installed by the `matrix-base` role into `/matrix/static-files/.well-known/*`. diff --git a/roles/custom/matrix_playbook_migration/tasks/cleanup_usr_local_bin.yml b/roles/custom/matrix_playbook_migration/tasks/cleanup_usr_local_bin.yml index 54e6f4646..f6c561aef 100644 --- a/roles/custom/matrix_playbook_migration/tasks/cleanup_usr_local_bin.yml +++ b/roles/custom/matrix_playbook_migration/tasks/cleanup_usr_local_bin.yml @@ -1,3 +1,9 @@ +# SPDX-FileCopyrightText: 2022 Dan Arnfield +# SPDX-FileCopyrightText: 2022 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Find leftover Matrix scripts in /usr/local/bin diff --git a/roles/custom/matrix_playbook_migration/tasks/debian_docker_signedby_migration.yml b/roles/custom/matrix_playbook_migration/tasks/debian_docker_signedby_migration.yml index ac1c5cd13..5948ff539 100644 --- a/roles/custom/matrix_playbook_migration/tasks/debian_docker_signedby_migration.yml +++ b/roles/custom/matrix_playbook_migration/tasks/debian_docker_signedby_migration.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Remove old Docker apt repository, potentially lacking signed-by option diff --git a/roles/custom/matrix_playbook_migration/tasks/debian_docker_trusted_gpg_d_migration_migration.yml b/roles/custom/matrix_playbook_migration/tasks/debian_docker_trusted_gpg_d_migration_migration.yml index 81f396603..fc15a4a85 100644 --- a/roles/custom/matrix_playbook_migration/tasks/debian_docker_trusted_gpg_d_migration_migration.yml +++ b/roles/custom/matrix_playbook_migration/tasks/debian_docker_trusted_gpg_d_migration_migration.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check if the Docker apt repository file exists diff --git a/roles/custom/matrix_playbook_migration/tasks/devture_traefik_to_matrix_traefik.yml b/roles/custom/matrix_playbook_migration/tasks/devture_traefik_to_matrix_traefik.yml index 0b299279f..61b815e61 100644 --- a/roles/custom/matrix_playbook_migration/tasks/devture_traefik_to_matrix_traefik.yml +++ b/roles/custom/matrix_playbook_migration/tasks/devture_traefik_to_matrix_traefik.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This migrates Traefik from the old path (`/devture-traefik`) to the new path (`/matrix/traefik`, controlled by `traefik_base_path`), diff --git a/roles/custom/matrix_playbook_migration/tasks/docker_daemon_options_file_cleanup.yml b/roles/custom/matrix_playbook_migration/tasks/docker_daemon_options_file_cleanup.yml new file mode 100644 index 000000000..e7636161e --- /dev/null +++ b/roles/custom/matrix_playbook_migration/tasks/docker_daemon_options_file_cleanup.yml @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: 2025 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +--- + +# ansible-role-docker creates the Docker daemon options file (`/etc/docker/daemon.json`) when options are set +# via `matrix_playbook_docker_installation_daemon_options` (which influences the `docker_daemon_options` variable of the role). +# See: https://github.com/geerlingguy/ansible-role-docker/blob/acade8d01f11bcd5efecba6d8211138d7567ce4b/tasks/main.yml#L53-L66 +# +# However, it doesn't delete the file when the options list is empty. +# +# This means that people who previously force-disabled IPv6 (and injected `{'ipv6': false}` options, etc) +# or had some other custom options had that file created for them. +# Later, when they stopped setting these options, they were stuck with the configuration file that still retained them. +# +# Here, we make the file go away of no options are set. +# Idealy, this task would be part of the `ansible-role-docker` role, but it's not (yet). +# See: https://github.com/geerlingguy/ansible-role-docker/pull/498 +- name: Ensure the Docker daemon options file is deleted when no longer needed + when: matrix_playbook_docker_installation_daemon_options.keys() | length == 0 + ansible.builtin.file: + path: "{{ matrix_playbook_docker_installation_daemon_options_file_path }}" + state: absent + notify: restart docker diff --git a/roles/custom/matrix_playbook_migration/tasks/main.yml b/roles/custom/matrix_playbook_migration/tasks/main.yml index f72e2b03c..a4ccb8e3c 100644 --- a/roles/custom/matrix_playbook_migration/tasks/main.yml +++ b/roles/custom/matrix_playbook_migration/tasks/main.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - tags: @@ -24,6 +28,15 @@ block: - ansible.builtin.include_tasks: "{{ role_path }}/tasks/debian_docker_trusted_gpg_d_migration_migration.yml" +- when: matrix_playbook_docker_installation_enabled | bool + tags: + - setup-all + - install-all + - setup-docker + - install-docker + block: + - ansible.builtin.include_tasks: "{{ role_path }}/tasks/docker_daemon_options_file_cleanup.yml" + - tags: - setup-all - install-all diff --git a/roles/custom/matrix_playbook_migration/tasks/migrate_matrix_mailer.yml b/roles/custom/matrix_playbook_migration/tasks/migrate_matrix_mailer.yml index e1785774f..dae519322 100644 --- a/roles/custom/matrix_playbook_migration/tasks/migrate_matrix_mailer.yml +++ b/roles/custom/matrix_playbook_migration/tasks/migrate_matrix_mailer.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- # This migrates the mailer from the old path (`/matrix/mailer`) to the new path (`/matrix/exim-relay`, controlled by `exim_relay_base_path`), diff --git a/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_nginx_proxy.yml b/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_nginx_proxy.yml index acfacddb0..76f7ac301 100644 --- a/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_nginx_proxy.yml +++ b/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_nginx_proxy.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Check existence of matrix-nginx-proxy service diff --git a/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_ssl.yml b/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_ssl.yml index ecfad1591..11b84bb47 100644 --- a/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_ssl.yml +++ b/roles/custom/matrix_playbook_migration/tasks/uninstall_matrix_ssl.yml @@ -1,3 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: Ensure Matrix SSL-related files are deleted diff --git a/roles/custom/matrix_playbook_migration/tasks/validate_config.yml b/roles/custom/matrix_playbook_migration/tasks/validate_config.yml index b3b792a78..437d1fc69 100644 --- a/roles/custom/matrix_playbook_migration/tasks/validate_config.yml +++ b/roles/custom/matrix_playbook_migration/tasks/validate_config.yml @@ -1,10 +1,16 @@ +# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev +# SPDX-FileCopyrightText: 2024 - 2025 MDAD project contributors +# SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- - name: (Deprecation) Catch and report renamed Matrix playbook settings ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_vars_yml_snapshotting_enabled', 'new': 'devture_playbook_state_preserver_vars_preservation_enabled'} @@ -76,9 +82,11 @@ The matrix-postgres-backup role in the playbook has been replaced with the ansible-role-postgres-backup role (https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `matrix_postgres`-prefixed variables (`matrix_postgres_*` -> `postgres_*`). + Please rename all `matrix_postgres`-prefixed variables (`matrix_postgres_*` -> `postgres_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_postgres_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_postgres_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'matrix_postgres_.*') | list | items2dict" - name: (Deprecation) Catch and report matrix_mailer_ variables @@ -87,9 +95,11 @@ The matrix-mailer role in the playbook has been replaced with the exim-relay role (https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `matrix_mailer`-prefixed variables (`matrix_mailer_*` -> `exim_relay_*`). + Please rename all `matrix_mailer`-prefixed variables (`matrix_mailer_*` -> `exim_relay_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_mailer_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_mailer_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'matrix_mailer_.*') | list | items2dict" - when: matrix_playbook_migration_matrix_prometheus_node_exporter_migration_validation_enabled | bool @@ -103,8 +113,12 @@ msg: >- The matrix-prometheus-node-exporter role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`). - We found usage of the following variables: {{ matrix_playbook_migration_matrix_prometheus_node_exporter_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_matrix_prometheus_node_exporter_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_matrix_prometheus_node_exporter_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_prometheus_postgres_exporter_migration_validation_enabled | bool @@ -118,8 +132,12 @@ msg: >- The matrix-prometheus-postgres-exporter role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`). - We found usage of the following variables: {{ matrix_playbook_migration_matrix_prometheus_postgres_exporter_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_matrix_prometheus_postgres_exporter_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_matrix_prometheus_postgres_exporter_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_backup_borg_migration_validation_enabled | bool @@ -133,8 +151,12 @@ msg: >- The matrix-backup-borg role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_backup_borg_` -> `backup_borg_`). - We found usage of the following variables: {{ matrix_playbook_migration_backup_borg_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_backup_borg_` -> `backup_borg_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_backup_borg_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_backup_borg_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_grafana_migration_validation_enabled | bool @@ -148,8 +170,12 @@ msg: >- The matrix-grafana role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-grafana. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_grafana_` -> `grafana_`). - We found usage of the following variables: {{ matrix_playbook_migration_grafana_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_grafana_` -> `grafana_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_grafana_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_grafana_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_ntfy_migration_validation_enabled | bool @@ -163,8 +189,12 @@ msg: >- The matrix-ntfy role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-ntfy. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_ntfy_` -> `ntfy_`). - We found usage of the following variables: {{ matrix_playbook_migration_ntfy_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_ntfy_` -> `ntfy_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_ntfy_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_ntfy_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_redis_migration_validation_enabled | bool @@ -178,10 +208,50 @@ msg: >- The matrix-redis role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-redis. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_redis_` -> `redis_`). - We found usage of the following variables: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_redis_` -> `redis_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_redis_migration_vars | length > 0" +- when: matrix_playbook_migration_redis_valkey_migration_validation_enabled | bool + block: + - ansible.builtin.set_fact: + matrix_playbook_migration_redis_migration_vars: |- + {{ vars | dict2items | selectattr('key', 'match', 'redis_.*') | list | items2dict }} + + - name: (Deprecation) Catch and report matrix_redis variables + ansible.builtin.fail: + msg: >- + The Redis role that used to be part of this playbook has been superseded by https://github.com/mother-of-all-self-hosting/ansible-role-valkey. + + Please rename all variables (`redis_` -> `valkey_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }} + when: "matrix_playbook_migration_redis_migration_vars | length > 0" + +- when: matrix_playbook_migration_keydb_valkey_migration_validation_enabled | bool + block: + - ansible.builtin.set_fact: + matrix_playbook_migration_keydb_migration_vars: |- + {{ vars | dict2items | selectattr('key', 'match', 'keydb_.*') | list | items2dict }} + + - name: (Deprecation) Catch and report matrix_redis variables + ansible.builtin.fail: + msg: >- + The KeyDB role that used to be part of this playbook has been superseded by https://github.com/mother-of-all-self-hosting/ansible-role-valkey. + + Please rename all variables (`keydb_` -> `valkey_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_keydb_migration_vars.keys() | join(', ') }} + when: "matrix_playbook_migration_keydb_migration_vars | length > 0" + - when: matrix_playbook_migration_matrix_etherpad_migration_validation_enabled | bool block: - ansible.builtin.set_fact: @@ -193,8 +263,12 @@ msg: >- The matrix-etherpad role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-etherpad. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_etherpad_` -> `etherpad_`). - We found usage of the following variables: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_etherpad_` -> `etherpad_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_etherpad_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_aux_migration_validation_enabled | bool @@ -208,8 +282,12 @@ msg: >- The matrix-aux role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-aux. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_aux_` -> `aux_`). - We found usage of the following variables: {{ matrix_playbook_migration_aux_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_aux_` -> `aux_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_aux_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_aux_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_jitsi_migration_validation_enabled | bool @@ -223,8 +301,12 @@ msg: >- The matrix-jitsi role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-jitsi. The new role is compatible with the old one, but uses different names for its variables. - Please change your configuration (vars.yml) to rename all variables (`matrix_jitsi_` -> `jitsi_`). - We found usage of the following variables: {{ matrix_playbook_migration_jitsi_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_jitsi_` -> `jitsi_`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_jitsi_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_jitsi_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled | bool @@ -237,8 +319,10 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration (vars.yml) to rename all variables (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`). - We found usage of the following variables: {{ matrix_playbook_migration_postmoogle_migration_vars.keys() | join(', ') }} + + Please rename all variables (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`) on your configuration file (vars.yml). + + The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_postmoogle_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_postmoogle_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_nginx_proxy_elimination_variable_transition_checks_enabled | bool @@ -247,7 +331,7 @@ ansible.builtin.fail: msg: >- Your configuration contains a variable, which now has a different name. - Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`). + Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "item.old in vars" with_items: - {'old': 'matrix_nginx_proxy_proxy_matrix_metrics_enabled', 'new': 'matrix_metrics_exposure_enabled'} @@ -341,8 +425,10 @@ ansible.builtin.fail: msg: >- The matrix-nginx-proxy role that used to be part of this playbook has been removed. - You should remove all its variables (`matrix_nginx_proxy_*`) from your vars.yml file. - We found usage of the following variables: {{ matrix_playbook_migration_nginx_proxy_migration_vars.keys() | join(', ') }} + + You should remove all its variables (`matrix_nginx_proxy_*`) from your configuration file (vars.yml). + + The following variables in your configuration should be renamed: {{ matrix_playbook_migration_nginx_proxy_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_nginx_proxy_migration_vars | length > 0" - when: matrix_playbook_migration_matrix_ssl_leftover_variable_checks_enabled | bool @@ -355,8 +441,10 @@ ansible.builtin.fail: msg: >- The matrix-nginx-proxy role that used to be part of this playbook has been removed. - You should remove all its variables (`matrix_ssl_*`) from your vars.yml file. - We found usage of the following variables: {{ matrix_playbook_migration_ssl_migration_vars.keys() | join(', ') }} + + You should remove all its variables (`matrix_ssl_*`) from your configuration file (vars.yml). + + The following variables in your configuration should be renamed: {{ matrix_playbook_migration_ssl_migration_vars.keys() | join(', ') }} when: "matrix_playbook_migration_ssl_migration_vars | length > 0" - block: @@ -387,20 +475,24 @@ The postgres-backup role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `devture_postgres_backup_`-prefixed variables (`devture_postgres_backup_*` -> `postgres_backup_*`). + Please rename all `devture_postgres_backup_`-prefixed variables (`devture_postgres_backup_*` -> `postgres_backup_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_postgres_backup_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_postgres_backup_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'devture_postgres_backup_.*') | list | items2dict" - name: (Deprecation) Catch and report devture_postgres variables ansible.builtin.fail: msg: |- - The postgres role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-postgres). + The Postgres role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-postgres). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `devture_postgres_`-prefixed variables (`devture_postgres_*` -> `postgres_*`). + Please rename all `devture_postgres_`-prefixed variables (`devture_postgres_*` -> `postgres_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_postgres_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_postgres_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'devture_postgres_.*') | list | items2dict" - name: (Deprecation) Catch and report traefik_certs_dumper variables @@ -409,9 +501,11 @@ The traefik-certs-dumper role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `devture_traefik_certs_dumper_`-prefixed variables (`devture_traefik_certs_dumper_*` -> `traefik_certs_dumper_*`). + Please rename all `devture_traefik_certs_dumper_`-prefixed variables (`devture_traefik_certs_dumper_*` -> `traefik_certs_dumper_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_certs_dumper_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_certs_dumper_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'devture_traefik_certs_dumper_.*') | list | items2dict" - name: (Deprecation) Catch and report devture_traefik variables @@ -420,7 +514,47 @@ The traefik role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-traefik). The new role is pretty much the same, but uses differently named variables. - Please change your configuration (vars.yml) to rename all `devture_traefik_`-prefixed variables (`devture_traefik_*` -> `traefik_*`). + Please rename all `devture_traefik_`-prefixed variables (`devture_traefik_*` -> `traefik_*`) on your configuration file (vars.yml). - The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | map (attribute='key') | join(', ') }} + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | map(attribute='key') | join(', ') }} when: "vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | list | items2dict" + +- name: (Deprecation) Catch and report devture_container_socket_proxy variables + ansible.builtin.fail: + msg: |- + The container-socket-proxy role in the playbook now lives under the MASH organization (https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy). + The new role is pretty much the same, but uses differently named variables. + + Please rename all `devture_container_socket_proxy_`-prefixed variables (`devture_container_socket_proxy_*` -> `container_socket_proxy_*`) on your configuration file (vars.yml). + + After renaming them, please do not forget to fetch the Ansible role. See docs/maintenance-upgrading-services.md for details about how to do so. + + The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_container_socket_proxy_.*') | map(attribute='key') | join(', ') }} + when: "vars | dict2items | selectattr('key', 'match', 'devture_container_socket_proxy_.*') | list | items2dict" + +- name: (Deprecation) Catch and report mautrix-hangouts variables + ansible.builtin.fail: + msg: |- + The Google Hangouts service was discontinued on 1st of November 2022. + The mautrix-hangouts bridge has been deprecated in the playbook since December 2024 and was completely removed from the playbook in February 2025. + + Please remove all `matrix_mautrix_hangouts_*` variables from your configuration file (vars.yml). + + You may also wish to uninstall the bridge manually. See `docs/configuring-playbook-bridge-mautrix-hangouts.md` for more information. + + The following variables in your configuration need to be removed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_mautrix_hangouts_.*') | map(attribute='key') | join(', ') }} + when: "vars | dict2items | selectattr('key', 'match', 'matrix_mautrix_hangouts_.*') | list | items2dict" + +- name: (Deprecation) Catch and report Email2Matrix variables + ansible.builtin.fail: + msg: |- + The Email2Matrix service has been superseded by the Postmoogle bridge for a long time now and was completely removed from the playbook in February 2025. + + Please remove all `matrix_email2matrix_*` variables from your configuration file (vars.yml). + + You may also wish to uninstall the bridge manually. See `docs/configuring-playbook-email2matrix.md` for more information. + + The following variables in your configuration need to be removed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_email2matrix_.*') | map(attribute='key') | join(', ') }} + when: "vars | dict2items | selectattr('key', 'match', 'matrix_email2matrix_.*') | list | items2dict" diff --git a/setup.yml b/setup.yml index 86b9dfa7f..0fc03a23e 100644 --- a/setup.yml +++ b/setup.yml @@ -47,8 +47,6 @@ - role: galaxy/postgres - - galaxy/redis - - galaxy/keydb - galaxy/valkey - role: custom/matrix-authentication-service @@ -66,7 +64,6 @@ - custom/matrix-bridge-wechat - custom/matrix-bridge-mautrix-facebook - custom/matrix-bridge-mautrix-twitter - - custom/matrix-bridge-mautrix-hangouts - custom/matrix-bridge-mautrix-googlechat - custom/matrix-bridge-mautrix-instagram - custom/matrix-bridge-mautrix-meta-messenger @@ -78,6 +75,7 @@ - custom/matrix-bridge-mautrix-wsproxy - custom/matrix-bridge-mautrix-discord - custom/matrix-bridge-mautrix-slack + - custom/matrix-bridge-mautrix-bluesky - custom/matrix-bridge-mx-puppet-discord - custom/matrix-bridge-mx-puppet-groupme - custom/matrix-bridge-mx-puppet-steam @@ -106,6 +104,7 @@ - custom/matrix-synapse-reverse-proxy-companion - custom/matrix-dendrite - custom/matrix-conduit + - custom/matrix-conduwuit - custom/matrix-synapse-admin - custom/matrix-synapse-usage-exporter - galaxy/prometheus_node_exporter @@ -119,6 +118,7 @@ - custom/matrix-client-hydrogen - custom/matrix-client-cinny - custom/matrix-client-schildichat + - custom/matrix-client-fluffychat - galaxy/jitsi - custom/matrix-user-verification-service - custom/matrix-ldap-registration-proxy @@ -126,7 +126,6 @@ - custom/matrix-dimension - galaxy/etherpad - custom/matrix-sliding-sync - - custom/matrix-email2matrix - custom/matrix-sygnal - galaxy/ntfy - custom/matrix-static-files diff --git a/setup.yml.license b/setup.yml.license new file mode 100644 index 000000000..1668032ac --- /dev/null +++ b/setup.yml.license @@ -0,0 +1,36 @@ +SPDX-FileCopyrightText: 2017 - 2025 Slavi Pantaleev +SPDX-FileCopyrightText: 2019 - 2025 MDAD project contributors +SPDX-FileCopyrightText: 2019 Dan Arnfield +SPDX-FileCopyrightText: 2019 Edgars Voroboks +SPDX-FileCopyrightText: 2020 Björn Marten +SPDX-FileCopyrightText: 2020 Hugues Morisset +SPDX-FileCopyrightText: 2020 Marcel Partap +SPDX-FileCopyrightText: 2020 Max Klenk +SPDX-FileCopyrightText: 2020 Rodrigo Belem +SPDX-FileCopyrightText: 2020 Scott Crossen +SPDX-FileCopyrightText: 2020 Tulir Asokan +SPDX-FileCopyrightText: 2021 Aaron Raimist +SPDX-FileCopyrightText: 2021 Alexandar Mechev +SPDX-FileCopyrightText: 2021 Béla Becker +SPDX-FileCopyrightText: 2021 Cody Neiman +SPDX-FileCopyrightText: 2021 Marcus Proest +SPDX-FileCopyrightText: 2021 Matthew Cengia +SPDX-FileCopyrightText: 2021 Raymond Coetzee +SPDX-FileCopyrightText: 2021 Toni Spets +SPDX-FileCopyrightText: 2021 Yannick Goossens +SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi +SPDX-FileCopyrightText: 2022 Charles Wright +SPDX-FileCopyrightText: 2022 Jip J. Dekker +SPDX-FileCopyrightText: 2022 Julian Foad +SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr +SPDX-FileCopyrightText: 2022 Vladimir Panteleev +SPDX-FileCopyrightText: 2022 Warren Bailey +SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister +SPDX-FileCopyrightText: 2023 Antonis Christofides +SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman +SPDX-FileCopyrightText: 2023 Johan Swetzén +SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty +SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu +SPDX-FileCopyrightText: 2024 Suguru Hirahara + +SPDX-License-Identifier: AGPL-3.0-or-later