461 Commits

Author SHA1 Message Date
267e3dce2a meta: move inventory structure to be more usable 2025-03-09 11:45:22 +01:00
cde1ca043a meta: add own inventory, add vault-unlock with GPG 2025-03-09 11:45:17 +01:00
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
74b85d5b87 Update dependency setuptools to v75.9.1 2025-03-09 05:19:13 +00:00
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
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
52c75604c1 Update dependency setuptools to v75.9.0 2025-03-09 01:37:42 +00:00
ce90df519e docs/configuring-playbook-ipv6.md -> docs/configuring-ipv6.md 2025-03-08 15:42:50 +02:00
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
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
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
c90e40b24d Upgrade exim-relay (v4.98.1-r0-1-0 -> v4.98.1-r0-2-0) 2025-03-08 07:36:55 +02:00
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
55e47d69db Enable room summary API (MSC3266) support for Synapse to support Element X clients 2025-03-06 14:48:23 +01:00
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
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
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
a72d017e47 Update dependency Jinja2 to v3.1.6 2025-03-05 22:34:23 +00:00
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
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
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
60bc545d0e Synapse Admin v0.10.3-etke38 2025-03-05 15:24:00 +02:00
c63660ede2 Merge pull request #4149 from luixxiul/fix
Add REUSE compliant badge on README.md
2025-03-05 09:40:29 +02:00
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
d4c007dffd Re-run reuse annotate for roles/
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 16:03:16 +09:00
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
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
b391a96e78 Merge pull request #4146 from luixxiul/patch-2
Update validate_config.yml files
2025-03-05 08:30:34 +02:00
bf0918ae58 Merge branch 'master' into patch-2 2025-03-05 08:29:35 +02:00
ae661b991e Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.5 2025-03-05 06:28:02 +00:00
91130c8a1c Update ajbura/cinny Docker tag to v4.5.1 2025-03-05 06:27:58 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
416d560ffe Add GitHub Action "REUSE Compliance Check"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 13:01:11 +09:00
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
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
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
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
374d19c4d4 Merge pull request #4143 from luixxiul/fix
Add license information to various files
2025-03-04 20:33:27 +02:00
0223289180 Update REUSE.toml: sort an item
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:21 +09:00
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
818794bd83 Add license information for CHANGELOG.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:27:13 +09:00
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
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
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
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
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
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
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
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
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
8be34c1ef1 Add license information for setup.yml
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:13 +09:00
e1c03dc7ff Add license information to a role
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:26:05 +09:00
687449fcba Add license information for README.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 00:25:58 +09:00
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
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
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
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
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
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
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
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
76f9e7f34f Update ajbura/cinny Docker tag to v4.5.0 2025-03-04 10:44:30 +00:00
35d38b28bf Merge pull request #4140 from luixxiul/fix
Add license information to files for matrix-synapse
2025-03-04 12:44:11 +02:00
7fca7ceea8 Borgmatic v1.9.13 2025-03-04 12:43:52 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
88413a08cb Update gnuxie/draupnir Docker tag to v2.2.0 2025-03-03 20:24:16 +00:00
50c63edb61 Merge pull request #4138 from luixxiul/fix
Add license information to files for components
2025-03-03 13:44:39 +02:00
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
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
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
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
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
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
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
5ce8331282 Update dependency Sphinx to v8.2.3 2025-03-03 03:28:32 +00:00
245900e32f Update REUSE.toml
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-03 12:15:39 +09:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
dbfcb2d2c1 Upgrade Traefik (v3.3.3-4 -> v3.3.4-0) 2025-03-01 07:01:56 +02:00
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
a83d79e229 Merge pull request #4127 from luixxiul/fix
Add license information to files for components
2025-03-01 06:52:56 +02:00
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
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
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
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
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
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
8abb8455c7 Merge pull request #4124 from luixxiul/fix
Add license information to files for components
2025-02-28 16:27:16 +02:00
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
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
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
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
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
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
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
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
bf5726f603 Merge pull request #4123 from luixxiul/fix
Add license information to files for some components
2025-02-28 12:19:34 +02:00
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
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
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
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
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
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
5ceee4d6cd Merge pull request #4122 from luixxiul/fix
Add license information to some components
2025-02-28 08:30:24 +02:00
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
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
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
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
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
225365929d Merge pull request #4121 from luixxiul/fix
Add license information to files for components
2025-02-27 21:16:34 +02:00
2e54072f1b Fix copyright attribution
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-28 02:47:59 +09:00
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
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
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
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
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
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
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
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
57d1f417df Update ghcr.io/element-hq/element-web Docker tag to v1.11.94 2025-02-27 15:23:27 +00:00
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
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
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
3e2ca94a53 Merge pull request #4118 from luixxiul/fix
Add license information to components
2025-02-27 12:04:04 +02:00
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
f7d25a3691 Upgrade baibot (v1.4.1 -> v1.5.0) and adapt configuration 2025-02-27 11:50:29 +02:00
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
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
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
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
541c66011c Merge pull request #4117 from luixxiul/fix
Add copyright header to some documents
2025-02-27 07:57:49 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
b92d8517eb Update dependency setuptools to v75.8.2 2025-02-26 21:38:12 +00:00
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
78b60be431 Merge pull request #4115 from luixxiul/fix
Add license information to some active project components
2025-02-26 20:30:53 +02:00
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
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
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
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
959e8bea30 Merge pull request #4114 from luixxiul/fix
Add copyright attiributions to vendor files
2025-02-26 16:20:25 +02:00
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
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
ba3b82ed20 Switch to pulling Element Web from Github Container Registry, not Docker Hub 2025-02-26 09:37:05 +02:00
6bce373fe2 Merge pull request #4111 from luixxiul/fix
Add license information to files for quiet projects
2025-02-26 09:03:28 +02:00
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
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
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
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
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
baefcd4923 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.26 2025-02-26 06:46:20 +00:00
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
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
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
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
1b05343aba Remove Email2Matrix support 2025-02-26 08:00:17 +02:00
74bdd8cbe5 docker.io/devture/ansible -> ghcr.io/devture/ansible 2025-02-26 07:39:55 +02:00
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
ae91852109 Upgrade exim-relay (v4.98-r0-4-3 -> 4.98.1-r0-0-0) 2025-02-26 07:15:26 +02:00
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
9493356adb Update dependency setuptools to v75.8.1 2025-02-25 19:49:08 +00:00
5c708339a0 Upgrade Synapse (v1.124.0 -> v1.125.0) 2025-02-25 21:28:23 +02:00
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
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
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
6d44f6d7af Update vectorim/element-web Docker tag to v1.11.93 2025-02-25 14:35:32 +00:00
eba494eb86 Update halfshot/matrix-hookshot Docker tag to v6.0.3 2025-02-25 14:35:25 +00:00
771efab5c0 Merge pull request #4105 from luixxiul/fix
Update docs: minor edits
2025-02-25 16:34:41 +02:00
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
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
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
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
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
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
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
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
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
6a4366d75d Upgrade Postgres (v17.2-3 -> v17.4-0) 2025-02-25 08:36:15 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
34ed810509 fix bluesky tokens 2025-02-24 18:45:11 +02:00
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
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
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
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
2129cbf95e Fix yamllint-reported errors 2025-02-24 11:47:53 +02:00
f7a8c8e83c Make external roles also respect matrix_container_global_registry_prefix_override
Fixup for b88b6ae7a3
2025-02-24 11:47:05 +02:00
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
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
11842116b3 Upgrade Valkey (v8.0.1-2 -> v8.0.1-3) 2025-02-24 11:38:47 +02:00
6ef6bcdf38 Upgrade traefik-certs-dumper (v2.8.3-6 -> v2.8.3-7) 2025-02-24 11:38:47 +02:00
ce835c395f Upgrade Traefik (v3.3.3-3 -> v3.3.3-4) 2025-02-24 11:38:47 +02:00
a97988c794 Upgrade prometheus-node-exporter (v1.8.2-4 -> v1.8.2-5) 2025-02-24 11:38:47 +02:00
620dfa889d Upgrade prometheus-postgres-exporter (v0.14.0-7 -> v0.14.0-9) 2025-02-24 11:38:47 +02:00
66746bfa01 Upgrade prometheus-node-exporter (v1.8.2-3 -> v1.8.2-4) 2025-02-24 11:38:47 +02:00
d4bfc26803 Upgrade Prometheus (v2.55.1-2 -> v2.55.1-3) 2025-02-24 11:38:47 +02:00
400fa61bd0 Upgrade postgres-backup (v17-2 -> v17-3) 2025-02-24 11:38:47 +02:00
200059e3c6 Upgrade Postgres (v17.2-2 -> v17.2-3) 2025-02-24 11:38:47 +02:00
9dd3a71c38 Upgrade ntfy (v2.11.0-2 -> v2.11.0-3) 2025-02-24 11:38:47 +02:00
3441a29b7b Upgrade Jitsi (v10008-2 -> v10008-3) 2025-02-24 11:38:47 +02:00
ed63688bb8 Upgrade Grafana (v11.5.2-0 -> v11.5.2-1) 2025-02-24 11:38:47 +02:00
650fca9d27 Upgrade exim-relay (v4.98-r0-4-2 -> v4.98-r0-4-3) 2025-02-24 11:38:47 +02:00
c212346881 Upgrade Etherpad (v2.2.7-3 -> v2.2.7-4) 2025-02-24 11:38:47 +02:00
3e17ae8b1b Upgrade container-socket-proxy (v0.3.0-3 -> v0.3.0-4) 2025-02-24 11:38:47 +02:00
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
77209126bb Update docs: remove duplicated whitespace characters
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 17:47:38 +09:00
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
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
7448b4728c Edit docs: minor edits
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-24 12:47:36 +09:00
91808bbd70 Merge pull request #4096 from luixxiul/fix
Update docs for Ansible
2025-02-23 21:12:34 +02:00
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
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
af054a4833 Update ajbura/cinny Docker tag to v4.4.0 2025-02-23 14:39:53 +00:00
b66aa0624f Merge pull request #4094 from luixxiul/fix
Update docs related to installation: minor edits
2025-02-23 12:32:51 +02:00
cca3b06cf0 Add space after ⚠️ on installing.md 2025-02-23 12:32:32 +02:00
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
c1eae5fc00 Update docs/installing.md: minor edits
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-23 19:25:04 +09:00
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
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
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
7a476cd410 Merge pull request #4093 from luixxiul/fix
Update docs: add copyright headers
2025-02-23 08:12:47 +02:00
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
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
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
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
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
56e9967f5d Upgrade Valkey (v8.0.1-1 -> v8.0.1-2) 2025-02-22 22:41:52 +02:00
9a035eeabe Upgrade Etherpad (v2.2.7-2 -> v2.2.7-3) 2025-02-22 22:40:28 +02:00
c28630355a Upgrade exim-relay (v4.98-r0-4-1 -> v4.98-r0-4-2) 2025-02-22 22:31:11 +02:00
6d501b9cc6 Upgrade container-socket-proxy (v0.3.0-2 -> v0.3.0-3) 2025-02-22 22:03:54 +02:00
41fc044ee0 Upgrade Jitsi (v10008-1 -> v10008-2) 2025-02-22 22:03:02 +02:00
5aa149fb52 Upgrade Traefik (v3.3.3-2 -> v3.3.3-3) 2025-02-22 21:56:49 +02:00
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
a518fcce81 Upgrade Prometheus (v2.55.1-1 -> v2.55.1-2) 2025-02-22 21:47:58 +02:00
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
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
49c60deb8a Upgrade prometheus-node-exporter (v1.8.2-2 -> v1.8.2-3) 2025-02-22 21:35:09 +02:00
f7c89e3abe Upgrade postgres-backup (v17-1 -> v17-2) 2025-02-22 21:19:22 +02:00
b41cb172fe Upgrade ntfy (v2.11.0-1 -> v2.11.0-2) 2025-02-22 21:17:17 +02:00
053ef3f35a Upgrade prometheus-postgres-exporter (v0.14.0-6 -> v0.14.0-7) 2025-02-22 21:07:59 +02:00
ee75543aa7 Upgrade Prometheus (v2.55.1-0 -> v2.55.1-1) 2025-02-22 21:04:23 +02:00
0750e70972 Upgrade traefik-certs-dumper (v2.8.3-5 -> v2.8.3-6) 2025-02-22 21:00:18 +02:00
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
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
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
b6db2eaf15 Upgrade Grafana (v11.5.1-0 -> v11.5.2-0) 2025-02-22 10:31:14 +02:00
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
b21a0b367d Upgrade container-socket-proxy (v0.3.0-1 -> v0.3.0-2) 2025-02-22 10:08:37 +02:00
804b9007ec Upgrade Traefik (v3.3.3-0 -> v3.3.3-2) 2025-02-22 10:01:00 +02:00
30997ee2ff Upgrade container-socket-proxy (v0.3.0-0 -> v0.3.0-1) 2025-02-22 09:55:03 +02:00
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
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
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
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
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
135196ae0d Upgrade Postgres (v17.2-1 ->v17.2-2) 2025-02-22 01:58:32 +02:00
564f9a519c Update dependency Sphinx to v8.2.1 2025-02-21 23:47:02 +00:00
153c8765e3 Upgrade Postgres (v17.2-0 -> v17.2-1) 2025-02-22 01:46:22 +02:00
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
44f1fcf10e fix borgbackup role 2025-02-21 23:10:34 +02:00
72280bbbb2 Add a matrix_synapse_url_preview_ip_range_whitelist variable 2025-02-21 23:05:14 +02:00
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
d9eabc49e6 Add a matrix_synapse_url_preview_ip_range_blacklist variable 2025-02-21 22:21:06 +02:00
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
1e7d5293d4 Update ghcr.io/etkecc/fluffychat-web Docker tag to v1.25.1 2025-02-21 18:54:47 +00:00
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
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
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
74177d9ba3 Document the state of the ip6tables and experimental daemon options for Docker 2025-02-21 16:37:41 +02:00
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
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
104f1b7838 Add documentation for mautrix-bluesky. 2025-02-21 10:08:43 +02:00
ff986b7512 Add mautrix-bluesky to the playbook. 2025-02-21 10:08:43 +02:00
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
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
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
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
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
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
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
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
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
2f8489fce0 FluffyChat v1.25.0 2025-02-20 18:21:12 +02:00
c80fb913e7 borg backup: do not backup remote content by default 2025-02-20 15:48:19 +02:00
2db103a4eb Upgrade matrix-authentication-service (0.14.0 -> 0.14.1) 2025-02-20 10:41:27 +02:00
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
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
101b55ee7a Merge pull request #4081 from luixxiul/fix
Update docs/configuring-playbook-email.md
2025-02-19 22:01:53 +02:00
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
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
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
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
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
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
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
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
a56b49da03 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.2.19 2025-02-19 06:20:40 +00:00
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
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
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
53a55cdc4c Update dependency Sphinx to v8.2.0 2025-02-18 20:25:56 +00:00
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
2bca5cb445 Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.14.0 2025-02-18 20:01:35 +00:00
4e981ed36c Mark matrix-reminder-bot's usage with matrix-authentication-service as fixed
Fixup for f798ec81e8.
2025-02-18 21:04:09 +02:00
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
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
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
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
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
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
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
9dc9646fe7 Honoroit v0.9.27 2025-02-18 10:41:20 +02:00
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
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
4b390bb50a fix jitsi role 2025-02-17 18:05:35 +02:00
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
cc0811492b Add links to installing.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 00:33:01 +09:00
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
a8c6682333 Apply suggestions from code review
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-02-18 00:24:16 +09:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
6647e08e6e fix etherpad 2025-02-17 15:08:00 +02:00
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
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
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
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
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
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
245192ff7f Update ajbura/cinny Docker tag to v4.3.2 2025-02-17 02:56:08 +00:00
9c52331da6 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.0 2025-02-16 22:27:19 +00:00
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
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
4a0855db0a Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.11.3 2025-02-16 18:37:02 +00:00
a0ae269051 Update dock.mau.dev/mautrix/meta Docker tag to v0.4.4 2025-02-16 18:36:59 +00:00
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
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
afb97e18ac Make matrix-coturn role respect devture_systemd_docker_base_ipv6_enabled 2025-02-16 12:01:11 +02:00
54bd6f172a Merge pull request #4066 from luixxiul/fix
Make docs/configuring-playbook-etherpad.md slim
2025-02-15 10:12:12 +02:00
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
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
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
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
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
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
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
5c874f036d Upgrade Etherpad (v2.2.6-0 -> v2.2.7-0) 2025-02-14 09:59:22 +02:00
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
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
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
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
c27fb2a832 Fix capitalization: postgres → Postgres
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-13 14:00:41 +09:00
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
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
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
3620870173 Update dependency myst-parser to v4.0.1 2025-02-12 15:51:55 +00:00
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
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
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
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
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
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
44de5d91f1 Update ghcr.io/matrix-org/rageshake Docker tag to v1.14.0 2025-02-11 15:38:53 +00:00
1044 changed files with 10817 additions and 1819 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

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

@ -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,3 +1,127 @@
# 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
@ -240,7 +364,7 @@ If you'd like to switch back to the original synapse-admin software, you can do
```yaml
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}"
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_container_global_registry_prefix }}"
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else 'docker.io/' }}"
matrix_synapse_admin_version: 0.10.3
@ -690,7 +814,7 @@ If you were using these values as a way to stay away from Traefik, you now have
Now that `matrix-nginx-proxy` is not in the mix, it became easier to clear out some other long-overdue technical debt.
Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network.
Since the very beginning of this playbook, all playbook services were connected to a single (shared) `matrix` container network. Later on, some additional container networks appeared, but most services (database, etc.) still remained in the `matrix` container network. This meant that any random container in this network could try to talk (or attack) the Postgres database operating in the same `matrix` network.
Moving components (especially the database) into other container networks was difficult — it required changes to many other components to ensure correct connectivity.
@ -2144,7 +2268,7 @@ matrix_coturn_tls_v1_1_enabled: true
Thanks to [foxcris](https://github.com/foxcris), the playbook can now make automated local Postgres backups on a fixed schedule using [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local).
Additional details are available in [Setting up postgres backup](docs/configuring-playbook-postgres-backup.md).
Additional details are available in [Setting up Postgres backup](docs/configuring-playbook-postgres-backup.md).
# 2021-04-03
@ -2702,12 +2826,12 @@ Until the issue gets fixed, we're making User Directory search not go to ma1sd b
## Newer IRC bridge (with potential breaking change)
This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream
made a change to how you define manual mappings. If you added a
This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream
made a change to how you define manual mappings. If you added a
`mapping` to your configuration, you will need to update it accoring
to the [upstream
instructions](https://github.com/matrix-org/matrix-appservice-irc/blob/master/CHANGELOG.md#0150-2020-02-05). If you did not include `mappings` in your configuration for IRC, no
change is necessary. `mappings` is not part of the default
change is necessary. `mappings` is not part of the default
configuration.

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
@ -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
@ -91,7 +92,7 @@ Extend and modify how users are authenticated on your homeserver.
| [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) | ❌ | 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) (UVS) | ❌ | Service to verify details of a user based on an Open ID token | [Link](docs/configuring-playbook-user-verification-service.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
@ -116,6 +117,7 @@ Bridges can be used to connect your Matrix installation with third-party communi
| [mautrix-gmessages](https://github.com/mautrix/gmessages) | ❌ | Bridge to [Google Messages](https://messages.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gmessages.md) |
| [mautrix-whatsapp](https://github.com/mautrix/whatsapp) | ❌ | Bridge to [WhatsApp](https://www.whatsapp.com/) | [Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md) |
| [mautrix-wsproxy](https://github.com/mautrix/wsproxy) | ❌ | Bridge to Android SMS or Apple iMessage | [Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md) |
| [mautrix-bluesky](https://github.com/mautrix/bluesky) | ❌ | Bridge to [Bluesky](https://bsky.social/) | [Link](docs/configuring-playbook-bridge-mautrix-bluesky.md) |
| [mautrix-twitter](https://github.com/mautrix/twitter) | ❌ | Bridge to [Twitter](https://twitter.com/) | [Link](docs/configuring-playbook-bridge-mautrix-twitter.md) |
| [mautrix-googlechat](https://github.com/mautrix/googlechat) | ❌ | Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat) | [Link](docs/configuring-playbook-bridge-mautrix-googlechat.md) |
| [mautrix-meta](https://github.com/mautrix/instagram) | ❌ | Bridge to [Messenger](https://messenger.com/) and [Instagram](https://instagram.com/) | Link for [Messenger](docs/configuring-playbook-bridge-mautrix-meta-messenger.md) / [Instagram](docs/configuring-playbook-bridge-mautrix-meta-instagram.md) |

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.

View File

@ -1,6 +1,11 @@
[defaults]
vault_password_file = gpg/open_vault.sh
retry_files_enabled = False
stdout_callback = yaml
inventory = inventory/hosts
[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.

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)
@ -82,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,7 +38,7 @@ 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:
@ -49,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-2
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-2
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:
@ -100,7 +113,7 @@ To authenticate at your server using a password, you need to add a package. So,
apk add sshpass
```
Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command.
Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command.
#### Resolve directory ownership issues

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.
@ -8,12 +25,15 @@ 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` |
| CNAME | `element` | - | - | - | `matrix.example.com` |
| Type | Host | Priority | Weight | Port | Target |
| ----- | --------- | -------- | ------ | ---- | ---------------------|
| A | `matrix` | - | - | - | `matrix-server-IPv4` |
| AAAA | `matrix` | - | - | - | `matrix-server-IPv6` |
| CNAME | `element` | - | - | - | `matrix.example.com` |
As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IP address (DNS `A` record or `CNAME` record is fine).
As the table illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your server's IPv4/IPv6 address.
If you don't have IPv6 connectivity yet, you can skip the `AAAA` record. For more details about IPv6, see the [Configuring IPv6](./configuring-ipv6.md) documentation page.
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.
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.

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.

View File

@ -1,8 +1,8 @@
<!--
SPDX-FileCopyrightText: 2022 - 2025 Nikita Chernyi
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 MDAD project contributors
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
@ -14,148 +14,6 @@ The playbook can install and configure [BorgBackup](https://www.borgbackup.org/)
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
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 by default.
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 schedule (optional)
By default the task 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.
## Usage
After installation, `backup-borg` will run automatically every day at `04:00:00` (as defined in `backup_borg_schedule` by default).
### Manually start the task
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 it 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.
## 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 backup-borg`.
The Ansible role for BorgBackup is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg). 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">

View File

@ -1,3 +1,11 @@
<!--
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.

View File

@ -1,6 +1,14 @@
<!--
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

View File

@ -1,3 +1,12 @@
<!--
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.

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

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.

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.

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.

View File

@ -1,3 +1,11 @@
<!--
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.

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.

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.

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>

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.

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>

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>

View File

@ -1,4 +1,14 @@
# 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
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Hangouts bridging (optional, removed)
🪦 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.

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.

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>

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>

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>

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>

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>

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>

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>

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>

View File

@ -1,6 +1,15 @@
<!--
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.
**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook.
- For using as a Bot we recommend the [Appservice Discord](configuring-playbook-bridge-appservice-discord.md), because it supports plumbing.
- For personal use with a discord account we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook.

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,3 +1,11 @@
<!--
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.

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,3 +1,12 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2023 Luke D Iremadze
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
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.

View File

@ -1,3 +1,10 @@
<!--
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/).

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.

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.

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.

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.

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.

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.

View File

@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 Suguru Hirahara
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.

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.

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

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.

View File

@ -1,61 +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 is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay). For details about configuring exim-relay, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md) online
- 📁 `roles/galaxy/exim_relay/docs/configuring-exim-relay.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)
## Firewall settings
No matter whether you send email directly (the default) or you relay email through another host (see how below), you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration).
No matter whether you send email directly (the default) or you relay email through another host, you'll probably need to allow outgoing traffic for TCP ports 25/587 (depending on configuration).
Docker automatically opens these ports in the server's firewall, so you likely don't need to do anything. If you use another firewall in front of the server, you may need to adjust it.
## Adjusting the playbook configuration
### Relaying email through another SMTP server
### Enable DKIM authentication to improve deliverability (optional)
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):
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: "PASSWORD_FOR_THE_RELAY_HERE"
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.
### 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/). Its free tier allows for up to 100 emails per day to be sent.
## Installing
To set it up, add the following configuration to your `vars.yml` file (adapt to your needs):
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
```yaml
exim_relay_sender_address: "example@example.org"
exim_relay_relay_use: true
exim_relay_relay_host_name: "smtp.sendgrid.net"
exim_relay_relay_host_port: 587
exim_relay_relay_auth: true
# This needs to be literally the string "apikey". It is always the same for Sendgrid.
exim_relay_relay_auth_username: "apikey"
# You can generate the API key password at this URL: https://app.sendgrid.com/settings/api_keys
# The password looks something like `SG.955oW1mLSfwds7i9Yd6IA5Q.q8GTaB8q9kGDzasegdG6u95fQ-6zkdwrPP8bOeuI`.
exim_relay_relay_auth_password: "YOUR_API_KEY_PASSWORD_HERE"
<!-- 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.
To do so, log in to the server with SSH and run `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,138 +1,26 @@
# Setting up Email2Matrix (optional, deprecated)
<!--
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**: this component has been deprecated. We recommend not bothering with installing it. While not a 1:1 replacement, the author suggests taking a look at [Postmoogle](https://github.com/etkecc/postmoogle) as a replacement, which can also be installed using [this playbook](configuring-playbook-bridge-postmoogle.md). Consider using that component instead of this one.
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
```
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).
### Extending the configuration
There are some additional things you may wish to configure about the component.
Take a look at:
- `roles/custom/matrix-email2matrix/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:
<!-- 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.
## 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-email2matrix`.
### 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_email2matrix_misc_debug: true
systemctl disable --now matrix-email2matrix.service
rm -rf /matrix/email2matrix
```

View File

@ -1,10 +1,26 @@
<!--
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 is developed and maintained by the [MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad). 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 +33,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 +79,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,21 +96,13 @@ 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
@ -108,16 +112,4 @@ To integrate a standalone Etherpad in a room, create your pad by visiting `https
## 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-etherpad`.
### 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
etherpad_configuration_extension_json: |
{
"loglevel": "DEBUG",
}
```
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,3 +1,10 @@
<!--
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.

View File

@ -1,3 +1,11 @@
<!--
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.

View File

@ -1,19 +1,34 @@
<!--
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.
**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 is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi). 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,125 +41,42 @@ 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
@ -153,67 +85,6 @@ 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).
### Extending the configuration
There are some additional things you may wish to configure about the component.
Take a look at:
- [Jitsi role](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/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 these variables:
- `jitsi_web_custom_interface_config_extension`: custom configuration to be appended to `interface_config.js`, passed to Jitsi Web
- `jitsi_web_custom_config_extension`: custom configuration to be injected into `custom-config.js`, passed to Jitsi Web
- `jitsi_jvb_custom_config_extension`: custom configuration to be injected into `custom-sip-communicator.properties`, passed to Jitsi JVB
### 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)
```
## 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:
@ -233,176 +104,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
As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running the commands below:
- `journalctl -fu matrix-jitsi-web`
- `journalctl -fu matrix-jitsi-prosody`
- `journalctl -fu matrix-jitsi-jicofo`
- `journalctl -fu matrix-jitsi-jvb`
### `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

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

View File

@ -1,6 +1,20 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 - 2020 MDAD project contributors
SPDX-FileCopyrightText: 2019 Noah Fleischmann
SPDX-FileCopyrightText: 2020 Justin Croonenberghs
SPDX-FileCopyrightText: 2020 Marcel Partap
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up ma1sd Identity Server (optional)
**Note**: ma1sd itself has also been unmaintained for years (the latest commit and release being from 2021). The role of identity servers in the Matrix specification also has an uncertain future. **We recommend not bothering with installing it unless it's the only way you can do what you need to do**. For example, certain things like LDAP integration can also be implemented via [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md).
> [!WARNING]
> Since ma1sd has been unmaintained for years (the latest commit and release being from 2021) and the future of identity server's role in the Matrix specification is uncertain, **we recommend not bothering with installing it unless it's the only way you can do what you need to do**.
>
> Please note that certain things can be achieved with other components. For example, if you wish to implement LDAP integration, you might as well check out [the LDAP provider module for Synapse](./configuring-playbook-ldap-auth.md) instead.
The playbook can configure the [ma1sd](https://github.com/ma1uta/ma1sd) Identity Server for you. It is a fork of [mxisd](https://github.com/kamax-io/mxisd) which was pronounced end of life 2019-06-21.

View File

@ -1,3 +1,10 @@
<!--
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Matrix Authentication Service (optional)
The playbook can install and configure [Matrix Authentication Service](https://github.com/element-hq/matrix-authentication-service/) (MAS) — a service operating alongside your existing [Synapse](./configuring-playbook-synapse.md) homeserver and providing [better authentication, session management and permissions in Matrix](https://matrix.org/blog/2023/09/better-auth/).
@ -52,9 +59,6 @@ This section details what you can expect when switching to the Matrix Authentica
> cannot initialize matrix bot error="olm account is marked as shared, keys seem to have disappeared from the server"
- [matrix-reminder-bot](./configuring-playbook-bot-matrix-reminder-bot.md) fails to start (see [element-hq/matrix-authentication-service#3439](https://github.com/element-hq/matrix-authentication-service/issues/3439))
- Other services may be similarly affected. This list is not exhaustive.
-**Encrypted appservices** do not work yet (related to [MSC4190](https://github.com/matrix-org/matrix-spec-proposals/pull/4190) and [PR 17705 for Synapse](https://github.com/element-hq/synapse/pull/17705)), so all bridges/bots that rely on encryption will fail to start (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3658) for Hookshot). You can use these bridges/bots only if you **keep end-to-bridge encryption disabled** (which is the default setting).
- ⚠️ [Migrating an existing Synapse homeserver to Matrix Authentication Service](#migrating-an-existing-synapse-homeserver-to-matrix-authentication-service) is **possible**, but requires **some playbook-assisted manual work**. Migration is **reversible with no or minor issues if done quickly enough**, but as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break.
@ -242,7 +246,7 @@ matrix_authentication_service_config_upstream_oauth2_providers:
#action: force
#template: "{% raw %}{{ user.preferred_username }}{% endraw %}"
# The display name is the user's display name.
displayname:
#displayname:
#action: suggest
#template: "{% raw %}{{ user.name }}{% endraw %}"
# An email address to import.

View File

@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2018 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 MDAD project contributors
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Matrix Corporal (optional, advanced)
> [!WARNING]

View File

@ -1,3 +1,11 @@
<!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up matrix-ldap-registration-proxy (optional)
The playbook can install and configure [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) for you.

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