1119 Commits

Author SHA1 Message Date
Slavi Pantaleev
d5c24fcafe Upgrade LiveKit Server (v1.8.4-1 -> v1.8.4-2) 2025-03-15 08:31:48 +02:00
Slavi Pantaleev
4d61cc571b Merge branch 'master' into element-call-integration 2025-03-15 08:19:05 +02:00
Slavi Pantaleev
9a231a815d Fix duplicate variable override (matrix_wechat_container_image_registry_prefix_upstream) 2025-03-15 08:18:58 +02:00
Slavi Pantaleev
9c24064fb6 Make Element Call fail during validation if on an unsupported architecture (like arm32) 2025-03-15 08:14:49 +02:00
Slavi Pantaleev
a757b515fb Merge branch 'master' into element-call-integration 2025-03-15 08:11:16 +02:00
Slavi Pantaleev
2a6b746acd stdout_callback = yaml -> result_format = yaml
Fixes:

> [DEPRECATION WARNING]: community.general.yaml has been deprecated. The plugin has been superseded by the the option `result_format=yaml` in callback plugin ansible.builtin.default from ansible-core 2.13 onwards. This feature will be removed from
community.general in version 13.0.0. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

Ref:

- https://docs.ansible.com/ansible/latest/collections/community/general/yaml_callback.html
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/default_callback.html#parameter-result_format
2025-03-15 08:09:59 +02:00
Slavi Pantaleev
ba9cedbeda Merge branch 'master' into element-call-integration 2025-03-15 08:03:03 +02:00
Slavi Pantaleev
f8f7ffc7dd Minor adjustment in docs/configuring-ipv6.md 2025-03-15 07:54:52 +02:00
Slavi Pantaleev
4a638c2df3 Prepare Element Call announcement text on the changelog 2025-03-15 07:52:04 +02:00
Slavi Pantaleev
155d5dad38 Mention the compatible clients on Element Call docs, more cross-linking & consistency fixes 2025-03-15 07:49:49 +02:00
Slavi Pantaleev
6b8a3fc891 Merge branch 'master' into element-call-integration 2025-03-15 07:38:02 +02:00
Slavi Pantaleev
95dcaf6e2d become* -> ansible_become* for inventory hosts 2025-03-15 07:28:52 +02:00
Aine
1c53f8dd1d introduce new synapse vars 2025-03-14 22:44:35 +02:00
Slavi Pantaleev
3ea1ea2f34 Merge branch 'master' into element-call-integration 2025-03-14 22:29:14 +02:00
Slavi Pantaleev
60e2e035a2 Add matrix_synapse_rc_delayed_event_mgmt variable
Ref:
- c4747dd177/docs/self-hosting.md (a-matrix-homeserver)
- e39fe3bc7f
2025-03-14 22:29:08 +02:00
Slavi Pantaleev
d3913a015e Upgrade LiveKit Server (v1.8.4-0 -> v1.8.4-1) 2025-03-14 20:04:18 +02:00
Slavi Pantaleev
ac7f96806d Relocate the livekit-server Ansible role to its own repository in the MASH organization 2025-03-14 19:58:09 +02:00
Slavi Pantaleev
b8d800f6ef Add "Federation" as a prerequisite for Element Call (indirect, via LiveKit JWT Service)
Ref:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2725250554
- f5f5374c4b/main.go (L135-L146)
2025-03-14 19:37:29 +02:00
Slavi Pantaleev
2c1c49444a Merge branch 'master' into element-call-integration 2025-03-14 19:32:48 +02:00
Catalan Lover
6077c7a1d6 Fix bug in marking Pantal and Rust Crypto as mutually exclusive. 2025-03-14 19:28:20 +02:00
Slavi Pantaleev
8e883a5554 Fail if Synapse experimental feature QR code login (MSC4108) is enabled while Next-Gen Auth (MSC3861) is not 2025-03-14 19:06:37 +02:00
Catalan Lover
e073685632 Fix D4A Config Validation checking for old variable and fix docs ref 2025-03-14 13:06:47 +02:00
Catalan Lover
808d0202c7 Fix Rust Crypto variables being partially missed in Rename 2025-03-14 12:23:25 +02:00
Suguru Hirahara
0b39528ae3 Update docs/configuring-playbook-ssl-certificates.md: add the introduction of Update Kuma on the MASH playbook
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-14 12:22:49 +02:00
Suguru Hirahara
824c446920 Update docs/configuring-playbook-ssl-certificates.md: tidy up
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-14 12:22:49 +02:00
Suguru Hirahara
8637c1d7d7 Update docs/configuring-playbook-ntfy.md: add the instruction to log in to the account with authentication enabled
Copied from 6a9ef8c147/docs/services/ntfy.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-14 09:25:52 +02:00
Benjamin Blacher
bf1efda094 Add support for configuring Synapse's MSC4133 (Custom Profile Fields) (#4171)
* Add support for configuring Synapse's MSC4133 (Custom Profile Fields) experimental feature

* Reorder experimental_features in homeserver.yaml.j2 alphabetically

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-13 21:28:23 +02:00
Catalan Lover
166f412783 Modernise Draupnir Configuration Variable Names (#4170)
* Modernise Draupnir Configuration Variable Names

* Move Draupnir deprecation-check task before undefined-variables-check

* Fix trailing spaces in Draupnir's `validate_config.yml`

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-13 20:25:30 +02:00
Catalan Lover
0086ae7f58 Update D4A Configuration (#4166)
* Update D4A Configuration

D4A had some breaking config changes so this commit fixes them and gets us back into compliance with upstream. And since we run in a docker container we can use the /data/storage default.

* Update D4A Configuration to harmonise with bot mode

Change the default config for D4A to align with bot mode default in mdad. This should also avert a bit of a mess of a potential bug.

* Change D4A Room State Backing Store variable name and fix SPDX Headers

* Align D4A config with new schema

* Fix D4A Config Lint Error

* Update D4A SPDX Entries

* Do not use double quotes around `to_json` values

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-13 20:20:09 +02:00
Slavi Pantaleev
6bc0185d50 Add Element Call, LiveKit Server and LiveKit JWT Service to README.md
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2720039742
2025-03-13 09:43:22 +02:00
Suguru Hirahara
dc581d0b7a Add ensure-users-created to the list of available tags on playbook-tags.md (#4169) 2025-03-13 07:04:56 +02:00
Catalan Lover
5bb8a36f34 Update Mjolnir Anti Spam module to latest and add Renovate 2025-03-13 06:20:20 +02:00
Slavi Pantaleev
a0470fe248 Minor rewording in LiveKit Server docs 2025-03-12 19:12:30 +02:00
Slavi Pantaleev
d4ceebc6a9 Add Element Call, LiveKit Server and LiveKit JWT Service to docs/container-images.md 2025-03-12 19:12:22 +02:00
Slavi Pantaleev
6a86de958f Apply suggestions from code review
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2025-03-12 19:05:51 +02:00
Slavi Pantaleev
d9df022d55 Merge branch 'master' into element-call-integration 2025-03-12 18:40:31 +02:00
Slavi Pantaleev
2f30886b19 Rework license information adding for $instagram_role_path/README.md to fix reuse lint 2025-03-12 18:40:23 +02:00
Slavi Pantaleev
60bc3a9a7b Ensure container labels file is empty if nothing is exposed for mautrix-meta bridges
Without this, we get a warning message from Traefik:

> INF Could not create a router for the container: too many services providerName=docker

Possibly due to the multiple services defined there without a single
explicitly-defined router.
2025-03-12 18:35:13 +02:00
Slavi Pantaleev
c9b2f2c995 Adjust bin/rebuild-mautrix-meta-instagram.sh script to add license headers and rebuild matrix-bridge-mautrix-meta-instagram with it 2025-03-12 18:34:24 +02:00
Slavi Pantaleev
676f9dd9ad Merge branch 'master' into element-call-integration 2025-03-12 18:00:45 +02:00
Slavi Pantaleev
2be709e2ce Adjust some _registry_prefix_upstream variables in group_vars/matrix_servers to make them respect matrix_container_global_registry_prefix_override
Follow-up to 3492d31dca
2025-03-12 18:00:28 +02:00
Slavi Pantaleev
3492d31dca Rename some leftover _name_prefix variables (to _registry_prefix) 2025-03-12 17:57:10 +02:00
Slavi Pantaleev
5287b8ddeb Fix use of undefined variable matrix_authentication_service_container_image_name_prefix 2025-03-12 17:51:19 +02:00
Slavi Pantaleev
251561ff81 Simplify LiveKit Server role by removing unused/untested HTTP middleware variables 2025-03-12 17:47:01 +02:00
Slavi Pantaleev
1e60f41a59 Restore Element Call HTTP headers to more secure/privacy-respecting values 2025-03-12 17:44:00 +02:00
Slavi Pantaleev
f8e84c4b2f Remove useless matrix_element_call_port variable 2025-03-12 17:43:34 +02:00
Slavi Pantaleev
3f5e8f656b Switch default LiveKit server endpoint to one under the matrix. domain and polish-up docs 2025-03-12 17:35:30 +02:00
Slavi Pantaleev
72118f2f03 Fix LiveKitServer middlware name (matrix-livekit-server-server-slashless-redirect -> matrix-livekit-server-slashless-redirect) 2025-03-12 16:56:06 +02:00
Slavi Pantaleev
585377975b Adjust LiveKit Server ports and exposure 2025-03-12 16:51:10 +02:00
Slavi Pantaleev
22ef579444 Make livekit-jwt-service communicate with livekit-server via public URLs
Communicating via container URLs works, but the URL provided to
livekit-jwt-service as `LIVEKIT_URL` is also passed to the user later
and it must be a public one at that point.

It'd be great if livekit-jwt-service can be given 2 different URLs
(e.g. `LIVEKIT_URL` and `LIVEKIT_URL_PUBLIC`) and only announce the
public one to the user, but there's no support for this yet.
2025-03-12 15:44:31 +02:00
Slavi Pantaleev
32f8c6de6e Merge branch 'master' into element-call-integration 2025-03-12 15:27:42 +02:00
renovate[bot]
893b237225 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.12 2025-03-12 14:20:27 +02:00
Aine
79cc333be2 Postmoogle v0.9.26 (crypto init fix) 2025-03-12 12:38:37 +02:00
Suguru Hirahara
1e8d9a0c24 Update docs/configuring-playbook-ntfy.md: add pronunciation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-12 17:55:29 +09:00
Slavi Pantaleev
370feb740f Merge branch 'master' into element-call-integration 2025-03-12 10:04:19 +02:00
Slavi Pantaleev
a9ee537f83 Only point matrix_synapse_report_stats_endpoint to matrix-synapse-usage-exporter if it's enabled
Fixup related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3442
2025-03-12 10:04:06 +02:00
Slavi Pantaleev
9a11e5e1fe Auto-enable experimental Synapse features required by Element Call when Element Call is enabled 2025-03-12 09:19:03 +02:00
Slavi Pantaleev
8291b2f99d Merge branch 'master' into element-call-integration 2025-03-12 09:14:50 +02:00
Slavi Pantaleev
c5a03efdf6 Increase default Synapse/rc_message rate limits
The new rate limits are more suitable for running Element Call.

Ref:

- 93ae2aed98/docs/self-hosting.md (a-matrix-homeserver)
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562

Instead of trying to increase them conditionally only when Element Call
is enabled, it's simpler and good-enough to just increase them in all cases.
2025-03-12 09:13:43 +02:00
Slavi Pantaleev
63f81bf268 Add support for configuring Synapse's MSC4222 (adding state_after to sync v2) experimental feature
This is required by Element Call.

Ref:

- 93ae2aed98/docs/self-hosting.md (a-matrix-homeserver)
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562
2025-03-12 09:12:39 +02:00
Slavi Pantaleev
f5a0be0a7b Add support for configuring Synapse's MSC4140 (Delayed Events) experimental feature
This is required by Element Call.

Ref:

- 93ae2aed98/docs/self-hosting.md (a-matrix-homeserver)
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562
2025-03-12 09:10:35 +02:00
Slavi Pantaleev
4fb0b75942 Reorder Synapse config's experimental_features alphabetically 2025-03-12 09:05:59 +02:00
Slavi Pantaleev
890f10f765 Make matrix_livekit_jwt_service_public_url respect matrix_livekit_jwt_service_path_prefix 2025-03-12 09:01:35 +02:00
Slavi Pantaleev
031cf68cbb Remove unused matrix_element_call_metrics_* variables 2025-03-12 08:59:50 +02:00
Slavi Pantaleev
5961841e52 Make matrix-livekit-jwt-service role not reference foreign variables (except the matrix-base ones) 2025-03-12 08:59:05 +02:00
Slavi Pantaleev
2be4923aef Make Element Call role not reference foreign variables (except the matrix-base ones) 2025-03-12 08:56:15 +02:00
Slavi Pantaleev
23efad9cb7 Rework Element Call config.json templating 2025-03-12 08:51:52 +02:00
Slavi Pantaleev
6b55ba29ab Make Element Call refuse a path prefix other than / 2025-03-12 08:46:11 +02:00
Slavi Pantaleev
0d1112638d Update LiveKit JWT service path prefix (/lk-jwt-service -> /livekit-jwt-service) 2025-03-12 08:07:56 +02:00
Slavi Pantaleev
c3c2ba34b4 Split matrix_element_call_systemd_required_services_list into _default, _auto and _custom 2025-03-12 08:02:29 +02:00
Slavi Pantaleev
0215708f79 Remove some useless variables and rework environment variables variable for livekit-jwt-service 2025-03-12 08:00:28 +02:00
Slavi Pantaleev
e1b57f3d45 Pin livekit-jwt-service to released (v0.2.0) and adapt configuration 2025-03-12 07:56:47 +02:00
Slavi Pantaleev
de2a8f11d2 _name_prefix -> _registry_prefix changes for LiveKit roles 2025-03-12 07:47:07 +02:00
Slavi Pantaleev
2a69ca35be Clean up Element Call group vars vs defaults/main.yml mixup and make some minor LiveKit updates 2025-03-12 07:42:40 +02:00
Slavi Pantaleev
72d64cfa6b Merge branch 'master' into element-call-integration 2025-03-12 07:03:53 +02:00
Slavi Pantaleev
5dfbefd649 Fix comment indentation in examples/reverse-proxies/caddy2-in-container/docker-compose.yaml 2025-03-12 07:03:47 +02:00
Slavi Pantaleev
f161c7c58f Add newlines at end of files 2025-03-12 07:03:00 +02:00
Slavi Pantaleev
6c6b44dc25 Add license information to Element Call and LiveKit roles 2025-03-12 06:58:00 +02:00
Slavi Pantaleev
8eb1c57e2b Merge branch 'master' into element-call-integration 2025-03-12 06:36:48 +02:00
Slavi Pantaleev
aa36acdef1 Remove useless matrix_static_files_client_redirect_root_uri_to_domain variable definition 2025-03-12 06:36:24 +02:00
Slavi Pantaleev
61069d6313 Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration 2025-03-12 06:34:00 +02:00
Slavi Pantaleev
74d6a99b1e Adjust names for Element Call tasks and make uninstallation more consistent with other roles 2025-03-12 06:32:22 +02:00
Slavi Pantaleev
81a30f17ac Remove some superficial comments 2025-03-12 06:29:39 +02:00
Slavi Pantaleev
413d591562 Bring container-network-creation tasks up-to-date for Element Call and LiveKit-related services 2025-03-12 06:27:11 +02:00
Slavi Pantaleev
7572522820 Merge branch 'master' into element-call-integration 2025-03-12 06:24:34 +02:00
Suguru Hirahara
5ece1fea5a Update docs/configuring-playbook-ntfy.md: reflect the role's documentation
Based on 4e27dafc5c/docs/configuring-ntfy.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-12 06:15:10 +02:00
Suguru Hirahara
104bc63741 Fix docs/configuring-playbook-ntfy.md: link to the role's documentation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-12 06:15:10 +02:00
Suguru Hirahara
72f28474c2 Update roles/custom/matrix-client-element/templates/env.j2: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-12 12:29:49 +09:00
Slavi Pantaleev
40732e3594 Upgrade Element Web (v1.11.94 -> v1.11.95) and patch healthcheck
Related to:

- https://github.com/element-hq/element-web/pull/29471
- 16f9e7dd46
2025-03-11 22:34:59 +02:00
Slavi Pantaleev
a5d850d800 Add matrix_client_element_environment_variable_element_web_port and matrix_client_element_environment_variables_extension variables 2025-03-11 22:34:59 +02:00
Slavi Pantaleev
e65d198841 Run Element Web in tightened/read-only mode without a custom nginx config
Newer Element Web versions allow for the nginx port to be
overriden, etc., and provide instructions for running in read-only mode.

This makes our custom `nginx.conf` patches unnecessary.

Passing the correct `ELEMENT_WEB_PORT` environment variable
also helps with future changes.

Another benefit of this (besides keeping closer to upstream
recommendations and the improved simplicity) is that:

- the container can run its entrypoint env-substitutions code now,
  without reporting errors

- IPv6 for nginx works, so `matrix-client-element:8080` is accessible
  via IPv6 on the container network now
  (this affects only for Traefik's communicaton with Element Web
  internally; public connectivity was handled by Traefik and IPv6 was
  available there even before)

Ref:

- 2052080d7d/docs/install.md (docker)
- https://github.com/element-hq/element-web/pull/28849
- https://github.com/element-hq/element-web/pull/28840
2025-03-11 22:32:35 +02:00
Slavi Pantaleev
16f9e7dd46 Revert "Upgrade Element Web (v1.11.94 -> v1.11.95)"
This reverts commit 178f7a9fff.

Element v1.11.95 doesn't seem to work. The container starts and is
unhealthy.

Until this is investigated and fixed, reverting.
2025-03-11 19:26:00 +02:00
Slavi Pantaleev
bda63024ee Upgrade Synapse (v1.125.0 -> v1.126.0) 2025-03-11 19:14:37 +02:00
Slavi Pantaleev
178f7a9fff Upgrade Element Web (v1.11.94 -> v1.11.95) 2025-03-11 19:14:08 +02:00
Slavi Pantaleev
1313f1e414 Make base domain root path redirect also handle URLs with query strings (passing them along)
Previously `https://example.com` and `https://example.com/` would be
redirected to `https://matrix.example.com`.

However, `https://example.com/?something` was not handled and was tried
to be served as a file by matrix-static-files for this base domain.

From now on, paths containing query strings will be handled as well
and the query string will be passed along.
Example: `https://example.com/?something` -> `https://matrix.example.com/?something`
2025-03-11 19:07:33 +02:00
Aine
ccab72aa2e Postmoogle v0.9.25 2025-03-10 17:59:07 +02:00
renovate[bot]
96adaf9916 Update ghcr.io/matrix-org/rageshake Docker tag to v1.15.0 2025-03-10 10:39:16 +02:00
Suguru Hirahara
fe71555dbc Update docs: configuring-playbook-ntfy.md and others (#4160)
* Update docs/configuring-playbook-ntfy.md: adopt the same description format as documentation for Jitsi and Etherpad

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md: introduction and other edits

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md: fix the link to the ansible-role-ntfy's documentation

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md: edit the list item

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md: the section for the web app

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md: re-add the note about subscribing to a notification topic

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs: links to MASH project and its components

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-ntfy.md

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* Update docs/configuring-playbook-ntfy.md: create a section for the web app

- Remove the reasoning on why the web app is disabled by default as it is uncommon among the playbook's documentation
- Add the link to the official documentation about using the web app

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

---------

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-10 10:36:17 +02:00
Slavi Pantaleev
7e24667fc7 Upgrade traefik-certs-dumper (v2.8.3-7 -> v2.10.0-0) 2025-03-10 07:14:50 +02:00
Slavi Pantaleev
82c5afd214 Upgrade ntfy (v2.11.0-3 -> v2.11.0-4) 2025-03-10 07:08:49 +02:00
Suguru Hirahara
c291d53d3e Update docs/configuring-playbook-prometheus-grafana.md: warning message (#4159) 2025-03-09 18:27:49 +02:00
renovate[bot]
87bdaf5bfe Update dependency setuptools to v76 2025-03-09 16:26:06 +02:00
Slavi Pantaleev
35dd8e46cd Adjust /etc/docker/daemon.json cleanup comment with link to ansible-role-docker PR 2025-03-09 16:22:46 +02:00
Slavi Pantaleev
6d6fd4bf85 Add license information to roles/custom/matrix_playbook_migration/tasks/docker_daemon_options_file_cleanup.yml 2025-03-09 16:07:01 +02:00
Slavi Pantaleev
e33ed912cb Reorder matrix_playbook_docker_installation_daemon_options* variables a bit 2025-03-09 16:04:18 +02:00
Slavi Pantaleev
bd073bca74 Remove /etc/docker/daemon.json when no Docker options are set anymore 2025-03-09 16:03:15 +02:00
Slavi Pantaleev
5aa8bf9c3d Merge pull request #4157 from spantaleev/renovate/setuptools-75.x
Update dependency setuptools to v75.9.1
2025-03-09 07:22:34 +02:00
renovate[bot]
74b85d5b87 Update dependency setuptools to v75.9.1 2025-03-09 05:19:13 +00:00
Slavi Pantaleev
281da3eab4 Merge pull request #4156 from spantaleev/renovate/setuptools-75.x
Update dependency setuptools to v75.9.0
2025-03-09 07:18:35 +02:00
Suguru Hirahara
90d83bb5bc Update docs/configuring-playbook-email.md: minor edit
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-09 12:59:31 +09:00
renovate[bot]
52c75604c1 Update dependency setuptools to v75.9.0 2025-03-09 01:37:42 +00:00
Slavi Pantaleev
ce90df519e docs/configuring-playbook-ipv6.md -> docs/configuring-ipv6.md 2025-03-08 15:42:50 +02:00
Slavi Pantaleev
d92a091523 Merge pull request #4155 from luixxiul/fix
Update docs/configuring-playbook-email.md: copy from the ansible-role…
2025-03-08 15:30:52 +02:00
Slavi Pantaleev
ffa1ff67eb Recommend IPv6 enablement by default to all users
Follow-up to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3218
2025-03-08 15:22:13 +02:00
Suguru Hirahara
40446e341b Update docs/configuring-playbook-email.md: copy from the ansible-role-exim-relay role's document and edit
Based on eac4201a02/docs/configuring-exim-relay.md

- Add instruction to enable DKIM
- Replace the recommendation to use another SMTP server as relay, as DKIM has become available on exim-relay and configuring it greatly improves deliverability

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-08 21:36:14 +09:00
Slavi Pantaleev
c90e40b24d Upgrade exim-relay (v4.98.1-r0-1-0 -> v4.98.1-r0-2-0) 2025-03-08 07:36:55 +02:00
Slavi Pantaleev
a1ee35e8ea Merge pull request #4154 from Iruwen/feature/experimental-msc3266
Enable room summary API (MSC3266) support for Synapse
2025-03-06 17:47:24 +02:00
Iruwen
55e47d69db Enable room summary API (MSC3266) support for Synapse to support Element X clients 2025-03-06 14:48:23 +01:00
Slavi Pantaleev
f6ba56e15d Merge pull request #4151 from spantaleev/renovate/jinja2-3.x
Update dependency Jinja2 to v3.1.6
2025-03-06 07:07:36 +02:00
Slavi Pantaleev
247ef546ba Merge pull request #4152 from spantaleev/dependabot/pip/i18n/jinja2-3.1.6
Bump jinja2 from 3.1.5 to 3.1.6 in /i18n
2025-03-06 07:05:18 +02:00
dependabot[bot]
820acce224 Bump jinja2 from 3.1.5 to 3.1.6 in /i18n
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.5 to 3.1.6.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.5...3.1.6)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 04:46:44 +00:00
renovate[bot]
a72d017e47 Update dependency Jinja2 to v3.1.6 2025-03-05 22:34:23 +00:00
Slavi Pantaleev
1c68fd0d9b Make matrix-synapse-reverse-proxy-companion not report "502 Bad Gateway" when Synapse workers restart
Since nginx 1.27.3, we can make use of the `resolve` parameter for an `upstream`'s `server`,
to allow DNS resolution to happen continuously at runtime, not just once during startup.

Previously, this was not possible to do in an `upstream` block without
an nginx-plus subscription. Outside of an `upstream` block, we've used
and still use `set $backend ..` workarounds to get DNS resolution at
runtime, but now we can do it in `upstream` as well.
2025-03-05 21:24:43 +02:00
Slavi Pantaleev
db993c5bb3 Merge pull request #4150 from luixxiul/fix
Update docs/configuring-playbook-s3.md: add links to Storj and edit t…
2025-03-05 20:58:29 +02:00
Suguru Hirahara
36f00c82e7 Update docs/configuring-playbook-s3.md: add links to Storj and edit the section for other S3-compatible storage providers
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-06 00:50:26 +09:00
Aine
60bc545d0e Synapse Admin v0.10.3-etke38 2025-03-05 15:24:00 +02:00
Slavi Pantaleev
c63660ede2 Merge pull request #4149 from luixxiul/fix
Add REUSE compliant badge on README.md
2025-03-05 09:40:29 +02:00
Suguru Hirahara
0bad96ac90 Add REUSE compliant badge on README.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 16:03:27 +09:00
Suguru Hirahara
d4c007dffd Re-run reuse annotate for roles/
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 16:03:16 +09:00
Slavi Pantaleev
7944036343 Merge pull request #4148 from spantaleev/renovate/docker.io-metio-matrix-alertmanager-receiver-2025.x
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.5
2025-03-05 08:31:43 +02:00
Slavi Pantaleev
a103fa63a9 Merge pull request #4147 from spantaleev/renovate/ajbura-cinny-4.x
Update ajbura/cinny Docker tag to v4.5.1
2025-03-05 08:31:33 +02:00
Slavi Pantaleev
b391a96e78 Merge pull request #4146 from luixxiul/patch-2
Update validate_config.yml files
2025-03-05 08:30:34 +02:00
Slavi Pantaleev
bf0918ae58 Merge branch 'master' into patch-2 2025-03-05 08:29:35 +02:00
renovate[bot]
ae661b991e Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.5 2025-03-05 06:28:02 +00:00
renovate[bot]
91130c8a1c Update ajbura/cinny Docker tag to v4.5.1 2025-03-05 06:27:58 +00:00
Slavi Pantaleev
a2bc87a585 Merge pull request #4145 from luixxiul/fix
Add license information to the rest of the files to make the project REUSE compliant
2025-03-05 08:27:49 +02:00
Slavi Pantaleev
9c21067cd5 Merge pull request #4144 from luixxiul/patch-3
Update docs/configuring-playbook.md: update the instruction to use git
2025-03-05 08:27:26 +02:00
Suguru Hirahara
b4ce0274c9 Update validate_configs.yml for riot-web and ma1sd: adopt the common instruction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:36:57 +09:00
Suguru Hirahara
c18fc93a22 Update validate_config.yml files: edit the banner message for variables name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:30:50 +09:00
Suguru Hirahara
cdc12e0ecb Update validate_config.yml for migration: adopt a common instruction to variables which should be removed
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:29:36 +09:00
Suguru Hirahara
219cd7702d Update validate_config.yml for migration: adopt a common instruction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:28:24 +09:00
Suguru Hirahara
06ffbb3681 Update validate_config.yml for migration: adopt a simpler description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:28:12 +09:00
Suguru Hirahara
d2fe3bc5b6 Update validate_config.yml for migration: add blank lines between messages where expected
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:27:45 +09:00
Suguru Hirahara
2da6e4bac2 Update validate_config.yml for migration: add instruction to check docs/maintenance-upgrading-services.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:27:30 +09:00
Suguru Hirahara
5e07de1d85 Update validate_config.yml for migration: edit the instructions to update Ansible roles
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:27:13 +09:00
Suguru Hirahara
e4d98811cf Update validate_config.yml for migration: replace instructions for renaming prefixed variables
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:23:01 +09:00
Suguru Hirahara
2ae6b5d82b Update validate_config.yml for migration: replace instructions for renaming variables
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:21:33 +09:00
Suguru Hirahara
28d6862b7d Update validate_config.yml for migration: use a common instruction for renaming variables
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:21:06 +09:00
Suguru Hirahara
cbc1927711 Update validate_config.yml for migration: add a hint to update Ansible roles
This commit adds the hint to fetch Ansible roles which have been replaced, as it is pretty easy to overlook necessity of doing so, especially if you had not enabled (and disabled thereafter) roles, whose variable names has been changed.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:19:25 +09:00
Suguru Hirahara
416d560ffe Add GitHub Action "REUSE Compliance Check"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:01:11 +09:00
Suguru Hirahara
f5492e3727 Fix license year on matrix-bot-baibot.service.j2.license
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 12:43:52 +09:00
Suguru Hirahara
c385bee7af Re-run "reuse annotate" to sort statements
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 12:43:41 +09:00
Suguru Hirahara
2997fd9eef Add license information to files in group_vars
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 12:37:37 +09:00
Suguru Hirahara
3f0082e56b Update docs/configuring-playbook.md: update the instruction to use git
This is based on 5facc06a3c/docs/configuring-playbook.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 12:15:48 +09:00
Slavi Pantaleev
374d19c4d4 Merge pull request #4143 from luixxiul/fix
Add license information to various files
2025-03-04 20:33:27 +02:00
Suguru Hirahara
0223289180 Update REUSE.toml: sort an item
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:21 +09:00
Suguru Hirahara
318b3b7d40 Add license information for obtain_admin_access_token_element_web.png
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:17 +09:00
Suguru Hirahara
818794bd83 Add license information for CHANGELOG.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:13 +09:00
Suguru Hirahara
13d54c3504 Update main.yml for matrix-client-cinny: fix a copyright year
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:09 +09:00
Suguru Hirahara
e3b17186ce Update docs/faq.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:05 +09:00
Suguru Hirahara
d467c5f54f Update docs/configuring-playbook-s3.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:00 +09:00
Suguru Hirahara
c72b8f1726 Update docs/configuring-playbook-traefik.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:55 +09:00
Suguru Hirahara
0996b3098f Update docs/configuring-playbook-riot-web.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:49 +09:00
Suguru Hirahara
825cef5f04 Update docs/configuring-playbook-prometheus-grafana.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:43 +09:00
Suguru Hirahara
4bc715da4b Update docs/configuring-playbook-external-postgres.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:36 +09:00
Suguru Hirahara
d0ad3f22f8 Update docs/configuring-playbook-ntfy.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:29 +09:00
Suguru Hirahara
975692c84d Add SPDX-License-Identifier to extract-translation-templates.sh
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:22 +09:00
Suguru Hirahara
8be34c1ef1 Add license information for setup.yml
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:13 +09:00
Suguru Hirahara
e1c03dc7ff Add license information to a role
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:05 +09:00
Suguru Hirahara
687449fcba Add license information for README.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:25:58 +09:00
Suguru Hirahara
015b0d7cb4 Add license information to files in examples
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:25:49 +09:00
Slavi Pantaleev
dc77f84e66 Merge pull request #4142 from luixxiul/fix
Update docs for S3 media storage configuration for Synapse
2025-03-04 17:00:14 +02:00
Suguru Hirahara
ed23f9b5db Update docs/configuring-playbook.md: file storage section
- Add a link to configuring-playbook-synapse-s3-storage-provider.md
- Sort items

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 21:32:12 +09:00
Suguru Hirahara
0b9e4df5d3 Update docs: add "Synapse" to the title of configuring-playbook-s3-goofys.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 21:29:29 +09:00
Suguru Hirahara
f059b72bb5 Update docs/configuring-playbook-s3-goofys.md
- Adopt the common instruction
- Add a copyright header

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 21:20:57 +09:00
Suguru Hirahara
70b4fd0489 Update docs/configuring-playbook-synapse-s3-storage-provider.md: adopt the common introduction and add the section for installing
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 20:57:57 +09:00
Suguru Hirahara
424e5c6646 Update docs/configuring-playbook-synapse-simple-antispam.md: add the section for installing
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 20:49:21 +09:00
Slavi Pantaleev
5adaaf7c80 Merge pull request #4141 from spantaleev/renovate/ajbura-cinny-4.x
Update ajbura/cinny Docker tag to v4.5.0
2025-03-04 13:39:09 +02:00
renovate[bot]
76f9e7f34f Update ajbura/cinny Docker tag to v4.5.0 2025-03-04 10:44:30 +00:00
Slavi Pantaleev
35d38b28bf Merge pull request #4140 from luixxiul/fix
Add license information to files for matrix-synapse
2025-03-04 12:44:11 +02:00
Aine
7fca7ceea8 Borgmatic v1.9.13 2025-03-04 12:43:52 +02:00
Suguru Hirahara
3684842e86 Add license information to docs/configuring-playbook-synapse.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:22:48 +09:00
Suguru Hirahara
d9d4c6f05f Add license information to roles/custom/matrix-synapse/vars/main.yml
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:22:43 +09:00
Suguru Hirahara
2eb952201c Add license information to files in matrix-synapse/templates/synapse
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:22:38 +09:00
Suguru Hirahara
431d4c414b Add license information to files in matrix-synapse/templates/goofys
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:22:26 +09:00
Suguru Hirahara
f7a0302974 Add license information to files in matrix-synapse/tasks
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:20:27 +09:00
Suguru Hirahara
54b7df44ec Add license information to files in matrix-synapse/tasks/synapse
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:20:20 +09:00
Suguru Hirahara
f0abe85c18 Add license information to files in matrix-synapse/tasks/rust-synapse-compress-state
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:20:12 +09:00
Suguru Hirahara
0329320574 Add license information to files in matrix-synapse/tasks/goofys
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:20:04 +09:00
Suguru Hirahara
a4532762c2 Add license information to files in matrix-synapse/tasks/ext
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:19:59 +09:00
Suguru Hirahara
f70ad4affb Add license information to files in matrix-synapse/defaults
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-04 19:19:51 +09:00
Slavi Pantaleev
0e598acc3c Merge pull request #4139 from spantaleev/renovate/gnuxie-draupnir-2.x
Update gnuxie/draupnir Docker tag to v2.2.0
2025-03-03 22:39:19 +02:00
Slavi Pantaleev
2ef1a2e48d Upgrade exim-relay (v4.98.1-r0-0-0 -> v4.98.1-r0-1-0) to allow usage over IPv6 2025-03-03 22:33:15 +02:00
renovate[bot]
88413a08cb Update gnuxie/draupnir Docker tag to v2.2.0 2025-03-03 20:24:16 +00:00
Slavi Pantaleev
50c63edb61 Merge pull request #4138 from luixxiul/fix
Add license information to files for components
2025-03-03 13:44:39 +02:00
Suguru Hirahara
0046d3a8d8 Add license information to files for matrix-user-creator
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 18:00:04 +09:00
Suguru Hirahara
68a78857b8 Add license information to files for matrix-static-files
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 17:58:55 +09:00
Suguru Hirahara
c84c39fbc4 Add license information to files in matrix-common-after
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 17:58:28 +09:00
Suguru Hirahara
4915f14a58 Add license information to files for matrix-client-element
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 17:58:12 +09:00
Suguru Hirahara
c6babc1202 Add license information to files in matrix-base
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 17:57:17 +09:00
Slavi Pantaleev
81b752e56c Merge pull request #4137 from luixxiul/fix
Add license information to files for components and files on the top-level directory
2025-03-03 08:14:03 +02:00
Slavi Pantaleev
c113f8fbd8 Merge pull request #4136 from spantaleev/renovate/sphinx-8.x
Update dependency Sphinx to v8.2.3
2025-03-03 08:13:10 +02:00
renovate[bot]
5ce8331282 Update dependency Sphinx to v8.2.3 2025-03-03 03:28:32 +00:00
Suguru Hirahara
245900e32f Update REUSE.toml
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:15:39 +09:00
Suguru Hirahara
92adfb50e7 Add license information to some files on the top level directory
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:14:55 +09:00
Suguru Hirahara
85c93f8533 Add license information to files for matrix-user-verification-service
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:14:23 +09:00
Suguru Hirahara
1af310864c Add license information to files in matrix_playbook_migration/
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:14:04 +09:00
Suguru Hirahara
06cafa6908 Add license information to files for matrix-prometheus-services-connect
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:13:29 +09:00
Slavi Pantaleev
fa1b99476c Merge pull request #4135 from luixxiul/fix
Add license information to files for components related to Synapse
2025-03-02 19:25:50 +02:00
Suguru Hirahara
e89a4708e7 Update docs/configuring-playbook-synapse-simple-antispam.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:48:16 +09:00
Suguru Hirahara
2c28a8c9bf Update docs/configuring-playbook-synapse-s3-storage-provider.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:48:07 +09:00
Suguru Hirahara
621a41cbf7 Update docs/configuring-playbook-synapse-auto-accept-invite.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:47:55 +09:00
Suguru Hirahara
2f2e551798 Add license information to files for matrix-synapse-usage-exporter
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:18:26 +09:00
Suguru Hirahara
aae64ebde4 Add license information to files for matrix-synapse-reverse-proxy-companion
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:18:04 +09:00
Suguru Hirahara
a039174f96 Add license information to files for matrix-synapse-auto-compressor
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:17:47 +09:00
Suguru Hirahara
27c3be55b0 Add license information to files for matrix-synapse-admin
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 00:17:08 +09:00
Slavi Pantaleev
4b2c4d0df5 Merge pull request #4132 from luixxiul/fix
Add license information to files in reverse-proxies directory and ones related to project management and administration
2025-03-02 10:30:46 +02:00
Slavi Pantaleev
5694831507 Merge pull request #4133 from luixxiul/patch-2
Add mautrix-bluesky to a table on docs/container-images.md
2025-03-02 10:23:48 +02:00
Suguru Hirahara
67b106c7c2 Add mautrix-bluesky to a table on docs/container-images.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-02 14:20:45 +09:00
Suguru Hirahara
da30db76d6 Update docs: remove abbreviations for Matrix User Verification Service from the tables
As there are not other instances where an abbreviation is written along with the service's full name, it is sensible to remove them from there.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-02 14:16:44 +09:00
Suguru Hirahara
cd5cd60e8c Update REUSE.toml: add files which cannot be copyrighted
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-02 01:23:31 +09:00
Suguru Hirahara
37f69e92d5 Add license information to files in examples/reverse-proxies/
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-02 01:14:30 +09:00
Suguru Hirahara
76326e3c57 Add license information to files in bin/
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-02 01:04:48 +09:00
Slavi Pantaleev
0b23167773 Merge pull request #4131 from luixxiul/fix
Add license information to files for the other mautrix bridges
2025-03-01 16:44:10 +02:00
Suguru Hirahara
29b6a3a973 Add license information to files for matrix-bridge-mautrix-wsproxy
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 21:06:48 +09:00
Suguru Hirahara
06340e423b Add license information to files for matrix-bridge-mautrix-whatsapp
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 21:05:18 +09:00
Suguru Hirahara
6fd48fcf90 Add license information to files for matrix-bridge-mautrix-twitter
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 21:05:12 +09:00
Suguru Hirahara
0810054b78 Add license information to files for matrix-bridge-mautrix-telegram
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 21:05:02 +09:00
Suguru Hirahara
8b784735d3 Add license information to files for matrix-bridge-mautrix-slack
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 20:54:46 +09:00
Suguru Hirahara
751511139c Add license information to files for matrix-bridge-mautrix-signal
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 20:54:22 +09:00
Slavi Pantaleev
fd2683b1ab Merge pull request #4130 from luixxiul/fix
Add license information to files for some mautrix bridges
2025-03-01 09:21:22 +02:00
Suguru Hirahara
51671926c0 Add license information to files for matrix-bridge-mautrix-meta-messenger
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:43 +09:00
Suguru Hirahara
40939cde65 Add license information to files for matrix-bridge-mautrix-meta-instagram
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:38 +09:00
Suguru Hirahara
42e09a4aa5 Add license information to files for matrix-bridge-mautrix-googlechat
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:33 +09:00
Suguru Hirahara
053a0e8b99 Add license information to files for matrix-bridge-mautrix-gmessages
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:24 +09:00
Suguru Hirahara
f6b74f9d30 Add license information to files for matrix-bridge-mautrix-discord
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:15 +09:00
Suguru Hirahara
9da4317d42 Update docs/configuring-playbook-bridge-mautrix-bridges.md: add a copyright header
Refer f8b779f8ed as well

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:04:05 +09:00
Suguru Hirahara
b488ff5dd5 Add license information to files for matrix-bridge-mautrix-bluesky
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 16:03:55 +09:00
Slavi Pantaleev
dbfcb2d2c1 Upgrade Traefik (v3.3.3-4 -> v3.3.4-0) 2025-03-01 07:01:56 +02:00
adam-kress
f88df9b782 Upgrade Jitsi (v10008-3 -> v10078-1-0) (#4126)
* Upgrade Jitsi (v10008-3 -> v10073-1)

* Upgrade Jitsi (v10073-1 -> v10078-0)

* v10078-0 -> v10078-1

* Fix Jitsi version tag

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-01 06:58:29 +02:00
Slavi Pantaleev
a83d79e229 Merge pull request #4127 from luixxiul/fix
Add license information to files for components
2025-03-01 06:52:56 +02:00
Suguru Hirahara
b57081debd Add CC0-1.0.txt to LICENSES directory
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 12:50:15 +09:00
Suguru Hirahara
70655e8981 Fix GitHub issue template selector
Apparently those Markdown files are not expected to have something before the three hyphens on the top.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 12:25:46 +09:00
Suguru Hirahara
66e37a68ae Add license information to files for matrix-coturn
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 01:41:49 +09:00
Suguru Hirahara
d3826ee652 Add license information to files for matrix-media-repo
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 01:41:41 +09:00
Suguru Hirahara
e2d1879410 Add license information to files for matrix-ldap-registration-proxy
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-01 01:38:47 +09:00
Slavi Pantaleev
9ba0f51a8f Merge pull request #4125 from luixxiul/patch-2
Update docs for components related to authentication and ma1sd
2025-02-28 16:27:39 +02:00
Slavi Pantaleev
8abb8455c7 Merge pull request #4124 from luixxiul/fix
Add license information to files for components
2025-02-28 16:27:16 +02:00
Suguru Hirahara
4d5367fe93 Update docs/configuring-playbook-ma1sd.md: improve the warning message on top
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 22:27:56 +09:00
Suguru Hirahara
ff1f882d3c Update docs for components related to authentication: tidy up
- Move the recommendation to avoid installing ma1sd from configuring-playbook-ldap-auth.md to configuring-playbook-rest-auth.md

  It has been long since recommending to install ma1sd was stopped, and the warning message is placed on the documentation about installing ma1sd as well, so it does not really seem to be sensible to advertise the component by repeating the warning… The message can rather be reused on the latter, as it is expected to be implemented with a backend such as ma1sd (see: matrix_synapse_ext_password_provider_rest_auth_endpoint on the file)

- Add instruction to install the component to configuring-playbook-ldap-auth.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 22:25:14 +09:00
Suguru Hirahara
66093857bc Update docs for components related to authentication: adopt the common descriptions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 22:25:08 +09:00
Suguru Hirahara
87634922dd Update docs for components related to authentication: add copyright headers
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 22:24:58 +09:00
Suguru Hirahara
e870f0b664 Add license information to files for matrix-dendrite
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 21:24:39 +09:00
Suguru Hirahara
0bbe13b474 Add license information to files for matrix-conduit
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 21:24:31 +09:00
Suguru Hirahara
09893ced8d Add license information to files for matrix-client-schildichat
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 21:24:22 +09:00
Suguru Hirahara
41c59a1223 Add license information to files for matrix-authentication-service
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 21:24:13 +09:00
Slavi Pantaleev
bf5726f603 Merge pull request #4123 from luixxiul/fix
Add license information to files for some components
2025-02-28 12:19:34 +02:00
Suguru Hirahara
cb18b5235f Add license information to files for matrix-dynamic-dns
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:41:51 +09:00
Suguru Hirahara
974971719f Add license information to files for matrix-bridge-hookshot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:41:23 +09:00
Suguru Hirahara
52cf117e8b Add license information to files for matrix-bridge-postmoogle
Refer fd39392ec5 as well

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:40:59 +09:00
Suguru Hirahara
b7bd54113d Add license information to files for matrix-bridge-sms
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:40:25 +09:00
Suguru Hirahara
d403a7e4ae Add license information to files for matrix-bridge-heisenbridge
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:40:16 +09:00
Suguru Hirahara
497a0f8a42 Add license information to files for matrix-bridge-beeper-linkedin
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 18:38:54 +09:00
Slavi Pantaleev
5ceee4d6cd Merge pull request #4122 from luixxiul/fix
Add license information to some components
2025-02-28 08:30:24 +02:00
Suguru Hirahara
4b7dbcefec Add license information to matrix-bridge-appservice-slack
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 14:47:17 +09:00
Suguru Hirahara
9ac31fb37c Add license information to matrix-bridge-appservice-irc
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 14:47:01 +09:00
Suguru Hirahara
766ad9ebaa Add license information to matrix-bridge-appservice-discord
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 14:46:49 +09:00
Suguru Hirahara
aac44ad920 Add license information to matrix-bot-maubot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 14:46:20 +09:00
Suguru Hirahara
6c605a6193 Add license information to matrix-appservice-draupnir-for-all
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 14:45:49 +09:00
Slavi Pantaleev
225365929d Merge pull request #4121 from luixxiul/fix
Add license information to files for components
2025-02-27 21:16:34 +02:00
Suguru Hirahara
2e54072f1b Fix copyright attribution
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:47:59 +09:00
Suguru Hirahara
7d210cbafd Add license information to files for matrix-bot-mjolnir
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:11:30 +09:00
Suguru Hirahara
1189673e4a Add license information to files for matrix-bot-matrix-registration-bot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:11:02 +09:00
Suguru Hirahara
be667ee783 Add license information to files for matrix-bot-honoroit
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:10:04 +09:00
Suguru Hirahara
43199effd5 Add license information to files for matrix-bot-buscarron
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:09:18 +09:00
Suguru Hirahara
0a8117d96c Add license information to files for matrix-bot-baibot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:06:15 +09:00
Slavi Pantaleev
37f84173f0 Put proxy_set_header Host $host; at the server level for matrix-synapse-reverse-proxy-companion
Continuation of the refactoring done in 10fabc32bc
2025-02-27 19:04:34 +02:00
Slavi Pantaleev
10fabc32bc Rework client_body_buffer_size/client_max_body_size and proxy_max_temp_file_size configuration for matrix-synapse-reverse-proxy-companion
Until now, most sections were specifying their own values for these.
For `client_max_body_size`, a value of 25MB was hardcoded in most places.

This was generally OK, but..
Some sections (those generated by the `render_locations_to_upstream` macro), were not specifying these options
and were ending up with a default value for configuration options for `client_max_body_size` (likely 1MB), etc.

From now on:

- we use individual variables for defining these for the Client-Server
  and Federation API and apply these once at the `server` level

- we keep auto-determining the `client_max_body_size` for the
  Client-Server API based on `matrix_synapse_max_upload_size_mb`

- we keep auto-calculating the `client_max_body_size` for the Federation
  API based on the one for the Client API, but now also add a "minimum"
  value (`matrix_synapse_reverse_proxy_companion_federation_api_client_max_body_size_mb_minimum: 100`)
  to ensure we don't go too low

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4100
2025-02-27 18:53:56 +02:00
Slavi Pantaleev
771fd4e58c Merge pull request #4120 from spantaleev/renovate/ghcr.io-element-hq-element-web-1.x
Update ghcr.io/element-hq/element-web Docker tag to v1.11.94
2025-02-27 17:26:25 +02:00
renovate[bot]
57d1f417df Update ghcr.io/element-hq/element-web Docker tag to v1.11.94 2025-02-27 15:23:27 +00:00
Slavi Pantaleev
2200e42a38 Merge pull request #4119 from luixxiul/patch-2
Add license information to files for two components
2025-02-27 17:22:48 +02:00
Suguru Hirahara
195864980b Add license information to files for appservice-double-puppet
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 00:03:35 +09:00
Suguru Hirahara
2319c6e33b Add license information to files for matrix-alertmanager-receiver
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 00:03:25 +09:00
Slavi Pantaleev
3e2ca94a53 Merge pull request #4118 from luixxiul/fix
Add license information to components
2025-02-27 12:04:04 +02:00
Slavi Pantaleev
032d4f975d Update default Anthropic text-generation model (claude-3-5-sonnet-20240620 -> claude-3-7-sonnet-20250219)
The new baibot version (v1.5.0) supports the new Claude Sonnet 3.7
model, which is supposedly improved and priced the same way, so it makes
sense to upgrade to it in our static definitions.
2025-02-27 11:50:29 +02:00
Slavi Pantaleev
f7d25a3691 Upgrade baibot (v1.4.1 -> v1.5.0) and adapt configuration 2025-02-27 11:50:29 +02:00
Suguru Hirahara
9bb3d2457c Add license information to files for matrix-sygnal
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 18:32:26 +09:00
Suguru Hirahara
181d393254 Add license information to files for matrix-pantalaimon
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 18:32:00 +09:00
Suguru Hirahara
4a92cc11d0 Add license information to files for matrix-rageshake
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 18:31:49 +09:00
Suguru Hirahara
2889607941 Add license information to files for matrix-corporal
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 18:30:12 +09:00
Slavi Pantaleev
541c66011c Merge pull request #4117 from luixxiul/fix
Add copyright header to some documents
2025-02-27 07:57:49 +02:00
Suguru Hirahara
38792b924a Add copyright header to docs/updating-users-passwords.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:42:23 +09:00
Suguru Hirahara
8a1809463b Add copyright header to docs/self-building.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:42:18 +09:00
Suguru Hirahara
4f59d1c018 Add copyright header to docs/registering-users.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:42:12 +09:00
Suguru Hirahara
bcdf1f803c Add copyright header to docs/quick-start.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:42:08 +09:00
Suguru Hirahara
24f97e9f54 Add copyright header to docs/obtaining-access-tokens.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:42:03 +09:00
Suguru Hirahara
ec7d9898b5 Add copyright header to docs/maintenance-synapse.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:58 +09:00
Suguru Hirahara
ea5c0f71e0 Add copyright header to docs/maintenance-migrating.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:53 +09:00
Suguru Hirahara
3dc46d225b Add copyright header to docs/importing-synapse-sqlite.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:48 +09:00
Suguru Hirahara
275f01419e Add copyright header to docs/importing-synapse-media-store.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:42 +09:00
Suguru Hirahara
3f21b22cd0 Add copyright header to docs/importing-postgres.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:31 +09:00
Suguru Hirahara
13aef904a4 Add copyright header to docs/howto-srv-server-delegation.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:41:09 +09:00
Suguru Hirahara
a717eb1053 Add copyright header to docs/howto-server-delegation.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:39:19 +09:00
Slavi Pantaleev
2170e91c1c Merge pull request #4116 from spantaleev/renovate/setuptools-75.x
Update dependency setuptools to v75.8.2
2025-02-27 07:37:16 +02:00
Suguru Hirahara
504d0dca9a Add copyright header to docs/container-images.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:12:24 +09:00
Suguru Hirahara
032a3fc059 Add copyright header to docs/configuring-well-known.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:12:13 +09:00
Suguru Hirahara
86d72d9b60 Add copyright header to docs/configuring-playbook-telemetry.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:12:00 +09:00
Suguru Hirahara
1fd9cf0de9 Add copyright header to docs/configuring-playbook-ssl-certificates.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:11:51 +09:00
Suguru Hirahara
922236c185 Add copyright header to docs/configuring-playbook-own-webserver.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:11:42 +09:00
Suguru Hirahara
e19de8aa3f Add copyright header to docs/configuring-playbook-nginx.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:10:58 +09:00
Suguru Hirahara
3073537420 Add copyright header to docs/configuring-playbook-federation.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:10:48 +09:00
Suguru Hirahara
b4ff3a816b Add copyright header to docs/configuring-playbook-base-domain-serving.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 14:02:52 +09:00
Suguru Hirahara
f10f16d9b8 Add copyright header to docs/configuring-captcha.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 13:31:01 +09:00
renovate[bot]
b92d8517eb Update dependency setuptools to v75.8.2 2025-02-26 21:38:12 +00:00
Slavi Pantaleev
1eea92ba56 Add a matrix_synapse_redis_use_tls variable
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4113
2025-02-26 20:47:47 +02:00
Slavi Pantaleev
78b60be431 Merge pull request #4115 from luixxiul/fix
Add license information to some active project components
2025-02-26 20:30:53 +02:00
Suguru Hirahara
d49e9f81da Add license information to files for matrix-cactus-comments and matrix-cactus-comments-client
This commit adds copyright attributions in SPDX to the files for matrix-cactus-comments and matrix-cactus-comments-client, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 02:17:33 +09:00
Suguru Hirahara
59890c2805 Add license information to files for matrix-client-cinny
This commit adds copyright attributions in SPDX to the files for matrix-client-cinny, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 02:17:26 +09:00
Suguru Hirahara
74aec2f314 Add license information to files for matrix-client-fluffychat
This commit adds copyright attributions in SPDX to the files for matrix-client-fluffychat, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 01:57:07 +09:00
Suguru Hirahara
8367981bfb Add license information to files for matrix-conduwuit
This commit adds copyright attributions in SPDX to the files for matrix-conduwuit, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 01:56:36 +09:00
Slavi Pantaleev
959e8bea30 Merge pull request #4114 from luixxiul/fix
Add copyright attiributions to vendor files
2025-02-26 16:20:25 +02:00
Suguru Hirahara
5fa5026d69 Update .github directory: add copyright information
- Exclude renovate.json
- Rename reuse.toml: capitalization

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 22:52:29 +09:00
Suguru Hirahara
ff031dfd96 Update ansible-lint.yml: add the license information
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 22:50:04 +09:00
Slavi Pantaleev
ba3b82ed20 Switch to pulling Element Web from Github Container Registry, not Docker Hub 2025-02-26 09:37:05 +02:00
Slavi Pantaleev
6bce373fe2 Merge pull request #4111 from luixxiul/fix
Add license information to files for quiet projects
2025-02-26 09:03:28 +02:00
Slavi Pantaleev
59b40fb28e Upgrade Grafana (v11.5.2-1 -> v11.5.2-2)
Ref: https://github.com/mother-of-all-self-hosting/ansible-role-grafana/issues/4
2025-02-26 09:00:44 +02:00
Suguru Hirahara
6acf82a3ef Add license information to files for matrix-prometheus-nginxlog-exporter
This commit adds copyright attributions in SPDX to the files for prometheus-nginxlog-exporter, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 15:52:54 +09:00
Suguru Hirahara
b0d53d1b53 Add license information to files for matrix-bridge-go-skype-bridge
This commit adds copyright attributions in SPDX to the files for go-skype-bridge, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 15:52:43 +09:00
Suguru Hirahara
68e9dc85e9 Add license information to files for matrix-bot-matrix-reminder-bot
This commit adds copyright attributions in SPDX to the files for matrix-reminder-bot, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 15:52:33 +09:00
Slavi Pantaleev
fda508d556 Merge pull request #4110 from spantaleev/renovate/docker.io-metio-matrix-alertmanager-receiver-2025.x
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.26
2025-02-26 08:50:40 +02:00
renovate[bot]
baefcd4923 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.26 2025-02-26 06:46:20 +00:00
Slavi Pantaleev
877aba8dd0 Merge pull request #4109 from luixxiul/patch-2
Update docs: edit titles of the removed components
2025-02-26 08:45:45 +02:00
Suguru Hirahara
ed62ce70f0 Update docs: edit titles of the removed components
This commit updates titles of the docs for removed components, following 0bc4ef8f4d.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-26 15:35:13 +09:00
Slavi Pantaleev
0329cbb1b0 Remove leftover matrix_email2matrix_enabled usage in devture_systemd_service_manager_services_list_auto
Fixup for 1b05343aba
2025-02-26 08:05:16 +02:00
Slavi Pantaleev
852b9ebdc1 Adjust "installed using this playbook" links when linking to specific components
We previously made "this playbook" a link to some specific component.
This is somewhat misleading. Reading the text and seeing that "this playbook"
is a link, one might think that "this playbook" actually links to the
playbook's home page or something, not to the specific component which
could be "installed using this playbook".

This patch adjusts the markup so that the whole phrase "installed using this playbook"
is turned into a link (to the specific component's page). This makes it
more obvious where we're linking.

This work was initially done for the Email2Matrix docs page in
1b05343aba. This patch brings the same
change to all other instances.
2025-02-26 08:01:27 +02:00
Slavi Pantaleev
1b05343aba Remove Email2Matrix support 2025-02-26 08:00:17 +02:00
Slavi Pantaleev
74bdd8cbe5 docker.io/devture/ansible -> ghcr.io/devture/ansible 2025-02-26 07:39:55 +02:00
Slavi Pantaleev
5007ad453e Fix exim-relay version tag (4.98.1-r0-0-0 -> v4.98.1-r0-0-0) 2025-02-26 07:18:47 +02:00
Slavi Pantaleev
ae91852109 Upgrade exim-relay (v4.98-r0-4-3 -> 4.98.1-r0-0-0) 2025-02-26 07:15:26 +02:00
Slavi Pantaleev
02379f6a85 Merge pull request #4108 from spantaleev/renovate/setuptools-75.x
Update dependency setuptools to v75.8.1
2025-02-25 22:07:30 +02:00
renovate[bot]
9493356adb Update dependency setuptools to v75.8.1 2025-02-25 19:49:08 +00:00
Slavi Pantaleev
5c708339a0 Upgrade Synapse (v1.124.0 -> v1.125.0) 2025-02-25 21:28:23 +02:00
Slavi Pantaleev
7d4f9fe7dc Upgrade matrix-corporal (3.1.3 -> 3.1.4) and switch where its gets pulled from
From 3.1.4 and onward, container images will be published to ghcr.io instead of docker.io.

These images are built for arm64 and amd64, but not for arm32 anymore.
2025-02-25 17:54:45 +02:00
Slavi Pantaleev
294fd55727 Merge pull request #4107 from spantaleev/renovate/vectorim-element-web-1.x
Update vectorim/element-web Docker tag to v1.11.93
2025-02-25 16:50:55 +02:00
Slavi Pantaleev
accb110860 Merge pull request #4106 from spantaleev/renovate/halfshot-matrix-hookshot-6.x
Update halfshot/matrix-hookshot Docker tag to v6.0.3
2025-02-25 16:47:45 +02:00
renovate[bot]
6d44f6d7af Update vectorim/element-web Docker tag to v1.11.93 2025-02-25 14:35:32 +00:00
renovate[bot]
eba494eb86 Update halfshot/matrix-hookshot Docker tag to v6.0.3 2025-02-25 14:35:25 +00:00
Slavi Pantaleev
771efab5c0 Merge pull request #4105 from luixxiul/fix
Update docs: minor edits
2025-02-25 16:34:41 +02:00
Suguru Hirahara
4df7b983ed Update docs: title of the document for configuring DNS settings
This follows 802032cda7/docs/configuring-dns.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 23:09:19 +09:00
Suguru Hirahara
f57ee8d3e0 Update docs/maintenance-postgres.md: copy from the MASH playbook
Copied from 802032cda7/docs/services/postgres.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 23:06:47 +09:00
Suguru Hirahara
fe72de7dc5 Update docs/configuring-playbook.md: copy from the MASH project
Copied from 802032cda7/docs/configuring-playbook.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 23:04:10 +09:00
Slavi Pantaleev
375d6234e7 Merge pull request #4104 from luixxiul/tribute-to-inactive-projects
Add copyright attributions to files of inactive projects
2025-02-25 14:05:55 +02:00
Suguru Hirahara
44d91c6383 Add license information to files for matrix-registration
This commit adds copyright attributions in SPDX to the files for matrix-registration following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 18:18:30 +09:00
Suguru Hirahara
afd122330b Add license information to files for matrix-client-hydrogen
This commit adds copyright attributions in SPDX to the files for matrix-client-hydrogen following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 18:01:02 +09:00
Suguru Hirahara
379229c4e0 Add license information to files for matrix-bridge-appservice-kakaotalk
This commit adds copyright attributions in SPDX to the files for matrix-bridge-appservice-kakaotalk following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 17:37:14 +09:00
Suguru Hirahara
3efc5099c3 Add license information to files for matrix-bridge-wechat
This commit adds copyright attributions in SPDX format to the files for matrix-bridge-wechat following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 17:36:59 +09:00
Suguru Hirahara
83ee9ba415 Add license information to files for matrix-ma1sd
This commit adds copyright attributions in SPDX format to the files for matrix-ma1sd following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 17:36:07 +09:00
Slavi Pantaleev
6a4366d75d Upgrade Postgres (v17.2-3 -> v17.4-0) 2025-02-25 08:36:15 +02:00
Slavi Pantaleev
4996d4723c Merge pull request #4103 from luixxiul/tribute-to-deprecated-components
Add license information to files for deprecated mautrix facebook and instagram bridges
2025-02-25 07:45:38 +02:00
Suguru Hirahara
bcd641063e Tribute to deprecated components: add license information to files for matrix-bridge-mautrix-instagram
This commit adds copyright attributions in SPDX format as of 6aa320e117 to the files for matrix-bridge-mautrix-instagram, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 13:10:56 +09:00
Suguru Hirahara
0a72b7b396 Tribute to deprecated components: add license information to files for matrix-bridge-mautrix-facebook
This commit adds copyright attributions in SPDX format as of 6aa320e117 to the files for matrix-bridge-mautrix-facebook, following REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 13:07:56 +09:00
Slavi Pantaleev
6aa320e117 Merge pull request #4102 from luixxiul/ansible-lint
Fix some of the spacing warnings with ansible-lint
2025-02-24 21:13:45 +02:00
Suguru Hirahara
2a3fee7b80 Fix some of the spacing warnings with ansible-lint
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 03:48:09 +09:00
Slavi Pantaleev
50e2feea9c Merge pull request #4101 from luixxiul/tribute-to-archived-components
Add copyright attributions to deprecated/archived components
2025-02-24 20:34:53 +02:00
Suguru Hirahara
cd4b1ca72f Tribute to deprecated components: add license information to files for matrix-bot-chatgpt
This commit adds copyright attirbutions in SPDX format to files for matrix-bot-chatgpt, following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:53:17 +09:00
Suguru Hirahara
329fa105bf Tribute to deprecated components: add license information to files for matrix-bot-go-neb
This commit adds copyright attirbutions in SPDX format to files for matrix-bot-go-neb, following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:53:10 +09:00
Suguru Hirahara
66b03d0ca9 Tribute to deprecated components: add license information to files for matrix-sliding-sync
This commit adds copyright attirbutions in SPDX format to files for matrix-sliding-sync, following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:52:56 +09:00
Suguru Hirahara
d4347ccbf2 Update docs/configuring-playbook-bridge-mautrix-hangouts.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:28:44 +09:00
Suguru Hirahara
12e0a84331 Tribute to deprecated components: add license information to files for matrix-dimension
This commit adds copyright attirbutions in SPDX format to files for matrix-dimension, following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:17:32 +09:00
Suguru Hirahara
ab53f163ee Tribute to deprecated components: add license information to files for matrix-email2matrix
This commit adds copyright attirbutions in SPDX format to files for matrix-email2matrix, following the REUSE's specification. ".license" files are added for config.json.j2 and matrix-email2matrix.service.j2.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 02:08:39 +09:00
Aine
34ed810509 fix bluesky tokens 2025-02-24 18:45:11 +02:00
Slavi Pantaleev
76bab88ad0 Merge pull request #4099 from luixxiul/tribute-to-deprecated-components-webhooks
Tribute to deprecated components: add license information to files for matrix-bridge-appservice-webhooks
2025-02-24 17:56:03 +02:00
Suguru Hirahara
dc9672a86f Tribute to deprecated components: add license information to files for matrix-bridge-appservice-webhooks
This commit adds copyright headers to Markdown, YAML, and labels.j2 files. For the rest of the files, which are ones in YAML and JSON files with the extention ".j2", ".license" files are added following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-25 00:14:49 +09:00
Slavi Pantaleev
91d5aa4088 Upgrade backup-borg (v1.4.0-1.9.10-5 -> v1.4.0-1.9.10-6) 2025-02-24 15:55:47 +02:00
Slavi Pantaleev
3478c6f65b Upgrade backup-borg (v1.4.0-1.9.10-4 -> v1.4.0-1.9.10-5)
Ref: https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/issues/15
2025-02-24 15:52:18 +02:00
Slavi Pantaleev
2129cbf95e Fix yamllint-reported errors 2025-02-24 11:47:53 +02:00
Slavi Pantaleev
f7a8c8e83c Make external roles also respect matrix_container_global_registry_prefix_override
Fixup for b88b6ae7a3
2025-02-24 11:47:05 +02:00
Slavi Pantaleev
b88b6ae7a3 Introduce a new matrix_container_global_registry_prefix_override variable and make all roles respect it
`matrix_container_global_registry_prefix_override` may look similar to
the old `matrix_container_global_registry_prefix` variable
(removed in d6bf789710), but it's different.

The old `matrix_container_global_registry_prefix` variable was just a hardcode of `docker.io/` and roles that
needed to refer to `docker.io/` could use it. However, this was:

- not used by all roles, because some need another registry (not `docker.io/`)
- used only by roles within the playbook (`roles/custom`), not external roles

Overriding the old `matrix_container_global_registry_prefix` variable was rather pointless,
as it didn't cover everything.

The new `matrix_container_global_registry_prefix_override` variable, on the other hand,
lets you override the registry prefix for all components, regardless of whether they
use `docker.io/` or another registry by default.

This is useful to people who have somehow mirrored all container images to their own registry,
as it provides them with a single variable they can flip to influence the whole playbook.
2025-02-24 11:38:47 +02:00
Slavi Pantaleev
c47eca389b Rework all roles to include component_(docker|container)_image_registry_prefix* variables
This:

- brings consistency - no more mixing `_name_prefix` and `_registry_prefix`
- adds extensibility - a future patch will allow reconfiguring all registry prefixes for all roles in the playbook

We still have `_docker_` vs `_container_` inconsistencies.
These may be worked on later.
2025-02-24 11:38:47 +02:00
Slavi Pantaleev
11842116b3 Upgrade Valkey (v8.0.1-2 -> v8.0.1-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
6ef6bcdf38 Upgrade traefik-certs-dumper (v2.8.3-6 -> v2.8.3-7) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
ce835c395f Upgrade Traefik (v3.3.3-3 -> v3.3.3-4) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
a97988c794 Upgrade prometheus-node-exporter (v1.8.2-4 -> v1.8.2-5) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
620dfa889d Upgrade prometheus-postgres-exporter (v0.14.0-7 -> v0.14.0-9) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
66746bfa01 Upgrade prometheus-node-exporter (v1.8.2-3 -> v1.8.2-4) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
d4bfc26803 Upgrade Prometheus (v2.55.1-2 -> v2.55.1-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
400fa61bd0 Upgrade postgres-backup (v17-2 -> v17-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
200059e3c6 Upgrade Postgres (v17.2-2 -> v17.2-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
9dd3a71c38 Upgrade ntfy (v2.11.0-2 -> v2.11.0-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
3441a29b7b Upgrade Jitsi (v10008-2 -> v10008-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
ed63688bb8 Upgrade Grafana (v11.5.2-0 -> v11.5.2-1) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
650fca9d27 Upgrade exim-relay (v4.98-r0-4-2 -> v4.98-r0-4-3) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
c212346881 Upgrade Etherpad (v2.2.7-3 -> v2.2.7-4) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
3e17ae8b1b Upgrade container-socket-proxy (v0.3.0-3 -> v0.3.0-4) 2025-02-24 11:38:47 +02:00
Slavi Pantaleev
0da9c0c075 Upgrade backup-borg (v1.4.0-1.9.10-3 -> v1.4.0-1.9.10-4) 2025-02-24 11:38:47 +02:00
Suguru Hirahara
77209126bb Update docs: remove duplicated whitespace characters
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 17:47:38 +09:00
Slavi Pantaleev
5c34d0c0c1 Merge pull request #4097 from luixxiul/fix
Update docs/maintenance-postgres.md: add a copyright header
2025-02-24 10:35:52 +02:00
Suguru Hirahara
90540c244f Update docs/maintenance-postgres.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 17:03:54 +09:00
Suguru Hirahara
7448b4728c Edit docs: minor edits
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 12:47:36 +09:00
Slavi Pantaleev
91808bbd70 Merge pull request #4096 from luixxiul/fix
Update docs for Ansible
2025-02-23 21:12:34 +02:00
Suguru Hirahara
31e5c10a1b Update docs for Ansible
This commit changes ansible.md title and adds a link to the page on docs/README.md to improve discoverability of the guide a little bit.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 03:33:47 +09:00
Slavi Pantaleev
4c7867051f Merge pull request #4095 from spantaleev/renovate/ajbura-cinny-4.x
Update ajbura/cinny Docker tag to v4.4.0
2025-02-23 17:23:37 +02:00
renovate[bot]
af054a4833 Update ajbura/cinny Docker tag to v4.4.0 2025-02-23 14:39:53 +00:00
Slavi Pantaleev
b66aa0624f Merge pull request #4094 from luixxiul/fix
Update docs related to installation: minor edits
2025-02-23 12:32:51 +02:00
Slavi Pantaleev
cca3b06cf0 Add space after ⚠️ on installing.md 2025-02-23 12:32:32 +02:00
Suguru Hirahara
b4bcac7e48 Update docs/quick-start.md: minor edits
- Reduce width of the table for DNS configuration

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 19:25:12 +09:00
Suguru Hirahara
c1eae5fc00 Update docs/installing.md: minor edits
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 19:25:04 +09:00
Slavi Pantaleev
0d137db283 Re-enable STUN/UDP by default so that old Element mobile clients can work
Partially reverts ac26cc1cb0.

The configurability introduced there is still available, so people can
easily disable this, if necessary.
2025-02-23 12:09:37 +02:00
Suguru Hirahara
ee431798a6 Update docs/getting-the-playbook.md: make the list tighter
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 18:20:47 +09:00
Slavi Pantaleev
d6bf789710 Remove matrix_container_global_registry_prefix variable
This is done for a few reasons:

- less globals and more indepdendence for each role is better. We rely
  on various externally-hosted roles and they don't rely on this global
  either.

- `matrix_container_global_registry_prefix` could make people think they
  could just override this variable and have all their images pull from
  elsewhere. This is rarely the case, unless you've taken special care
  to mirror all the various components (from their respective
  registries) to your own. In such a case, you probably know what you're
  mirroring and can adjust individual variables.

- nowadays, various components live on different registries.
  With Docker Inc tightening rate limits for Docker Hub, it's even more
  likely that we'll see increased diversity in where images are hosted
2025-02-23 10:15:41 +02:00
Slavi Pantaleev
7a476cd410 Merge pull request #4093 from luixxiul/fix
Update docs: add copyright headers
2025-02-23 08:12:47 +02:00
Slavi Pantaleev
7249274511 Merge pull request #4092 from luixxiul/tribute-to-mx-bridges
Add license information to files for MX bridges
2025-02-23 08:11:55 +02:00
Suguru Hirahara
86d94d77e3 Update docs/configuring-playbook.md: add a copyright header
Those authors were picked up based on the current status (dae0f44603), the others (around 30 people whose contributions have been removed) being grouped as "MDAD project contributors".

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 14:59:58 +09:00
Suguru Hirahara
54467fe7d5 Update docs/alternative-architectures.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 14:59:25 +09:00
Suguru Hirahara
1bc0a1bf07 Update docs/configuring-dns.md: reduce the width of the table
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 14:41:51 +09:00
Suguru Hirahara
807da74334 Add license information to files for MX bridges
As the future for the MX bridges in this playbook and by themselves seems uncertain, this commit adds license information in SPDX format to the files for those bridges, before the bridges would be deprecated and possibly get removed from the project.

Please note that .license files are added for the files which would be broken if such information are added as header, following the REUSE's specification.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 13:33:30 +09:00
Slavi Pantaleev
56e9967f5d Upgrade Valkey (v8.0.1-1 -> v8.0.1-2) 2025-02-22 22:41:52 +02:00
Slavi Pantaleev
9a035eeabe Upgrade Etherpad (v2.2.7-2 -> v2.2.7-3) 2025-02-22 22:40:28 +02:00
Slavi Pantaleev
c28630355a Upgrade exim-relay (v4.98-r0-4-1 -> v4.98-r0-4-2) 2025-02-22 22:31:11 +02:00
Slavi Pantaleev
6d501b9cc6 Upgrade container-socket-proxy (v0.3.0-2 -> v0.3.0-3) 2025-02-22 22:03:54 +02:00
Slavi Pantaleev
41fc044ee0 Upgrade Jitsi (v10008-1 -> v10008-2) 2025-02-22 22:03:02 +02:00
Slavi Pantaleev
5aa149fb52 Upgrade Traefik (v3.3.3-2 -> v3.3.3-3) 2025-02-22 21:56:49 +02:00
Slavi Pantaleev
ecefbc8b44 Upgrade backup-borg (v1.4.0-1.9.10-2 -> v1.4.0-1.9.10-3) 2025-02-22 21:54:25 +02:00
Slavi Pantaleev
a518fcce81 Upgrade Prometheus (v2.55.1-1 -> v2.55.1-2) 2025-02-22 21:47:58 +02:00
Slavi Pantaleev
d12643eb91 Do not use docker stop --time (deprecated in Docker v28 in favor of --timeout or just -t)
`-t` works on both old and new Docker versions, so it's best to use that.
2025-02-22 21:42:18 +02:00
Slavi Pantaleev
44baf74b9b Make all remaining roles respect devture_systemd_docker_base_ipv6_enabled and devture_systemd_docker_base_container_networks_driver_options 2025-02-22 21:36:32 +02:00
Slavi Pantaleev
49c60deb8a Upgrade prometheus-node-exporter (v1.8.2-2 -> v1.8.2-3) 2025-02-22 21:35:09 +02:00
Slavi Pantaleev
f7c89e3abe Upgrade postgres-backup (v17-1 -> v17-2) 2025-02-22 21:19:22 +02:00
Slavi Pantaleev
b41cb172fe Upgrade ntfy (v2.11.0-1 -> v2.11.0-2) 2025-02-22 21:17:17 +02:00
Slavi Pantaleev
053ef3f35a Upgrade prometheus-postgres-exporter (v0.14.0-6 -> v0.14.0-7) 2025-02-22 21:07:59 +02:00
Slavi Pantaleev
ee75543aa7 Upgrade Prometheus (v2.55.1-0 -> v2.55.1-1) 2025-02-22 21:04:23 +02:00
Slavi Pantaleev
0750e70972 Upgrade traefik-certs-dumper (v2.8.3-5 -> v2.8.3-6) 2025-02-22 21:00:18 +02:00
Slavi Pantaleev
671a3dc94f Only advertise 3478/udp (STUN/TURN) if Coturn actually enables it
Related to ac26cc1cb0 which disabled
`3478/udp` by default.

Without this patch, homeservers continued to advertise the `3478/udp` port,
even though it was no longer exposed. While clients should handle that
gracefully (by falling back to TCP, etc.), it seems like Element either
doesn't do that or it doesn't support TCP (which this patch won't fix).

In any case, it's better to only announce what is actually supported/exposed.
2025-02-22 13:44:14 +02:00
Slavi Pantaleev
64a402eb65 Do not duplicate turn_uris construction for each homeserver implementation (extract to matrix_coturn_turn_uris) 2025-02-22 13:43:25 +02:00
Suguru Hirahara
5b3f9510b0 Update docs/just.md: remove a duplicate anchor link
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-22 18:26:29 +09:00
Slavi Pantaleev
b6db2eaf15 Upgrade Grafana (v11.5.1-0 -> v11.5.2-0) 2025-02-22 10:31:14 +02:00
Slavi Pantaleev
87a05ef94b Upgrade Etherpad (v2.2.7-1 -> v2.2.7-2) and switch to newly introduced variables 2025-02-22 10:23:48 +02:00
Slavi Pantaleev
b21a0b367d Upgrade container-socket-proxy (v0.3.0-1 -> v0.3.0-2) 2025-02-22 10:08:37 +02:00
Slavi Pantaleev
804b9007ec Upgrade Traefik (v3.3.3-0 -> v3.3.3-2) 2025-02-22 10:01:00 +02:00
Slavi Pantaleev
30997ee2ff Upgrade container-socket-proxy (v0.3.0-0 -> v0.3.0-1) 2025-02-22 09:55:03 +02:00
Slavi Pantaleev
d34110d6a2 Merge pull request #4091 from luixxiul/fix
Update docs/ansible.md: copy from the MASH project and minor changes
2025-02-22 09:28:57 +02:00
Suguru Hirahara
5f0b74bac2 Update docs/ansible.md: remove a whitespace character
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-22 13:26:42 +09:00
Suguru Hirahara
edc2cab925 Update docs/ansible.md: copy from the MASH project
It was copied from 2bc4cc45d7/docs/ansible.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-22 13:26:33 +09:00
Suguru Hirahara
5d8d2475e1 Update docs/ansible.md: add a copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-22 13:25:28 +09:00
Slavi Pantaleev
f0686f15b2 Merge pull request #4089 from spantaleev/renovate/sphinx-8.x
Update dependency Sphinx to v8.2.1
2025-02-22 02:02:36 +02:00
Slavi Pantaleev
135196ae0d Upgrade Postgres (v17.2-1 ->v17.2-2) 2025-02-22 01:58:32 +02:00
renovate[bot]
564f9a519c Update dependency Sphinx to v8.2.1 2025-02-21 23:47:02 +00:00
Slavi Pantaleev
153c8765e3 Upgrade Postgres (v17.2-0 -> v17.2-1) 2025-02-22 01:46:22 +02:00
Slavi Pantaleev
473151fe90 Upgrade container-socket-proxy (v0.2.0-0 -> v0.3.0-0) and switch to new variable names (devture_container_socket_proxy_* -> container_socket_proxy_*) 2025-02-22 01:01:42 +02:00
Aine
44f1fcf10e fix borgbackup role 2025-02-21 23:10:34 +02:00
Slavi Pantaleev
72280bbbb2 Add a matrix_synapse_url_preview_ip_range_whitelist variable 2025-02-21 23:05:14 +02:00
Slavi Pantaleev
0d7d5e6a19 Do not define url_preview_ip_range_blacklist in Synapse's homeserver.yaml if URL preview is disabled
It's useless and just makes the config longer.
2025-02-21 23:03:26 +02:00
Slavi Pantaleev
d9eabc49e6 Add a matrix_synapse_url_preview_ip_range_blacklist variable 2025-02-21 22:21:06 +02:00
Slavi Pantaleev
f24c045393 Merge pull request #4088 from spantaleev/renovate/ghcr.io-etkecc-fluffychat-web-1.x
Update ghcr.io/etkecc/fluffychat-web Docker tag to v1.25.1
2025-02-21 20:57:46 +02:00
renovate[bot]
1e7d5293d4 Update ghcr.io/etkecc/fluffychat-web Docker tag to v1.25.1 2025-02-21 18:54:47 +00:00
Slavi Pantaleev
feeb306eaf Merge pull request #4087 from luixxiul/fix
Update docs/playbook-tags.md: copy the recommendation for using the just command from mash-playbook
2025-02-21 20:54:15 +02:00
Suguru Hirahara
00bd973c3b Update docs/playbook-tags.md: copy the recommendation for using the just command from mash-playbook
This is based on 581e6ca080.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-22 02:21:07 +09:00
Slavi Pantaleev
0de1b76da7 Upgrade systemd_docker_base (v1.3.0-0 -> v1.4.0-0) and make use of the new devture_systemd_docker_base_ipv6_daemon_options_changing_enabled variable 2025-02-21 18:34:39 +02:00
Slavi Pantaleev
74177d9ba3 Document the state of the ip6tables and experimental daemon options for Docker 2025-02-21 16:37:41 +02:00
Slavi Pantaleev
dae0f44603 Announce mautrix-bluesky support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4082
2025-02-21 10:11:19 +02:00
Slavi Pantaleev
fd78acd67b Remove inaccurate mention of ensure-matrix-users-created in mautrix-bluesky documentation
mautrix bridges run in appservice mode and create their own user
automatically. There's no need for `ensure-matrix-users-created`.

This patch only fixes the mautrix-blusky bridge's documentation.
2025-02-21 10:08:43 +02:00
Zepmann
104f1b7838 Add documentation for mautrix-bluesky. 2025-02-21 10:08:43 +02:00
Zepmann
ff986b7512 Add mautrix-bluesky to the playbook. 2025-02-21 10:08:43 +02:00
Slavi Pantaleev
229e179620 Merge pull request #4086 from luixxiul/fix
Update docs: add copyright headers to docs linking to installing.md
2025-02-21 09:59:58 +02:00
Suguru Hirahara
0dac0d8f83 Update docs/just.md: add a copyright header
This file was created with e36115a5b9 based on fb60ba67f6 (announcement of adoption of just program).

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-21 16:28:07 +09:00
Suguru Hirahara
40dc285a31 Update docs/playbook-tags.md: add a copyright header
The original author can be seen here: 66a812d99c12cb24f38f57fb271875ca80a9d4cc/docs/installing.md#L12-L35

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-21 16:27:54 +09:00
Slavi Pantaleev
9d05994dce Make use of backup_borg_postgresql_databases_auto
Related to b0c63914cb

Ref:
- https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/pull/12
- 02dd1a8d70
2025-02-21 08:09:38 +02:00
Slavi Pantaleev
b0c63914cb Upgrade backup-borg (v1.4.0-1.9.10-0 -> v1.4.0-1.9.10-1)
Ref:

- https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/pull/12
- 02dd1a8d70
2025-02-21 08:08:59 +02:00
Slavi Pantaleev
bfbe404972 Merge pull request #4085 from luixxiul/fix
Update docs: add copyright headers for the MASH project
2025-02-21 08:02:56 +02:00
Slavi Pantaleev
d6301db5ed Switch from postgres_backup_databases to postgres_backup_databases_auto
Ref: https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/pull/6

Related to a445f8a5ae
2025-02-21 07:52:11 +02:00
Slavi Pantaleev
a445f8a5ae Upgrade postgres-backup (v17-0 -> v17-1)
Ref: https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/pull/6
2025-02-21 07:50:48 +02:00
Suguru Hirahara
4e44c4885e Update docs: add copyright headers for reusing them at the MASH project
This commit adds copyright headers to the same kind of docs as ones linked from e48af8a327/docs/README.md, so that these files can be reused over there.

- docs/README.md
- prerequisites.md
- configuring-dns.md
- getting-the-playbook.md
- configuring-playbook.md
- maintenance-upgrading-services.md
- maintenance-and-troubleshooting.md
- uninstalling.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-21 12:23:26 +09:00
Aine
2f8489fce0 FluffyChat v1.25.0 2025-02-20 18:21:12 +02:00
Aine
c80fb913e7 borg backup: do not backup remote content by default 2025-02-20 15:48:19 +02:00
Slavi Pantaleev
2db103a4eb Upgrade matrix-authentication-service (0.14.0 -> 0.14.1) 2025-02-20 10:41:27 +02:00
Slavi Pantaleev
069e574d13 Merge pull request #4083 from luixxiul/fix
Update docs/faq.md: remove matrix_ma1sd_enabled from the suggestion to disable it
2025-02-20 07:59:58 +02:00
Suguru Hirahara
9c822f7817 Update docs/faq.md: remove matrix_ma1sd_enabled from the suggestion to disable it
ma1sd has not been installed by default since 958d089b68, so it seems that the variable does not need to be mentioned here.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 14:26:03 +09:00
Slavi Pantaleev
101b55ee7a Merge pull request #4081 from luixxiul/fix
Update docs/configuring-playbook-email.md
2025-02-19 22:01:53 +02:00
Suguru Hirahara
c1bd6ba965 Update docs/configuring-playbook-email.md: copy the common section for installing
The copyright header covers this one.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:04:37 +09:00
Suguru Hirahara
235f11fede Update docs/configuring-playbook-email.md: add an instruction to disable mail service
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:04:32 +09:00
Suguru Hirahara
5b3b372f36 Update docs/configuring-playbook-email.md: copy the instruction for firewall
It was copied from 699b458733. The current copyright header covers this one.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:04:23 +09:00
Suguru Hirahara
2e9e6e6094 Update docs/configuring-playbook-email.md: edit the introduction
Based on 00214dc493/docs/services/exim-relay.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:04:13 +09:00
Suguru Hirahara
916831f94d Update docs/configuring-playbook-email.md: refer the docs at the role
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:04:07 +09:00
Suguru Hirahara
c0722c74e9 Update docs/configuring-playbook-email.md: add the links to the role and its documentation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-20 01:03:55 +09:00
Slavi Pantaleev
ac26cc1cb0 Allow STUN/TURN exposure over TCP/UDP to be controlled separately & disable STUN over UDP by default 2025-02-19 11:50:49 +02:00
Slavi Pantaleev
1c61a3d332 Merge pull request #4079 from spantaleev/renovate/docker.io-metio-matrix-alertmanager-receiver-2025.x
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.19
2025-02-19 09:04:02 +02:00
renovate[bot]
a56b49da03 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.19 2025-02-19 06:20:40 +00:00
Slavi Pantaleev
f3cf30717e Merge pull request #4078 from luixxiul/fix
Update docs/configuring-playbook-email.md: add the copyright header
2025-02-19 08:19:37 +02:00
Suguru Hirahara
20d1352a49 Update docs/configuring-playbook-email.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-19 15:11:42 +09:00
Slavi Pantaleev
b4a10a5999 Merge pull request #4077 from spantaleev/renovate/sphinx-8.x
Update dependency Sphinx to v8.2.0
2025-02-18 22:26:55 +02:00
renovate[bot]
53a55cdc4c Update dependency Sphinx to v8.2.0 2025-02-18 20:25:56 +00:00
Slavi Pantaleev
9a017adbbf Merge pull request #4076 from spantaleev/renovate/ghcr.io-element-hq-matrix-authentication-service-syn2mas-0.x
Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.14.0
2025-02-18 22:25:20 +02:00
renovate[bot]
2bca5cb445 Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.14.0 2025-02-18 20:01:35 +00:00
Slavi Pantaleev
4e981ed36c Mark matrix-reminder-bot's usage with matrix-authentication-service as fixed
Fixup for f798ec81e8.
2025-02-18 21:04:09 +02:00
Slavi Pantaleev
f798ec81e8 Upgrade matrix-authentication-service (0.13.0 -> 0.14.0) and mark matrix-reminder-bot's usage with it as fixed 2025-02-18 21:00:55 +02:00
Slavi Pantaleev
3de5bfa6a8 Merge pull request #4075 from luixxiul/fix
Update docs linking to the documentation at the MASH project: add emojis to list items
2025-02-18 16:17:16 +02:00
Suguru Hirahara
2f069bfadd Update docs linking to the MASH project's roles: add "online" as suffix in comparison to "locally"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 23:07:00 +09:00
Suguru Hirahara
8709981cbe Update docs linking to the MASH project's roles: replace the paper icon with globe
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 23:04:55 +09:00
Suguru Hirahara
e621b00370 Update docs linking to the MASH project's roles
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 20:48:41 +09:00
Suguru Hirahara
a3954ec4a4 Update docs linking to the documentation at the MASH project: add emojis to list items
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 19:54:07 +09:00
Suguru Hirahara
7702983d63 Update jitsi_jvb.yml: replace "Jitsi JVB" to "Jitsi Videobridge (JVB)"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 18:18:26 +09:00
Aine
9dc9646fe7 Honoroit v0.9.27 2025-02-18 10:41:20 +02:00
Slavi Pantaleev
fa43aac082 Merge pull request #4074 from luixxiul/fix
Update docs for BackupBprg and docker-postgres-backup-local: adopt the common description
2025-02-17 18:29:10 +02:00
Suguru Hirahara
ac6fb79632 Update docs for BackupBprg and docker-postgres-backup-local: adopt the common description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 01:12:21 +09:00
Aine
4b390bb50a fix jitsi role 2025-02-17 18:05:35 +02:00
Slavi Pantaleev
16bcc80b1f Merge pull request #4073 from luixxiul/fix
Update docs for Jitsi: delegate to the document at the MASH project
2025-02-17 17:50:47 +02:00
Suguru Hirahara
cc0811492b Add links to installing.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 00:33:01 +09:00
Suguru Hirahara
1693581013 Change "role's document" to "role's documentation"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 00:27:01 +09:00
Suguru Hirahara
a8c6682333 Apply suggestions from code review
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-02-18 00:24:16 +09:00
Suguru Hirahara
3becee78ae Update docs/configuring-playbook-jitsi.md: replace the instruction for troubleshooting with a link to the role's document
The instruction is available at af5b04fc32/docs/configuring-jitsi.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:22 +09:00
Suguru Hirahara
61f1357bfc Update docs/configuring-playbook-jitsi.md: remove the instruction for setting up additional JVBs in favor of the role's document
The instruction is available at af5b04fc32/docs/configuring-jitsi.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:18 +09:00
Suguru Hirahara
4403340cef Update docs/configuring-playbook-jitsi.md: add a link to the official user guide to the usage section
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:14 +09:00
Suguru Hirahara
7aa08149f5 Update docs/configuring-playbook-jitsi.md: copy and edit the section for usage from the Jitsi's role document at the MASH project
Based on af5b04fc32/docs/configuring-jitsi.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:09 +09:00
Suguru Hirahara
de14a55e33 Update docs/configuring-playbook-jitsi.md: edit the instruction about enabling Gravatar service
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:04 +09:00
Suguru Hirahara
31971011dc Update docs/configuring-playbook-jitsi.md: remove the instructions for other optional configurations in favor of the role's document
- The section about enabling Gravater service is not removed as it is specific to configuring Jitsi on a Matrix server.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:03:00 +09:00
Suguru Hirahara
b14a0f7854 Update docs/configuring-playbook-jitsi.md: re-add the recommendation of authentication method
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:54 +09:00
Suguru Hirahara
7d9f5c594a Update docs/configuring-playbook-jitsi.md: create a section for instruction to enable authentication
Partially based on 699b458733

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:49 +09:00
Suguru Hirahara
2f8152936c Update docs/configuring-playbook-jitsi.md: remove the instructions for adjusting the URL in favor of the role's document at the MASH project
The document is available at af5b04fc32/docs/configuring-jitsi.md

- Add an anchor link to the section for setting the hostname on the role's document

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:38 +09:00
Suguru Hirahara
e53056ac48 Update docs/configuring-playbook-jitsi.md: add a note about the example configuration and the instruction to set up additional JVBs
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:33 +09:00
Suguru Hirahara
0a33e69e56 Update docs/configuring-playbook-jitsi.md: edit the section for adjusting the playbook configuration
- Add the comment blocks around the variable
- Add links to the role's document

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:26 +09:00
Suguru Hirahara
a9c3db2994 Update docs/configuring-playbook-jitsi.md: edit the section for prerequisites
- Add a link to the handbook: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-requirements
- Add a link to the role's document

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:15 +09:00
Suguru Hirahara
a86f904baa Update docs for Etherpad and Jitsi: adopt the common description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:02:07 +09:00
Suguru Hirahara
26e285e972 Update docs/configuring-playbook-etherpad.md: adopt the common introduction
- Add links to the role's document: https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:01:58 +09:00
Suguru Hirahara
6e94f5f1f7 Update docs/configuring-playbook-jitsi.md: edit the introduction
- Add a link to the role at MASH project and its document: https://github.com/mother-of-all-self-hosting/ansible-role-jitsi

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-17 23:01:32 +09:00
Aine
6647e08e6e fix etherpad 2025-02-17 15:08:00 +02:00
Slavi Pantaleev
6e591da0ab Announce FluffyChat Web support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4068
2025-02-17 11:23:22 +02:00
Slavi Pantaleev
76f235f494 Split matrix_client_fluffychat_systemd_required_services_list into _default, _auto and _custom
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4068
2025-02-17 11:18:08 +02:00
Slavi Pantaleev
d6c60fd538 Split matrix_client_fluffychat_container_additional_networks into _auto and _custom
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4068
2025-02-17 11:18:01 +02:00
Aine
a2111dece7 add FluffyChat (#4068)
* add FluffyChat

* capitalization

* Update group_vars/matrix_servers

Co-authored-by: Slavi Pantaleev <slavi@devture.com>

* fix link in readme

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-02-17 11:15:15 +02:00
Slavi Pantaleev
5686f7b4d6 Merge pull request #4071 from spantaleev/renovate/dock.mau.dev-mautrix-signal-0.x
Update dock.mau.dev/mautrix/signal Docker tag to v0.8.0
2025-02-17 10:44:53 +02:00
Slavi Pantaleev
e4ed0f3587 Merge pull request #4072 from spantaleev/renovate/ajbura-cinny-4.x
Update ajbura/cinny Docker tag to v4.3.2
2025-02-17 09:32:54 +02:00
renovate[bot]
245192ff7f Update ajbura/cinny Docker tag to v4.3.2 2025-02-17 02:56:08 +00:00
renovate[bot]
9c52331da6 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.0 2025-02-16 22:27:19 +00:00
Slavi Pantaleev
628f480ff2 Merge pull request #4069 from spantaleev/renovate/dock.mau.dev-mautrix-meta-0.x
Update dock.mau.dev/mautrix/meta Docker tag to v0.4.4
2025-02-16 20:58:00 +02:00
Slavi Pantaleev
ecf5f2d0a8 Merge pull request #4070 from spantaleev/renovate/dock.mau.dev-mautrix-whatsapp-0.x
Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.11.3
2025-02-16 20:57:49 +02:00
renovate[bot]
4a0855db0a Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.11.3 2025-02-16 18:37:02 +00:00
renovate[bot]
a0ae269051 Update dock.mau.dev/mautrix/meta Docker tag to v0.4.4 2025-02-16 18:36:59 +00:00
Slavi Pantaleev
9e11da7829 Upgrade Valkey (v8.0.1-0 -> v8.0.1-1) to make it respect devture_systemd_docker_base_ipv6_enabled 2025-02-16 12:04:55 +02:00
Slavi Pantaleev
a2cbaf21f2 Upgrade exim-relay (v4.98-r0-4-0 -> v4.98-r0-4-1) to make it respect devture_systemd_docker_base_ipv6_enabled 2025-02-16 12:02:51 +02:00
Slavi Pantaleev
afb97e18ac Make matrix-coturn role respect devture_systemd_docker_base_ipv6_enabled 2025-02-16 12:01:11 +02:00
Slavi Pantaleev
54bd6f172a Merge pull request #4066 from luixxiul/fix
Make docs/configuring-playbook-etherpad.md slim
2025-02-15 10:12:12 +02:00
Suguru Hirahara
91d991cac6 Add a section for creating admin user
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-15 16:41:41 +09:00
Suguru Hirahara
541b46cf8f Add the comment block around the variable
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-15 16:39:21 +09:00
Slavi Pantaleev
76f9050e6a Merge pull request #4067 from luixxiul/patch-1
Update docs/configuring-playbook-jitsi.md: add the copyright header
2025-02-14 18:08:17 +02:00
Suguru Hirahara
39f0239be2 Update docs/configuring-playbook-jitsi.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-15 00:11:51 +09:00
Suguru Hirahara
e521ffca80 Make docs/configuring-playbook-etherpad.md slim
- Add links to the role at MASH project and its document
- Replace common instructions with the links to the role at MASH project

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-14 18:16:23 +09:00
akdk7
15f7f41afe This push request is about handling Traefik ipallowlist to synapse-ad… (#4063)
* This push request is about handling Traefik ipallowlist to synapse-admin application.

It's my first push request. If I forgot something please let me know. :-)

* Changed position of variable and naming for better expandebility of traefik options

* Remove useless `noqa var-naming` comment and too many blank lines at the end of the file

---------

Co-authored-by: AkDk7 <joerg@pannbacker.email>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-02-14 10:23:36 +02:00
Slavi Pantaleev
ed673bf071 Comment-out claims_imports.displayname for matrix-authentication-service
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4058
2025-02-14 10:03:41 +02:00
Slavi Pantaleev
5c874f036d Upgrade Etherpad (v2.2.6-0 -> v2.2.7-0) 2025-02-14 09:59:22 +02:00
Slavi Pantaleev
43ec149957 Merge pull request #4065 from luixxiul/fix
Update docs/configuring-playbook-etherpad.md: add the copyright header
2025-02-13 17:21:30 +02:00
Suguru Hirahara
3c9067c4c2 Update docs/configuring-playbook-etherpad.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-13 23:17:15 +09:00
Slavi Pantaleev
8e7704e43d Merge pull request #4064 from luixxiul/fix
Update docs/container-images.md: add an entry for postgres-backup-local
2025-02-13 13:33:39 +02:00
Suguru Hirahara
f4f666e5ec Update docs/container-images.md: add an entry for postgres-backup-local
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-13 20:14:00 +09:00
Suguru Hirahara
c27fb2a832 Fix capitalization: postgres → Postgres
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-13 14:00:41 +09:00
Slavi Pantaleev
830adb35a6 Merge pull request #4061 from luixxiul/fix
Update docs/configuring-playbook-postgres-backup.md: replace the instruction with the reference to MASH project
2025-02-13 06:31:46 +02:00
Slavi Pantaleev
0d9ae4387d Merge pull request #4062 from spantaleev/renovate/myst-parser-4.x
Update dependency myst-parser to v4.0.1
2025-02-13 06:31:12 +02:00
Slavi Pantaleev
9f17f748b1 Upgrade ntfy (v2.11.0-0 -> v2.11.0-1)
Ref: https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/pull/2
2025-02-13 06:30:07 +02:00
renovate[bot]
3620870173 Update dependency myst-parser to v4.0.1 2025-02-12 15:51:55 +00:00
Suguru Hirahara
4ee2f6ffea Update docs/configuring-playbook-postgres-backup.md: replace the instruction with the reference to the document copied to the MASH project
This follows the change for docs on BorgBackup with 414445b6bf.

The document on the MASH project is available at https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/blob/main/docs/configuring-postgres-backup.md.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-13 00:43:16 +09:00
Slavi Pantaleev
a99c1b28dd Merge pull request #4060 from luixxiul/fix
Update docs/configuring-playbook-postgres-backup.md: add the copyright header
2025-02-12 12:08:07 +02:00
Suguru Hirahara
8b129eefba Update docs/configuring-playbook-postgres-backup.md: add the copyright header
This is a preparation to copy the document to its own repository at the MASH project (https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup).

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-12 18:58:25 +09:00
Slavi Pantaleev
b1d97c8eaf Merge pull request #4059 from luixxiul/fix
Update docs/configuring-playbook-backup-borg.md: replace the instruction with the reference to the document copied to the MASH project
2025-02-12 09:58:06 +02:00
Suguru Hirahara
414445b6bf Update docs/configuring-playbook-backup-borg.md: replace the instruction with the reference to the document copied to the MASH project
Now that the document for setting up BorgBackup has been moved to the MASH project (https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg) it is sensible to remove the details in favor of it.

Because it may as well be noted that the document becomes available locally once the Ansible role is fetched, I think the document itself should not be deleted from the repository.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-12 16:52:16 +09:00
Slavi Pantaleev
d4a67664a8 Merge pull request #4057 from spantaleev/renovate/ghcr.io-matrix-org-rageshake-1.x
Update ghcr.io/matrix-org/rageshake Docker tag to v1.14.0
2025-02-11 21:09:10 +02:00
renovate[bot]
44de5d91f1 Update ghcr.io/matrix-org/rageshake Docker tag to v1.14.0 2025-02-11 15:38:53 +00:00
Aine
930029ccda borgmatic v1.9.10 2025-02-11 17:38:11 +02:00
Aine
2a28960693 Element Web v1.11.92 2025-02-11 17:36:30 +02:00
Slavi Pantaleev
07e3d513cb Merge pull request #4053 from spantaleev/renovate/ajbura-cinny-4.x
Update ajbura/cinny Docker tag to v4.3.0
2025-02-11 15:32:56 +02:00
Slavi Pantaleev
e5298c2879 Merge pull request #4056 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
Update ghcr.io/element-hq/synapse Docker tag to v1.124.0
2025-02-11 15:32:47 +02:00
renovate[bot]
38b0e86a2e Update ghcr.io/element-hq/synapse Docker tag to v1.124.0 2025-02-11 13:24:26 +00:00
Slavi Pantaleev
427585f45e Merge pull request #4055 from edwardando/patch-1
add 302 redirect option as well as reverse-proxy
2025-02-11 15:23:26 +02:00
Edward Andò
6dfe5d5349 Update configuring-well-known.md add 302 redirect option as well as reverse-proxy 2025-02-11 10:03:20 +00:00
Slavi Pantaleev
00bde4a0ce Merge pull request #4054 from spantaleev/renovate/joseluisq-static-web-server-2.x
Update joseluisq/static-web-server Docker tag to v2.36.0
2025-02-11 11:09:36 +02:00
renovate[bot]
34cded9b8d Update joseluisq/static-web-server Docker tag to v2.36.0 2025-02-11 09:08:51 +00:00
renovate[bot]
44d5228011 Update ajbura/cinny Docker tag to v4.3.0 2025-02-11 09:08:46 +00:00
Slavi Pantaleev
c6df7d1725 Merge pull request #4052 from luixxiul/fix
Update docs/configuring-playbook-backup-borg.md for the MASH project
2025-02-11 11:08:08 +02:00
Suguru Hirahara
86beae4863 Update docs/configuring-playbook-backup-borg.md: sync the description with the document for the MASH project
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-11 15:56:02 +09:00
Suguru Hirahara
5eb2e28eca Add the copyright header for reusing the document for the MASH project
This is preparation for the document to be copied to the MASH project at https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-11 15:55:52 +09:00
Slavi Pantaleev
abf9bb41ff Merge pull request #4051 from luixxiul/fix
Minor changes of docs
2025-02-10 19:26:29 +02:00
Suguru Hirahara
ea18d9d87e Remove blank lines around lists titled with "Table of contents"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 23:51:50 +09:00
Suguru Hirahara
39cd32aa26 Update docs/maintenance-postgres.md: add the warning styling
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 23:51:42 +09:00
Slavi Pantaleev
f41337708b Merge pull request #4050 from luixxiul/fix
Create instruction sections for Hookshot and matrix-media-repo on each document
2025-02-10 14:45:47 +02:00
Suguru Hirahara
561ec6d622 Update docs/configuring-playbook-synapse.md: add an anchor link to the subsection on the Prometheus document
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:40:24 +09:00
Suguru Hirahara
471944a72c Update docs/configuring-playbook-prometheus-grafana.md: remove instructions for setting up enabling and exposing metrics for MMR in favor of the one on the document for it
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:37:24 +09:00
Suguru Hirahara
11d4233088 Update docs/configuring-playbook-matrix-media-repo.md: replace variables for Hookshot with ones for MMR
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:37:13 +09:00
Suguru Hirahara
2ffea4fe73 Update docs/configuring-playbook-matrix-media-repo.md: copy metrics section from configuring-playbook-bridge-hookshot.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:37:03 +09:00
Suguru Hirahara
60457af840 Update docs/configuring-playbook-matrix-media-repo.md: remove descriptions about metrics for now
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:36:53 +09:00
Suguru Hirahara
63ff7a08ee Update docs/configuring-playbook-matrix-media-repo.md: move a note about disabling other media store roles up
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:36:42 +09:00
Suguru Hirahara
c0f440a0aa Update docs/configuring-playbook-bridge-hookshot.md: remove the line for metrics from the URLs table in favor of the section below
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:36:17 +09:00
Suguru Hirahara
a814d5a499 Update docs/configuring-playbook-bridge-hookshot.md: add the subsection for enabling Grafana
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:36:07 +09:00
Suguru Hirahara
39c1c8b925 Update docs/configuring-playbook-bridge-hookshot.md: move the section for matrix-appservice-webhooks up
It should make the section for Grafana more noticiable.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:35:58 +09:00
Suguru Hirahara
210a431c82 Update docs for metrics of Hookshot
As the document for Hookshot has the section for instrucion about configuring its metrics, this commit moves the instruction to it.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:35:42 +09:00
Suguru Hirahara
88e946173f Update docs/configuring-playbook-prometheus-grafana.md: move descriptions about configuring Synapse metrics out of the table
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:35:21 +09:00
Suguru Hirahara
968129398f Update docs/configuring-playbook-prometheus-grafana.md: remove duplicated instruction to refer matrix_metrics_exposure_http_basic_auth_users
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:35:03 +09:00
Suguru Hirahara
bfe8694795 Update docs/configuring-playbook-prometheus-grafana.md: add the instruction about setting dedicated credentials to each endpoint
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:34:53 +09:00
Suguru Hirahara
da8e446e02 Update docs/configuring-playbook-prometheus-grafana.md: move some descriptions out of the table
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:34:42 +09:00
Suguru Hirahara
64d9340f70 Update docs/configuring-playbook-prometheus-grafana.md: add another example for exposing metrics with dedicated credentials for matrix-media-repo
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:33:46 +09:00
Suguru Hirahara
16bb022390 Update docs/configuring-playbook-prometheus-grafana.md: create a section for exposing metrics of other services/roles focusing on Hookshot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 20:33:36 +09:00
Slavi Pantaleev
97c0f1ae7c Merge pull request #4049 from luixxiul/patch-1
Update docs/configuring-playbook-prometheus-grafana.md
2025-02-10 10:02:05 +02:00
Suguru Hirahara
042f587ba4 Update docs/configuring-playbook-prometheus-grafana.md: add an entry for matrix_media_repo_metrics_proxying_enabled
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 15:58:41 +09:00
Suguru Hirahara
dbab4a5329 Update docs/configuring-playbook-prometheus-grafana.md: move down the entries for exposing metrics of Synapse
The metrics of Synapse belongs to the category of individual services not introduced on the document.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 15:54:43 +09:00
Suguru Hirahara
833c73de56 Update docs/configuring-playbook-prometheus-grafana.md: remove the table with one entry
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 15:54:29 +09:00
Suguru Hirahara
8cbeb3d7dd Update docs/configuring-playbook-prometheus-grafana.md: create a section for the Node Exporter
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 15:54:17 +09:00
Slavi Pantaleev
9aae4796ab Merge pull request #4048 from luixxiul/patch-1
Merge docs for prometheus-nginxlog-exporter and Postgres exporter to configuring-playbook-prometheus-grafana.md
2025-02-10 06:53:39 +02:00
Suguru Hirahara
66753136c0 Delete docs/configuring-playbook-prometheus-nginxlog.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 02:00:56 +09:00
Suguru Hirahara
7c81c148cf Update docs for Prometheus: move other relevant instructions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 02:00:36 +09:00
Suguru Hirahara
2180c58e62 Update docs for Prometheus: move the description for Docker image compatibility
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 02:00:19 +09:00
Suguru Hirahara
7907a649ee Update docs/configuring-playbook-prometheus-grafana.md: remove variables for Sliding Sync proxy metrics
The component has been deprecated and it is not really sensible to keep those entries.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 02:00:06 +09:00
Suguru Hirahara
be02f12fed Update docs/configuring-playbook-prometheus-grafana.md: fix the variables name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 01:59:57 +09:00
Suguru Hirahara
e4d3b00927 Partially merge docs for prometheus-nginx-log-exporter to docs/configuring-playbook-prometheus-grafana.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 01:59:43 +09:00
Suguru Hirahara
c5019b5a30 Update docs/configuring-playbook-prometheus-nginxlog.md: add the copyright header
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-10 01:59:32 +09:00
Suguru Hirahara
2df8793a9c Update docs/configuring-playbook-prometheus-grafana.md: add two entries for journalctl (matrix-prometheus-node-exporter and matrix-prometheus-postgres-exporter)
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:24:41 +09:00
Suguru Hirahara
a67745b1fc Remove the table for variables about the Postgres Server Exporter
As prometheus_postgres_exporter_container_labels_traefik_enabled is explained below, it is sensible to remove this duplicated entry in favor of it.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:59 +09:00
Suguru Hirahara
f4bc9c98ed Update docs/configuring-playbook-prometheus-grafana.md: remove the note about the component disabled by default
It is not common to add a note about the component disabled by default.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:49 +09:00
Suguru Hirahara
a691306614 Update docs/configuring-playbook-prometheus-grafana.md: create sections for adjusting configurations of Prometheus and Grafanato decrease the section level
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:44 +09:00
Suguru Hirahara
00f3eda4dc Update docs for Prometheus: adopt the common warning message
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:39 +09:00
Suguru Hirahara
152031bbae Update docs/configuring-playbook-prometheus-grafana.md: move the security notice to the top
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:35 +09:00
Suguru Hirahara
4ecf6c2ba3 Update docs/configuring-playbook-prometheus-grafana.md: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:30 +09:00
Suguru Hirahara
8b7b7732ef Update docs/configuring-playbook-prometheus-grafana.md: move variables for setting username and password of Postgres exporter to the YAML block above
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:13:23 +09:00
Suguru Hirahara
505ff58292 Update docs/configuring-playbook-prometheus-grafana.md: tidy the section for Postgres exporter
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:11:58 +09:00
Suguru Hirahara
07cca8f4b4 Merge the document for instruction about metrics for Postgres to docs/configuring-playbook-prometheus-grafana.md to improve maintainability
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:05:25 +09:00
Suguru Hirahara
5ca5613d95 Update docs/configuring-playbook-prometheus-postgres.md: add the copyright header before deleting the file
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:05:00 +09:00
Suguru Hirahara
747e8ad589 Update docs/configuring-playbook-prometheus-grafana.md: switch the position of "Grafana" and "Prometheus" in the first sentence
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 18:04:49 +09:00
Slavi Pantaleev
c10f47487e Merge pull request #4047 from spantaleev/renovate/docker.io-metio-matrix-alertmanager-receiver-2025.x
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025
2025-02-09 10:30:48 +02:00
renovate[bot]
7ae30239db Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025 2025-02-09 08:28:00 +00:00
Suguru Hirahara
883421d2aa Merge pull request #4046 from luixxiul/fix
Update docs/configuring-playbook-prometheus-grafana.md
2025-02-09 14:20:17 +09:00
Suguru Hirahara
3d4c9bd0e9 Update docs/configuring-playbook-prometheus-grafana.md
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-02-09 13:35:58 +09:00
Suguru Hirahara
d7eb3f2765 Update docs/configuring-playbook-prometheus-grafana.md: move up the note about creating a CNAME record
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:31:55 +09:00
Suguru Hirahara
5e2bc80e6b Update docs/configuring-playbook-prometheus-grafana.md: move down the optional configuration
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:31:40 +09:00
Suguru Hirahara
2163daead2 Update docs/configuring-playbook-prometheus-grafana.md: move the comments out of the YAML block
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:31:29 +09:00
Suguru Hirahara
0154bc9931 Update docs/configuring-playbook-prometheus-grafana.md: move descriptions specific to each component to its subsection
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:30:12 +09:00
Suguru Hirahara
598cec4257 Update docs/configuring-playbook-prometheus-grafana.md: add the note label
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:30:03 +09:00
Suguru Hirahara
35b88ced00 Update docs/configuring-playbook-prometheus-grafana.md: split the table for the variables into two
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:29:52 +09:00
Suguru Hirahara
781f6d68a7 Update docs/configuring-playbook-prometheus-grafana.md: comment out grafana_anonymous_access as it is disabled by default
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:29:41 +09:00
Suguru Hirahara
8ecc83f2a9 Update docs/configuring-playbook-prometheus-grafana.md: copy the comments from the main.yml file
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:07:29 +09:00
Suguru Hirahara
15e889c21a Update docs/configuring-playbook-prometheus-grafana.md: comment out lines for configs disabled by default
- Replace the comments for them

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:07:06 +09:00
Suguru Hirahara
8d52dc985a Update docs/configuring-playbook-prometheus-grafana.md: add sections for Prometheus and Grafana
The introductions are copied from their configuration files.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:06:41 +09:00
Suguru Hirahara
19f17bb729 Update docs/configuring-playbook-prometheus-grafana.md: use the common placeholders
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:06:08 +09:00
Suguru Hirahara
1e7dba3737 Update docs/configuring-playbook-prometheus-grafana.md: move up the section for explanations about the variables
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-09 00:05:45 +09:00
Suguru Hirahara
2a9cf7de97 Update roles/custom/matrix-authentication-service/tasks/syn2mas.yml: fix punctuation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-08 01:25:05 +09:00
Suguru Hirahara
8df253b80a Update roles/custom/matrix-authentication-service/defaults/main.yml: minor changes to comments
- Fix punctuations
- Set the common expression for matrix_authentication_service_config_email_mode

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-08 01:24:49 +09:00
Slavi Pantaleev
4962be7f59 Merge pull request #4045 from luixxiul/fix
Update docs/faq.md and docs for importing data: adopt the common introduction
2025-02-07 18:04:57 +02:00
Suguru Hirahara
0f940af397 Update docs/faq.md and docs for importing data: adopt the common introduction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-08 00:52:45 +09:00
Suguru Hirahara
1ddab52294 Update docs/configuring-playbook-prometheus-grafana.md: add periods to sentences
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 23:33:29 +09:00
Suguru Hirahara
cfe5010773 Update docs/configuring-playbook-synapse-usage-exporter.md: add the section "What does it do?"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 23:01:42 +09:00
Suguru Hirahara
6b52755192 Update files for Pantalaimon: adopt the common description for logging verbosity
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 18:53:51 +09:00
Slavi Pantaleev
5e430ba72a Merge pull request #4044 from luixxiul/fix
Fix capitalization: dimension → Dimension
2025-02-07 11:34:06 +02:00
Suguru Hirahara
b72aec0c18 Update docs/configuring-playbook-bridge-hookshot.md: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:59:55 +09:00
Suguru Hirahara
c202091063 Update roles/custom/matrix-dimension/tasks/setup_install.yml: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:59:46 +09:00
Suguru Hirahara
298bc21d54 Update roles/custom/matrix-bridge-hookshot/defaults/main.yml: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:59:33 +09:00
Suguru Hirahara
522c59038e Update examples/reverse-proxies/nginx/matrix.conf: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:59:15 +09:00
Slavi Pantaleev
1db8254074 Merge pull request #4043 from luixxiul/fix
Update docs: cosmetic edits
2025-02-07 10:35:08 +02:00
Suguru Hirahara
e356f404ad Update docs/maintenance-synapse.md: make the loose list tight
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:27:15 +09:00
Suguru Hirahara
47525903b0 Update docs/configuring-playbook-s3.md: make the loose list tight
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:27:08 +09:00
Suguru Hirahara
331fe31ecf Update docs/configuring-playbook-bridge-matrix-bridge-sms.md: remove a blank line
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:26:57 +09:00
Suguru Hirahara
9a287d04ee Update docs/configuring-playbook-matrix-corporal.md: remove the hr HTML elements used for styling
Now that the warning message is styled with the fancy decoration, it is no longer to wrap them with the hr HTML elements as they are redundant.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 17:26:47 +09:00
Slavi Pantaleev
c3f19cb7c3 Merge pull request #4042 from luixxiul/fix
Update docs to add the common section "Troubleshooting"
2025-02-07 10:02:26 +02:00
Suguru Hirahara
1bccda9629 Update docs/configuring-playbook-s3-goofys.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:32:32 +09:00
Suguru Hirahara
b72de6995d Update docs/configuring-playbook-postgres-backup.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:24:59 +09:00
Suguru Hirahara
eff8c8e4b3 Update docs/configuring-playbook-jitsi.md: adopt the common instruction for troubleshooting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:21:43 +09:00
Suguru Hirahara
ddeae3c1c4 Update docs/configuring-playbook-bridge-hookshot.md: fix the service name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:12:27 +09:00
Suguru Hirahara
5961364125 Update docs/configuring-playbook-bridge-wechat.md: fix the service name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:11:09 +09:00
Suguru Hirahara
7f8f241e81 Update docs/configuring-playbook-bridge-appservice-webhooks.md: remove the duplicated instruction in favor of the dedicated section below
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:09:32 +09:00
Suguru Hirahara
4e977bd3b2 Update docs/configuring-playbook-bot-matrix-registration-bot.md: fix the service name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:07:00 +09:00
Suguru Hirahara
63a6d7e73a Update docs/configuring-playbook-prometheus-grafana.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 16:03:40 +09:00
Suguru Hirahara
145d2cc675 Update docs for the other mautrix bridges: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 15:39:47 +09:00
Suguru Hirahara
c9ae1efa07 Update docs for Meta Instagram and Messenger: add the common section "Troubleshooting"
The comments are copied from the configuration files.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 15:35:13 +09:00
Suguru Hirahara
c69892ec1f Update docs/configuring-playbook-bridge-mautrix-wsproxy.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 15:34:47 +09:00
Suguru Hirahara
e4e34333da Update files for some mautrix bridges: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 15:34:38 +09:00
Slavi Pantaleev
da398b4ba5 Use config.yml on the server for baibot
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4039

Partially reverts 30dad8ba27 which renamed
`config.yml` to `config.yaml` in the playbook and on the server, for
consistency with the rest of the playbook.

The problem is that:

- baibot defaults to looking for `config.yml`, not `config.yaml` (as provided).
  This can be worked around by specifying a new `BAIBOT_CONFIG_FILE_PATH=config.yaml`
  environment variable. This brings more complexity.

- renaming the target file (on the server) to `config.yaml` means people
  with an existing installation would drag around the old file (`config.yml`) as well,
  unless we create a new Ansible task (`ansible.builtin.file` with `state: absent`) to remove
  the old file. This brings more complexity as well.

https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4039 adjusts where the file is mounted,
which fixes the immediate problem (baibot not starting), but still means
people will end up with 2 config files for baibot (`config.yml` and `config.yaml`).

This patch, reverts a bit more, so that we still continue to use `config.yml` on the server.
People who have upgraded within the last ~17 hours may end up with 2 files, but it shouldn't be too many of them.
2025-02-07 08:29:14 +02:00
Slavi Pantaleev
f914889d36 Merge pull request #4040 from spantaleev/renovate/docker-7.x
Update dependency docker to v7.4.5
2025-02-07 08:25:40 +02:00
Slavi Pantaleev
5e07f3a6e0 Merge pull request #4041 from luixxiul/fix
Update docs to add the section "Extending the configuration"
2025-02-07 08:22:52 +02:00
renovate[bot]
8592e5a185 Update dependency docker to v7.4.5 2025-02-06 22:05:11 +00:00
Suguru Hirahara
049769514d Update docs/configuring-playbook-prometheus-grafana.md: add the common section "Extending the configuration" for Prometheus
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 03:35:46 +09:00
Suguru Hirahara
bab827c62c Update docs/configuring-playbook-sliding-sync-proxy.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 03:35:32 +09:00
Slavi Pantaleev
fcaf437a9e Merge pull request #4038 from luixxiul/fix
Update docs for configuring systemd timer calendars
2025-02-06 20:24:19 +02:00
Suguru Hirahara
2e986012c4 Update docs/configuring-playbook-synapse-s3-storage-provider.md: add the instruction to edit the schedule
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 01:15:17 +09:00
Suguru Hirahara
6531c61c7a Update files for matrix-coturn: make the reloading schedule configurable with variables
This commit adopts the common format which can be seen for BorgBackup. It should be probably helpful, though I am not quite sure how much.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-07 01:13:45 +09:00
Slavi Pantaleev
c03140c825 Merge pull request #4037 from luixxiul/fix
Update docs for Etherpad, Dimension, coturn, Postmoogle, conduwuit, Appservice-KakaoTalk, Beeper-LinkedIn, Sliding Sync proxy
2025-02-06 17:38:34 +02:00
Suguru Hirahara
056a502d5f Update files for Sliding Sync proxy: change "matrix-sliding-sync-proxy" to "matrix-sliding-sync"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:22:30 +09:00
Suguru Hirahara
4a178b534b Update docs/configuring-playbook-sliding-sync-proxy.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:17:29 +09:00
Suguru Hirahara
f920bf2cba Update docs/configuring-playbook-bridge-beeper-linkedin.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:17:22 +09:00
Suguru Hirahara
b0e67c365b Update docs/configuring-playbook-bridge-appservice-kakaotalk.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:17:11 +09:00
Suguru Hirahara
cf8e5f8e0a Update docs/configuring-playbook-conduwuit.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:17:00 +09:00
Suguru Hirahara
76f35d95a2 Update docs/configuring-playbook-bridge-postmoogle.md: adopt the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:16:47 +09:00
Suguru Hirahara
271f386d1b Update docs/configuring-playbook-turn.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:16:40 +09:00
Suguru Hirahara
dd4690fba4 Update docs/configuring-playbook-dimension.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:16:24 +09:00
Suguru Hirahara
bad9785103 Update docs/configuring-playbook-etherpad.md: add the common section "Troubleshooting"
See: https://etherpad.org/doc/v2.2.7/index.html

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 23:11:29 +09:00
Slavi Pantaleev
f3f36a8cfe Merge pull request #4036 from luixxiul/fix
Update files for rageshake, matrix-registration-bot, baibot
2025-02-06 15:51:14 +02:00
Suguru Hirahara
589aa949f4 Update docs/configuring-playbook-bot-baibot.md: adopt the common description for the section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:43:33 +09:00
Suguru Hirahara
30dad8ba27 Updat files for baibot: change config.yml.j2 → config.yaml.j2
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:43:19 +09:00
Suguru Hirahara
f732007b37 Update files for matrix-registration-bot: add the common section for "Troubleshooting"
See: https://github.com/moan0s/matrix-registration-bot/blob/main/README.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:42:52 +09:00
Suguru Hirahara
66df132e66 Update files for matrix-registration-bot: change config.yml.j2 → config.yaml.j2
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:42:28 +09:00
Suguru Hirahara
0980339e70 Update docs/configuring-playbook-bot-matrix-registration-bot.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:42:07 +09:00
Suguru Hirahara
fd2428972d Update docs/configuring-playbook-rageshake.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 21:41:08 +09:00
Suguru Hirahara
51f0a315ac Update files for rageshake: change config.yml.j2 → config.yaml.j2
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 18:26:08 +09:00
Suguru Hirahara
f01d95f2dd Update docs/configuring-playbook-rageshake: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 18:25:48 +09:00
Slavi Pantaleev
410b563415 Merge pull request #4033 from luixxiul/fix
Replace "Warnings" with the colorfully decorated one
2025-02-06 09:34:28 +02:00
Slavi Pantaleev
a21cae267e Merge pull request #4035 from spantaleev/renovate/nginx-1.x
Update nginx Docker tag to v1.27.4
2025-02-06 09:32:38 +02:00
Slavi Pantaleev
48296b2b30 Merge pull request #4034 from luixxiul/patch-1
Update docs/configuring-playbook-bot-baibot.md: adopt the common description for increasing logging verbosity
2025-02-06 07:57:33 +02:00
renovate[bot]
f40b26d3d3 Update nginx Docker tag to v1.27.4 2025-02-06 05:17:01 +00:00
Suguru Hirahara
bf7f2f6734 Update docs/configuring-playbook-bot-baibot.md: adopt the common description for increasing logging verbosity
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 13:38:54 +09:00
Suguru Hirahara
16eda7a072 Replace "Warnings" with the colorfully decorated one
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 00:20:53 +09:00
Slavi Pantaleev
d7c34a1f99 Merge pull request #4028 from luixxiul/fix
Update docs and files for backup-borg and synapse-auto-compressor
2025-02-05 11:21:48 +02:00
Slavi Pantaleev
29eeca9265 Merge pull request #4029 from luixxiul/patch-1
Update docs/faq.md: replace the link to a new issue
2025-02-05 11:21:19 +02:00
Slavi Pantaleev
c91b25c2b5 Merge pull request #4032 from luixxiul/patch-2
Fix capitalization: nginx
2025-02-05 07:22:33 +02:00
Suguru Hirahara
b1856f0a22 Fix capitalization: nginx
It should be either NGINX or nginx, and this commit converts the string in uppercase to lowercase.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 13:11:04 +09:00
Slavi Pantaleev
16761c4c17 Update Matrix Authentication Service docs in light of MAS v0.13.0 - part 2
Ref:

- https://github.com/element-hq/matrix-authentication-service/issues/3440
- https://github.com/element-hq/matrix-authentication-service/pull/3447
2025-02-04 21:08:32 +02:00
Slavi Pantaleev
97b458bec8 Update Matrix Authentication Service docs in light of MAS v0.13.0
Ref:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4030
- https://github.com/element-hq/matrix-authentication-service/releases/tag/v0.13.0
- https://github.com/element-hq/matrix-authentication-service/issues/1505
- https://github.com/element-hq/matrix-authentication-service/pull/3784
2025-02-04 21:05:40 +02:00
Slavi Pantaleev
b4bb12caa4 Merge pull request #4031 from spantaleev/renovate/ghcr.io-element-hq-matrix-authentication-service-syn2mas-0.x
Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.13.0
2025-02-04 20:42:19 +02:00
Slavi Pantaleev
e301a0357f Merge pull request #4030 from spantaleev/renovate/ghcr.io-element-hq-matrix-authentication-service-0.x
Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.13.0
2025-02-04 20:42:05 +02:00
renovate[bot]
18bd34a665 Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.13.0 2025-02-04 16:42:48 +00:00
renovate[bot]
2123aa5eb2 Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.13.0 2025-02-04 16:42:41 +00:00
Suguru Hirahara
030f0c6e5c Update docs/faq.md: replace the link to a new issue
This commit replaces the link to a blank issue to the one to the chooser.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 01:24:35 +09:00
Suguru Hirahara
1bb21388c5 Update docs/configuring-playbook-backup-borg.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 00:25:20 +09:00
Suguru Hirahara
08e34a4a6f Rename "matrix_synapse_auto_compressor_calendar" to "matrix_synapse_auto_compressor_schedule" for consistency
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 00:25:11 +09:00
Suguru Hirahara
b0c73c8378 Update docs for backup-borg and synapse-auto-compressor: use the common descriptions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 00:11:14 +09:00
Suguru Hirahara
931e6e2dce Update docs/configuring-playbook-synapse-auto-compressor.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 00:10:49 +09:00
Suguru Hirahara
fac9ac1640 Update docs/configuring-playbook-synapse-auto-compressor.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-05 00:10:32 +09:00
Aine
5d7971a790 borgmatic v1.9.9 2025-02-04 15:05:39 +02:00
Slavi Pantaleev
d6a18af5b3 Merge pull request #4027 from luixxiul/fix
Update faq.md and maintenance-and-troubleshooting.md:
2025-02-04 12:02:26 +02:00
Suguru Hirahara
143f8a5415 Update docs/faq.md: add the link to maintenance-and-troubleshooting.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:38:01 +09:00
Suguru Hirahara
0b1ee94b00 Update docs/maintenance-and-troubleshooting.md: add the link to Synapse maintenance documentation page
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:27:32 +09:00
Suguru Hirahara
46a821af75 Update docs/faq.md: remove an emphasis from the entry for troubleshooting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:27:25 +09:00
Suguru Hirahara
05fb62e525 Update docs/faq.md: change the entry for troubleshooting into a question
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:24:16 +09:00
Suguru Hirahara
e36848e9e6 Update docs/faq.md: merge the sections "Troubleshooting" and "Maintenance"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:23:56 +09:00
Suguru Hirahara
1be1a5e397 Update docs/faq.md and docs/maintenance-and-troubleshooting.md: move entries which are instruction and how-to, rather than questions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:23:21 +09:00
Suguru Hirahara
bd794e8c2c Update maintenance-and-troubleshooting.md: create sections "Maintenance" and "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:22:53 +09:00
Suguru Hirahara
ecdf370cb7 Update docs/faq.md and docs/maintenance-and-troubleshooting.md: move the troubleshooting section from the FAQ page to the dedicated page
As the theme deserves the dedicated page and we already have it, it seems sensible to move the topic from the general FAQ page.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:22:36 +09:00
Suguru Hirahara
61c9d4c55c Update docs/faq.md and docs/maintenance-and-troubleshooting.md: adopt the common description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:21:55 +09:00
Suguru Hirahara
038d046612 Update docs/maintenance-and-troubleshooting.md: tidy up
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-04 17:20:36 +09:00
Slavi Pantaleev
2473581b3a Merge pull request #4025 from luixxiul/fix
Update docs for Synapse
2025-02-04 08:34:31 +02:00
Slavi Pantaleev
c399992542 Remove matrix-bridge-mautrix-hangouts role
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3863
2025-02-03 17:13:06 +02:00
Aine
98d5ede2c6 grafana v11.5.1 2025-02-03 16:42:34 +02:00
Slavi Pantaleev
7e02e9fde1 Merge pull request #4026 from adam-kress/master
Upgrade Jitsi (v9955-0 -> v10008-0)
2025-02-03 15:59:16 +02:00
adam-kress
bd42874ed7 Upgrade Jitsi (v9955-0 -> v10008-0) 2025-02-03 07:46:58 -05:00
Slavi Pantaleev
d5d64f7ca3 Upgrade matrix-corporal (3.1.2 -> 3.1.3) 2025-02-03 11:46:43 +02:00
Slavi Pantaleev
4c9ea2ef30 Upgrade exim-relay (v4.98-r0-3-0 -> v4.98-r0-4-0) 2025-02-03 11:00:19 +02:00
Suguru Hirahara
da0952e058 Update docs for Synapse: add anchor links to each other
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 17:46:25 +09:00
Suguru Hirahara
b67e5729da Update docs/configuring-playbook-synapse: remove the duplicated anchor link
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 17:45:46 +09:00
Suguru Hirahara
8fb2719a68 Update docs for Synapse: move descriptions from docs/maintenance-and-troubleshooting.md and create the common section "Troubleshooting"
I am not sure what would be the motive to put the instruction for debugging Synapse on maintenance-and-troubleshooting.md above all, but now that we have the common section for an instruction about troubleshooting, it should make sense to move the instruction to the documentation page for configuring Synapse.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 17:41:34 +09:00
Slavi Pantaleev
9cb3c99bf9 Upgrade devture/ansible and note that it also includes agru now
Ref https://github.com/devture/docker-ansible/issues/2
2025-02-03 10:40:27 +02:00
Slavi Pantaleev
b9eb39794e Merge pull request #4023 from luixxiul/patch-1
Update docs/just.md: fix the description
2025-02-03 10:19:29 +02:00
Slavi Pantaleev
fb47618e04 Merge pull request #4024 from luixxiul/fix
Update docs/configuring-playbook-traefik.md: adopt the common descriptions and sections
2025-02-03 10:19:19 +02:00
Suguru Hirahara
7f1695b2b5 Update docs/configuring-playbook-traefik.md: add the common section "Installing"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 17:07:23 +09:00
Suguru Hirahara
0c60d0898a Update docs/configuring-playbook-traefik.md: change section levels of ones related to reverse-proxying
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:59:07 +09:00
Suguru Hirahara
eb51913dea Update docs/configuring-playbook-traefik.md: add the common section "Adjusting the playbook configuration"
- Move the section not related to adjusting the playbook configurations out of it

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:59:00 +09:00
Suguru Hirahara
c2cd5fdb48 Update docs/configuring-playbook-traefik.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:58:50 +09:00
Suguru Hirahara
452bc3273f Update docs/configuring-playbook-traefik.md: add the common section "Extending the configuration"
Refer:
- docs/configuring-playbook-backup-borg.md
- https://github.com/mother-of-all-self-hosting/ansible-role-traefik/blob/main/defaults/main.yml

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:58:41 +09:00
Suguru Hirahara
f5c6b61561 Update docs/just.md: fix the description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:18:48 +09:00
Suguru Hirahara
30d46397e6 Update docs/configuring-playbook-traefik.md: adopt the common format to descriptions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:04:38 +09:00
Suguru Hirahara
a321b069f9 Update docs/configuring-playbook-traefik.md: add the common introduction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-03 16:04:15 +09:00
Slavi Pantaleev
f9e62ad2a2 Merge pull request #4020 from luixxiul/fix
Update docs and config files for various services
2025-02-03 08:26:44 +02:00
Slavi Pantaleev
e5c5b3aa9f Merge pull request #4022 from spantaleev/renovate/gnuxie-draupnir-2.x
Update gnuxie/draupnir Docker tag to v2.1.0
2025-02-02 21:59:23 +02:00
renovate[bot]
1034c06fc7 Update gnuxie/draupnir Docker tag to v2.1.0 2025-02-02 16:54:40 +00:00
Slavi Pantaleev
7db5d47cc6 Merge pull request #4021 from spantaleev/renovate/babel-2.x
Update dependency babel to v2.17.0
2025-02-02 07:56:33 +02:00
renovate[bot]
a1430f4d3f Update dependency babel to v2.17.0 2025-02-01 22:06:58 +00:00
Slavi Pantaleev
4853de26de Upgrade Traefik (v3.3.2-1 -> v3.3.3-0) 2025-02-01 08:15:36 +02:00
Slavi Pantaleev
8889b018f3 Adjust baibot's openai-config.yml.j2 to avoid max_response_tokens if unspecified
Reasoning models like `o1` and `o3` and their `-mini` variants
report errors if we try to configure `max_response_tokens` (which
ultimately influences the `max_tokens` field in the API request):

> invalid_request_error: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead. (param: max_tokens) (code: unsupported_parameter)

`max_completion_tokens` is not yet supported by baibot, so the best we
can do is at least get rid of `max_response_tokens` (`max_tokens`).

Ref: db9422740c
2025-02-01 07:56:06 +02:00
Suguru Hirahara
25298cb696 Update docs/configuring-playbook-sygnal.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:47:52 +09:00
Suguru Hirahara
6bd94d860f Update docs/configuring-playbook-jitsi.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:47:28 +09:00
Suguru Hirahara
42694883e6 Update files for Mjolnir: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:47:17 +09:00
Suguru Hirahara
57172d85e4 Update docs/configuring-playbook-synapse-admin.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:46:49 +09:00
Suguru Hirahara
39066954b3 Update docs/configuring-playbook-synapse-admin.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:46:29 +09:00
Suguru Hirahara
17761aaa87 Update docs/configuring-playbook-synapse-usage-exporter.md: adopt the common description for the introduction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:46:14 +09:00
Suguru Hirahara
a67fea982c Update docs/configuring-playbook-synapse-usage-exporter.md: adopt the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:45:54 +09:00
Suguru Hirahara
1242281fa2 Update docs/configuring-playbook-synapse-usage-exporter.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:44:54 +09:00
Suguru Hirahara
cc3fa496ef Update docs/configuring-playbook-matrix-media-repo.md: adopt the common format
- Adopt the common introduction
- Remove the ToC
- Merge sections for additional configuration options and extending the configuration

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:44:37 +09:00
Suguru Hirahara
66bb56db18 Update docs/configuring-playbook-matrix-media-repo.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:44:27 +09:00
Suguru Hirahara
74b95b57f1 Update docs/configuring-playbook-matrix-media-repo.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:43:56 +09:00
Suguru Hirahara
f38c69b30b Update docs/configuring-playbook-client-hydrogen.md: adopt the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:43:38 +09:00
Suguru Hirahara
533ab41f79 Update docs/configuring-playbook-client-hydrogen.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:43:22 +09:00
Suguru Hirahara
69c6407372 Update docs/configuring-playbook-client-cinny.md: adopt the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:42:54 +09:00
Suguru Hirahara
bd7f35d383 Update docs/configuring-playbook-client-cinny.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:42:36 +09:00
Suguru Hirahara
85b7661249 Update docs/configuring-playbook-dendrite.md: add the common section "Troubleshooting"
See: https://matrix-org.github.io/dendrite/administration/troubleshooting#1-logs

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:42:07 +09:00
Suguru Hirahara
18983f6603 Update docs/configuring-playbook-conduit.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:41:48 +09:00
Suguru Hirahara
811abc09a8 Update files for matrix-appservice-discord: sort the logging levels
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:41:23 +09:00
Suguru Hirahara
97a7540e5d Update docs/configuring-playbook-bridge-appservice-discord.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:41:09 +09:00
Suguru Hirahara
90bb956a2e Update configuring-playbook-bridge-appservice-discord.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 02:40:38 +09:00
Slavi Pantaleev
efcac431bd Merge pull request #4018 from luixxiul/patch-1
Update docs/configuring-playbook-prometheus-nginxlog.md
2025-01-31 18:23:07 +02:00
Suguru Hirahara
7f90dda4fc Update docs/configuring-playbook-prometheus-nginxlog.md: move down the section "Docker Image Compatibility"
The section seems to be less relevant than the one for saving metrics on a Prometheus server.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 01:05:48 +09:00
Slavi Pantaleev
5543e1523c Add warning about WeChat bridge not working anymore 2025-01-31 17:58:39 +02:00
Suguru Hirahara
a6364cc6a9 Update docs/configuring-playbook-prometheus-nginxlog.md: change the section "Security and privacy" into the warning blockquote
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 00:52:10 +09:00
Suguru Hirahara
57bc9f46cc Update docs/configuring-playbook-prometheus-nginxlog.md: move sections related to configuration to the dedicated one
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 00:52:04 +09:00
Suguru Hirahara
ac926fb6b7 Update docs/configuring-playbook-prometheus-nginxlog.md: adopt the common format for the introduction
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 00:51:57 +09:00
Suguru Hirahara
421f13f6c5 Update docs/configuring-playbook-prometheus-nginxlog.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 00:48:10 +09:00
Suguru Hirahara
f8ad4384fa Update docs/configuring-playbook-prometheus-nginxlog.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-01 00:47:49 +09:00
Slavi Pantaleev
b0de0ac1d0 Merge pull request #4017 from luixxiul/fix
Update docs for Element Web and SchildiChat Web
2025-01-31 17:25:20 +02:00
Slavi Pantaleev
0318ee1f38 Remove ensure-matrix-users-created Ansible tag recommendation from WeChat bot docs
This tag does nothing for the WeChat bot user.
It appears like the matrix-wechat appservice is supposed to register it.
2025-01-31 17:04:41 +02:00
Slavi Pantaleev
0515787de2 Upgrade Traefik (v3.3.2-0 -> v3.3.2-1) and remove traefik_config_certificatesResolvers_acme_email references
Ref:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4014
- 21b36ce336

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4014
2025-01-31 14:33:34 +02:00
Suguru Hirahara
21b003ef27 Update docs/configuring-playbook-client-element-web.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-31 18:05:25 +09:00
Suguru Hirahara
45a09bc37d Update docs/configuring-playbook-client-schildichat-web.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-31 18:05:16 +09:00
Suguru Hirahara
22ea3b00d6 Update docs for Element Web and SchildiChat Web: add the instruction to change the default country code to help to make the clients less British
Note the order of the instructions is intended to align with that of configurations on main.yml files.

Also: replace the explanations with the one available at https://github.com/element-hq/element-web/blob/develop/docs/config.md

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-31 18:04:52 +09:00
Suguru Hirahara
cbcbe33a91 Update docs for Element Web and SchildiChat Web: add the instruction to change the default theme from light to dark
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-31 18:04:32 +09:00
Slavi Pantaleev
bd07b23ce1 Merge pull request #4013 from luixxiul/fix
Update docs and config files for various components
2025-01-31 10:43:35 +02:00
Slavi Pantaleev
f9d6c052eb Merge pull request #4016 from luixxiul/patch-1
Merge docs/maintenance-checking-services.md to docs/maintenance-and-troubleshooting.md
2025-01-31 10:43:14 +02:00
Suguru Hirahara
42b19566c2 Merge docs/maintenance-checking-services.md to docs/maintenance-and-troubleshooting.md
IMHO it seems to be sensible to concentrate details about maintenance at one documentation page for the sake of maintainability, rather than maintaining pages with a single short section.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-31 17:13:46 +09:00
Slavi Pantaleev
aa70e61dd8 Merge pull request #4015 from spantaleev/renovate/certifi-2025.x
Update dependency certifi to v2025
2025-01-31 08:41:56 +02:00
renovate[bot]
0e4c7aad7f Update dependency certifi to v2025 2025-01-31 05:07:25 +00:00
Aine
a7fcd12b88 Synapse Admin v0.10.3-etke37 2025-01-30 18:43:15 +02:00
Suguru Hirahara
c3a8059dd4 Update docs/configuring-playbook-bridge-matrix-bridge-sms.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:16:36 +09:00
Suguru Hirahara
0690cafa56 Update docs/configuring-playbook-bridge-matrix-bridge-sms.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:13:15 +09:00
Suguru Hirahara
8d6a3ef532 Update docs/configuring-playbook-matrix-authentication-service.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:09:48 +09:00
Suguru Hirahara
aa39042934 Update docs/configuring-playbook-matrix-authentication-service.md: add the common section "Usage"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:09:34 +09:00
Suguru Hirahara
605408d9ab Update docs/configuring-playbook-matrix-authentication-service.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:09:21 +09:00
Suguru Hirahara
da378b75da Update files for go-skype-bridge: common comments for log levels
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:07:36 +09:00
Suguru Hirahara
e86254bd54 Update docs/configuring-playbook-bridge-go-skype-bridge.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:07:11 +09:00
Suguru Hirahara
a74322a561 Update docs/configuring-playbook-dynamic-dns.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 02:03:08 +09:00
Suguru Hirahara
ad5e8dad01 Update docs/configuring-playbook-dynamic-dns.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:55:43 +09:00
Suguru Hirahara
4aaed67c21 Update docs/configuring-playbook-matrix-registration.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:24:26 +09:00
Suguru Hirahara
8c99b3c908 Update docs/configuring-playbook-matrix-registration.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:24:13 +09:00
Suguru Hirahara
a21741a7b3 Update docs/configuring-playbook-matrix-corporal.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:22:56 +09:00
Suguru Hirahara
1719512f53 Update docs/configuring-playbook-matrix-corporal.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:22:38 +09:00
Suguru Hirahara
94491aa400 Update docs/configuring-playbook-bridge-heisenbridge.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:21:58 +09:00
Suguru Hirahara
8a1e3fd21a Update docs/configuring-playbook-bridge-heisenbridge.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:21:35 +09:00
Suguru Hirahara
812e6686e0 Update files for matrix-appservice-webhooks: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:20:42 +09:00
Suguru Hirahara
aabdb07ed7 Update configuring-playbook-bridge-appservice-webhooks.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:20:03 +09:00
Suguru Hirahara
bad06d01c2 Update files for matrix-appservice-irc: adopt the common description for logging verbosity
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:19:25 +09:00
Suguru Hirahara
684f1dc16e Update files for matrix-appservice-irc: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:19:06 +09:00
Suguru Hirahara
2d34074858 Update configuring-playbook-bridge-appservice-irc.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:18:35 +09:00
Suguru Hirahara
1be6467878 Update docs/configuring-playbook-bot-maubot.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:17:41 +09:00
Suguru Hirahara
e77487ea05 Update docs/configuring-playbook-bot-maubot.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-30 01:17:23 +09:00
Slavi Pantaleev
635cfbc27d Merge pull request #4012 from luixxiul/fix
Update docs/configuring-playbook-ntfy.md
2025-01-29 17:59:52 +02:00
Suguru Hirahara
64672bfa70 Update docs/configuring-playbook-ntfy.md: add the instruction for checking logs to the section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-29 18:27:52 +09:00
Suguru Hirahara
0ae2f08e33 Update docs/configuring-playbook-ntfy.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-29 18:26:07 +09:00
Slavi Pantaleev
0dd7b1a6b7 Merge pull request #4009 from luixxiul/fix
Update README.md and docs/container-images.md
2025-01-29 10:56:21 +02:00
Slavi Pantaleev
1d445dea4b Update comments for matrix_*_container_image_customizations_dockerfile_body_custom variables to mention matrix_*_container_image_customizations_enabled
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4011
2025-01-29 06:38:48 +02:00
Slavi Pantaleev
a9d4782f92 Merge pull request #4010 from spantaleev/renovate/vectorim-element-web-1.x
Update vectorim/element-web Docker tag to v1.11.91
2025-01-28 20:51:34 +02:00
renovate[bot]
c9b2278b83 Update vectorim/element-web Docker tag to v1.11.91 2025-01-28 18:28:32 +00:00
Slavi Pantaleev
8020e6ebb2 Upgrade Synapse (v1.122.0 -> v1.123.0) 2025-01-28 18:42:57 +02:00
Suguru Hirahara
496b921261 Update docs/container-images.md: remove definite articles from descriptions
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 22:29:27 +09:00
Suguru Hirahara
78e3089af1 Update README.md and docs/container-images.md: remove indefinite articles from descriptions to improve consistency
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 22:29:11 +09:00
Suguru Hirahara
4b891b89eb Update README.md and docs/container-images.md: remove the subject from the descriptions of matrix-media-repo
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 22:26:10 +09:00
Suguru Hirahara
4ab983ffc9 Update README.md and docs/container-images.md: remove periods
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 22:25:03 +09:00
Suguru Hirahara
bf3b6b75f7 Update README.md and docs/container-images.md: use the common description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 22:24:50 +09:00
Slavi Pantaleev
058f42c9fa Merge pull request #4008 from luixxiul/fix
Update files for matrix-bot-chatgpt, matrix-bot-go-neb, matrix-bot-honoroit, and matrix-bot-matrix-reminder-bot
2025-01-28 11:52:13 +02:00
Suguru Hirahara
ce08f618db Update docs/configuring-playbook-bot-matrix-reminder-bot.md: fix the service name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:33:29 +09:00
Suguru Hirahara
8739de6d9c Update docs/configuring-playbook-bot-go-neb.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:14:31 +09:00
Suguru Hirahara
6e9160053d Update docs/configuring-playbook-bot-go-neb: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:14:15 +09:00
Suguru Hirahara
ef48afca67 Update docs/configuring-playbook-bot-honoroit.md: add the common section "Troubleshooting"
See da66cc4d0e/internal/config/config_test.go for the confirmation of logging level (debug).

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:13:09 +09:00
Suguru Hirahara
53fabab5a7 Update docs/configuring-playbook-bot-honoroit.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:12:52 +09:00
Suguru Hirahara
ce09746003 Update files for matrix-reminder-bot: adopt the common description for logging verbosity levels
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:11:19 +09:00
Suguru Hirahara
4ed111ff74 Update docs/configuring-playbook-bot-matrix-reminder-bot.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:11:06 +09:00
Suguru Hirahara
61987994ad Update docs/configuring-playbook-bot-matrix-reminder-bot.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:10:45 +09:00
Suguru Hirahara
e5b526a55e Update docs/configuring-playbook-bot-chatgpt.md: add the common description and section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:09:48 +09:00
Suguru Hirahara
f4b4c7ad17 Update docs/configuring-playbook-bot-chatgpt.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 18:09:02 +09:00
Slavi Pantaleev
9d532ad44c Merge pull request #4007 from luixxiul/fix
Update docs/configuring-playbook-matrix-ldap-registration-proxy.md
2025-01-28 09:48:38 +02:00
Suguru Hirahara
63ced228c6 Update docs/configuring-playbook-matrix-ldap-registration-proxy.md: change placeholders
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 15:52:39 +09:00
Suguru Hirahara
049fb1d658 Update docs/configuring-playbook-matrix-ldap-registration-proxy.md: introductory sections
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 15:52:30 +09:00
Suguru Hirahara
c4b4deeef6 Update docs/configuring-playbook-matrix-ldap-registration-proxy.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 15:24:01 +09:00
Suguru Hirahara
2da5c13c26 Update docs/configuring-playbook-matrix-ldap-registration-proxy.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 15:23:49 +09:00
Slavi Pantaleev
4f00a1f8f0 Merge pull request #4005 from luixxiul/fix
Update files for matrix-bridge-wechat
2025-01-28 07:45:48 +02:00
Slavi Pantaleev
017df4da4e Merge pull request #4006 from luixxiul/patch-1
Update docs/configuring-playbook-ma1sd.md: fix configuration for increasing logging verbosity
2025-01-28 07:45:18 +02:00
Suguru Hirahara
6814ead8fc Update docs/configuring-playbook-ma1sd.md: fix configuration for increasing logging verbosity
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 13:55:52 +09:00
Suguru Hirahara
aaf76adbd7 Update files for matrix-bridge-wechat: sort the logging verbosity levels
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 13:11:59 +09:00
Suguru Hirahara
855ba5581a Update files for matrix-bridge-wechat: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 13:11:52 +09:00
Suguru Hirahara
16d3d0e3fe Update docs/configuring-playbook-bridge-wechat.md: add the section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 13:10:27 +09:00
Slavi Pantaleev
afc78c6ff7 Merge pull request #4003 from luixxiul/fix
Update files for ma1sd
2025-01-27 20:49:01 +02:00
Suguru Hirahara
eb5831efa3 Update files for ma1sd: add the common section "Increase logging verbosity"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 02:02:15 +09:00
Suguru Hirahara
cf01549168 Update docs/configuring-playbook-ma1sd.md: adopt the common format for the section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-28 02:01:59 +09:00
Slavi Pantaleev
83eedc44f1 Sync i18n with recent changes 2025-01-27 09:56:21 +02:00
Slavi Pantaleev
43d5596086 Remove Redis and KeyDB support, only leaving Valkey around 2025-01-27 09:54:11 +02:00
Slavi Pantaleev
eaa4e86517 Merge pull request #4002 from luixxiul/fix
Update files for Email2Matrix
2025-01-26 17:11:26 +02:00
Suguru Hirahara
8f2c51305a Update files for Email2Matrix: reflect the fact that the component has been deprecated
Unfortunately Email2Matrix has been deprecated this month. See: f1032f0ac8. As a long time user of the component, I'd like to shout out a big thank-you to Slavi!

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 23:21:25 +09:00
Suguru Hirahara
3c33f0be3b Update files for Email2Matrix: fix capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 23:07:01 +09:00
Suguru Hirahara
e1f2d764e5 Update docs/configuring-playbook-email2matrix.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 23:06:47 +09:00
Suguru Hirahara
fa33e0b4bd Update docs/configuring-playbook-email2matrix.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 23:04:21 +09:00
Slavi Pantaleev
dc8002596e Merge pull request #4001 from luixxiul/fix
Replace hyphens with actual dash (U+2014) characters where intended
2025-01-26 12:32:10 +02:00
Suguru Hirahara
1db5f76024 Replace double hyphens with "Em Dash" unicode character (U+2014)
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 16:36:14 +09:00
Suguru Hirahara
76e346573c Replace hyphen as dash with "Em Dash" unicode character (U+2014)
This commit replaces hyphen characters used as dash with the actual unicode character for dash. It avoids using HTML character entity reference (&mdash;), because IMHO it would make it a bit harder to read documents as plain markdown files on your local text editor.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 16:35:59 +09:00
Slavi Pantaleev
091313f850 Merge pull request #4000 from luixxiul/fix
Update files for Cactus Comments
2025-01-26 08:24:27 +02:00
Suguru Hirahara
abff629e36 Update docs/configuring-playbook-cactus-comments.md: replace "-" with "&mdash;"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:42:44 +09:00
Suguru Hirahara
1f532fe90d Update docs/configuring-playbook-cactus-comments.md: add the configuration for changing the default username (bot.cactusbot)
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:40:31 +09:00
Suguru Hirahara
89864c6de0 Update files for cactus-comments: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:22:43 +09:00
Suguru Hirahara
83ad4d4975 Update docs/configuring-playbook-cactus-comments.md: adopt the common instruction to start using the component
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:22:09 +09:00
Suguru Hirahara
f2083aa8a7 Update docs/configuring-playbook-cactus-comments.md: replace the placeholders for the site name
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:22:00 +09:00
Suguru Hirahara
7f13747e82 Update docs/configuring-playbook-cactus-comments.md: move the configuration enabled by default
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:21:43 +09:00
Suguru Hirahara
909ca59cb7 Update docs/configuring-playbook-cactus-comments.md: remove the uncommon comment block
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:20:36 +09:00
Suguru Hirahara
50f259d505 Update docs/configuring-playbook-cactus-comments.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-26 11:20:24 +09:00
Slavi Pantaleev
f9817a1ff2 Merge pull request #3999 from luixxiul/fix
Update docs/configuring-playbook-bot-buscarron.md
2025-01-25 22:30:29 +02:00
Suguru Hirahara
0dc566f1a3 Update docs/configuring-playbook-bot-buscarron.md: add the common expression for linking to the documentation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 22:34:28 +09:00
Suguru Hirahara
2a7111f287 Update docs/configuring-playbook-bot-buscarron.md: add the common section "Troubleshooting"
See roles/custom/matrix-bot-buscarron/defaults/main.yml at 601406ddda for the default log value (INFO).

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 22:32:30 +09:00
Suguru Hirahara
6c19bf509e Update docs/configuring-playbook-bot-buscarron.md: add the section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 22:30:18 +09:00
Slavi Pantaleev
30be63d4b0 Merge pull request #3998 from luixxiul/fix
Update files for matrix-bridge-hookshot
2025-01-25 15:04:22 +02:00
Suguru Hirahara
5c80c820bc Update docs/configuring-playbook-bridge-hookshot.md: add a period
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 18:24:40 +09:00
Suguru Hirahara
acf2b90346 Update files for matrix-bridge-hookshot: change the file path of config.yml.j2 in order to improve consistency
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 18:13:59 +09:00
Suguru Hirahara
e8213768a5 Update files for matrix-bridge-hookshot: sort logging levels
Based on docs/configuring-playbook-alertmanager-receiver.md

We can re-sort the levels it if is found out that debug should be placed at the first.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 18:13:31 +09:00
Suguru Hirahara
5c39ef8ca2 Update docs/configuring-playbook-bridge-hookshot.md: add the common section "Troubleshooting"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 18:13:20 +09:00
Suguru Hirahara
5b2282de27 Update docs/configuring-playbook-bridge-hookshot.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 18:07:13 +09:00
Slavi Pantaleev
761b30cf54 Merge pull request #3997 from luixxiul/fix
Update files for matrix-alertmanager-receiver
2025-01-25 05:21:52 +02:00
Suguru Hirahara
21b5963f63 Update files for the matrix-alertmanager-receiver: rename config.yml.j2 to config.yaml.j2 in order to improve consistency
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 12:04:41 +09:00
Suguru Hirahara
42f38dae07 Update docs/configuring-playbook-alertmanager-receiver.md: add the common section "Troubleshooting"
The configuration was copied from main.yml.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 12:04:26 +09:00
Suguru Hirahara
d225f52ba2 Update docs/configuring-playbook-alertmanager-receiver.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-25 12:04:16 +09:00
Slavi Pantaleev
671b76e1a6 Merge pull request #3996 from luixxiul/fix
Update docs/configuring-playbook-dimension.md
2025-01-24 21:30:21 +02:00
renovate[bot]
292b0704cc Update gnuxie/draupnir Docker tag to v2.0.2 2025-01-24 21:29:50 +02:00
Suguru Hirahara
30d01cc22d Update docs/configuring-playbook-dimension.md: replace right arrows with actual ones
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 23:01:10 +09:00
Suguru Hirahara
4400d3c06d Update docs/configuring-playbook-dimension.md: create the section "Usage"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 23:00:58 +09:00
Suguru Hirahara
5ea579d4ee Update docs/configuring-playbook-dimension.md: apply the fact that the project has been finished and the update will not be provided
The original description has been added with a0ce5eec64 on 2020.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 22:56:16 +09:00
Suguru Hirahara
9d8dac83cc Update docs/configuring-playbook-dimension.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 22:45:49 +09:00
Slavi Pantaleev
cd50738fe8 Merge pull request #3995 from luixxiul/fix
Update docs/configuring-playbook-bridge-appservice-slack.md and its main.yml
2025-01-24 14:36:38 +02:00
Suguru Hirahara
e6d631c6f1 Update docs/configuring-playbook-bridge-appservice-slack.md: change the instruction into a sentence
Fixing the grammatical structure to avoid word puzzles for better i18n.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 18:02:39 +09:00
Suguru Hirahara
2b4865d44b Update docs/configuring-playbook-bridge-appservice-slack.md: adopt the common expression for troubleshooting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 18:02:19 +09:00
Suguru Hirahara
ff7dbcee1b Update docs/configuring-playbook-bridge-appservice-slack.md: add the common section "Extending the configuration"
Also: add an example for "+matrix_appservice_slack_configuration_extension_yaml"

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 18:02:05 +09:00
Suguru Hirahara
01050c520d Update roles/custom/matrix-bridge-appservice-slack/defaults/main.yml: fix indentation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 17:58:33 +09:00
Suguru Hirahara
d6abd30904 Update docs/configuring-playbook-user-verification-service.md (#3994)
* Update docs/configuring-playbook-user-verification-service.md: add the common section "Extending the configuration"

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: replace single quotes with backticks

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: adopt the common section "Troubleshooting"

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: use the variable specified on main.yml directly

There are other variables specified on .env.j2 such as UVS_ACCESS_TOKEN and UVS_AUTH_TOKEN, but these are not used in the description on the document other than UVS_LOG_LEVEL. This commit therefore replaces the variable with the one specified on main.yml (matrix_user_verification_service_uvs_log_level) to improve consistency.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: fix capitalization

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: replace the placeholder TOKEN with YOUR_TOKEN_HERE

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update docs/configuring-playbook-user-verification-service.md: change a section title

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

---------

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 09:01:51 +02:00
Slavi Pantaleev
7847024ecd Merge pull request #3993 from luixxiul/fix
Update docs/configuring-playbook-pantalaimon.md: adopt the common format
2025-01-23 21:00:08 +02:00
Suguru Hirahara
4c00e88fa4 Update docs/configuring-playbook-pantalaimon.md: add the common section "Troubleshooting"
The comment was copied from roles/custom/matrix-pantalaimon/defaults/main.yml. The latest status of the variable "matrix_pantalaimon_log_level" can be checked on 55fcaac1f1.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 02:04:46 +09:00
Suguru Hirahara
74e4c2a5bd Update docs/configuring-playbook-pantalaimon.md: add the common section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-24 01:38:53 +09:00
Slavi Pantaleev
3246588023 Merge pull request #3992 from luixxiul/fix
Update configuring-playbook-bot-baibot.md and configuring-playbook-bridge-postmoogle.md
2025-01-23 18:18:38 +02:00
Suguru Hirahara
a6333df04e Update configuring-playbook-bot-baibot.md and configuring-playbook-bridge-postmoogle.md: the common section for troubleshooting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-23 23:30:40 +09:00
Suguru Hirahara
e047e860ff Update docs/configuring-playbook-bridge-postmoogle.md: add the section "Extending the configuration"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-23 23:30:31 +09:00
Slavi Pantaleev
d56618940f Merge pull request #3990 from luixxiul/fix
Update docs/configuring-playbook-email.md: tidy up
2025-01-23 15:52:19 +02:00
Slavi Pantaleev
1c87faf9e0 Merge pull request #3991 from spantaleev/renovate/halfshot-matrix-hookshot-6.x
Update halfshot/matrix-hookshot Docker tag to v6.0.2
2025-01-23 12:15:34 +02:00
renovate[bot]
4b155c276b Update halfshot/matrix-hookshot Docker tag to v6.0.2 2025-01-23 10:11:01 +00:00
Suguru Hirahara
97418bf2ea Update docs/configuring-playbook-email.md: tidy up
This commit applies the common format to the file.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-23 18:55:00 +09:00
Slavi Pantaleev
c7bc589010 Merge pull request #3988 from luixxiul/fix
Update docs/configuring-playbook-bridge-mautrix-wsproxy.md
2025-01-23 09:29:59 +02:00
Suguru Hirahara
c8ca9489bb Update docs/configuring-playbook-bridge-mautrix-wsproxy.md: move down the section "Extending the configuration" for consistency
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-23 02:11:03 +09:00
Slavi Pantaleev
11f7abd6c8 Merge pull request #3987 from spantaleev/renovate/matrixdotorg-mjolnir-1.x
Update matrixdotorg/mjolnir Docker tag to v1.9.2
2025-01-22 08:46:20 +02:00
Slavi Pantaleev
97cee45bb9 Merge pull request #3985 from luixxiul/fix
Update docs/configuring-playbook-backup-borg.md and docs/configuring-playbook-synapse-auto-compressor.md: adopt the common description
2025-01-22 08:45:22 +02:00
Slavi Pantaleev
0b84edc976 Merge pull request #3984 from FSG-Cat/FSG-Cat/Synapse-auto-forget-missing
Change matrix_synapse_forgotten_room_retention_period  from null to 28d
2025-01-22 08:44:44 +02:00
Slavi Pantaleev
52da325ab8 Cross-link matrix_synapse_forget_rooms_on_leave and matrix_synapse_forgotten_room_retention_period variables 2025-01-22 08:43:35 +02:00
renovate[bot]
4d6ee3db7e Update matrixdotorg/mjolnir Docker tag to v1.9.2 2025-01-21 21:34:42 +00:00
Suguru Hirahara
fbe32cc17c Update docs/configuring-playbook-backup-borg.md and docs/configuring-playbook-synapse-auto-compressor.md: adopt the common description
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-22 01:38:26 +09:00
Catalan Lover
ef6f50e898 Change matrix_synapse_forgotten_room_retention_period from null to 28d
As we automatically forget rooms on leave in the playbook this option working at all is probably heavily desired.

Timing is copied from upstream example.

Credit goes to Anoa for making me even check this.
2025-01-21 16:53:46 +01:00
Slavi Pantaleev
07392a17c8 Merge pull request #3982 from luixxiul/patch-1
Update docs for Draupnir and Mjolnir: improve the instructions for running the curl command to disable rate limiting
2025-01-21 10:07:17 +02:00
Suguru Hirahara
3b685df1ab Update docs for Draupnir and Mjolnir: improve the instructions for running the curl command to disable rate limiting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 15:56:24 +09:00
Slavi Pantaleev
450e9f196d Merge pull request #3981 from luixxiul/patch-3
Update docs/configuring-playbook-bot-draupnir.md: create and invite the bot before starting
2025-01-21 08:21:07 +02:00
Slavi Pantaleev
3ec81ef2d4 Merge pull request #3978 from luixxiul/patch-2
Update roles/custom/matrix-bot-draupnir/defaults/main.yml
2025-01-21 08:20:04 +02:00
Slavi Pantaleev
aaba19e1e7 Merge pull request #3977 from luixxiul/patch-1
Update docs/configuring-playbook-bot-draupnir.md and docs/configuring-playbook-bot-mjolnir.md
2025-01-21 08:16:10 +02:00
Slavi Pantaleev
3343eadd46 Replace old warnings with Github Markdown Warnings on Draupnir doc page
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3980
2025-01-21 08:14:49 +02:00
Slavi Pantaleev
2698ed85a0 Replace old warnings with Github Markdown Warnings
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3980
2025-01-21 08:13:31 +02:00
Slavi Pantaleev
c7eb713efe Merge pull request #3980 from FSG-Cat/FSG-Cat/Unifi-Warning-Formating
Replace old warnings with Github Markdown Warnings
2025-01-21 08:10:57 +02:00
Slavi Pantaleev
de86a9b4d7 Merge pull request #3976 from razzeee/patch-2
Fix postgres maintenance links
2025-01-21 07:58:41 +02:00
Suguru Hirahara
9d3ef6134b Update roles/custom/matrix-bot-draupnir/defaults/main.yml: make sure what the word "it" means here
Here "it" should not mean "the upstream advice".

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 14:53:08 +09:00
Suguru Hirahara
7b979ff7a9 Update roles/custom/matrix-bot-draupnir/defaults/main.yml: replace "when" with "if" for consistency and to clarify that these are conditions
Note that there is no other "when" on this file. It is not sensible to keep these exceptions here.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 13:58:04 +09:00
Suguru Hirahara
665f7369d6 Update roles/custom/matrix-bot-draupnir/defaults/main.yml: change the subject who discourages Pantalaimon
This change clarifies that it is the upstream project, not this project owner, that discourages enabling Pantalaimon for Draupnir. This distinction should make it clear who is responsible for the matter.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 13:43:12 +09:00
Suguru Hirahara
a7e1474c3a Update roles/custom/matrix-bot-draupnir/defaults/main.yml: strip a noisy warning and the order to check in at the upstream
Multiple use of the phrase "you know what you are doing" does not increase its effect but rather makes it noisy instead. Since it is warned with capitalized "DO NOT", it is enough.

Also replace the order to check in at the upstream with the recommendation, as it is inconsistent for this project overall to ask users to do so. It is not sensible to make an exception for Draupnir.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 12:48:30 +09:00
Suguru Hirahara
5731bcd222 Update roles/custom/matrix-bot-draupnir/defaults/main.yml: fix another sentence and capitalization
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 12:31:16 +09:00
Suguru Hirahara
8fadab4ee8 Change the expression and fix other typos
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-21 12:17:50 +09:00
Suguru Hirahara
66d96844d6 Update docs/configuring-playbook-bot-draupnir.md: move the note about the "ensure-matrix-users-created" playbook tag
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 23:14:34 +09:00
Suguru Hirahara
cb0798bc06 Update docs/configuring-playbook-bot-draupnir.md: create and soon invite the bot user to the management room
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 23:13:44 +09:00
Catalan Lover
177ac8caa1 Replace old warnings with Github Markdown Warnings
I executed a Search for `⚠️ **Warning**:` and replaced it with
```
> [!WARNING]
>
```

I also capitalised the first letter where missing.

Draupnir Docs have been excluded from this Commit as to not cause a separate PR im working on for the Draupnir docs to have potential merge conflicts and im making said change in that document too.
2025-01-20 14:39:40 +01:00
Suguru Hirahara
c3e9e51385 Update roles/custom/matrix-bot-draupnir/defaults/main.yml: clarify that setting "matrix_bot_draupnir_pantalaimon_use" to false is opinionated
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 18:10:40 +09:00
Suguru Hirahara
9c5cd42af1 Update roles/custom/matrix-bot-draupnir/defaults/main.yml: fix capitalization, typo, and sentences
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 18:10:31 +09:00
Suguru Hirahara
8eb513a49d Update docs for Draupnir and Mjolnir: improve instructions to replace the IDs
Also: replace the placeholder for the clean access token

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 17:58:31 +09:00
Suguru Hirahara
9a0e1e64a8 Update docs for Draupnir and Mjolnir: move the instruction to obtain an access token for the admin account above the one about running the curl command
Also: clarify that it is the admin account that needs to be obtained for Synapse's Admin APIs.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 17:58:18 +09:00
Suguru Hirahara
aea2a6d53f Update docs for Draupnir and Mjolnir: create subsections for the instruction about making sure the account is free from rate limiting
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 17:57:58 +09:00
Suguru Hirahara
30a53efadd Update docs for Draupnir and Mjolnir: move the note about API access above
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 17:57:30 +09:00
Kolja
d000b558e1 Fix postgres maintenance links 2025-01-20 09:25:13 +01:00
Slavi Pantaleev
94b10ad446 Merge pull request #3973 from luixxiul/patch-2
Update docs for Draupnir and Mjolnir: misc changes before iteration
2025-01-20 09:48:10 +02:00
Slavi Pantaleev
dbfa190456 Merge pull request #3972 from luixxiul/patch-1
Update docs for Draupnir, D4A, and Mjolnir: adopt the common section "Extending the configuration"
2025-01-20 09:45:33 +02:00
Suguru Hirahara
887db388e8 Apply the review from another PR
Cherry-picked from f7c01cca9c.
Regressed by f15c0a46be.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 16:42:24 +09:00
Slavi Pantaleev
c691f85533 Upgrade ddclient (3.11.2 -> 4.0.0) and adjust config path
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3971

The path change is due to: https://github.com/ddclient/ddclient/pull/789

This is untested.
2025-01-20 09:41:08 +02:00
Slavi Pantaleev
f5705dce7b Merge pull request #3974 from luixxiul/patch-3
Change capitalization per author's preference: Conduwuit → conduwuit
2025-01-20 08:31:09 +02:00
Suguru Hirahara
c4507d42e3 Update docs/configuring-playbook-bot-draupnir.md: add "optoional, recommended" label to the section
Unlike Mjolnir, the step is no longer required. It is optional and recommended on Draupnir, therefore it should be clarified so.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 14:00:19 +09:00
Suguru Hirahara
7186d5fb93 Update docs/configuring-playbook-bot-draupnir.md: add an anchor link to configuring-playbook-bot-mjolnir.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:55:14 +09:00
Suguru Hirahara
2c7914d071 Update docs/configuring-playbook-bot-draupnir.md: invite the Draupnir bot after installation
Now that the bot user for Draupnir is created automatically and you no longer need to register it manually since its 2.0.0 version, it does not seem to be sensible to synchronize descriptions about inviting bots between documents for Draupnir and Mjolnir. It is not friendly to instruct to invite the bot which does not exist just yet, only to let the known error message about the nonexistent user displayed.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:54:35 +09:00
Suguru Hirahara
7b6b103e01 Update docs/configuring-playbook-bot-draupnir.md: misc changes mainly fixing typos
The typos were introduced by f15c0a46be.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:53:37 +09:00
Suguru Hirahara
340e569984 Update docs/configuring-playbook-appservice-draupnir-for-all.md: remove the duplicated instruction to set an alias to the management room
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:51:59 +09:00
Suguru Hirahara
04ff68e229 Update docs for Draupnir and Mjolnir: tidy up the instruction to check the room ID
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:51:49 +09:00
Suguru Hirahara
39625aae15 Update docs for Draupnir and Mjolnir: small edits for the common sentences
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:51:27 +09:00
Suguru Hirahara
4e5532a0d5 Update docs for Draupnir, D4A, and Mjolnir: emphasize the importance of being careful when inviting a user to the management room
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 13:51:10 +09:00
Suguru Hirahara
8ba607a76a Change capitalization per author's preference: Conduwuit → conduwuit
See: e8508d16e1

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 12:38:37 +09:00
Suguru Hirahara
f987d295ee Update docs for Draupnir, D4A, and Mjolnir: adopt the common section "Extending the configuration"
Also: fix the variable "matrix_appservice_draupnir_for_all_configuration_yaml"

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-01-20 11:43:15 +09:00
Slavi Pantaleev
e1d3e1b4e6 Merge pull request #3969 from FSG-Cat/FSG-Cat/Gramar-Fix
Replace Discharge with Disable (Gramar Fix)
2025-01-19 20:22:50 +02:00
Catalan Lover
ba19e4d303 Replace Discharge with Disable
In the context of disabling rate limits on an API its disable that is correct. We arent talking about controlling the discharge rate of a battery we dont want to blow up or harm. We are talking about matrix APIs and disabling the rate limiter on them.
2025-01-19 18:14:05 +01:00
Slavi Pantaleev
0b9389fd64 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-23 17:43:52 +02:00
Slavi Pantaleev
9a8a569431 Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-23 17:43:29 +02:00
Slavi Pantaleev
bb403e1aee Update docs/configuring-playbook-jwt-service.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-23 17:43:15 +02:00
Slavi Pantaleev
74fbacbd9f Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-23 17:42:54 +02:00
Slavi Pantaleev
5642755273 Rework LiveKit JWT Service role 2024-11-23 16:40:50 +02:00
Slavi Pantaleev
bb925f4782 Merge branch 'master' into element-call-integration 2024-11-23 14:45:20 +02:00
Slavi Pantaleev
c57d0d192d Eliminate remaining matrix references from LiveKit Server role 2024-11-21 19:45:07 +02:00
Slavi Pantaleev
006920882c Rename file (element-call-labels -> labels) 2024-11-21 19:38:23 +02:00
Slavi Pantaleev
69d702643f Remove homeserver.yaml patching from Element Call role 2024-11-21 19:36:55 +02:00
Slavi Pantaleev
252ca52f60 Relocate /.well-known/element/element.json setup to matrix-static-files, instead of ugly patching from the Element Call role 2024-11-21 19:32:15 +02:00
Slavi Pantaleev
3f52cec25c Relocate Element Web features & element_call configuration to Element role, instead of ugly patching from the Element Call role 2024-11-21 19:17:30 +02:00
Slavi Pantaleev
7a6fcaa402 Fix typo 2024-11-21 18:59:11 +02:00
Slavi Pantaleev
394fdca066 Relocate org.matrix.msc4143.rtc_foci setup to /.well-known/matrix/client to matrix-static-files instead of ugly patching 2024-11-21 18:54:29 +02:00
Slavi Pantaleev
f0466d5a99 Make LiveKit Server configuration extensible 2024-11-21 18:19:36 +02:00
Slavi Pantaleev
be7271760e Make LiveKit Server logging config configurable 2024-11-21 18:13:07 +02:00
Slavi Pantaleev
8b84eb6390 Default LiveKit Server to a smaller RTC range for faster startup on non-host networks 2024-11-21 18:04:53 +02:00
Slavi Pantaleev
3e86adac0d Fix port exposure for LiveKit Server 2024-11-21 18:00:43 +02:00
Slavi Pantaleev
721fb39aa2 More progress on the LiveKit role 2024-11-21 17:28:06 +02:00
Slavi Pantaleev
783d4a23f8 Add livekit_server_identifier 2024-11-21 16:54:45 +02:00
Slavi Pantaleev
fa4ebd2a64 Cleanups 2024-11-21 16:37:01 +02:00
Slavi Pantaleev
79ae704a24 Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration 2024-11-21 16:31:50 +02:00
Slavi Pantaleev
c07b093902 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:24:34 +02:00
Slavi Pantaleev
c321ca160e Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:24:26 +02:00
Slavi Pantaleev
164be875b0 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:24:15 +02:00
Slavi Pantaleev
0f23e36e12 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:24:05 +02:00
Slavi Pantaleev
83bb546c64 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:55 +02:00
Slavi Pantaleev
3783922275 Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:47 +02:00
Slavi Pantaleev
66cc36466c Update docs/configuring-playbook-livekit-server.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:36 +02:00
Slavi Pantaleev
ec41c1aba5 Update docs/configuring-playbook-jwt-service.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:28 +02:00
Slavi Pantaleev
df6ef106d1 Update docs/configuring-playbook-jwt-service.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:18 +02:00
Slavi Pantaleev
eb048da8a1 Update docs/configuring-playbook-jwt-service.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:23:06 +02:00
Slavi Pantaleev
ccb29beb30 Update docs/configuring-playbook-jwt-service.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:22:56 +02:00
Slavi Pantaleev
32ea60fdc5 Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:22:44 +02:00
Slavi Pantaleev
25a8cb3b4a Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:22:17 +02:00
Slavi Pantaleev
55da5c3213 Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:21:55 +02:00
Slavi Pantaleev
925ebfbd4b Update docs/configuring-playbook-element-call.md
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 16:21:42 +02:00
Slavi Pantaleev
88d4668450 Variable rename (livekit_server_image -> livekit_server_container_image) for consistency with other roles 2024-11-21 16:16:43 +02:00
Slavi Pantaleev
1838a541ae Variables rename (matrix_livekit_server_ -> livekit_server_) to prepare for role extraction 2024-11-21 16:15:54 +02:00
Slavi Pantaleev
1e82530080 Merge branch 'master' into element-call-integration 2024-11-21 15:59:56 +02:00
Slavi Pantaleev
82127830b3 Update roles/custom/matrix-livekit-server/tasks/uninstall.yml
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 15:58:01 +02:00
Slavi Pantaleev
85c0ffa9e1 Update roles/custom/matrix-livekit-server/tasks/uninstall.yml
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 15:57:51 +02:00
Slavi Pantaleev
b691f39d39 Update roles/custom/matrix-livekit-server/tasks/install.yml
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 15:57:44 +02:00
Slavi Pantaleev
10df145101 Update roles/custom/matrix-livekit-server/tasks/install.yml
Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2024-11-21 15:57:31 +02:00
wjbeckett
fa2a913d39 fixing issue with element call domain not being expanded when writing the element web config.json. 2024-10-03 16:20:54 +10:00
wjbeckett
e18b28136c Updated Element call docs with dependent services and fixed typo. 2024-10-03 15:28:56 +10:00
wjbeckett
1906d61c39 updated traefik label to be in line with the latest change from devture_traefik_ to traefik_ 2024-10-03 13:25:40 +10:00
Backslash
b7e0a41134 Merge branch 'spantaleev:master' into element-call-integration 2024-10-03 13:20:02 +10:00
wjbeckett
a03f5985a5 removed trailing whitespaces 2024-10-03 12:38:34 +10:00
wjbeckett
1e6698cb99 updated documentation or the new roles. 2024-10-02 13:27:02 +10:00
wjbeckett
f684719b2a fixed error with element client update task 2024-10-01 22:30:09 +10:00
wjbeckett
a6e3203398 updated docs, broke the well-known and element client modifications out to separate tasks. 2024-10-01 22:20:50 +10:00
wjbeckett
2b4fdea70f added header flags back in. 2024-10-01 17:04:11 +10:00
wjbeckett
6c8923ae28 removed headers. 2024-10-01 16:51:06 +10:00
wjbeckett
9691577b22 removed additinoal headers 2024-10-01 16:45:07 +10:00
wjbeckett
46109565e1 updated headers for each of the call services. 2024-10-01 16:33:48 +10:00
wjbeckett
4acb025130 testing livekit configuration 2024-10-01 13:35:53 +10:00
wjbeckett
e421852af5 updated jwt bind port 2024-10-01 13:09:00 +10:00
wjbeckett
5507fb3bab added element-call config.json to systemd file 2024-10-01 13:08:21 +10:00
wjbeckett
9864996aad adjusted jwt service ports for traefik 2024-10-01 12:46:37 +10:00
wjbeckett
dbbaae4fbe stopping the recursive loop 2024-10-01 12:34:25 +10:00
wjbeckett
d53c2428b8 updated jwt hostname. 2024-10-01 12:29:35 +10:00
wjbeckett
f98a505df8 changed jwt-service port label. 2024-10-01 11:00:56 +10:00
wjbeckett
d5aabc85be removed redis images in favor of the inbuilt keyDB 2024-10-01 10:41:30 +10:00
wjbeckett
7cdec5f251 fixed type in livekit image 2024-10-01 10:17:34 +10:00
wjbeckett
fd2f505b34 Fixed typo in livekit server hostname 2024-10-01 10:00:30 +10:00
wjbeckett
812b57cfaa resolved missing key. 2024-10-01 09:54:02 +10:00
wjbeckett
b7b8ed573b typo in livekit-server validate. 2024-10-01 09:48:44 +10:00
wjbeckett
97f93ebd76 renamed the livekit role and added livekit-server and jwt-service roles to the setup file. 2024-10-01 09:31:42 +10:00
wjbeckett
8cb7deff15 cleaned up old services again 2024-09-30 23:04:10 +10:00
wjbeckett
71dff50a65 fixed livekit service name 2024-09-30 22:53:21 +10:00
wjbeckett
58a9642e8c fixed config file placement. 2024-09-30 22:45:56 +10:00
wjbeckett
3de399025f hard coded redis port. 2024-09-30 22:41:36 +10:00
wjbeckett
e952ba1c3a removed duplicate tasks. 2024-09-30 22:35:59 +10:00
wjbeckett
8cb3e33bbf separated livekit and jwt to separate roles 2024-09-30 22:20:46 +10:00
wjbeckett
b907777ae5 fixing labels again. 2024-09-30 13:13:29 +10:00
wjbeckett
cb41fb02ae testing traefik labels again. 2024-09-30 13:00:10 +10:00
wjbeckett
31a138a6ba fixed traefik router issues. 2024-09-30 12:47:42 +10:00
wjbeckett
6143ad7ffa fix: removed the read-only tag from the element-call systemd file. 2024-09-30 12:27:04 +10:00
wjbeckett
f762048a8d fix: added missing labels to main. 2024-09-30 12:15:27 +10:00
wjbeckett
93650cf20e fix: Type in the element-call main.yml 2024-09-30 12:02:45 +10:00
wjbeckett
9dbee212d8 fix: removed duplicate keys. 2024-09-30 11:37:08 +10:00
wjbeckett
1167e1ec13 fix: changed matrix server name to matrix domain in element-call config. 2024-09-30 11:17:34 +10:00
wjbeckett
f036e18789 Fix: Restructured Element call configuration files. 2024-09-30 11:05:11 +10:00
Backslash
a274d32c6d Removed serve function 2024-09-27 12:50:31 +10:00
Backslash
5db9a5c061 Removed env file 2024-09-27 12:40:37 +10:00
Backslash
2492672025 Update env.j2 2024-09-27 12:39:39 +10:00
Backslash
a0917fa283 Update main.yml 2024-09-27 12:37:36 +10:00
Backslash
8b172cc194 Update env.j2 2024-09-27 12:35:38 +10:00
Backslash
63133d6599 Added serve command back in. 2024-09-27 11:53:26 +10:00
Backslash
5b8dcf32d5 Added element-call systemd services to the service manager. 2024-09-27 11:42:34 +10:00
Backslash
14614cb211 Update matrix-element-call.service.j2 2024-09-27 10:26:01 +10:00
Backslash
3c084e17d2 Update element-call-labels.j2-new 2024-09-27 10:15:51 +10:00
Backslash
089c5f14c8 Update jwt-service-labels.j2 2024-09-27 10:00:40 +10:00
Backslash
b6571fc4fd Update livekit-labels.j2 2024-09-27 09:59:54 +10:00
Backslash
6d6f9ab853 Added hostnames for livekit and jwt labels 2024-09-27 09:59:13 +10:00
Backslash
5730dbfc6e Added hostname label 2024-09-27 09:54:01 +10:00
Backslash
c14f9cdcb5 Update matrix_servers 2024-09-27 09:25:48 +10:00
Backslash
805b726c6d Update element-call-labels.j2 2024-09-27 09:25:01 +10:00
Backslash
5f49433f6c Handle empty labels correctly. 2024-09-27 09:15:21 +10:00
Backslash
510cfb2dac Update matrix_servers 2024-09-27 09:14:29 +10:00
Backslash
1721e85195 Corrected element call labels file name 2024-09-27 09:00:03 +10:00
Backslash
25909b1029 Update and rename labels.j2 to element-call-labels.j2 2024-09-27 08:51:27 +10:00
Backslash
3264408758 Rename element-call-labels.j2 to element-call-labels.j2-new 2024-09-27 08:49:55 +10:00
Backslash
dd96b93d89 Update matrix-element-call.service.j2 2024-09-27 08:34:01 +10:00
Backslash
df4bf4a0c9 Added tasks for moving the new labels files into place 2024-09-27 08:23:24 +10:00
Backslash
2f2cb8962e Updated livekit labels 2024-09-27 08:19:26 +10:00
Backslash
d2e2781d3b Updated label file 2024-09-27 08:18:27 +10:00
Backslash
80763804f9 Updated label file 2024-09-27 08:16:56 +10:00
Backslash
1d7a60055c Create jwt-service-labels.j2 2024-09-27 08:10:06 +10:00
Backslash
2cf471075d Created livekit-labels.j2 2024-09-27 08:09:32 +10:00
Backslash
6a519bb053 Created element-call-labels to separate the labels for each container 2024-09-27 08:08:42 +10:00
Backslash
f0632b20eb Added missing labels for sfu and jwt 2024-09-26 21:24:43 +10:00
Backslash
5cc9c70ba6 Remove serve command from matrix-element-call.service.j2 2024-09-26 20:57:47 +10:00
Backslash
e34e5da9a4 Update matrix-redis.service.j2 2024-09-26 19:57:39 +10:00
Backslash
656d4275bc Update install.yml 2024-09-26 19:48:06 +10:00
Backslash
6ef304b118 Update validate_config.yml 2024-09-26 19:43:22 +10:00
Backslash
85be68946c Migrated from matrix_redis to redis_ 2024-09-26 19:30:15 +10:00
Backslash
3f6c327da2 Update main.yml 2024-09-26 19:18:47 +10:00
Backslash
ba54e549c4 Added well-known element directory 2024-09-26 19:08:09 +10:00
Backslash
f2acc7430d Create well_known_element.json.j2 2024-09-26 18:53:49 +10:00
Backslash
9cb236da30 Update install.yml 2024-09-26 18:50:48 +10:00
Backslash
f38d6a0d88 Update main.yml 2024-09-26 18:39:03 +10:00
Backslash
ac1295ac45 Create matrix-jwt-service.service.j2 2024-09-26 18:33:22 +10:00
Backslash
bc2ed60762 Update main.yml 2024-09-26 17:23:03 +10:00
Backslash
f7621283fd Update labels.j2 2024-09-26 16:31:23 +10:00
Backslash
e31e688a41 Update main.yml 2024-09-26 15:42:05 +10:00
Backslash
a533ec4204 Update matrix_servers 2024-09-26 15:38:12 +10:00
Backslash
f16ca24408 Update install.yml 2024-09-26 15:17:15 +10:00
Backslash
e910d09ff1 Create matrix-redis.service.j2 2024-09-26 14:52:30 +10:00
Backslash
bc9658c06b Create matrix-livekit.service.j2 2024-09-26 13:40:38 +10:00
Backslash
45c8a61f04 Migrating to systemd for container management 2024-09-26 11:39:33 +10:00
Backslash
954d46cfd7 Update labels.j2 2024-09-26 09:25:49 +10:00
Backslash
dfeca192ab Update redis.conf.j2 2024-09-26 09:23:26 +10:00
Backslash
f306a47b83 Update livekit.yaml.j2 2024-09-26 09:22:29 +10:00
Backslash
becdb0810c Update config.json.j2 2024-09-26 09:18:55 +10:00
Backslash
37fd2e701d Update env.j2 to support the new configuration 2024-09-26 09:15:07 +10:00
Backslash
68cc1f4b2b Simplified the validation step. 2024-09-26 08:29:16 +10:00
Backslash
5efc189293 Updated to support new structure 2024-09-26 08:12:06 +10:00
Backslash
02479e8bec Updated with new structure. 2024-09-26 07:59:09 +10:00
Backslash
0eef094f2b Restructure install.yml to follow other roles more closely 2024-09-26 06:51:36 +10:00
Backslash
16ed788b3f Update main.yml 2024-09-25 21:07:22 +10:00
Backslash
6364101410 Adding another debug task for testing the labels file. 2024-09-25 20:20:20 +10:00
Backslash
81735503f8 Added debug task to test labels configuration 2024-09-25 20:06:27 +10:00
Backslash
8644a7383e Removed additional label loop 2024-09-25 19:22:21 +10:00
Backslash
ce827e7953 Changed matrix_base_domain to matrix_domain 2024-09-25 19:09:13 +10:00
Backslash
c93d30bcb8 Added matrix_server_name to the defaults 2024-09-25 19:07:03 +10:00
Backslash
90ea758c3b Fixed regex for checking the hostname. 2024-09-25 18:39:26 +10:00
Backslash
350d4d4bcd Fixed assertion block to remove jinja2 delimiters 2024-09-25 18:35:09 +10:00
Backslash
fc6357a089 Update main.yml 2024-09-25 18:05:34 +10:00
wjbeckett
60f34cd7af fixed matrix_redis for migration 2024-09-25 16:13:29 +10:00
wjbeckett
d1ba784dde added doc for setting up element call. 2024-09-25 15:01:53 +10:00
Backslash
434157eb98 Merge branch 'spantaleev:master' into element-call-integration 2024-09-25 14:55:42 +10:00
wjbeckett
6594cce570 Feat: Added element call setup and configuration. 2024-09-25 14:53:48 +10:00
1426 changed files with 38492 additions and 26151 deletions

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2022 - 2023 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
use_default_rules: true

5
.github/FUNDING.yml vendored
View File

@@ -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

View File

@@ -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`)
<!--

View File

@@ -0,0 +1,4 @@
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
blank_issues_enabled: false
contact_links:

View File

@@ -0,0 +1,4 @@
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later

View File

@@ -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**:

View File

@@ -0,0 +1,4 @@
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2022 Marko Weltzer
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
version: 2
updates:

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
name: 'Close stale issues and PRs'
on: # yamllint disable-line rule:truthy

View File

@@ -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

20
.github/workflows/reuse.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# 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

View File

@@ -1,16 +1,187 @@
# 2025-03-15
## Element Call support
The playbook now supports [Element Call](https://github.com/element-hq/element-call) as an optional feature. Thanks to [wjbeckett](https://github.com/wjbeckett) for getting us started via [PR#3562](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562).
Element Call is a native Matrix video conferencing application developed by [Element](https://element.io/) that has the goal of replacing [Jitsi](./docs/configuring-playbook-jitsi.md) and the old WebRTC stack used in previous Element versions.
💡 For now, Element Call is only supported with the [Synapse](docs/configuring-playbook-synapse.md) homeserver (with [federation](docs/configuring-playbook-federation.md) enabled) and [Element Web](docs/configuring-playbook-client-element-web.md) and Element X mobile clients. See the [Prerequisites](docs/configuring-playbook-element-call.md#prerequisites) section of the [Element Call documentation](docs/configuring-playbook-element-call.md) for more details.
To get started, see the [Configuring Element Call](docs/configuring-playbook-element-call.md) documentation page.
# 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
## conduwuit support
Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [Conduwuit](https://conduwuit.puppyirl.gay/) homeserver support for new installations.
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).
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.
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.
**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to conduwuit) without data loss.
# 2025-01-14
@@ -19,9 +190,9 @@ To try out Conduwuit, we recommend that you **use a new server**. Refer to our [
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](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'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](maintenance-postgres.md#upgrading-postgresql) or Synapse will produce an error on startup.
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.
@@ -60,11 +231,11 @@ You can disable authenticated media at any time by setting `matrix_synapse_enabl
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.
@@ -186,7 +357,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).
@@ -198,15 +369,15 @@ To get started, see the [Setting up baibot](./docs/configuring-playbook-bot-baib
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:
```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: "{{ matrix_synapse_admin_docker_image_registry_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}"
matrix_synapse_admin_docker_image_registry_prefix_upstream: docker.io/
matrix_synapse_admin_version: 0.10.3
@@ -269,7 +440,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.
@@ -300,7 +471,7 @@ 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
@@ -371,7 +542,7 @@ 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.
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
@@ -433,7 +604,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.
@@ -453,9 +624,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:
@@ -476,9 +647,9 @@ The playbook has always used a very conservative cache factor (`matrix_synapse_c
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.
@@ -491,7 +662,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.
@@ -515,7 +686,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.
@@ -546,7 +717,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.
@@ -564,14 +735,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)
@@ -596,9 +767,9 @@ This reduces "network" hops (improving performance) and also decreases the numbe
### 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.
@@ -633,7 +804,7 @@ If you don't do these changes (switching from `traefik_additional_entrypoints_au
### 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.
@@ -658,7 +829,7 @@ Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out s
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.
@@ -672,11 +843,11 @@ This section is for people who are exposing monitoring metrics publicly, to be c
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
@@ -696,9 +867,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.
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.
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
@@ -710,7 +881,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.
@@ -833,17 +1004,17 @@ The playbook should **automatically migrate your mautrix-signal installation to
**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).
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.
@@ -853,7 +1024,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.
@@ -912,7 +1083,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.
@@ -936,7 +1107,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:
@@ -966,7 +1137,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.
@@ -985,7 +1156,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
@@ -1049,7 +1220,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.
@@ -1166,7 +1337,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**.
@@ -1181,19 +1352,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?
@@ -1223,8 +1394,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.
@@ -1258,7 +1427,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
@@ -1341,16 +1510,16 @@ Other roles which aren't strictly related to Matrix are likely to follow this fa
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 alice secret-password yes` - registers an `alice` 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.
@@ -1370,7 +1539,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.
@@ -1379,7 +1548,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.
@@ -1388,7 +1557,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.
@@ -1399,7 +1568,7 @@ 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
@@ -1455,9 +1624,9 @@ These additional roles are downloaded into the playbook directory (to `roles/gal
# 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
@@ -1475,7 +1644,7 @@ From now on, `matrix-nginx-proxy` is relieved of its function of reverse-proxyin
- `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
@@ -1491,7 +1660,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
@@ -1527,7 +1696,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.
@@ -1540,7 +1709,7 @@ 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`.
@@ -1572,7 +1741,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.
@@ -1664,7 +1833,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.
@@ -1673,7 +1842,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.
@@ -1719,7 +1888,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.
@@ -1728,7 +1897,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.
@@ -1792,7 +1961,7 @@ 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:
@@ -1869,7 +2038,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.
@@ -1911,7 +2080,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
@@ -1998,7 +2167,7 @@ We're excited to gain support for other homeserver implementations, like [Condui
## 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.
@@ -2007,7 +2176,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.
@@ -2061,7 +2230,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`.
@@ -2076,7 +2245,7 @@ The new version is also available for the ARM architecture. It also no longer re
## 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.
@@ -2112,7 +2281,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
@@ -2166,7 +2335,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).
@@ -2317,7 +2486,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
@@ -2406,7 +2575,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
@@ -2556,7 +2725,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.
@@ -2659,7 +2828,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**.
@@ -2714,7 +2883,7 @@ 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.
@@ -2811,7 +2980,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.
@@ -3065,10 +3234,10 @@ Likewise, data is now also stored in a subdirectory (`/matrix/mautrix-telegram/d
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).
@@ -3109,7 +3278,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.
@@ -3317,11 +3486,11 @@ Matrix is undergoing a lot of changes as it matures towards Synapse v1.0. The fi
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).
@@ -3352,7 +3521,7 @@ When using:
## 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.
@@ -3373,7 +3542,7 @@ 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.
@@ -3638,14 +3807,14 @@ From now on, Riot's configuration setting `disable_guests` would be set to `true
## 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.

14
CHANGELOG.md.license Normal file
View File

@@ -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

121
LICENSES/CC0-1.0.txt Normal file
View File

@@ -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.

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2022 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
.PHONY: roles lint
help: ## Show this help.

View File

@@ -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
@@ -52,7 +52,7 @@ 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) |
| [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) |
| [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
@@ -65,6 +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
@@ -74,11 +75,13 @@ Services that run on the server to make the various parts of your installation w
| ---- | -------- | ----------- | ------------- |
| [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) |
| [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) |
| [LiveKit Server](https://github.com/livekit/livekit) | ❌ | WebRTC server for audio/video calls | [Link](docs/configuring-playbook-livekit-server.md) |
| [Livekit JWT Service](https://github.com/livekit/livekit-jwt-service) | ❌ | JWT service for integrating [Element Call](./configuring-playbook-element-call.md) with [LiveKit Server](./configuring-playbook-livekit-server.md) | [Link](docs/configuring-playbook-livekit-jwt-service.md) |
### Authentication
@@ -89,10 +92,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
@@ -102,7 +105,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
@@ -116,6 +119,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) |
@@ -136,7 +140,6 @@ 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
@@ -145,13 +148,13 @@ 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
@@ -162,8 +165,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) |
@@ -175,15 +178,16 @@ 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) |
| [Element Call](https://github.com/element-hq/element-call) | ❌ | A native Matrix video conferencing application | [Link](docs/configuring-playbook-element-call.md) |
## 🆕 Changes

34
README.md.license Normal file
View File

@@ -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

View File

@@ -7,9 +7,21 @@ 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",
"i18n/PUBLISHED_LANGUAGES"
"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"
@@ -21,5 +33,5 @@ path = [
"i18n/**/*.pot"
]
precedence = "aggregate"
SPDX-FileCopyrightText = "Slavi Pantaleev, MDAD community members"
SPDX-FileCopyrightText = "2024 - 2025 Slavi Pantaleev, MDAD project contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -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)

View File

@@ -1,6 +1,6 @@
[defaults]
retry_files_enabled = False
stdout_callback = yaml
result_format = yaml
[connection]
pipelining = True

View File

@@ -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

View File

@@ -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.
@@ -32,7 +37,17 @@ done
sed --in-place 's/matrix_mautrix_meta_instagram_meta_mode: \(.*\)/matrix_mautrix_meta_instagram_meta_mode: instagram/g' $instagram_role_path/defaults/main.yml
sed --in-place 's/matrix_mautrix_meta_instagram_identifier: \(.*\)/matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram/g' $instagram_role_path/defaults/main.yml
echo "# matrix-mautrix-meta-instagram" > $instagram_role_path/README.md
# Create the README.md file with the license header
cat > $instagram_role_path/README.md << 'EOF'
<!--
SPDX-FileCopyrightText: 2024 - 2025 MDAD Contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
EOF
echo "" >> $instagram_role_path/README.md
echo "# matrix-mautrix-meta-instagram" >> $instagram_role_path/README.md
echo "" >> $instagram_role_path/README.md
echo "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\`)." >> $instagram_role_path/README.md
echo "" >> $instagram_role_path/README.md

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2018 - 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2018 Aaron Raimist
SPDX-FileCopyrightText: 2019 Lyubomir Popov
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Table of Contents
## ⬇️ Installaton guides <!-- NOTE: the 🚀 emoji is used by "Getting started" on README.md -->
@@ -10,7 +19,7 @@ There are two installation guides available for beginners and advanced users.
- [Prerequisites](prerequisites.md)
- [Configuring your DNS settings](configuring-dns.md)
- [Configuring DNS settings](configuring-dns.md)
- [Getting the playbook](getting-the-playbook.md)
@@ -27,23 +36,23 @@ NOTE:
You can check useful documentation for configuring components here: [Configuring the playbook](configuring-playbook.md)
- [Administration](configuring-playbook.md#administration) - services that help you in administrating and monitoring your Matrix installation
- [Administration](configuring-playbook.md#administration) services that help you in administrating and monitoring your Matrix installation
- [Authentication and user-related](configuring-playbook.md#authentication-and-user-related) - extend and modify how users are authenticated on your homeserver
- [Authentication and user-related](configuring-playbook.md#authentication-and-user-related) extend and modify how users are authenticated on your homeserver
- [Bots](configuring-playbook.md#bots) - bots provide various additional functionality to your installation
- [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
- [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
- [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
- [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
- [File Storage](configuring-playbook.md#file-storage) use alternative file storage to the default `media_store` folder
<!-- NOTE: sort list items above alphabetically -->
- [Other specialized services](configuring-playbook.md#other-specialized-services) - various services that don't fit any other categories
- [Other specialized services](configuring-playbook.md#other-specialized-services) various services that don't fit any other categories
## 👨‍🔧 Maintenance
@@ -51,8 +60,6 @@ If your server and services experience issues, feel free to come to [our support
<!-- NOTE: sort list items alphabetically -->
- [Checking if services work](maintenance-checking-services.md)
- [Maintenance and Troubleshooting](maintenance-and-troubleshooting.md)
- [PostgreSQL maintenance](maintenance-postgres.md)
@@ -63,7 +70,7 @@ If your server and services experience issues, feel free to come to [our support
## Other documentation pages <!-- NOTE: this header's title and the section below need optimization -->
- **[FAQ](faq.md)** - various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook
- **[FAQ](faq.md)** various Frequently Asked Questions about Matrix, with a focus on this Ansible playbook
<!-- NOTE: sort list items under faq.md alphabetically -->
@@ -84,3 +91,5 @@ If your server and services experience issues, feel free to come to [our support
- [Uninstalling](uninstalling.md)
- [Updating users passwords](updating-users-passwords.md)
- [Using Ansible for the playbook](ansible.md)

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Horvath Gergely
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Alternative architectures
As stated in the [Prerequisites](prerequisites.md), currently only `amd64` (`x86_64`) is fully supported.

View File

@@ -1,5 +1,14 @@
<!--
SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Aaron Raimist
SPDX-FileCopyrightText: 2020 Hanno J. Gödecke
SPDX-FileCopyrightText: 2022 Kai Biebel
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
# Running this playbook
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Using Ansible for the playbook
This playbook is meant to be run using [Ansible](https://www.ansible.com/).
@@ -29,9 +38,12 @@ If using the `pip` method, do note that the `ansible-playbook` binary may not be
## 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).
@@ -46,50 +58,54 @@ Once you have a working Docker installation on the server, **clone the playbook*
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:
```sh
docker run -it --rm \
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.18.1-r0-0
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:
```sh
docker run -it --rm \
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.18.1-r0-0
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:

View File

@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-License-Identifier: AGPL-3.0-or-later

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Justin Croonenberghs
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
(Adapted from the [upstream project](https://github.com/element-hq/synapse/blob/develop/docs/CAPTCHA_SETUP.md))
# Overview

View File

@@ -1,6 +1,23 @@
# Configuring your DNS settings
<!--
SPDX-FileCopyrightText: 2018 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 Edgars Voroboks
SPDX-FileCopyrightText: 2020 - 2021 Aaron Raimist
SPDX-FileCopyrightText: 2020 Marcel Partap
SPDX-FileCopyrightText: 2020 Rónán Duddy
SPDX-FileCopyrightText: 2021 Yannick Goossens
SPDX-FileCopyrightText: 2022 Julian Foad
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2023 Johan Swetzén
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
<sup>[Prerequisites](prerequisites.md) > Configuring your DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)</sup>
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Configuring DNS settings
<sup>[Prerequisites](prerequisites.md) > Configuring DNS settings > [Getting the playbook](getting-the-playbook.md) > [Configuring the playbook](configuring-playbook.md) > [Installing](installing.md)</sup>
To set up Matrix on your domain, you'd need to do some DNS configuration.
@@ -9,11 +26,14 @@ To set up Matrix on your domain, you'd need to do some DNS configuration.
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` |
| ----- | --------- | -------- | ------ | ---- | ---------------------|
| 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.
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.

191
docs/configuring-ipv6.md Normal file
View File

@@ -0,0 +1,191 @@
<!--
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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. Containers also won't be able to make outgoing (even cross-container) IPv6 requests.
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.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -26,7 +34,8 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.alertma
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.
> [!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
@@ -65,8 +74,6 @@ 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 (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.
@@ -83,6 +90,15 @@ If you've changed the default hostname, you may need to create a CNAME record fo
When setting, replace `example.com` with your own.
### Extending the configuration
There are some additional things you may wish to configure about the component.
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
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below:
@@ -122,3 +138,16 @@ route:
```
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`.
## 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
```

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Appservice Double Puppet (optional)
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.

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -28,11 +35,8 @@ The management room has to be given an alias, and your bot has to be invited to
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. **Anyone in this room can control the bot so it is important that you only invite trusted users to this room.**
### Set an alias to the management room
Next, set an alias to the management room.
> [!WARNING]
> Anyone in this room can control the bot so it is important that you only invite trusted users to this room.
## Adjusting the playbook configuration
@@ -41,24 +45,28 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/
```yaml
matrix_appservice_draupnir_for_all_enabled: true
matrix_appservice_draupnir_for_all_master_control_room_alias: "MANAGEMENT_ROOM_ALIAS_HERE"
matrix_appservice_draupnir_for_all_config_adminRoom: "MANAGEMENT_ROOM_ALIAS_HERE"
```
### Extending the configuration
You can configure additional options by adding the `matrix_appservice_draupnir_for_all_extension_yaml` variable.
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_extension_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_yaml`).
# 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_yaml`.
# completely redefining `matrix_appservice_draupnir_for_all_configuration_yaml`.
protectAllJoinedRooms: true
```

View File

@@ -1,143 +1,19 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
## Prerequisites
### Set up a remote server for storing backups
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).
### Check the Postgres version
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.
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).
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.
### Create a new SSH key
Run the command below on any machine to create a new SSH key:
```sh
ssh-keygen -t ed25519 -N '' -f matrix-borg-backup -C matrix
```
You don't need to place the key in the `.ssh` folder.
### Add the public key
Next, add the **public** part of this SSH key (the `matrix-borg-backup.pub` file) to your BorgBackup provider/server.
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:
```sh
# 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'
```
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.
## Adjusting the playbook configuration
To enable BorgBackup, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
backup_borg_enabled: true
# Set the repository location, where:
# - USER is a ssh user on a provider / server
# - HOST is a ssh host of a provider / server
# - REPO is a BorgBackup repository name
backup_borg_location_repositories:
- ssh://USER@HOST/./REPO
# Generate a strong password used for encrypting backups. You can create one with a command like `pwgen -s 64 1`.
backup_borg_storage_encryption_passphrase: "PASSPHRASE"
# Add the content of the **private** part of the SSH key you have created.
# Note: the whole key (all of its belonging lines) under the variable needs to be indented with 2 spaces.
backup_borg_ssh_key_private: |
-----BEGIN OPENSSH PRIVATE KEY-----
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZW
xpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRv
bG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3
RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXgg
ZWEgY29tbW9kbyBjb25zZXF1YXQuIA==
-----END OPENSSH PRIVATE KEY-----
```
**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.
### Set backup archive name (optional)
You can specify the backup archive name format. To set it, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
backup_borg_storage_archive_name_format: matrix-{now:%Y-%m-%d-%H%M%S}
```
### Configure retention policy (optional)
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):
```yaml
backup_borg_retention_keep_hourly: 0
backup_borg_retention_keep_daily: 7
backup_borg_retention_keep_weekly: 4
backup_borg_retention_keep_monthly: 12
backup_borg_retention_keep_yearly: 2
```
### Edit the backup schedule (optional)
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.
To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
backup_borg_schedule: "*-*-* 04:00:00"
```
**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.
### Set include and/or exclude directories (optional)
`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 also want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable.
### Extending the configuration
There are some additional things you may wish to configure about the component.
Take a look at:
- [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
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## Manually start a backup
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.
If you want to run the backup immediately, log in to the server with SSH and run `systemctl start matrix-backup-borg`.
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.
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)

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up baibot (optional)
<p align="center">
@@ -123,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).
@@ -250,7 +257,7 @@ You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot
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).
@@ -305,7 +312,7 @@ 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).
@@ -396,11 +403,13 @@ 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.
## Debugging
## Troubleshooting
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`
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`.
The default logging level for this service is `info`, but you can increase it to `debug` (or even `trace`) with the following additional configuration:
### Increase logging verbosity
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.

View File

@@ -1,9 +1,19 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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`.
@@ -54,6 +64,14 @@ After changing the domain, **you may need to adjust your DNS** records to point
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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -95,4 +113,14 @@ Here is an example for the `contact` form:
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
```

View File

@@ -1,11 +1,21 @@
<!--
SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2023 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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!
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.
## Prerequisites
### Obtain an OpenAI API key
@@ -28,7 +38,8 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.chatgpt
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.
> [!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).
@@ -51,6 +62,14 @@ matrix_bot_chatgpt_matrix_access_token: 'ACCESS_TOKEN_HERE'
matrix_bot_chatgpt_matrix_bot_prompt_prefix: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.'
```
### Extending the configuration
There are some additional things you may wish to configure about the bot.
Take a look at:
- `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:
@@ -74,4 +93,6 @@ To use the bot, invite it to the room you specified on your `vars.yml` file (`/i
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.
You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-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`.

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors
SPDX-FileCopyrightText: 2023 Kim Brose
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Draupnir (optional)
The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you.
@@ -6,48 +15,55 @@ See the project's [documentation](https://the-draupnir-project.github.io/draupni
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 skip to [this section](#migrating-from-mjolnir-only-required-if-migrating).
If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating).
## Prerequisites
### 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.
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.
If you make the management room encrypted (E2EE), then you need to enable the native E2EE support (see [below](#native-e2ee-support)).
> [!WARNING]
> Anyone in this room can control the bot so it is important that you only invite trusted users to this room.
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`.
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)).
Finally invite the `@bot.draupnir:example.com` account that the playbook will create for you to the management room. Please note that clients can issue a warning that your attempting to invite a user that doesnt have a profile and might not exist. This warning is expected as your inviting the bot before its user account exists.
Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking "Advanced". The room ID will look something like `!qporfwt:example.com`.
## End-to-End Encryption support
Decide whether you want to support having an Encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled.
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 information on why you might or might not care about encryption support for protected rooms.
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.
**Note**: Draupnir does not support running with Pantalaimon as it would break all workflows that involve answering prompts with reactions.
### Disable Pantalaimon for Draupnir (since v2.0.0; optional)
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.
**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room.
### Native E2EE support
To enable the native E2EE support, you need to obtain an access token for Draupnir.
To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file.
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).
To enable the native E2EE support, add the following configuration to your `vars.yml` file:
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
# Enables the native E2EE Support
matrix_bot_draupnir_enable_experimental_rust_crypto: true
# Enables the native E2EE support
matrix_bot_draupnir_config_experimentalRustCrypto: true
# Access Token the bot uses to login.
# 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: "ACCESS_TOKEN_HERE"
matrix_bot_draupnir_config_accessToken: "CLEAN_ACCESS_TOKEN_HERE"
```
## Adjusting the playbook configuration
To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE`.
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
@@ -57,47 +73,67 @@ matrix_bot_draupnir_enabled: true
# matrix_bot_draupnir_login: bot.draupnir
# 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.
# If creating the user on your own and using `matrix_bot_draupnir_config_accessToken` to login you can comment out this line.
matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT
# Comment out if using `matrix_bot_draupnir_enable_experimental_rust_crypto: true` or `matrix_bot_draupnir_access_token` to login.
# Comment out if using `matrix_bot_draupnir_config_experimentalRustCrypto: true` or `matrix_bot_draupnir_config_accessToken` to login.
matrix_bot_draupnir_login_native: true
matrix_bot_draupnir_management_room: "MANAGEMENT_ROOM_ID_HERE"
matrix_bot_draupnir_config_managementRoom: "MANAGEMENT_ROOM_ID_HERE"
```
Before Proceeding run the playbook with the following command to make sure the Draupnir user has been created.
### 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
```
### Make sure the account is free from rate limiting
**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account.
If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a heavily recomended step. If you do not configure it, Draupnir performance will be degraded.**
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
matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true
```
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).
#### Obtain an access token for admin account
**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).
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).
To discharge rate limiting, run the following command on systems that ship curl (note that it does not work on outdated Windows 10). Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally. Before running it, make sure to replace `@bot.draupnir:example.com` with the MXID of your Draupnir:
> [!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.draupnir:example.com` with the MXID of your Draupnir bot user
```sh
curl --header "Authorization: Bearer <access_token>" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.draupnir:example.com/override_ratelimit
curl --header "Authorization: Bearer ADMIN_ACCESS_TOKEN_HERE" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.draupnir:example.com/override_ratelimit
```
### Obtain an access token
Manual access to Synapse's Admin API requires an access token. 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.
**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
@@ -106,7 +142,7 @@ 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_abuse_reporting_enabled: true
matrix_bot_draupnir_config_web_abuseReporting: true
```
<!--
@@ -117,7 +153,11 @@ The other method polls an Synapse Admin API endpoint, hence it is available only
### Extending the configuration
You can configure additional options by adding the `matrix_bot_draupnir_configuration_extension_yaml` variable.
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:
@@ -137,7 +177,7 @@ matrix_bot_draupnir_configuration_extension_yaml: |
Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration.
Note that Pantalaimon is unsupported by Draupnir so it is recommended to consult the instructions to enable [the native E2EE support](#native-e2ee-support).
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.
@@ -150,13 +190,9 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
```
**Notes**:
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- 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.
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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

View File

@@ -1,6 +1,16 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Yannick Goossens
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2025 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -26,7 +36,8 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.go-neb
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.
> [!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
@@ -219,6 +230,15 @@ After changing the domain, **you may need to adjust your DNS** records to point
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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -245,3 +265,7 @@ Basic usage is like this: `!echo hi` or `!imgur puppies` or `!giphy matrix`
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`.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Honoroit (optional)
The playbook can install and configure [Honoroit](https://github.com/etkecc/honoroit) for you.
@@ -45,6 +53,14 @@ If you've changed the default hostname, you may need to create a CNAME record fo
When setting, replace `example.com` with your own.
### Extending the 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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -73,3 +89,15 @@ After the bot joins the room, any Matrix user can send a message to it to start
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'
```

View File

@@ -1,3 +1,15 @@
<!--
SPDX-FileCopyrightText: 2022 - 2023 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Erick Wibben
SPDX-FileCopyrightText: 2022 Kolja Lampe
SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up matrix-registration-bot (optional)
The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you.
@@ -29,6 +41,15 @@ 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 it with [playbook tags](playbook-tags.md) as below:
@@ -63,3 +84,16 @@ To clean the cache (session & encryption data) after you changed the bot's usern
```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
```

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up matrix-reminder-bot (optional)
The playbook can install and configure [matrix-reminder-bot](https://github.com/anoadragon453/matrix-reminder-bot) for you.
@@ -23,6 +31,15 @@ matrix_bot_matrix_reminder_bot_matrix_user_password: PASSWORD_FOR_THE_BOT
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 it with [playbook tags](playbook-tags.md) as below:
@@ -53,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
```

View File

@@ -1,3 +1,14 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Fabio Bonelli
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up maubot (optional)
The playbook can install and configure [maubot](https://github.com/maubot/maubot) for you.
@@ -47,6 +58,15 @@ If you've changed the default hostname, you may need to create a CNAME record fo
When setting, replace `example.com` with your own.
### Extending the 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.
@@ -100,4 +120,18 @@ This can be done via `mbc login` then `mbc auth` (see the [maubot documentation]
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.
> [!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
```

View File

@@ -1,3 +1,14 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2021 Aaron Raimist
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mjolnir (optional)
The playbook can install and configure the [Mjolnir](https://github.com/matrix-org/mjolnir) moderation bot for you.
@@ -24,7 +35,8 @@ If you would like Mjolnir to be able to deactivate users, move aliases, shutdown
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.
> [!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
@@ -32,37 +44,57 @@ If your homeserver's implementation is Synapse, you will need to prevent it from
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 `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true
```
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).
#### Obtain an access token for admin account
**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).
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.
To discharge rate limiting, run the following command on systems that ship curl (note that it does not work on outdated Windows 10). Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally. Before running it, make sure to replace `@bot.mjolnir:example.com` with the MXID of your Mjolnir:
> [!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 <access_token>" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.mjolnir:example.com/override_ratelimit
curl --header "Authorization: Bearer ADMIN_ACCESS_TOKEN_HERE" -X POST https://matrix.example.com/_synapse/admin/v1/users/@bot.mjolnir:example.com/override_ratelimit
```
You can obtain an access token for a homeserver admin account in the same way as you can do so for Mjolnir itself. If you have made Mjolnir an admin, you can just use the Mjolnir token.
**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. Anyone in this room can control the bot so it is important that you only invite trusted users to this 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.
If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see [below](#configuration-with-e2ee-support)).
> [!WARNING]
> Anyone in this room can control the bot so it is important that you only invite trusted users to this room.
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`.
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
To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE`.
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.
```yaml
# Enable Mjolnir
@@ -131,7 +163,11 @@ matrix_synapse_ext_spam_checker_mjolnir_antispam_config_ban_lists: []
### Extending the configuration
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.
There are some additional things you may wish to configure about the bot.
Take a look at:
- `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
For example, to change Mjolnir's `recordIgnoredInvites` option to `true`, add the following configuration to your `vars.yml` file:
@@ -169,3 +205,17 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## 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"
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2019 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 - 2023 MDAD project contributors
SPDX-FileCopyrightText: 2022 Jim Myhrberg
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -28,6 +37,15 @@ matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN"
# use_appservice_legacy_authorization: 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-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:
@@ -99,3 +117,18 @@ There's the Discord bridge's guide for [setting privileges on bridge managed roo
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 "@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
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2019 - 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 MDAD project contributors
SPDX-FileCopyrightText: 2020 Lee Verberne
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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,6 +69,15 @@ 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 it with [playbook tags](playbook-tags.md) as below:
@@ -80,3 +98,23 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## Usage
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"
```

View File

@@ -1,10 +1,20 @@
<!--
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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, 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.
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.
⚠️ **Warning**: there have been recent reports (~2022-09-16) that **using this bridge may get your account banned**.
> [!WARNING]
> There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**.
## Prerequisite (optional)
@@ -55,3 +65,15 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
To use the bridge, you need to start a chat with `@kakaotalkbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
You then need to send `login --save EMAIL_OR_PHONE_NUMBER` to the bridge bot to enable bridging for your Kakaotalk account. The `--save` flag may be omitted, if you'd rather not save your password.
## Troubleshooting
As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-appservice-kakaotalk`.
### Increase logging verbosity
The default logging level for this component is `WARNING`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:
```yaml
matrix_appservice_kakaotalk_logging_level: DEBUG
```

View File

@@ -1,3 +1,14 @@
<!--
SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2020 Udo Rader
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Joel Bennett
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Fabio Bonelli
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Appservice Slack bridging (optional)
**Notes**:
@@ -61,7 +72,21 @@ matrix_appservice_slack_control_room_id: "Your Matrix admin room ID"
# matrix_appservice_slack_team_sync_enabled: true
```
Other configuration options are available via the `matrix_appservice_slack_configuration_extension_yaml` variable.
### 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
@@ -86,7 +111,7 @@ To use the bridge, you need to send `/invite @slackbot:example.com` to invite th
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`.
- 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/<the channel ID>/details/`.
- Issue a link command in the administration control room with these collected values as arguments:
@@ -121,7 +146,7 @@ Unlinking doesn't only disconnect the bridge, but also makes the slackbot leave
## 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"
@@ -129,8 +154,8 @@ This typically means that you haven't used the correct Slack channel ID. Unlink
### 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) <the channel ID> <some other ID>`
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.

View File

@@ -1,6 +1,17 @@
<!--
SPDX-FileCopyrightText: 2020 - 2023 MDAD project contributors
SPDX-FileCopyrightText: 2020 Björn Marten
SPDX-FileCopyrightText: 2020 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 iLyas Bakouch
SPDX-FileCopyrightText: 2022 Kim Brose
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -14,9 +25,6 @@ To enable the bridge, add the following configuration to your `inventory/host_va
matrix_appservice_webhooks_enabled: true
matrix_appservice_webhooks_api_secret: '<your_secret>'
# Uncomment to increase the verbosity of logging via `journalctl -fu matrix-appservice-webhooks.service`
# matrix_appservice_webhooks_log_level: 'verbose'
# 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.
#
@@ -24,6 +32,15 @@ matrix_appservice_webhooks_api_secret: '<your_secret>'
# use_appservice_legacy_authorization: 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-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
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
@@ -85,3 +102,16 @@ If you're using the [Dimension integration manager](configuring-playbook-dimensi
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'
```

View File

@@ -1,3 +1,13 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Alexandar Mechev
SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2023 Kuba Orlik
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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 mautrix bridges.
@@ -55,6 +65,16 @@ You then need to send `login YOUR_LINKEDIN_EMAIL_ADDRESS` to the bridge bot to e
## 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.

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2022 Vladimir Panteleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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, 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.
@@ -50,3 +57,16 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## Usage
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).
## 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'
```

View File

@@ -1,8 +1,16 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Toni Spets
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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 [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).
@@ -43,6 +51,14 @@ If you've changed the default hostname, you may need to create a CNAME record fo
When setting, replace `example.com` with your own.
### Extending the 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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -69,3 +85,7 @@ 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`.

View File

@@ -1,3 +1,13 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Kim Brose
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2022 Paul Tötterman
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up matrix-hookshot (optional)
The playbook can install and configure [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) for you.
@@ -38,7 +48,12 @@ Take special note of the `matrix_hookshot_*_enabled` variables. Services that ne
### Extending the configuration
You can configure additional options by adding the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables.
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.
@@ -91,9 +106,8 @@ Unless indicated otherwise, the following endpoints are reachable on your `matri
| 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.
@@ -120,21 +134,57 @@ For more information, see the documentation in the [default configuration of the
### 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
```

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2020 MDAD project contributors
SPDX-FileCopyrightText: 2020 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Matrix SMS bridging (optional)
The playbook can install and configure [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for you.
@@ -30,9 +38,16 @@ 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 it with [playbook tags](playbook-tags.md) as below:
@@ -53,3 +68,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## 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`.

View File

@@ -0,0 +1,73 @@
<!--
SPDX-FileCopyrightText: 2025 MDAD project contributors
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Bluesky bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
The playbook can install and configure [mautrix-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.
<!-- NOTE: relay mode is not supported for this bridge -->
See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc.
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
**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'
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2023 Nikita Chernyi
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -15,7 +24,7 @@ To enable the bridge, add the following configuration to your `inventory/host_va
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).
**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.

View File

@@ -1,3 +1,15 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2018 Hugues Morisset
SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2022 Abílio Costa
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Discord bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -71,3 +83,16 @@ If you'd like to bridge guilds, send `guilds status` to see the list of guilds,
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.
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.
## 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'
```

View File

@@ -1,8 +1,20 @@
<!--
SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 Hugues Morisset
SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2021 Aaron Raimist
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 László Várady
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Facebook bridging (optional, deprecated)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
**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.
**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.
@@ -59,6 +71,16 @@ If you run into trouble, check the [Troubleshooting](#troubleshooting) section b
## 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.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2023 Shreyas Ajjarapu
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Google Messages bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -53,3 +61,16 @@ To use the bridge, you need to start a chat with `@gmessagesbot:example.com` (wh
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'
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2021 MDAD project contributors
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Google Chat bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -55,3 +64,15 @@ To use the bridge, you need to start a chat with `@googlechatbot:example.com` (w
You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/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-googlechat`.
### 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
```

View File

@@ -1,58 +1,27 @@
# Setting up Mautrix Hangouts bridging (optional, deprecated)
<!--
SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 Eduardo Beltrame
SPDX-FileCopyrightText: 2021 MDAD project contributors
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
SPDX-License-Identifier: AGPL-3.0-or-later
-->
💡 **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.
# Setting up Mautrix Hangouts bridging (optional, removed)
The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for 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.
## Prerequisite (optional)
You may wish to use the [Google Chat bridge](https://github.com/mautrix/googlechat) instead.
### Enable Shared Secret Auth
## Uninstalling the bridge manually
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.
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:
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 Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_mautrix_hangouts_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.
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
systemctl disable --now matrix-mautrix-hangouts.service
rm -rf /matrix/mautrix-hangouts
/matrix/postgres/bin/cli-non-interactive 'DROP DATABASE matrix_mautrix_hangouts;'
```
**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 `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
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.
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.

View File

@@ -1,8 +1,17 @@
<!--
SPDX-FileCopyrightText: 2021 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2021 Marcus Proest
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Instagram bridging (optional, deprecated)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
**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.
**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.
@@ -44,3 +53,15 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
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 then need to send `login YOUR_INSTAGRAM_EMAIL_ADDRESS YOUR_INSTAGRAM_PASSWORD` to the bridge bot to enable bridging for your instagram/Messenger 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-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
```

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Instagram bridging via Mautrix Meta (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -69,3 +76,16 @@ To use the bridge, you need to start a chat with `@instagrambot:example.com` (wh
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
```

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Johan Swetzén
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Messenger bridging via Mautrix Meta (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -45,8 +53,8 @@ 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).
@@ -84,3 +92,16 @@ You can then follow instructions on the bridge's [official documentation on Auth
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
```

View File

@@ -1,3 +1,19 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2018 Hugues Morisset
SPDX-FileCopyrightText: 2020 - 2021 MDAD project contributors
SPDX-FileCopyrightText: 2020 Sabine Laszakovits
SPDX-FileCopyrightText: 2021 Julian Foad
SPDX-FileCopyrightText: 2021 Wolfgang Winter
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Benjamin Kampmann
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Signal bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -60,3 +76,16 @@ You can then follow instructions on the bridge's [official documentation on Auth
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'
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2023 Stuart Mumford
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Slack bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -63,3 +72,16 @@ To use the bridge, you need to start a chat with `@slackbot:example.com` (where
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'
```

View File

@@ -1,3 +1,16 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2018 Hugues Morisset
SPDX-FileCopyrightText: 2019 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2021 Panagiotis Georgiadis
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Iikka Järvenpää
SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Telegram bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -93,3 +106,15 @@ To use the bridge, you need to start a chat with `@telegrambot:example.com` (whe
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
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Matthew Cengia
SPDX-FileCopyrightText: 2022 Aaron Raimist
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Twitter bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -55,3 +64,16 @@ To use the bridge, you need to start a chat with `@twitterbot:example.com` (wher
You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/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-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'
```

View File

@@ -1,3 +1,16 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2018 Hugues Morisset
SPDX-FileCopyrightText: 2021 - 2025 MDAD project contributors
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2023 James Collier
SPDX-FileCopyrightText: 2023 Kuba Orlik
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Whatsapp bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -56,3 +69,16 @@ You can then follow instructions on the bridge's [official documentation on Auth
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 dont 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'
```

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2023 Johan Swetzén
SPDX-FileCopyrightText: 2023 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
@@ -28,12 +36,6 @@ 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.
### 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.
### 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.
@@ -47,6 +49,12 @@ matrix_mautrix_wsproxy_hostname: ws.example.com
After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server.
### 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.
## 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:
@@ -67,3 +75,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## Usage
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`.

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Hugues Morisset
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2021 Cody Neiman
SPDX-FileCopyrightText: 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2021 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,5 +1,13 @@
<!--
SPDX-FileCopyrightText: 2020 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Rodrigo Belem
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,14 @@
<!--
SPDX-FileCopyrightText: 2020 - 2023 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Rodrigo Belem
SPDX-FileCopyrightText: 2021 Marcel Ackermann
SPDX-FileCopyrightText: 2022 Jim Myhrberg
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2020 - 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Hugues Morisset
SPDX-FileCopyrightText: 2020 Panagiotis Vasilopoulos
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2020 Tulir Asokan
SPDX-FileCopyrightText: 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.

View File

@@ -1,6 +1,13 @@
# Setting up Postmoogle email bridging (optional)
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2023 Luke D Iremadze
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
**Note**: email bridging can also happen via the [email2matrix](configuring-playbook-email2matrix.md) bridge supported by the playbook.
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Postmoogle email bridging (optional)
The playbook can install and configure [Postmoogle](https://github.com/etkecc/postmoogle) for you.
@@ -55,6 +62,14 @@ matrix_postmoogle_password: PASSWORD_FOR_THE_BOT
# matrix_admin: '@yourAdminAccount:{{ matrix_domain }}'
```
### Extending the configuration
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 it with [playbook tags](playbook-tags.md) as below:
@@ -84,11 +99,13 @@ 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'

View File

@@ -1,9 +1,19 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up WeChat bridging (optional)
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'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
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
@@ -12,19 +22,26 @@ 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 it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,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.
@@ -34,3 +51,16 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
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'
```

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2023 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Cactus Comments (optional)
The playbook can install and configure the [Cactus Comments](https://cactus.chat) system for you.
@@ -8,9 +17,9 @@ 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).
@@ -25,23 +34,21 @@ If you wish to adjust it, see the section [below](#adjusting-the-cactus-comments
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 (optional)
@@ -61,6 +68,18 @@ If you've changed the default hostname, you may need to create a CNAME record fo
When setting, replace `example.com` with your own.
### Extending the 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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -80,11 +99,9 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
## 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 `help` to the `@bot.cactusbot:example.com` bot to confirm it's working.
Then, register a site by sending `register <YourSiteName>` (where `<YourSiteName>` 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!
@@ -98,7 +115,7 @@ After including the JavaScript and CSS asset files, insert a `<div>` where you'd
<div id="comment-section"></div>
````
Then, you need to initialize the comment section. Make sure to replace `example.com` with your base domain and `<YourSiteName>` 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
<script>
@@ -106,7 +123,7 @@ initComments({
node: document.getElementById("comment-section"),
defaultHomeserverUrl: "https://matrix.example.com:8448",
serverName: "example.com",
siteName: "<YourSiteName>",
siteName: "YOUR_SITE_NAME_HERE",
commentSectionId: "1"
})
</script>
@@ -124,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
```

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Cinny (optional)
The playbook can install and configure the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you.
@@ -40,6 +48,15 @@ After changing the domain, **you may need to adjust your DNS** records to point
**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.
### Extending the configuration
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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -52,3 +69,7 @@ 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`.

View File

@@ -1,3 +1,13 @@
<!--
SPDX-FileCopyrightText: 2020 - 2022 MDAD project contributors
SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Aaron Raimist
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.
@@ -17,13 +27,30 @@ When setting, replace `example.com` with your own.
## Adjusting the playbook configuration
### Set the country code for phone number inputs
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
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.
#### Change the default theme
You can change the default theme from `light` to `dark`. To do so, add the following configuration to your `vars.yml` file:
```yaml
# Controls the default theme
matrix_client_element_default_theme: 'dark'
```
#### Use themes by `element-themes`
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:
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
@@ -112,3 +139,7 @@ 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`.

View File

@@ -0,0 +1,66 @@
<!--
SPDX-FileCopyrightText: 2025 Nikita Chernyi
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## 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`.

View File

@@ -1,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2021 Aaron Raimist
SPDX-FileCopyrightText: 2021 MDAD project contributors
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Hydrogen (optional)
The playbook can install and configure the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you.
@@ -37,6 +46,15 @@ After changing the domain, **you may need to adjust your DNS** records to point
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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -49,3 +67,7 @@ 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`.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2023 Nikita Chernyi
SPDX-FileCopyrightText: 2023 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up SchildiChat Web (optional)
The playbook can install and configure the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you.
@@ -22,13 +30,30 @@ To enable SchildiChat Web, add the following configuration to your `inventory/ho
matrix_client_schildichat_enabled: true
```
### Set the country code for phone number inputs
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_schildichat_default_country_code: "FR"
```
### 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.
#### Change the default theme
You can change the default theme from `light` to `dark`. To do so, add the following configuration to your `vars.yml` file:
```yaml
# Controls the default theme
matrix_client_schildichat_default_theme: 'dark'
```
#### Use themes by `element-themes`
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:
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
@@ -109,3 +134,7 @@ 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`.

View File

@@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Configuring Conduit (optional)
The playbook can install and configure the [Conduit](https://conduit.rs) Matrix server for you.
@@ -6,13 +13,11 @@ See the project's [documentation](https://docs.conduit.rs/) to learn what it doe
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**: The playbook also supports installing a (currently) faster-moving Conduit fork called [Conduwuit](./configuring-playbook-conduwuit.md).
💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md).
⚠️ **Warnings**:
- **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
> [!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
@@ -42,7 +47,7 @@ matrix_conduit_template_conduit_config: "{{ playbook_dir }}/inventory/host_vars/
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)
@@ -75,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`.

View File

@@ -1,22 +1,27 @@
# Configuring Conduwuit (optional)
<!--
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 Suguru Hirahara
The playbook can install and configure the [Conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you.
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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).
💡 **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).
⚠️ **Warnings**:
- **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
> [!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:
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
@@ -51,7 +56,7 @@ matrix_conduwuit_environment_variables_extension: |
## 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.
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.
@@ -64,9 +69,9 @@ The **first user account that you create will be marked as an admin** and **will
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.
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.
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`.
@@ -93,3 +98,7 @@ Then, send its content to the existing admin room:
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`.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Configuring Dendrite (optional)
The playbook can install and configure the [Dendrite](https://github.com/element-hq/dendrite) Matrix server for you.
@@ -6,11 +14,9 @@ See the project's [documentation](https://element-hq.github.io/dendrite/) to lea
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.
⚠️ **Warnings**:
- **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
> [!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
@@ -62,3 +68,18 @@ 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
```

View File

@@ -1,3 +1,18 @@
<!--
SPDX-FileCopyrightText: 2019 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 - 2025 MDAD project contributors
SPDX-FileCopyrightText: 2019 Edgars Voroboks
SPDX-FileCopyrightText: 2020 Chris van Dijk
SPDX-FileCopyrightText: 2020 jens quade
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Kim Brose
SPDX-FileCopyrightText: 2022 Travis Ralston
SPDX-FileCopyrightText: 2022 Yan Minagawa
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Dimension integration manager (optional, unmaintained)
**Notes**:
@@ -34,7 +49,8 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=dimension p
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.
> [!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
@@ -85,6 +101,17 @@ If you've decided to reuse the `matrix.` domain, you won't need to do any extra
**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.
### 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 playbook with [playbook tags](playbook-tags.md) as below:
@@ -100,16 +127,18 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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.
## Usage
## Jitsi domain
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.
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.
### Set up a Jitsi widget
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* &rightarrow; *Settings* &rightarrow; *Widgets* &rightarrow; *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately.
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.
## Additional features
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.
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.
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.
You can find all configuration options on [GitHub page of Dimension project](https://github.com/turt2live/matrix-dimension/blob/master/config/default.yaml).
## 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`.

View File

@@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2020 Scott Crossen
SPDX-FileCopyrightText: 2020 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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,6 +31,14 @@ 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 it with [playbook tags](playbook-tags.md) as below:
@@ -41,3 +57,7 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
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`.

View File

@@ -0,0 +1,82 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Element Call (optional)
The playbook can install and configure [Element Call](https://github.com/element-hq/element-call) for you.
Element Call is a native Matrix video conferencing application developed by [Element](https://element.io), designed for secure, scalable, privacy-respecting, and decentralized video and voice calls over the Matrix protocol. Built on MatrixRTC ([MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)), it utilizes [MSC4195](https://github.com/hughns/matrix-spec-proposals/blob/hughns/matrixrtc-livekit/proposals/4195-matrixrtc-livekit.md) with [LiveKit Server](configuring-playbook-livekit-server.md) as its backend.
See the project's [documentation](https://github.com/element-hq/element-call) to learn more.
## Prerequisites
- A [Synapse](configuring-playbook-synapse.md) homeserver (see the warning below)
- [Federation](configuring-playbook-federation.md) being enabled for your Matrix homeserver (federation is enabled by default, unless you've explicitly disabled it), because [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) currently [requires it](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2725250554) ([relevant source code](https://github.com/element-hq/lk-jwt-service/blob/f5f5374c4bdcc00a4fb13d27c0b28e20e4c62334/main.go#L135-L146))
- Various experimental features for the Synapse homeserver which Element Call [requires](https://github.com/element-hq/element-call/blob/93ae2aed9841e0b066d515c56bd4c122d2b591b2/docs/self-hosting.md#a-matrix-homeserver) (automatically done when Element Call is enabled)
- A [LiveKit Server](configuring-playbook-livekit-server.md) (automatically installed when Element Call is enabled)
- The [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) (automatically installed when Element Call is enabled)
- A client compatible with Element Call. As of 2025-03-15, that's just [Element Web](configuring-playbook-client-element-web.md) and the Element X mobile clients (iOS and Android).
> [!WARNING]
> Because Element Call [requires](https://github.com/element-hq/element-call/blob/93ae2aed9841e0b066d515c56bd4c122d2b591b2/docs/self-hosting.md#a-matrix-homeserver) a few experimental features in the Matrix protocol, it's **very likely that it only works with the Synapse homeserver**.
## Decide on a domain and path
By default, Element Call is configured to be served on the `call.element.example.com` domain.
If you'd like to run Element Call on another hostname, see the [Adjusting the Element Call URL](#adjusting-the-element-call-url-optional) section below.
## Adjusting DNS records
By default, this playbook installs Element Call on the `call.element.` subdomain (`call.element.example.com`) and requires you to create a `CNAME` record for `call.element`, which targets `matrix.example.com`.
When setting these values, replace `example.com` with your own.
All dependency services for Element Call ([LiveKit Server](configuring-playbook-livekit-server.md) and [Livekit JWT Service](configuring-playbook-livekit-jwt-service.md)) are installed and configured automatically by the playbook. By default, these services are installed on subpaths on the `matrix.` domain (e.g. `/livekit-server`, `/livekit-jwt-service`), so no DNS record adjustments are required for them.
## Adjusting firewall rules
In addition to the HTTP/HTTPS ports (which you've already exposed as per the [prerequisites](prerequisites.md) document), you'll also need to open ports required by [LiveKit Server](configuring-playbook-livekit-server.md) as described in its own [Adjusting firewall rules](configuring-playbook-livekit-server.md#adjusting-firewall-rules) section.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_element_call_enabled: true
```
### Adjusting the Element Call URL (optional)
By tweaking the `matrix_element_call_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
Example additional configuration for your `vars.yml` file:
```yaml
matrix_element_call_hostname: element-call.example.com
```
> [!WARNING]
> A `matrix_element_call_path_prefix` variable is also available and mean to let you configure a path prefix for the Element Call service, but [Element Call does not support running under a sub-path yet](https://github.com/element-hq/element-call/issues/3084).
## Installing
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records) and [adjusting firewall rules](#adjusting-firewall-rules), run the playbook with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## Usage
Once installed, Element Call integrates seamlessly with Matrix clients like [Element Web](configuring-playbook-client-element-web.md) and Element X on mobile (iOS and Android).

View File

@@ -1,53 +1,71 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 Eduardo Beltrame
SPDX-FileCopyrightText: 2020 - 2025 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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.)
**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.
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.
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).
## Relaying email through another SMTP server
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.
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):
## Adjusting the playbook configuration
### 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.
### Configuations for sending emails using Sendgrid
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.
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: "<your api key password>"
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## 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.

View File

@@ -1,117 +1,26 @@
# Setting up Email2Matrix (optional)
<!--
SPDX-FileCopyrightText: 2019 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 MDAD project contributors
**Note**: email bridging can also happen via the [Postmoogle](configuring-playbook-bridge-postmoogle.md) bridge supported by the playbook. Postmoogle is much more powerful and easier to use, so we recommend that you use it, instead of Email2Matrix.
SPDX-License-Identifier: AGPL-3.0-or-later
-->
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.
## Preparation
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).
### Port availability
Ensure that port 25 is available on your Matrix server and open in your firewall.
## Uninstalling Email2Matrix manually
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).
### Register a dedicated Matrix user (optional, recommended)
We recommend that you create a dedicated Matrix user for Email2Matrix.
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):
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:
```sh
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=email2matrix password=PASSWORD_FOR_THE_USER admin=no' --tags=register-user
systemctl disable --now matrix-email2matrix.service
rm -rf /matrix/email2matrix
```
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.
### Obtain an access token
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).
⚠️ **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 sender user manually
**Email2Matrix does not accept room invitations automatically**. To deliver messages to rooms, the sender user must be joined to all rooms manually.
For each new room you would like the user to deliver messages to, invite the user to the room.
Then, log in as the sender user using any Matrix client of your choosing, accept the room invitation from the user's account.
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.
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.
## Adjusting DNS records
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:
| Type | Host | Priority | Weight | Port | Target |
|------|----------|----------|--------|------|------------------------------------|
| MX | `matrix` | 10 | 0 | - | `matrix.example.com` |
## Adjusting the playbook configuration
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).
```yaml
matrix_email2matrix_enabled: true
# You need at least 1 mailbox.
matrix_email2matrix_matrix_mappings:
- MailboxName: "mailbox1"
MatrixRoomId: "!qporfwt:{{ matrix_domain }}"
MatrixHomeserverUrl: "{{ matrix_homeserver_url }}"
MatrixUserId: "@email2matrix1:{{ matrix_domain }}"
MatrixAccessToken: "ACCESS_TOKEN_FOR_EMAIL2MATRIX1_HERE"
IgnoreSubject: false
IgnoreBody: false
SkipMarkdown: false
- MailboxName: "mailbox2"
MatrixRoomId: "!aaabaa:{{ matrix_domain }}"
MatrixHomeserverUrl: "{{ matrix_homeserver_url }}"
MatrixUserId: "@email2matrix2:{{ matrix_domain }}"
MatrixAccessToken: "ACCESS_TOKEN_FOR_EMAIL2MATRIX2_HERE"
IgnoreSubject: true
IgnoreBody: false
SkipMarkdown: true
```
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. On this configuration it is `@email2matrix1:example.com` and `@email2matrix2:example.com` (where `example.com` is your base domain, not the `matrix.` domain)
* 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
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
**Notes**:
- The shortcut commands with the [`just` program](just.md) are also available: `just install-service email2matrix` or `just setup-all`
`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.
- 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.

View File

@@ -1,10 +1,27 @@
<!--
SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Béla Becker
SPDX-FileCopyrightText: 2021 pushytoxin
SPDX-FileCopyrightText: 2022 Jim Myhrberg
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2022 felixx9
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Etherpad (optional)
The playbook can install and configure [Etherpad](https://etherpad.org) for you.
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 audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences.
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
@@ -17,13 +34,33 @@ When setting, replace `example.com` with your own.
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 #
# #
########################################################################
```
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.
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.
@@ -43,30 +80,6 @@ After changing the domain, **you may need to adjust your DNS** records to point
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
### Configure the default text (optional)
You can also edit the default text on a new pad with the variable `etherpad_default_pad_text`.
To do so, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
# Note: the whole text (all of its belonging lines) under the variable needs to be indented with 2 spaces.
etherpad_default_pad_text: |
Welcome to Etherpad!
This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!
Get involved with Etherpad at https://etherpad.org
```
### Extending the configuration
There are some additional things you may wish to configure about the component.
Take a look at:
- [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
## 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:
@@ -84,24 +97,20 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.
- 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.
## 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-optional) (e.g. `https://matrix.example.com/etherpad`), adjust these URLs accordingly before using it.
### Managing / Deleting old pads
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.
After logging in to the admin web UI, go to the plugin manager page, and install the `adminpads2` plugin.
Once the plugin is installed, you should have a "Manage pads" section in the UI.
💡 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.
### Integrating a Etherpad widget in a room
**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
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.

View File

@@ -1,8 +1,15 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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):

View File

@@ -1,8 +1,16 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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 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.
**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

View File

@@ -1,19 +1,36 @@
<!--
SPDX-FileCopyrightText: 2020 - 2024 MDAD project contributors
SPDX-FileCopyrightText: 2020 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Aaron Raimist
SPDX-FileCopyrightText: 2020 Chris van Dijk
SPDX-FileCopyrightText: 2020 Dominik Zajac
SPDX-FileCopyrightText: 2020 Mickaël Cornière
SPDX-FileCopyrightText: 2022 François Darveau
SPDX-FileCopyrightText: 2022 Warren Bailey
SPDX-FileCopyrightText: 2023 Antonis Christofides
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up the Jitsi video-conferencing platform (optional)
The playbook can install and configure the [Jitsi](https://jitsi.org/) video-conferencing platform for you.
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.
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.
See the project's [documentation](https://jitsi.github.io/handbook/) to learn what it does and why it might be useful to you.
💡 If you're into experimental technology, you may also be interested in trying out [Element Call](configuring-playbook-element-call.md) - a native Matrix video conferencing application.
**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/).
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 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)).
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
@@ -26,180 +43,49 @@ When setting, replace `example.com` with your own.
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 (optional)
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 tweaking the `jitsi_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
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.
Example additional configuration for your `vars.yml` file:
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)).
```yaml
# Change the default hostname
jitsi_hostname: call.example.com
```
### Enable authentication and guests mode (optional)
After changing the domain, **you may need to adjust your DNS** records to point the Jitsi domain to the Matrix server.
By default the Jitsi Meet instance **does not require for anyone to log in, and is open to use without an account**.
### Configure Jitsi authentication and guests mode (optional)
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.
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.
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).
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.
**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.
#### Authenticate using Jitsi accounts: Auth-Type `internal` (recommended)
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.
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.
```yaml
jitsi_enable_auth: true
jitsi_enable_guests: true
jitsi_prosody_auth_internal_accounts:
- username: "USERNAME_FOR_THE_FIRST_USER_HERE"
password: "PASSWORD_FOR_THE_FIRST_USER_HERE"
- username: "USERNAME_FOR_THE_SECOND_USER_HERE"
password: "PASSWORD_FOR_THE_SECOND_USER_HERE"
```
**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.
#### Authenticate using Matrix OpenID: Auth-Type `matrix`
⚠️ **Warning**: this breaks the Jitsi instance on federated rooms probably and does not allow sharing conference links with guests.
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.
To enable authentication with Matrix OpenID, add the following configuration to your `vars.yml` file:
```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`
To enable authentication with LDAP, add the following configuration to your `vars.yml` file (adapt to your needs):
```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.
### Configure `JVB_ADVERTISE_IPS` for running behind NAT or on a LAN environment (optional)
When running Jitsi in a LAN environment, or on the public Internet via NAT, the `JVB_ADVERTISE_IPS` enviornment variable should be set.
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.
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.
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.
```yaml
jitsi_jvb_container_extra_arguments:
- '--env "JVB_ADVERTISE_IPS=LOCAL_IP_ADDRESS_OF_THE_HOST_HERE"'
```
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.
### Set a maximum number of participants on a Jitsi conference (optional)
You can set a maximum number of participants allowed to join a Jitsi conference. By default the number is not specified.
To set it, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
jitsi_prosody_max_participants: 4 # example value
```
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.
### Enable Gravatar (optional)
In the default Jisti Meet configuration, `gravatar.com` is enabled as an avatar service.
Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our default configuration has disabled the Gravatar service.
Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our configuration has disabled the Gravatar service.
To enable the Gravatar service, add the following configuration to your `vars.yml` file:
To enable the Gravatar service nevertheless, add the following configuration to your `vars.yml` file:
```yaml
jitsi_disable_gravatar: false
```
⚠️ **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.
### Fine tune Jitsi (optional)
If you'd like to have Jitsi save up resources, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml
jitsi_web_config_resolution_width_ideal_and_max: 480
jitsi_web_config_resolution_height_ideal_and_max: 240
jitsi_web_custom_config_extension: |
config.enableLayerSuspension = true;
config.disableAudioLevels = true;
config.channelLastN = 4;
```
These configurations:
- **limit the maximum video resolution**, to save up resources on both server and clients
- **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/).
- **disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved
- **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).
### Example configurations
Here is an example set of configurations for running a Jitsi instance with:
- authentication using a Jitsi account (username: `US3RNAME`, password: `passw0rd`)
- guests: allowed
- maximum participants: 6 people
- fine tuning with the configurations presented above
- 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))
```yaml
jitsi_enabled: true
jitsi_enable_auth: true
jitsi_enable_guests: true
jitsi_prosody_auth_internal_accounts:
- username: "US3RNAME"
password: "passw0rd"
jitsi_prosody_max_participants: 6
jitsi_web_config_resolution_width_ideal_and_max: 480
jitsi_web_config_resolution_height_ideal_and_max: 240
jitsi_web_custom_config_extension: |
config.enableLayerSuspension = true;
config.disableAudioLevels = true;
config.channelLastN = 4;
config.requireDisplayName = true; // force users to set a display name
config.startAudioOnly = true; // start the conference in audio only mode (no video is being received nor sent)
```
> [!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
@@ -220,170 +106,12 @@ 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.
- **directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`
- **directly (without any Matrix integration)**. Just go to `https://jitsi.example.com`, and you can start a videoconference.
### Set up additional JVBs for more video-conferences (optional)
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.
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.
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.
#### Add the `jitsi_jvb_servers` section on `hosts` file
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:
```INI
[jitsi_jvb_servers]
jvb-2.example.com ansible_host=192.168.0.2
```
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.
You could add JVB hosts as many as you would like. When doing so, add lines with the details of them.
#### Prepare `vars.yml` files for additional JVBs
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`).
Note that most (if not all) variables are common for both servers.
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).
#### Set the server ID to each JVB
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.
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.
To set the server ID to `jvb-2`, add the following configuration to either `hosts` or `vars.yml` files (adapt to your needs).
- On `hosts`:
Add `jitsi_jvb_server_id=jvb-2` after your JVB's external IP addresses as below:
```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
```
- On `vars.yml` files:
```yaml
jitsi_jvb_server_id: 'jvb-2'
```
Alternatively, you can specify the variable as a parameter to [the ansible command](#run-the-playbook).
**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.
#### Set colibri WebSocket port
The additional JVBs will need to expose the colibri WebSocket port.
To expose the port, add the following configuration to your `vars.yml` files:
```yaml
jitsi_jvb_container_colibri_ws_host_bind_port: 9090
```
#### Set Prosody XMPP server
The JVB will also need to know the location of the Prosody XMPP server.
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`.
##### Set the Matrix domain
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:
```yaml
jitsi_xmpp_server: "{{ matrix_domain }}"
```
##### Set an IP address of the Matrix server
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.
To set the IP address of the Matrix server, add the following configuration to your `vars.yml` files:
```yaml
jitsi_xmpp_server: "192.168.0.1"
```
##### Expose XMPP port
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.
To expose the port and have Docker forward the port, add the following configuration to your `vars.yml` files:
```yaml
jitsi_prosody_container_jvb_host_bind_port: 5222
```
#### Reverse-proxy with Traefik
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`):
```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 %}
```
#### Run the playbook
After configuring `hosts` and `vars.yml` files, run the playbook with [playbook tags](playbook-tags.md) as below:
```sh
ansible-playbook -i inventory/hosts --limit jitsi_jvb_servers jitsi_jvb.yml --tags=common,setup-additional-jitsi-jvb,start
```
Check [the official user guide](https://jitsi.github.io/handbook/docs/category/user-guide) for details about how to use Jitsi.
## Troubleshooting
### `Error: Account creation/modification not supported`
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.
In this case, you should consider to rebuild your Jitsi installation.
### Rebuilding your Jitsi installation
If you ever run into any trouble or if you have changed configuration (`jitsi_*` variables) too much, you can rebuild your Jitsi installation.
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.
To rebuild your Jitsi configuration, follow the procedure below:
- run this command locally to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi`
- log in the server with SSH
- run this command remotely to remove all Jitsi configuration & data: `rm -rf /matrix/jitsi`
- run this command locally 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.

View File

@@ -0,0 +1,47 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up JWT Service (optional)
The playbook can install and configure [LiveKit JWT Service](https://github.com/element-hq/lk-jwt-service) for you.
LK-JWT-Service is currently used for a single reason: generate JWT tokens with a given identity for a given room, so that users can use them to authenticate against LiveKit SFU.
See the project's [documentation](https://github.com/element-hq/lk-jwt-service/) to learn more.
## Decide on a domain and path
By default, JWT Service is configured to be served:
- on the Matrix domain (`matrix.example.com`), configurable via `matrix_livekit_jwt_service_hostname`
- under a `/livekit-jwt-service` path prefix, configurable via `matrix_livekit_jwt_service_path_prefix`
This makes it easy to set it up, **without** having to adjust your DNS records manually.
## Adjusting DNS records
If you've changed the default hostname, **you may need to adjust your DNS** records accordingly to point to the correct server.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_livekit_jwt_service_enabled: 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`
## Usage
Once installed, a new `org.matrix.msc4143.rtc_foci` section is added to the Element Web client to point to your JWT service URL (e.g., `https://matrix.example.com/livekit-jwt-service`).
## Additional Information
Refer to the LiveKit JWT-Service documentation for more details on configuring and using JWT Service.

View File

@@ -1,10 +1,21 @@
<!--
SPDX-FileCopyrightText: 2018 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 - 2023 MDAD project contributors
SPDX-FileCopyrightText: 2020 Marcel Partap
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# 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 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,20 +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
```
## Using ma1sd Identity Server for authentication (not recommended)
## Installing
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.
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
If you wish to install it anyway, consult the [ma1sd Identity Server configuration](configuring-playbook-ma1sd.md#authentication).
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Handling user registration
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
### 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).

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