317 Commits

Author SHA1 Message Date
feef6db8c7 meta: move inventory structure to be more usable 2025-06-22 12:28:34 +02:00
3c6eff7d60 meta: add own inventory, add vault-unlock with GPG 2025-06-21 14:45:24 +02:00
185f9b5765 Update ghcr.io/etkecc/fluffychat-web Docker tag to v2 2025-06-21 05:17:02 +03:00
9289859673 Update dependency urllib3 to v2.5.0 2025-06-19 05:48:36 +03:00
279de764c8 Update Prerequisites to mention why sudo is required in all cases 2025-06-18 08:08:03 +03:00
cb2586f8b4 Upgrade Traefik (v3.4.1-0 -> v3.4.1-1) 2025-06-18 06:58:43 +03:00
b046292c10 Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.17.1 2025-06-17 22:57:26 +03:00
8f0ac84721 Update ghcr.io/element-hq/element-web Docker tag to v1.11.104 2025-06-17 22:49:37 +03:00
aada2d255f Upgrade Synapse (v1.131.0 -> v1.132.0) 2025-06-17 19:02:43 +03:00
3b425908da Update dependency grafana to v11.6.3-0 2025-06-17 15:42:54 +03:00
3092037a7e Update dock.mau.dev/mautrix/meta Docker tag to v0.5.1 2025-06-17 00:12:23 +03:00
048b8eb918 Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.12.2 2025-06-17 00:12:06 +03:00
779eb0fc9a Update dock.mau.dev/mautrix/twitter Docker tag to v0.4.2 2025-06-17 00:11:51 +03:00
6a1ebe6e91 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.4 2025-06-16 23:12:35 +03:00
30875764c5 Update dock.mau.dev/mautrix/gmessages Docker tag to v0.6.3 2025-06-16 23:12:17 +03:00
15ed07d970 Update mautrix-discord, add support for msc4190 2025-06-16 22:59:55 +03:00
13d22af9db Update dependency certifi to v2025.6.15 2025-06-15 07:56:39 +03:00
5742800329 Fix looking up docker package error with Renovate
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-12 18:24:45 +09:00
3508c87aee Update dependency valkey to v8.1.2-0 2025-06-12 10:34:03 +03:00
868ee4d688 Synapse Admin v0.11.1-etke44 2025-06-11 15:16:04 +03:00
eb9af8fe32 SchildiChat v1.11.103-sc.0.test.0 2025-06-11 10:26:59 +03:00
27c0fa55f4 Update ajbura/cinny Docker tag to v4.8.1 2025-06-10 23:23:04 +03:00
e76b50a0b7 Upgrade baibot (v1.7.3 -> v1.7.4) 2025-06-10 16:40:02 +03:00
db8bee548d Update OpenAI model in sample baibot config (gpt-4o -> gpt-4.1)
Related to 69d6111354
2025-06-10 15:36:14 +03:00
adef970239 Upgrade baibot (v1.7.2 -> v1.7.3) 2025-06-10 15:35:07 +03:00
20e98fbb33 Update ghcr.io/element-hq/element-web Docker tag to v1.11.103 2025-06-10 15:31:43 +03:00
5dcdf8e9e2 Update default room version to 11 in line with the specification. 2025-06-10 15:31:03 +03:00
7aca61c5dd Update dependency requests to v2.32.4 [SECURITY] 2025-06-10 15:30:28 +03:00
5def3b176f make hookshot honor the matrix_bridges_encryption_enabled var 2025-06-07 13:22:27 +03:00
01c8b55c6f FluffyChat v1.27.0 2025-06-06 14:46:01 +03:00
9b8dab89df Update ghcr.io/element-hq/element-call Docker tag to v0.12.2 2025-06-06 08:26:08 +03:00
5701ce5054 Upgrade Jitsi (v10184-0 → v10314-0) 2025-06-06 08:15:09 +03:00
cabedeae73 Update dependency livekit_server to v1.9.0-0 2025-06-05 14:32:58 +03:00
3edad9d8d4 Update joseluisq/static-web-server Docker tag to v2.37.0 2025-06-04 07:51:29 +03:00
2935d6a1a4 Merge pull request #4353 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
Update ghcr.io/element-hq/synapse Docker tag to v1.131.0
2025-06-03 19:51:03 +00:00
0941953889 Merge pull request #4354 from spantaleev/renovate/ghcr.io-element-hq-element-web-1.x
Update ghcr.io/element-hq/element-web Docker tag to v1.11.102
2025-06-03 19:49:50 +00:00
f9f5182919 Update ghcr.io/element-hq/element-web Docker tag to v1.11.102 2025-06-03 18:45:33 +00:00
25c20f16d4 Update ghcr.io/element-hq/synapse Docker tag to v1.131.0 2025-06-03 15:16:17 +00:00
95f6347974 Revert "register" to "registr"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
c9dfb1c877 Replace "proxies" with "proxy's"
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
3653f9f89b Run codespell --write-changes
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
0152758f5d Replace PostgresSQL with PostgreSQL
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
05caaab302 Replace preffix with prefix
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
17e14a4b89 Enable pre-commit
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-03 10:36:00 +03:00
cb7db82fe9 Update dependency prometheus to v3.4.1-0 2025-06-01 10:40:17 +03:00
f4e13a380d Update configuring-playbook-s3.md: Storj introducing minimum charge
See: https://storj.dev/dcs/pricing#minimum-monthly-billing

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-05-31 17:52:43 +09:00
312b4826f0 Update matrixconduit/matrix-conduit Docker tag to v0.10.4 2025-05-31 00:07:41 +03:00
a2ddbb8169 Update Draupnir config template to v2.3.1 template
Also removes the FIX ME for Polling as well it being broken in the playbook is no longer true.
2025-05-30 13:02:25 +03:00
2c9aa1af9c Update gnuxie/draupnir Docker tag to v2.3.1 2025-05-30 00:19:40 +03:00
1dc404dc5f Update gnuxie/draupnir Docker tag to v2.3.0 2025-05-29 22:34:47 +03:00
2087c13a4e Update ghcr.io/element-hq/element-call Docker tag to v0.12.0 2025-05-28 17:06:43 +03:00
1c335da420 Update dependency traefik to v3.4.1-0 2025-05-27 23:24:41 +03:00
3ef1726a40 Update dependency setuptools to v80.9.0 2025-05-27 07:47:08 +03:00
d3172f0f32 Update ajbura/cinny Docker tag to v4.8.0 2025-05-24 23:40:52 +03:00
c97bb125c6 Update dependency grafana to v11.6.2-0 2025-05-23 10:29:12 +03:00
f36c776bc3 Add variables to control Continuwuity forbidden servers (#4339) 2025-05-22 10:56:25 +03:00
e16a644fa2 Update ajbura/cinny Docker tag to v4.7.1 2025-05-21 21:37:50 +03:00
777882b40f Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.5.21 2025-05-21 14:33:52 +03:00
8c9b95d68c Update dependency click to v8.2.1 2025-05-21 09:13:10 +03:00
429bbc1c7d Migrate config .github/renovate.json 2025-05-20 23:35:54 +03:00
5d0b0c98ae Update ghcr.io/element-hq/synapse Docker tag to v1.130.0 2025-05-20 23:35:33 +03:00
571b14eaf8 Update dependency setuptools to v80.8.0 2025-05-20 20:47:53 +03:00
d5d7adf4b5 Update ghcr.io/element-hq/element-web Docker tag to v1.11.101 2025-05-20 20:47:38 +03:00
3c08f008bc Update ghcr.io/element-hq/element-call Docker tag to v0.11.1 2025-05-19 15:42:30 +03:00
e818bbb373 Synapse Admin v0.10.4-etke41 2025-05-19 11:23:13 +03:00
0bd29b938a Update ajbura/cinny Docker tag to v4.7.0 2025-05-18 13:10:39 +03:00
a3c13c5786 Typo 2025-05-17 21:58:30 +03:00
b9121e7105 Update dependency prometheus to v3.4.0-1 2025-05-17 21:57:52 +03:00
978d24aa32 Upgrade Hookshot (6.0.3 -> 7.0.0) and remove provisioning API and integration with Dimension
Ref:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4326
- https://github.com/matrix-org/matrix-hookshot/releases/tag/7.0.0
- https://github.com/matrix-org/matrix-hookshot/pull/931

Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4326
2025-05-16 22:46:12 +03:00
1fdb3dd990 Update dependency maunium/synapse-http-antispam to v0.4.0 2025-05-16 19:07:34 +03:00
31effafc08 Update ghcr.io/element-hq/element-call Docker tag to v0.11.0 2025-05-16 19:06:57 +03:00
ecb7ccf8cc Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.12.1 2025-05-16 15:12:18 +03:00
14d4a58583 Update dock.mau.dev/mautrix/twitter Docker tag to v0.4.1 2025-05-16 15:12:07 +03:00
fa35c3802d Update dock.mau.dev/mautrix/signal Docker tag to v0.8.3 2025-05-16 09:10:04 +03:00
ef5be1d138 Update dock.mau.dev/mautrix/gmessages Docker tag to v0.6.2 2025-05-16 09:09:51 +03:00
37a35c039e Update dependency setuptools to v80.7.1 2025-05-15 08:40:44 +03:00
477bd98b15 Update dependency setuptools to v80.6.0 2025-05-15 08:36:51 +03:00
eb67e08d98 Update matrixconduit/matrix-conduit Docker tag to v0.10.3 2025-05-13 07:43:41 +03:00
757527bbd2 Update matrixdotorg/mjolnir Docker tag to v1.10.0 2025-05-13 07:43:12 +03:00
b3cd3910a9 Default matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_size to null
Ref: 91986a129c/CHANGELOG.md (2025-05-11-version-172)
2025-05-11 23:22:02 +03:00
89599d464a Upgrade baibot (v1.7.1 -> v1.7.2) 2025-05-11 23:21:52 +03:00
8e5de2dc31 Upgrade baibot (v1.7.0 -> v1.7.1) 2025-05-11 22:26:01 +03:00
0c8137220d Update matrixconduit/matrix-conduit Docker tag to v0.10.2 2025-05-11 18:47:21 +03:00
90dcdf5261 Update dependency click to v8.2.0 2025-05-11 07:35:49 +03:00
3cb67f23ee FluffyChat v1.26.1 2025-05-10 14:21:02 +03:00
09ae8750d8 Default OpenAI provider for baibot to use gpt-image-1 instead of dall-e-3
Ref:

- d2660be33c/CHANGELOG.md (2025-05-10-version-170)
- https://openai.com/index/image-generation-api/
2025-05-10 12:33:08 +03:00
34b2dd3dd0 Upgrade baibot (v1.6.0 -> v1.7.0)
Ref: d2660be33c/CHANGELOG.md (2025-05-10-version-170)
2025-05-10 12:31:25 +03:00
9adc5be572 Add atrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_quality 2025-05-10 12:29:02 +03:00
15e453039c Update dependency setuptools to v80.4.0 2025-05-10 07:24:27 +03:00
7afaba64f0 Synapse Admin v0.10.4-etke40 2025-05-09 23:39:14 +03:00
96f4670887 Update dependency snowballstemmer to v3.0.1 2025-05-09 22:32:05 +03:00
3d25bd70f8 Update matrixconduit/matrix-conduit Docker tag to v0.10.1 2025-05-09 22:31:54 +03:00
1fa2a2a615 Update matrixconduit/matrix-conduit Docker tag to v0.10.0 2025-05-09 17:42:34 +03:00
94d5182f4d Update dependency snowballstemmer to v3.0.0.1 2025-05-08 19:46:04 +03:00
14be193d20 Update dependency snowballstemmer to v3 2025-05-08 12:41:41 +03:00
4e0f031ebd Fix Synapse-HTTP-Antispam configuration error in Draupnir 2025-05-08 12:39:30 +03:00
360ee544a9 Make indentation level in roles/custom/matrix-bot-draupnir/defaults/main.yml consistent 2025-05-08 10:06:17 +03:00
465df3a949 Add support for synapse-http-antispam and integrate it with Draupnir
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4284
2025-05-08 10:03:53 +03:00
ae87a3bb19 Fix port label to reflect proper protocol 2025-05-07 18:10:32 +03:00
19ccd491fb Upgrade Matrix Authentication Service (v0.15.0 -> v0.16.0) and adapt for the new syn2mas subcommand
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4297

Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4300
2025-05-07 17:39:34 +03:00
95ef383ef7 Add matrix_synapse_cas_config_enabled variable to make cas_confg non-null
This works around an issue with Matrix Authentication Service's `syn2mas` sub-command (at version v0.16.0),
which chokes with an error:

> Error: Failed to load Synapse configuration
> Caused by:
> invalid type: found unit, expected struct EnableableSection for key "default.cas_config" in homeserver.yaml YAML file

This issue is likely to be fixed in MAS v0.16.1 or v0.17.0.
2025-05-07 16:37:41 +03:00
43cb86ac8a Upgrade Traefik (v3.3.6-1 -> v3.4.0-0) 2025-05-07 09:03:08 +03:00
d1329edf71 Update ghcr.io/element-hq/synapse Docker tag to v1.129.0 2025-05-07 08:55:47 +03:00
025909e05b Update ghcr.io/element-hq/element-web Docker tag to v1.11.100 2025-05-06 19:36:41 +03:00
9f83f52ea9 Update dock.mau.dev/maubot/maubot Docker tag to v0.5.2 2025-05-06 07:25:31 +03:00
0b4b21660c Update dependency setuptools to v80.3.1 2025-05-05 07:55:07 +03:00
381b987e99 Update dependency setuptools to v80.3.0 2025-05-03 13:33:33 +03:00
026f4b3282 Update dependency setuptools to v80.2.0 2025-05-03 08:42:23 +03:00
4599fd7159 Upgrade Prometheus (v3.3.0-0 -> v3.3.1-0) 2025-05-03 08:41:01 +03:00
47ca615931 Update dependency charset-normalizer to v3.4.2 2025-05-02 16:52:25 +03:00
99221c35d8 Upgrade Grafana (v11.6.1-1 -> v11.6.1-2) 2025-05-01 21:36:05 +03:00
cfc02b542d fix container image registry prefix for element call, livekit server, and livekit jwt service 2025-05-01 17:19:36 +03:00
9a1f7165c2 fix grafana version var 2025-05-01 17:10:12 +03:00
f6725a9bfe Upgrade Grafana (v11.6.0-security-01-0 -> v11.6.1-0) 2025-05-01 14:32:10 +03:00
882b528c96 prometheus_node_exporter_docker_image_registry_prefix_upstream* -> prometheus_node_exporter_container_image_registry_prefix_upstream* 2025-05-01 10:30:05 +03:00
ae58880f0c Upgrade prometheus-node-exporter (v1.9.1-1 -> v1.9.1-3) 2025-05-01 10:04:41 +03:00
a638565580 Upgrade Prometheus (v2.55.1-3 -> v3.3.0-0) 2025-05-01 09:58:45 +03:00
0a6be12878 Update dependency setuptools to v80.1.0 2025-05-01 08:02:58 +03:00
20133def86 Indicate that responsibility for system updates is out-of-scope for this playbook 2025-04-30 09:50:38 +03:00
03672a3a52 fix http-404 for element web with tmpfs
refers to commit
  e65d19884 Run Element Web in tightened/read-only mode without a custom nginx config

and issue
  https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4199
2025-04-30 08:52:09 +03:00
63c2e831a8 Update dependency setuptools to v80.0.1 2025-04-30 08:50:43 +03:00
0a6490ad46 Upgrade prometheus-postgres-exporter (v0.17.1-0 -> v0.17.1-1) 2025-04-30 08:46:53 +03:00
7fb0bff47d Upgrade prometheus-postgres-exporter (v0.14.0-9 -> v0.17.1-0) and adapt variables 2025-04-29 22:27:29 +03:00
37a7af52ab Upgrade prometheus-node-exporter (v1.9.1-0 -> v1.9.1-1) 2025-04-29 15:13:33 +03:00
32ca5bf55c Add warning about Reminder bot issues on Matrix Authentication Service docs page 2025-04-29 11:01:43 +03:00
81b371e690 Remove outdated warning about Postmoogle not working well with Matrix Authentication Service
This probably got fixed with Matrix Authentication Service 0.15.0 though
I'm not sure exactly which commit did it.

Ref: https://github.com/element-hq/matrix-authentication-service/releases/tag/v0.15.0
2025-04-29 10:53:31 +03:00
51e961ce9f Add matrix_user_shell and default it to /sbin/nologin
This is a backward-incompatible change. By default, Ansible creates
users with (e.g.) `/bin/sh` on Linux, so changing to a no shell
leads to different behavior.

That said, it appears that using a shell-less user works OK with regard
to Ansible execution and starting the systemd services/containers later on.
2025-04-29 10:39:41 +03:00
3ee7deb2d7 Rename variable (matrix_user_groupname -> matrix_group_name) 2025-04-29 10:39:41 +03:00
9fc5cdab33 Rename variable (matrix_user_username -> matrix_user_name) 2025-04-29 10:39:41 +03:00
a59383fcc7 Add matrix_group_system to configure whether the matrix group is also created as a system group
We create the `matrix` user as a system user (smaller uid), so it makes
sense to do the same for the `matrix` group.
2025-04-29 10:39:41 +03:00
14aef55573 Add matrix_user_system variable for controlling if matrix user is created as a system user
This defaults to `true`, as before.
2025-04-29 10:39:41 +03:00
ffde4fcb80 Fix README Matrix badge 2025-04-28 12:20:11 +03:00
71ce8f792d Upgrade Valkey (v8.0.1-3 -> v8.1.1-0) 2025-04-28 08:53:22 +03:00
9476be0592 Upgrade Traefik (v3.3.6-0 -> v3.3.6-1) 2025-04-28 08:20:45 +03:00
feaa656fde Update dependency setuptools to v80 2025-04-27 22:38:55 +03:00
186d3dbd71 fluffychat v1.26.0 2025-04-27 21:31:15 +03:00
bcd50c8e08 fix continuwuity docker envs 2025-04-26 13:37:23 +03:00
1c39a67c0a Fix Continuwuity migration tag (conduwuit-migrate-from-continuwuity -> continuwuity-migrate-from-conduwuit) 2025-04-26 10:25:51 +03:00
5ea613a3f6 migrate_from_conduwuit ownership fix (#4278)
* migration ownership fix

* lint fix

* lint fixes
2025-04-26 09:54:46 +03:00
f0c48392fe Announce Continuwuity 2025-04-26 09:37:14 +03:00
3e1bc3ce59 Rename Continuwuity migration tag (migrate-conduwuit -> conduwuit-migrate-from-continuwuity) to be less generic
This should allow roles for other forks (like Tuwunel) to use similar tags.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4267
2025-04-26 09:36:19 +03:00
46e587ee29 Mention Continuwuity on Conduwuit docs page
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4267
2025-04-26 09:33:52 +03:00
fd32960687 Fix Continuwuity capitalization and clarify migration-from-conduwuit guide
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4267
2025-04-26 09:33:52 +03:00
bd405c410a Add continuwuity support (#4267)
* continuwuity support

* continuwuity support

* use main instead of commit tag

* fix docker image link

* migration from conduwuit

* fix yaml lint

* backup directories and linter fixes

* linter fixes
2025-04-26 09:12:53 +03:00
6383b1b37a Update dependency certifi to v2025.4.26 2025-04-26 06:47:02 +03:00
41ac053912 Update ghcr.io/element-hq/element-call Docker tag to v0.10.0 2025-04-26 06:44:24 +03:00
98e4f369b7 Add receive_ephemeral everywhere de.sorunome.msc2409.push_ephemeral is used
Ref:

- 33f3ccd6ae/CHANGELOG.md (L134-L136)
- 7165d3fa58/appservice/registration.go (L30)

Intentionally not removing the old configuration setting yet, as some bridges may/do not support
the new setting name. It's likely just bridgev2 mautrix bridges that have been updated and support both right now.
2025-04-25 17:13:38 +03:00
dd2f8d1150 Relax mautrix-whatsapp regex in registration file to match what mautrix-whatsapp v0.12.0 expects
Since mautrix-whatsapp v0.12.0, the bridge deals with more than just phone numbers now,
so it sometimes tries to manage users with Matrix IDs like: `@whatsapp_lid-123456789:example.com`

Ref:

- https://github.com/mautrix/whatsapp/releases/tag/v0.12.0
- https://mau.fi/blog/2025-04-mautrix-release/
2025-04-25 17:04:20 +03:00
8a4eb88f0d fix yaml templating failing when bridge user displaynames contain emoji
Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2025-04-25 17:00:00 +03:00
74b8f78a7f Upgrade Traefik (v3.3.5-0 -> v3.3.6-0) 2025-04-24 18:11:17 +03:00
2b50a0e6a0 Update nginx Docker tag to v1.28.0 2025-04-24 09:23:13 +03:00
202be672a4 Update dependency setuptools to v79.0.1 2025-04-24 08:19:24 +03:00
57ea240060 Update ghcr.io/element-hq/matrix-authentication-service/syn2mas Docker tag to v0.15.0 2025-04-23 20:47:23 +03:00
b719c3c11a Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.15.0 2025-04-23 20:46:42 +03:00
909bf8729e Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.4.23 2025-04-23 14:28:53 +03:00
38c9f47bb0 Update ghcr.io/element-hq/element-web Docker tag to v1.11.99 2025-04-23 14:28:43 +03:00
69d6111354 Update default OpenAI model for text-generation for baibot (gpt-4o -> gpt-4.1)
Ref: https://openai.com/index/gpt-4-1/
2025-04-23 10:09:30 +03:00
80ac45e069 updated backup_borg (v1.4.0-1.9.13-1 -> v1.4.1-1.9.14-0); updated grafana (v11.6.0-0 -> v11.6.0-security-01-0); 2025-04-23 08:41:31 +03:00
efb3072bc8 Update ghcr.io/element-hq/element-web Docker tag to v1.11.98 2025-04-23 08:21:59 +03:00
5c120397ab Update dependency setuptools to v79 2025-04-20 21:29:54 +03:00
3f19344e9d Update dependency setuptools to v78.1.1 2025-04-20 07:53:00 +03:00
f32633826a Update dependency packaging to v25 2025-04-19 17:28:51 +03:00
85d82eb1e4 Rework Draupnir report interception to accommodate other Web API uses. (#4221) 2025-04-17 22:47:16 +03:00
5eb247b5bf Add matrix_bridges_msc4190_enabled flag for using msc4190 on supported mautrix bridges. flag for using msc4190 on supported mautrix bridges. (#4258)
* Add matrix_bridges_msc4190_enabled flag for using msc4190 on supported mautrix bridges.

* Apply to_json to msc4190 in mautrix configs

* Add | to_json to mautrix bridge registration io.element.msc4190.

* require matrix_synapse_experimental_features_msc3202_device_masquerading_enabled for matrix_bridges_msc4190_enabled

* Also add msc4190 support for mautrix-telegram
2025-04-17 22:08:25 +03:00
6915c7de12 Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.12.0 2025-04-17 08:42:27 +03:00
de10cb2239 Update dock.mau.dev/mautrix/twitter Docker tag to v0.4.0 2025-04-17 08:41:35 +03:00
d48867c07e Update nginx Docker tag to v1.27.5 2025-04-16 21:48:54 +03:00
ef156614ec Update dock.mau.dev/mautrix/slack Docker tag to v0.2.1 2025-04-16 21:48:31 +03:00
c4da60c4e4 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.2 2025-04-16 16:15:03 +03:00
0d30d315e3 Update dock.mau.dev/mautrix/meta Docker tag to v0.4.6 2025-04-16 16:09:22 +03:00
1317e5632a Update dock.mau.dev/mautrix/discord Docker tag to v0.7.3 2025-04-16 16:08:52 +03:00
6ed5db1464 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.4.16 2025-04-16 09:09:04 +03:00
b35289cae8 Update howto-srv-server-delegation.md
Fix single typo Rraefik --> Traefik
2025-04-16 00:01:07 +03:00
222f877261 Honoroit v0.9.28 2025-04-14 22:51:01 +03:00
00cb1e5c0c Synapse Admin v0.10.3-etke39 2025-04-14 18:12:25 +03:00
e02dd74e3a Upgrade baibot (v1.5.1 -> v1.6.0) 2025-04-12 08:10:54 +03:00
08b68e93dc Update hif1/heisenbridge Docker tag to v1.15.3 2025-04-12 07:04:42 +03:00
60b291f197 Upgrade Jitsi (v10169-0 -> v10184-0) 2025-04-11 13:24:54 +03:00
8378e6f164 Update dependency urllib3 to v2.4.0 2025-04-10 22:46:43 +03:00
40dd8f7785 Add a section on guest accounts and Element Call 2025-04-10 12:54:54 +03:00
761e6d4cd6 Add matrix_dendrite_guests_disabled 2025-04-10 12:52:44 +03:00
7cb33c5519 Add support for easily installing the Matrix RTC stack, without the Element Call frontend (#4242) 2025-04-09 16:49:18 +03:00
bf2f293323 Do not auto-enable Valkey when Element Call is enabled
Not sure why we were doing this.

LiveKit Server may utilize Valkey, but we don't configure it this way,
so there's no need to do it.
2025-04-09 13:11:57 +03:00
81d6a2adca Update ghcr.io/element-hq/synapse Docker tag to v1.128.0 2025-04-08 19:33:31 +03:00
dd1170aa6d Update ghcr.io/element-hq/element-web Docker tag to v1.11.97 2025-04-08 19:33:23 +03:00
724e83efee Upgrade Jitsi (v10133-1-0 -> v10169-0) 2025-04-08 19:29:47 +03:00
5194fcd2aa Remove comments before locking threads
Necro-posting and notifying all subscribers for the purpose of preventing necro-posting is somewhat ironic
2025-04-08 11:45:06 +03:00
f7d2151607 Add lock-threads.yml
The action will be used to lock issues and PRs to prevent necro-posting on closed ones which have not had any activity in the past year.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-04-07 16:23:36 +03:00
5b7d8f4d42 Migrate config .github/renovate.json 2025-04-07 15:42:00 +03:00
3a414eda66 Upgrade ntfy (v2.11.0-4 -> v2.11.0-5) 2025-04-06 22:20:00 +03:00
42f7b9391e Upgrade LiveKit Server (v1.8.4-4 -> v1.8.4-5) and integrate with matrix_metrics_exposure_*, etc.
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4233

This doesn't make Prometheus automatically scrape metrics from LiveKit Server,
nor does it add a Grafana dashboard automatically, etc.

Still, it paves the way for that work being done.
2025-04-06 22:16:06 +03:00
a313b45583 updated etherpad (v2.2.7-4 -> v2.3.0-0); 2025-04-06 20:37:21 +03:00
678b1fc3e0 Add note about LiveKit Server's TURN being unable to work over IPv6 2025-04-06 18:56:06 +03:00
59ca77b792 Upgrade LiveKit Server (v1.8.4-3 -> v1.8.4-4) 2025-04-06 18:52:06 +03:00
5972f4c81a Auto-enable TURN support for LiveKit Server 2025-04-06 16:11:23 +03:00
b14b932af3 Upgrade LiveKit Server (v1.8.4-2 -> v1.8.4-3) 2025-04-06 16:09:51 +03:00
7fe25ef0fc Split matrix_coturn_systemd_required_services_list into _default, _auto and _custom 2025-04-06 15:36:51 +03:00
0aeb9a6b14 Fixed some documentation links 2025-04-05 09:45:29 +03:00
fac2d9c8ab Update ghcr.io/element-hq/lk-jwt-service Docker tag to v0.2.3 2025-04-04 23:05:23 +03:00
6f609944c7 Add missing stop/rm ExecStartPre tasks for matrix-mautrix-googlechat.service.j2 2025-04-04 13:16:00 +03:00
9ac8f1f531 Fixed ddclient dst path 2025-04-04 10:14:40 +03:00
f2f9472c4a Improved dynamic DNS 2025-04-04 10:14:40 +03:00
057bd168f4 Update ghcr.io/element-hq/lk-jwt-service Docker tag to v0.2.2 2025-04-02 21:32:06 +03:00
24c09745ee updated prometheus_node_exporter (v1.8.2-5 -> v1.9.1-0); 2025-04-02 11:47:06 +03:00
8a251a98e7 Update joseluisq/static-web-server Docker tag to v2.36.1 2025-04-02 08:23:25 +03:00
6036c4840b Update dependency traefik to v3.3.5-0 2025-04-01 17:25:45 +03:00
4158fda09e fix grafana var in group vars 2025-04-01 12:07:04 +03:00
4270a84ae1 Upgrade Grafana (v11.5.2-2 -> v11.6.0-0) 2025-04-01 11:01:20 +03:00
86dabd5521 Update ajbura/cinny Docker tag to v4.6.0 2025-03-31 18:39:59 +03:00
39c4ad4697 Upgrade baibot (v1.5.0 -> v1.5.1) 2025-03-31 15:10:08 +03:00
55e04609e3 Use default upstream healthcheck command for Element Web
Now that https://github.com/element-hq/element-web/pull/29471
is part of v1.11.96, we don't need to carry around this custom workaround.
2025-03-31 13:34:26 +03:00
2842276f54 Upgrade backup-borg (v1.4.0-1.9.13-0 -> v1.4.0-1.9.13-1) 2025-03-30 10:58:58 +03:00
e8c9a0e410 Randomize matrix-synapse-auto-compressor.timer start with a RandomizedDelaySec (defaults to 6h) 2025-03-29 10:34:37 +02:00
e1a2d427c6 Use multi-stage Dockerfile for building customized Synape
This also reverts e5574a405e because:
- it was causing issues on some servers (not clear why)
- such workarounds are no longer necessary when doing multi-stage building.
2025-03-29 08:01:27 +02:00
e5574a405e Install libldap-2.5 explicitly when installing synapse-s3-storage-provider to satisfy its psycopg2 dependency 2025-03-29 06:42:28 +02:00
64b3aeb1e0 Update ghcr.io/element-hq/element-call Docker tag to v0.9.0 2025-03-28 21:52:44 +02:00
a66858771f Typo in configuring-playbook-own-webserver.md
"briges" -> "bridges"
2025-03-27 09:20:51 +02:00
922fe13f30 Update Synapse from v1.127.0 to v1.127.1
This is a security patch for Synapse that fixes an actively exploited bug.
2025-03-27 00:16:36 +02:00
9acab1add3 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.26 2025-03-26 10:59:13 +02:00
01760a3ef7 Add renovate to element-call 2025-03-26 10:56:37 +02:00
eb3ee1e7a2 Update element call to v0.8.0 2025-03-26 10:56:37 +02:00
b0c82e9302 Update dependency setuptools to v78.1.0 2025-03-26 06:29:12 +02:00
1f87f382ab Update ghcr.io/element-hq/element-web Docker tag to v1.11.96 2025-03-25 18:42:36 +02:00
df8043ec20 Upgrade Synapse (v1.126.0 -> v1.127.0) 2025-03-25 15:58:28 +02:00
dc933fcc51 Update dependency setuptools to v78.0.2 2025-03-25 08:28:17 +02:00
0db3460fff Update dependency setuptools to v78 2025-03-24 18:08:51 +02:00
fae7efce6e Upgrade Jitsi (v10133-0 -> v10133-1) (#4208) 2025-03-24 13:35:12 +02:00
0ef97f4d85 Update dependency docker to v7.4.7 2025-03-24 09:11:35 +02:00
76703fe916 Update ghcr.io/element-hq/lk-jwt-service Docker tag to v0.2.1 2025-03-21 14:32:56 +02:00
53fdf71d43 Fix missing argument
Fix missing "reverse_proxy" argument line 35
2025-03-20 21:49:21 +02:00
8fa6f26852 Update dependency setuptools to v77.0.3 2025-03-20 17:35:51 +02:00
c0db11e262 Update dependency jitsi to v10133 2025-03-20 12:34:50 +02:00
29d24e6e88 Adapt docs to new Traefik environment variables variable name
Related to:

- d96ce10d57
- https://github.com/mother-of-all-self-hosting/ansible-role-traefik/pull/6
- https://github.com/mother-of-all-self-hosting/ansible-role-traefik/issues/5
2025-03-20 08:58:31 +02:00
d96ce10d57 Upgrade Traefik (v3.3.4-0 -> v3.3.4-1) 2025-03-20 08:57:33 +02:00
0b448faf9d Update dependency setuptools to v77 2025-03-20 08:33:25 +02:00
d635f664b5 Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.2 2025-03-19 19:27:16 +02:00
2aefcf6639 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.19 2025-03-19 12:53:00 +02:00
1e44fd8046 Upgrade ansible-role-docker (7.4.5 -> 7.4.6) 2025-03-19 06:43:09 +02:00
3e3fe21184 Clarify required ansible prefix in comments if adding become_password to hosts file. 2025-03-18 18:29:59 +02:00
052d494919 Update hif1/heisenbridge Docker tag to v1.15.2 2025-03-18 18:05:23 +02:00
60aa88992a add a note about postgres upgrade 2025-03-18 11:49:08 +02:00
feb343337a Update dependency setuptools to v76.1.0 2025-03-18 08:00:08 +02:00
bf2e2dab5a Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.1 2025-03-18 07:46:33 +02:00
bdd184242c Use boolean values for matrix_user_verification_service_uvs_disable_ip_blacklist 2025-03-17 19:09:40 +02:00
a32eec757b Don't host /.well-known/element/element.json file when Element Call is enabled
Various old guides mention this, but it seems like neither Element Web,
nor Element Desktop make use of it.

Element Web & Element Desktop use their own `config.json` configuration to figure out where
Element Call is.
2025-03-17 17:09:56 +02:00
e3b4128278 Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.0 2025-03-17 14:58:53 +02:00
248463b58b Add Traefik labels to expose /.well-known/element on the matrix. domain
Some Element Call setup resources say that `/.well-known/element/element.json` should be served on the base domain
and should contain content like this:

```json
{
	"call": {
		"widget_url": "https://call.element.example.com"
	}
}
```

We were already generating the file via `matrix-static-files`, but weren't serving it yet.

This patch makes sure it's served on the `matrix.` domain, which allows
people to set up serving on the base domain via a redirect or reverse-proxying.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562
2025-03-17 07:51:04 +02:00
c9951194fe Fix merging of _auto and _custom into matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci so that a list is produced
`group_vars/matrix_servers` was correctly populating `matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto` with a list, but:

- the defaults for these variables were hinting that hashmaps are necessary

- merging of `_auto` and `_custom` was done as if for hashmaps, not lists

As a result, `/.well-known/matrix/client` looked like this:

```json
{
	"org.matrix.msc4143.rtc_foci": {
		"livekit_service_url": "https://matrix.example.com/livekit-jwt-service",
		"type": "livekit"
	}
}
```

.. instead of what's expected as per MSC4143 (https://github.com/matrix-org/matrix-spec-proposals/pull/4143):

```json
{
	"org.matrix.msc4143.rtc_foci": [
		{
			"livekit_service_url": "https://matrix.example.com/livekit-jwt-service",
			"type": "livekit"
		}
	]
}
```

Regardless of our incorrectly formatted `org.matrix.msc4143.rtc_foci`
configuration in `/.well-known/matrix/client`, Element Web still seemed
to be able to discover LiveKit JWT Service (and by extension, LiveKit Server) correctly,
even without this fix.
2025-03-17 07:38:36 +02:00
723f86dc9c Update dock.mau.dev/mautrix/twitter Docker tag to v0.3.0 2025-03-17 07:05:16 +02:00
96282f7587 Update dock.mau.dev/mautrix/slack Docker tag to v0.2.0 2025-03-17 07:05:03 +02:00
87d4d8b1c5 Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.11.4 2025-03-17 07:02:17 +02:00
6eae4fbc64 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.1 2025-03-17 07:02:00 +02:00
e98a236e8c Update dock.mau.dev/mautrix/meta Docker tag to v0.4.5 2025-03-17 07:01:48 +02:00
fb004dfc75 Update dock.mau.dev/mautrix/gmessages Docker tag to v0.6.1 2025-03-16 20:51:11 +02:00
388aa8a5aa Update dock.mau.dev/mautrix/bluesky Docker tag to v0.1.1 2025-03-16 20:50:29 +02:00
bf058d772b Fix rogue missing _client_synapse in internal admin api 2025-03-15 12:04:53 +02:00
0710298030 Update docs: remove descriptions about the ensure-matrix-users-created
Apparently ensure-matrix-users-created is relevant only for components registered to "matrix_user_creator_users_auto" on group_vars/matrix_servers.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-15 09:58:43 +02:00
43514542bd Add comments to ensure-matrix-users-created
This change intends to explain how ensure-matrix-users-created and ensure-users-created are expected to work by default.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-15 09:58:43 +02:00
a0573e5855 Fix undefined variable usage in Draupnir config (matrix_bot_draupnir_config_enableMakeRoomAdminCommand -> matrix_bot_draupnir_config_admin_enableMakeRoomAdminCommand)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3389
2025-03-15 09:29:16 +02:00
cd60cf1199 Internal Admin API and Draupnir Hjack Command Config (#3389)
* Enable Internal Admin API Access separately from Public access.

* Add Config variable for Draupnir Hijack command

And also make the internal admin API be automatically  activated when this capability is used.

* Apply suggestions from code review

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

* Further Refine Internal Admin API

* Add Non Worker Labels for Internal Admin API

* Variable Rename

* Add validation rules for Internal Synapse admin API

* Add Draupnir Admin API required config validation.

* Override `matrix_synapse_reverse_proxy_companion_container_labels_internal_client_synapse_admin_api_traefik_entrypoints` via group vars

* Wire `matrix_bot_draupnir_admin_api_enabled` to `matrix_bot_draupnir_config_admin_enableMakeRoomAdminCommand` in Draupnir's `defaults/main.yml`

* Remove unnecessary `matrix_bot_draupnir_admin_api_enabled` override from `group_vars/matrix_servers`

The same value is now (more appropriately) defined in Draupnir's `defaults/main.yml` file anyway.

* Add additional condition (`matrix_bot_draupnir_enabled`) for enabling `matrix_synapse_container_labels_internal_client_synapse_admin_api_enabled`

* Use a separate task for validating `matrix_bot_draupnir_admin_api_enabled` when `matrix_bot_draupnir_config_admin_enableMakeRoomAdminCommand`

The other task deals with checking for null and not-blank and can't handle booleans properly.

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-15 09:14:55 +02:00
b2e6ce5a7f Update docs for some mautrix bridges: minor rewording
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-15 16:13:08 +09:00
9970603f15 Add Element Call support
This is an initial implementaton that's hasn't been battle-tested much.

Our LiveKit Server setup by default doesn't enable TURN, so connectivity
for NAT-ed clients may be subpar.

Squashed commit of the following:

commit d5c24fcafe45588437e7a5b415e86a2ca48fdc46
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:31:48 2025 +0200

    Upgrade LiveKit Server (v1.8.4-1 -> v1.8.4-2)

commit 4d61cc571b98024a3af876524c008225d7028e66
Merge: 9c24064fb 9a231a815
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:19:05 2025 +0200

    Merge branch 'master' into element-call-integration

commit 9c24064fb606d34451ec2b16e8b934528e123cdd
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:14:49 2025 +0200

    Make Element Call fail during validation if on an unsupported architecture (like arm32)

commit a757b515fb22365928965f5fbd6ed5390c72077d
Merge: ba9cedbed 2a6b746ac
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:11:16 2025 +0200

    Merge branch 'master' into element-call-integration

commit ba9cedbedae75bbf65af18663555264ffc471db4
Merge: 4a638c2df f8f7ffc7d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:03:03 2025 +0200

    Merge branch 'master' into element-call-integration

commit 4a638c2df3535a375eeca0bd22bb5e07b0a59170
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:52:04 2025 +0200

    Prepare Element Call announcement text on the changelog

commit 155d5dad388a5026d61115b3af6c8a58560c6f28
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:49:49 2025 +0200

    Mention the compatible clients on Element Call docs, more cross-linking & consistency fixes

commit 6b8a3fc8913c108ef42a71eae0ee49b0062b0fde
Merge: 3ea1ea2f3 95dcaf6e2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:38:02 2025 +0200

    Merge branch 'master' into element-call-integration

commit 3ea1ea2f34eff32fc13f5f5e4f8e2e28cc296c24
Merge: d3913a015 60e2e035a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 22:29:14 2025 +0200

    Merge branch 'master' into element-call-integration

commit d3913a015ef7501d4843671a4293558a8d2afd21
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 20:04:18 2025 +0200

    Upgrade LiveKit Server (v1.8.4-0 -> v1.8.4-1)

commit ac7f96806d32665c7df2757b8c4ed8ac9ce5fc2b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:58:09 2025 +0200

    Relocate the livekit-server Ansible role to its own repository in the MASH organization

commit b8d800f6eff5dd48a387831277a9ad5dd0a9cd44
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:37:29 2025 +0200

    Add "Federation" as a prerequisite for Element Call (indirect, via LiveKit JWT Service)

    Ref:
    - https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2725250554
    - f5f5374c4b/main.go (L135-L146)

commit 2c1c49444a6729ff54b224955f2736cf791ab2ca
Merge: 6bc0185d5 8e883a555
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:32:48 2025 +0200

    Merge branch 'master' into element-call-integration

commit 6bc0185d506a446396a811cc01c1ea43759cf121
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Mar 13 09:43:22 2025 +0200

    Add Element Call, LiveKit Server and LiveKit JWT Service to `README.md`

    Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2720039742

commit a0470fe24879f2b2c0a827ccdcecd65a47af6895
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:12:30 2025 +0200

    Minor rewording in LiveKit Server docs

commit d4ceebc6a9c03278b7d81c5c1bd2a9a1df31f3bb
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:12:22 2025 +0200

    Add Element Call, LiveKit Server and LiveKit JWT Service to `docs/container-images.md`

commit 6a86de958f0d2cb37ec7adc1831e6845b9e2379b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:05:51 2025 +0200

    Apply suggestions from code review

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit d9df022d559c8b5d57e42c579fe4dac3ceb7bd86
Merge: 676f9dd9a 2f30886b1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 18:40:31 2025 +0200

    Merge branch 'master' into element-call-integration

commit 676f9dd9ad0de00a3a661c0b67157e7b4b2cea1f
Merge: 251561ff8 2be709e2c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 18:00:45 2025 +0200

    Merge branch 'master' into element-call-integration

commit 251561ff8169f347e11820d414adb17c19ea4b00
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:47:01 2025 +0200

    Simplify LiveKit Server role by removing unused/untested HTTP middleware variables

commit 1e60f41a59eb55cccb36bc9aa15e19cb4d26d2fa
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:44:00 2025 +0200

    Restore Element Call HTTP headers to more secure/privacy-respecting values

commit f8e84c4b2f19bcb067edf81792c80051dbaebfa1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:43:34 2025 +0200

    Remove useless `matrix_element_call_port` variable

commit 3f5e8f656b61535b76f30fdd105fd16351db8530
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:35:30 2025 +0200

    Switch default LiveKit server endpoint to one under the `matrix.` domain and polish-up docs

commit 72118f2f035508ca8a08a44521628d31ce935471
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 16:56:06 2025 +0200

    Fix LiveKitServer middlware name (`matrix-livekit-server-server-slashless-redirect` -> `matrix-livekit-server-slashless-redirect`)

commit 585377975b81d490d581820cc04c774216f1381e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 16:51:10 2025 +0200

    Adjust LiveKit Server ports and exposure

commit 22ef57944465c971a074de1d1f83bc18bdf187a7
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 15:44:31 2025 +0200

    Make livekit-jwt-service communicate with livekit-server via public URLs

    Communicating via container URLs works, but the URL provided to
    livekit-jwt-service as `LIVEKIT_URL` is also passed to the user later
    and it must be a public one at that point.

    It'd be great if livekit-jwt-service can be given 2 different URLs
    (e.g. `LIVEKIT_URL` and `LIVEKIT_URL_PUBLIC`) and only announce the
    public one to the user, but there's no support for this yet.

commit 32f8c6de6e405356d9862b45a2117a2a709e9649
Merge: 370feb740 79cc333be
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 15:27:42 2025 +0200

    Merge branch 'master' into element-call-integration

commit 370feb740f37e33f57507337ea835ab35d9b9e39
Merge: 9a11e5e1f a9ee537f8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 10:04:19 2025 +0200

    Merge branch 'master' into element-call-integration

commit 9a11e5e1fe602d4562b3f9b7f88f531c3d06e2ed
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:19:03 2025 +0200

    Auto-enable experimental Synapse features required by Element Call when Element Call is enabled

commit 8291b2f99d4e3fb91a0cba2349bcf2993cd26e52
Merge: 890f10f76 c5a03efdf
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:14:50 2025 +0200

    Merge branch 'master' into element-call-integration

commit 890f10f76511438ead08f8de178b1a3001de9a9f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:01:35 2025 +0200

    Make `matrix_livekit_jwt_service_public_url` respect `matrix_livekit_jwt_service_path_prefix`

commit 031cf68cbb0167cf89cfa5297c29bbe1866e29eb
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:59:50 2025 +0200

    Remove unused `matrix_element_call_metrics_*` variables

commit 5961841e52841015bb1ce065bd3bcb5c669cca36
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:59:05 2025 +0200

    Make matrix-livekit-jwt-service role not reference foreign variables (except the matrix-base ones)

commit 2be4923aef392fbac4e2c703201b76e895f64387
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:56:15 2025 +0200

    Make Element Call role not reference foreign variables (except the matrix-base ones)

commit 23efad9cb7808040a7a666c11997789164a1ac9d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:51:52 2025 +0200

    Rework Element Call config.json templating

commit 6b55ba29abb23085b9a93d9e591c2970764e5314
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:46:11 2025 +0200

    Make Element Call refuse a path prefix other than `/`

commit 0d1112638d8de9ea3edaf155160c999bfe0e8b76
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:05:42 2025 +0200

    Update LiveKit JWT service path prefix (`/lk-jwt-service` -> `/livekit-jwt-service`)

commit c3c2ba34b449616bb634427e6a746c62dfb9d91d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:02:29 2025 +0200

    Split `matrix_element_call_systemd_required_services_list` into `_default`, `_auto` and `_custom`

commit 0215708f79edfaa6d4a528f10847faaf243ca450
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:00:28 2025 +0200

    Remove some useless variables and rework environment variables variable for livekit-jwt-service

commit e1b57f3d450e2a55c23fe8558525842139d856ce
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:56:47 2025 +0200

    Pin livekit-jwt-service to released (v0.2.0) and adapt configuration

commit de2a8f11d2f85f48153d60b58cfd4b0b46d69bed
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:46:51 2025 +0200

    `_name_prefix` -> `_registry_prefix` changes for LiveKit roles

commit 2a69ca35be70fddca3d069d9512fa6e842659a1d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:42:40 2025 +0200

    Clean up Element Call group vars vs defaults/main.yml mixup and make some minor LiveKit updates

commit 72d64cfa6b4dd2a82cb208ed1116a2f9f34018dc
Merge: f161c7c58 5dfbefd64
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:03:53 2025 +0200

    Merge branch 'master' into element-call-integration

commit f161c7c58f86826dcd91ee59240abb3d2d62f5da
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:03:00 2025 +0200

    Add newlines at end of files

commit 6c6b44dc255918691e1f7c4490ed7c83998d6420
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:58:00 2025 +0200

    Add license information to Element Call and LiveKit roles

commit 8eb1c57e2b4388cf5658803bc12c9d45f209f6b9
Merge: 61069d631 aa36acdef
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:36:48 2025 +0200

    Merge branch 'master' into element-call-integration

commit 61069d63131c368feadd478f63d10e3b1d432ca2
Merge: 74d6a99b1 0b9389fd6
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:34:00 2025 +0200

    Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration

commit 74d6a99b1e19fc020da6c713d0fe81eedac3ac16
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:32:22 2025 +0200

    Adjust names for Element Call tasks and make uninstallation more consistent with other roles

commit 81a30f17ac0441852bb10aa3d00d0e0ac4dd010e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:29:39 2025 +0200

    Remove some superficial comments

commit 413d5915623486001a3067280a475226d83d5d51
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:27:11 2025 +0200

    Bring container-network-creation tasks up-to-date for Element Call and LiveKit-related services

commit 7572522820766e47cf295cb327913c9eecf5bdba
Merge: 564275527 5ece1fea5
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:24:34 2025 +0200

    Merge branch 'master' into element-call-integration

commit 0b9389fd6492d0c26c5ed16ba17d51d36c378016
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:52 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 9a8a56943187b24ecf721e8f0aeeda578cbc9a48
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:29 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit bb403e1aee1106d19af57f1f78c24fadd51172f6
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:15 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 74fbacbd9f161e568c82de86dd07698bc1ede13c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:42:54 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 5642755273614e1bdd1f8cf89750874c5ecf3fd7
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 16:40:50 2024 +0200

    Rework LiveKit JWT Service role

commit bb925f4782c2304c6d6e9b42ee29f2e1caaef649
Merge: c57d0d192 ca8c1cf2b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 14:45:20 2024 +0200

    Merge branch 'master' into element-call-integration

commit c57d0d192d281e6bcfa921ad737d157a86f7359f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:45:07 2024 +0200

    Eliminate remaining matrix references from LiveKit Server role

commit 006920882c54408e77b70cbd2719602fe63bab69
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:38:23 2024 +0200

    Rename file (element-call-labels -> labels)

commit 69d702643f850354ba0afe35596f8e8c53967399
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:36:55 2024 +0200

    Remove homeserver.yaml patching from Element Call role

commit 252ca52f60d79b16345802cb2980dfd8e0258881
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:32:15 2024 +0200

    Relocate /.well-known/element/element.json setup to matrix-static-files, instead of ugly patching from the Element Call role

commit 3f52cec25c971ece0082a39d75e1c81c8733302b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:17:30 2024 +0200

    Relocate Element Web features & element_call configuration to Element role, instead of ugly patching from the Element Call role

commit 7a6fcaa4020fbaf5f2db13edf1e9a9dbeac6b449
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:59:11 2024 +0200

    Fix typo

commit 394fdca0660714f09406f6c9b8649f2495318614
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:54:29 2024 +0200

    Relocate org.matrix.msc4143.rtc_foci setup to /.well-known/matrix/client to matrix-static-files instead of ugly patching

commit f0466d5a996d609abeacd7edc3c682c0073d165a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:19:36 2024 +0200

    Make LiveKit Server configuration extensible

commit be7271760e465c898572746a764b1db373266431
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:13:07 2024 +0200

    Make LiveKit Server logging config configurable

commit 8b84eb639096e9bf5be51e9ed5c337cedcb89d44
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:04:53 2024 +0200

    Default LiveKit Server to a smaller RTC range for faster startup on non-host networks

commit 3e86adac0d76123c5558cc627b58ca9e8fbc7cca
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:00:43 2024 +0200

    Fix port exposure for LiveKit Server

commit 721fb39aa28ae275c4924a15fde62438b215a1ac
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 17:28:06 2024 +0200

    More progress on the LiveKit role

commit 783d4a23f82cfb65143991f9266c89dd4034d87d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:54:45 2024 +0200

    Add livekit_server_identifier

commit fa4ebd2a64af5900eda1399cefe5f6b9b9b7334a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:37:01 2024 +0200

    Cleanups

commit 79ae704a245bc2d68e7968f38ef5ea39aa64b833
Merge: 88d466845 c07b09390
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:31:50 2024 +0200

    Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration

commit c07b0939022dcbc8667d37d987ca7a5137bf7cea
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:34 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit c321ca160ecbeec8f3ed9a96802aa436510779f8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:26 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 164be875b0e3305191135784e1183b94143ff7c1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:15 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 0f23e36e12a652965552424b5547cdd7e04035d8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:05 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 83bb546c643d3d7a4c9f6271084d221a0de98a1f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:55 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 378392227563f90b664754d283b03fddbedd15f8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:47 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 66cc36466c0e72bff5ecc5452ab7d4ebd8244889
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:36 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit ec41c1aba5746e23b2696e6968e8744478d7e889
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:28 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit df6ef106d1cf9e062ec38fed60374c4724ad0630
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:18 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit eb048da8a1e374aca5f1dc04c46a3245933b22c4
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:06 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit ccb29beb303a56f3b52ed48d3631859ca5d36eaa
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:56 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 32ea60fdc5547d931b0797ce9e04b570b0c71255
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:44 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 25a8cb3b4a3a43f592a894a2170da5d9c164cd34
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:17 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 55da5c3213ce9581654b128d0ff66a7b6a1d38ad
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:21:55 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 925ebfbd4bc2302ca282ef2f576a738781a6157a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:21:42 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 88d4668450c9eea6bf53432dd20fcd3c5424b2b2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:16:43 2024 +0200

    Variable rename (livekit_server_image -> livekit_server_container_image) for consistency with other roles

commit 1838a541aef4fba960ffdedd47010311ea58b31f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:15:54 2024 +0200

    Variables rename (matrix_livekit_server_ -> livekit_server_) to prepare for role extraction

commit 1e82530080cb3387d0bad5136cee5c7f421e8c4a
Merge: 82127830b 0c9fc4358
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:59:56 2024 +0200

    Merge branch 'master' into element-call-integration

commit 82127830b39995cb74fff5393fd3b945d65aefdc
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:58:01 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/uninstall.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 85c0ffa9e1d84e3d85083634db00b22a785db9c7
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:51 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/uninstall.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit b691f39d392c42b8286896a4c04d78f0f5a9e711
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:44 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/install.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 10df1451015e48739fc7589012aa6c10de9bb472
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:31 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/install.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit fa2a913d39fb5f89dfc2f1017a266878aa5825b0
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 16:20:54 2024 +1000

    fixing issue with element call domain not being expanded when writing the element web config.json.

commit e18b28136cb8055574cc2f1367c7d6a784afb770
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 15:28:56 2024 +1000

    Updated Element call docs with dependent services and fixed typo.

commit 1906d61c39eae8b8be44722a857b7a90d494bb4f
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 13:25:40 2024 +1000

    updated traefik label to be in line with the latest change from devture_traefik_ to traefik_

commit b7e0a41134ea656391d51e44e1247f054e9452e4
Merge: a03f5985a d9a919a4b
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Oct 3 13:20:02 2024 +1000

    Merge branch 'spantaleev:master' into element-call-integration

commit a03f5985a536e461653bfc30dc6ccc8372180d25
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 12:38:34 2024 +1000

    removed trailing whitespaces

commit 1e6698cb994b360b06b4d101bad4412cace6f3cc
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Oct 2 13:27:02 2024 +1000

    updated documentation or the new roles.

commit f684719b2a732d846aa5f6d145aed6d8a45596c3
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 22:30:09 2024 +1000

    fixed error with element client update task

commit a6e3203398fbb6c28a98127ca59ed8ad112ca68c
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 22:20:50 2024 +1000

    updated docs, broke the well-known and element client modifications out to separate tasks.

commit 2b4fdea70fd8572cc1074bd5f7eaff84ed1247de
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 17:04:11 2024 +1000

    added header flags back in.

commit 6c8923ae2879948fbdaa794bdb5992aee1a13e3c
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:51:06 2024 +1000

    removed headers.

commit 9691577b2239e894f9c8c1ae52f38b3c29802b80
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:45:07 2024 +1000

    removed additinoal headers

commit 46109565e1235be5203df505d4a1455acd8be4a3
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:33:48 2024 +1000

    updated headers for each of the call services.

commit 4acb025130278f2a8426b41f2ec4920f9d409ed4
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:35:53 2024 +1000

    testing livekit configuration

commit e421852af5a0d571c9ef74e8c3cade58111d67ad
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:09:00 2024 +1000

    updated jwt bind port

commit 5507fb3bab5fb89733f82715dfac67ff1457f99a
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:08:21 2024 +1000

    added element-call config.json to systemd file

commit 9864996aad36de6350c66095a4bb224ba022648b
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:46:37 2024 +1000

    adjusted jwt service ports for traefik

commit dbbaae4fbebd1bdd06d20d7ddf6325aa347918a2
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:34:25 2024 +1000

    stopping the recursive loop

commit d53c2428b8cfb9da1a7e668802716fc4f2caaf6c
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:29:35 2024 +1000

    updated jwt hostname.

commit f98a505df82526e8acc4460eea45a41fd9293382
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 11:00:56 2024 +1000

    changed jwt-service port label.

commit d5aabc85be569354dc99f967ba3c397e371880ac
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:41:30 2024 +1000

    removed redis images in favor of the inbuilt keyDB

commit 7cdec5f2513c5c31d018c41468065f766fdbea57
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:17:34 2024 +1000

    fixed type in livekit image

commit fd2f505b34092a8f0267023b9f6ac9c41308f1f9
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:00:30 2024 +1000

    Fixed typo in livekit server hostname

commit 812b57cfaa81d19b959bc13919abcba4c88b5336
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:54:02 2024 +1000

    resolved missing key.

commit b7b8ed573b9a56034785e17f232c707524fe4f16
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:48:44 2024 +1000

    typo in livekit-server validate.

commit 97f93ebd76d984e80c398161335d036f40e1e280
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:31:42 2024 +1000

    renamed the livekit role and added livekit-server and jwt-service roles to the setup file.

commit 8cb7deff15e585571f69dfc3e7de63ce96b9c9c8
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 23:04:10 2024 +1000

    cleaned up old services again

commit 71dff50a65ccd00a328f1f6f068889bb2d6bc205
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:53:21 2024 +1000

    fixed livekit service name

commit 58a9642e8c33fe87da03bd4db911d5569e22523b
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:45:56 2024 +1000

    fixed config file placement.

commit 3de399025f550973b04baeb6b66d062a16e1b884
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:41:36 2024 +1000

    hard coded redis port.

commit e952ba1c3a0c4db903a1b595c5ce1804ae2db636
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:35:59 2024 +1000

    removed duplicate tasks.

commit 8cb3e33bbfddaa50b7370e65d1668e6e1333b606
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:20:46 2024 +1000

    separated livekit and jwt to separate roles

commit b907777ae53475ee93aefcd827b08a47e0b44824
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 13:13:29 2024 +1000

    fixing labels again.

commit cb41fb02ae3611ae1211c73e044cb07b35d416e1
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 13:00:10 2024 +1000

    testing traefik labels again.

commit 31a138a6ba7570b7bb9cd8ebc60c28d284c74302
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:47:42 2024 +1000

    fixed traefik router issues.

commit 6143ad7ffa04d98714eb51acf5675921a1d96b86
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:27:04 2024 +1000

    fix: removed the read-only tag from the element-call systemd file.

commit f762048a8dcaa691d183fee147f621c031cdd25d
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:15:27 2024 +1000

    fix: added missing labels to main.

commit 93650cf20ea9b72a4ced744380d57132cc417313
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:02:45 2024 +1000

    fix: Type in the element-call main.yml

commit 9dbee212d81f7584089ae0e77d69e2de52b04ff8
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:37:08 2024 +1000

    fix: removed duplicate keys.

commit 1167e1ec13ab3f9e64a1ac35eabb0a392551baf4
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:17:34 2024 +1000

    fix: changed matrix server name to matrix domain in element-call config.

commit f036e18789ffd332c40d296bc4744a1dc508586a
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:05:11 2024 +1000

    Fix: Restructured Element call configuration files.

commit a274d32c6d800379d2241449b68cea8bc4778042
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:50:31 2024 +1000

    Removed serve function

commit 5db9a5c061efb8c8806b0fdf9ffcc968e4fea2d3
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:40:37 2024 +1000

    Removed env file

commit 24926720252b0eb5d9d8344514a6eb3ab445304d
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:39:39 2024 +1000

    Update env.j2

commit a0917fa2833ec3ee0b42bd5a2b61396dc535bcb2
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:37:36 2024 +1000

    Update main.yml

commit 8b172cc19447be51a17fd94db46246b29a961086
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:35:38 2024 +1000

    Update env.j2

commit 63133d659972342b825782ed678ce356c1541acf
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 11:53:26 2024 +1000

    Added serve command back in.

commit 5b8dcf32d5fa47d0cbb5777b66138c47db0b41d0
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 11:42:34 2024 +1000

    Added element-call systemd services to the service manager.

commit 14614cb21102dfc6c645d05ca8e38156add079d7
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:26:01 2024 +1000

    Update matrix-element-call.service.j2

commit 3c084e17d266892ea10e51188d70508e5ab6a64e
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:15:51 2024 +1000

    Update element-call-labels.j2-new

commit 089c5f14c8e9ee57fb8da0f48a8c221e1d67b1a1
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:00:40 2024 +1000

    Update jwt-service-labels.j2

commit b6571fc4fdfffd60cc5d11e63e13dd6077fbba93
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:59:54 2024 +1000

    Update livekit-labels.j2

commit 6d6f9ab853104213f7e6cc5d8db3381a298713dc
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:59:13 2024 +1000

    Added hostnames for livekit and jwt labels

commit 5730dbfc6e0928b1b4defa6e4fe734759feb3ae8
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:54:01 2024 +1000

    Added hostname label

commit c14f9cdcb59e9fd92f5ba7465abc2042ed4e8a43
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:25:48 2024 +1000

    Update matrix_servers

commit 805b726c6d8132516197d29c941044d361d3a6ce
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:25:01 2024 +1000

    Update element-call-labels.j2

commit 5f49433f6c93e45f1e253d9981d4b23a098c9478
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:15:21 2024 +1000

    Handle empty labels correctly.

commit 510cfb2dace4bb23332dc4596fcff0395053885f
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:14:29 2024 +1000

    Update matrix_servers

commit 1721e85195e2aa6fcd3ce53ffa3a302cb0af6d22
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:00:03 2024 +1000

    Corrected element call labels file name

commit 25909b102945fbd030466fcc04b4f861d1418587
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:51:27 2024 +1000

    Update and rename labels.j2 to element-call-labels.j2

commit 3264408758bf162dfba2724f20a6cc0b015df227
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:49:55 2024 +1000

    Rename element-call-labels.j2 to element-call-labels.j2-new

commit dd96b93d899b7ba6c46cef8e93b86d5068b55ac8
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:34:01 2024 +1000

    Update matrix-element-call.service.j2

commit df4bf4a0c930b549316180a1880dc55f00fbbf71
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:23:24 2024 +1000

    Added tasks for moving the new labels files into place

commit 2f2cb8962e64984f5c62acbe176a54c5a6d96591
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:19:26 2024 +1000

    Updated livekit labels

commit d2e2781d3b715ea3872c60fe5a2290a6d55c30ef
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:18:27 2024 +1000

    Updated label file

commit 80763804f914506b119f4b90fdd2013901d91648
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:16:56 2024 +1000

    Updated label file

commit 1d7a60055c2114c35ab64e18157a79f86fbcf33b
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:10:06 2024 +1000

    Create jwt-service-labels.j2

commit 2cf471075db355f6df66ffb188424425be1c8981
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:09:32 2024 +1000

    Created livekit-labels.j2

commit 6a519bb05332940f6b19c70345a1d3eb8671731f
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:08:42 2024 +1000

    Created element-call-labels to separate the labels for each container

commit f0632b20ebed7611373b690fe8483960b2d36230
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 21:24:43 2024 +1000

    Added missing labels for sfu and jwt

commit 5cc9c70ba6fc95a575b380fa55ab9f058fd59766
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 20:57:47 2024 +1000

    Remove serve command from matrix-element-call.service.j2

commit e34e5da9a4d27d3d656dd48fe3409f7d2b769300
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:57:39 2024 +1000

    Update matrix-redis.service.j2

commit 656d4275bcab2a638f18a1442ce4b6dad9e79af4
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:48:06 2024 +1000

    Update install.yml

commit 6ef304b118e9d1bd58943ac2f8c34f2ed342357c
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:43:22 2024 +1000

    Update validate_config.yml

commit 85be68946cbac0a21302a1746b3a61d6ab3a6953
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:30:15 2024 +1000

    Migrated from matrix_redis to redis_

commit 3f6c327da288c00e1cfc24d27fa15d142d26e74a
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:18:47 2024 +1000

    Update main.yml

commit ba54e549c47927951490088b1ef962a36a063306
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:08:09 2024 +1000

    Added well-known element directory

commit f2acc7430dc6865ec6ac847339a8c6c8b69962b8
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:53:49 2024 +1000

    Create well_known_element.json.j2

commit 9cb236da30795dd3071e4a7ee1e531d830fb99b7
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:50:48 2024 +1000

    Update install.yml

commit f38d6a0d88067cb64c9a266ab7963fbe57b16482
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:39:03 2024 +1000

    Update main.yml

commit ac1295ac455ce82731c6a8ea9c42db0d2c48eeb3
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:33:22 2024 +1000

    Create matrix-jwt-service.service.j2

commit bc2ed6076260e2720ec230b49d245f4f0173c1dc
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 17:23:03 2024 +1000

    Update main.yml

commit f7621283fdb4690e65709f9f649d01419b06c373
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 16:31:23 2024 +1000

    Update labels.j2

commit e31e688a416ffad0d9c9aa4f9d8187ef3faf2755
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:42:05 2024 +1000

    Update main.yml

commit a533ec4204343de6469b80d0bd5ebba4b412ffdb
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:38:12 2024 +1000

    Update matrix_servers

commit f16ca24408e622650e257e9a99f485278f6a5b23
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:17:15 2024 +1000

    Update install.yml

commit e910d09ff142d6e931e4d4d238f14b2ad08817a3
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 14:52:30 2024 +1000

    Create matrix-redis.service.j2

commit bc9658c06b38f2a647154eb29720ddca33afe645
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 13:40:38 2024 +1000

    Create matrix-livekit.service.j2

commit 45c8a61f043bce8548da17831438527dba9a5b09
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 11:39:33 2024 +1000

    Migrating to systemd for container management

commit 954d46cfd7bb8b3a960fd4f147be1597ccc401a0
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:25:49 2024 +1000

    Update labels.j2

commit dfeca192abe6b319985e6bfccde8d3841d59a003
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:23:26 2024 +1000

    Update redis.conf.j2

commit f306a47b830e262d22f426d75f91a544f4719b41
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:22:29 2024 +1000

    Update livekit.yaml.j2

commit becdb0810c6522ede3d3bf17a6ef3099a95cb99d
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:18:55 2024 +1000

    Update config.json.j2

commit 37fd2e701d7e7c30f58602b589325f0c7c766b6f
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:15:07 2024 +1000

    Update env.j2 to support the new configuration

commit 68cc1f4b2bff23d2c190fb18d6e638eb57c73a4d
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 08:29:16 2024 +1000

    Simplified the validation step.

commit 5efc1892935a3e0cfc323f5b3f950bcd037ab434
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 08:12:06 2024 +1000

    Updated to support new structure

commit 02479e8becc9e1db7617f789db94387b19492f1d
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 07:59:09 2024 +1000

    Updated with new structure.

commit 0eef094f2bf8717c1bdbc7ae7e6ba05eb68c15b0
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 06:51:36 2024 +1000

    Restructure install.yml to follow other roles more closely

commit 16ed788b3f8a94298bcb688306a08a688cb42e59
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 21:07:22 2024 +1000

    Update main.yml

commit 63641014101b947e43207f591ec56a3f56d8acc9
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 20:20:20 2024 +1000

    Adding another debug task for testing the labels file.

commit 81735503f8985359c7b0cc9e8674e0e6ed7aa36f
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 20:06:27 2024 +1000

    Added debug task to test labels configuration

commit 8644a7383e3a1a882f70bf3b33b71307cda2c2ab
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:22:21 2024 +1000

    Removed additional label loop

commit ce827e7953a2ee9d5471f96dd7effb3f00691303
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:09:13 2024 +1000

    Changed matrix_base_domain to matrix_domain

commit c93d30bcb8bffdea4d995fb6fba3c267d36a695f
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:07:03 2024 +1000

    Added matrix_server_name to the defaults

commit 90ea758c3bd2ac5cfe03dd946021fb1be668da87
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:39:26 2024 +1000

    Fixed regex for checking the hostname.

commit 350d4d4bcd0361ca0dfa5806c0a76b2bdc781df7
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:35:09 2024 +1000

    Fixed assertion block to remove jinja2 delimiters

commit fc6357a089f57a16f5117f6940a25fad2ca0f9ec
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:05:34 2024 +1000

    Update main.yml

commit 60f34cd7af6e752542ace17c61a77122777dd370
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 16:13:29 2024 +1000

    fixed matrix_redis for migration

commit d1ba784dde736a72dac55a2575a11dedfa0fcc42
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 15:01:53 2024 +1000

    added doc for setting up element call.

commit 434157eb9837b1ce82a19cca50eea8b135038531
Merge: 6594cce57 f657273cc
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 14:55:42 2024 +1000

    Merge branch 'spantaleev:master' into element-call-integration

commit 6594cce57038c5118e9b056f2b2c0b4ec9451b93
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 14:53:48 2024 +1000

    Feat: Added element call setup and configuration.
2025-03-15 08:34:48 +02:00
9a231a815d Fix duplicate variable override (matrix_wechat_container_image_registry_prefix_upstream) 2025-03-15 08:18:58 +02:00
2a6b746acd stdout_callback = yaml -> result_format = yaml
Fixes:

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

Ref:

- https://docs.ansible.com/ansible/latest/collections/community/general/yaml_callback.html
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/default_callback.html#parameter-result_format
2025-03-15 08:09:59 +02:00
f8f7ffc7dd Minor adjustment in docs/configuring-ipv6.md 2025-03-15 07:54:52 +02:00
95dcaf6e2d become* -> ansible_become* for inventory hosts 2025-03-15 07:28:52 +02:00
1c53f8dd1d introduce new synapse vars 2025-03-14 22:44:35 +02:00
60e2e035a2 Add matrix_synapse_rc_delayed_event_mgmt variable
Ref:
- c4747dd177/docs/self-hosting.md (a-matrix-homeserver)
- e39fe3bc7f
2025-03-14 22:29:08 +02:00
6077c7a1d6 Fix bug in marking Pantal and Rust Crypto as mutually exclusive. 2025-03-14 19:28:20 +02:00
8e883a5554 Fail if Synapse experimental feature QR code login (MSC4108) is enabled while Next-Gen Auth (MSC3861) is not 2025-03-14 19:06:37 +02:00
e073685632 Fix D4A Config Validation checking for old variable and fix docs ref 2025-03-14 13:06:47 +02:00
808d0202c7 Fix Rust Crypto variables being partially missed in Rename 2025-03-14 12:23:25 +02:00
0b39528ae3 Update docs/configuring-playbook-ssl-certificates.md: add the introduction of Update Kuma on the MASH playbook
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-14 12:22:49 +02:00
824c446920 Update docs/configuring-playbook-ssl-certificates.md: tidy up
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-14 12:22:49 +02:00
8637c1d7d7 Update docs/configuring-playbook-ntfy.md: add the instruction to log in to the account with authentication enabled
Copied from 6a9ef8c147/docs/services/ntfy.md

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

* Reorder experimental_features in homeserver.yaml.j2 alphabetically

---------

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

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

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

---------

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

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

* Update D4A Configuration to harmonise with bot mode

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

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

* Align D4A config with new schema

* Fix D4A Config Lint Error

* Update D4A SPDX Entries

* Do not use double quotes around `to_json` values

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-13 20:20:09 +02:00
dc581d0b7a Add ensure-users-created to the list of available tags on playbook-tags.md (#4169) 2025-03-13 07:04:56 +02:00
5bb8a36f34 Update Mjolnir Anti Spam module to latest and add Renovate 2025-03-13 06:20:20 +02:00
2f30886b19 Rework license information adding for $instagram_role_path/README.md to fix reuse lint 2025-03-12 18:40:23 +02:00
60bc3a9a7b Ensure container labels file is empty if nothing is exposed for mautrix-meta bridges
Without this, we get a warning message from Traefik:

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

Possibly due to the multiple services defined there without a single
explicitly-defined router.
2025-03-12 18:35:13 +02:00
c9b2f2c995 Adjust bin/rebuild-mautrix-meta-instagram.sh script to add license headers and rebuild matrix-bridge-mautrix-meta-instagram with it 2025-03-12 18:34:24 +02:00
2be709e2ce Adjust some _registry_prefix_upstream variables in group_vars/matrix_servers to make them respect matrix_container_global_registry_prefix_override
Follow-up to 3492d31dca
2025-03-12 18:00:28 +02:00
3492d31dca Rename some leftover _name_prefix variables (to _registry_prefix) 2025-03-12 17:57:10 +02:00
5287b8ddeb Fix use of undefined variable matrix_authentication_service_container_image_name_prefix 2025-03-12 17:51:19 +02:00
893b237225 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.3.12 2025-03-12 14:20:27 +02:00
79cc333be2 Postmoogle v0.9.26 (crypto init fix) 2025-03-12 12:38:37 +02:00
1e8d9a0c24 Update docs/configuring-playbook-ntfy.md: add pronunciation
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-12 17:55:29 +09:00
a9ee537f83 Only point matrix_synapse_report_stats_endpoint to matrix-synapse-usage-exporter if it's enabled
Fixup related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3442
2025-03-12 10:04:06 +02:00
c5a03efdf6 Increase default Synapse/rc_message rate limits
The new rate limits are more suitable for running Element Call.

Ref:

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

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

Ref:

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

Ref:

- 93ae2aed98/docs/self-hosting.md (a-matrix-homeserver)
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562
2025-03-12 09:10:35 +02:00
4fb0b75942 Reorder Synapse config's experimental_features alphabetically 2025-03-12 09:05:59 +02:00
5dfbefd649 Fix comment indentation in examples/reverse-proxies/caddy2-in-container/docker-compose.yaml 2025-03-12 07:03:47 +02:00
aa36acdef1 Remove useless matrix_static_files_client_redirect_root_uri_to_domain variable definition 2025-03-12 06:36:24 +02:00
5ece1fea5a Update docs/configuring-playbook-ntfy.md: reflect the role's documentation
Based on 4e27dafc5c/docs/configuring-ntfy.md

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

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

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

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

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

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

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

Ref:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Update docs: links to MASH project and its components

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

* Update docs/configuring-playbook-ntfy.md

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

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

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

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

---------

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2025-03-10 10:36:17 +02:00
7e24667fc7 Upgrade traefik-certs-dumper (v2.8.3-7 -> v2.10.0-0) 2025-03-10 07:14:50 +02:00
82c5afd214 Upgrade ntfy (v2.11.0-3 -> v2.11.0-4) 2025-03-10 07:08:49 +02:00
c291d53d3e Update docs/configuring-playbook-prometheus-grafana.md: warning message (#4159) 2025-03-09 18:27:49 +02:00
87bdaf5bfe Update dependency setuptools to v76 2025-03-09 16:26:06 +02:00
35dd8e46cd Adjust /etc/docker/daemon.json cleanup comment with link to ansible-role-docker PR 2025-03-09 16:22:46 +02:00
6d6fd4bf85 Add license information to roles/custom/matrix_playbook_migration/tasks/docker_daemon_options_file_cleanup.yml 2025-03-09 16:07:01 +02:00
e33ed912cb Reorder matrix_playbook_docker_installation_daemon_options* variables a bit 2025-03-09 16:04:18 +02:00
bd073bca74 Remove /etc/docker/daemon.json when no Docker options are set anymore 2025-03-09 16:03:15 +02:00
372 changed files with 6988 additions and 1650 deletions

2
.codespellrc Normal file
View File

@ -0,0 +1,2 @@
[codespell]
ignore-words-list = aNULL,brose,doub,Udo,re-use,re-used,registr

28
.github/renovate.json vendored
View File

@ -1,12 +1,17 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "extends": [
"config:base" "config:recommended"
], ],
"labels": ["dependencies"], "labels": [
"regexManagers": [ "dependencies"
],
"customManagers": [
{ {
"fileMatch": ["defaults/main.yml$"], "customType": "regex",
"managerFilePatterns": [
"/defaults/main.yml$/"
],
"matchStrings": [ "matchStrings": [
"# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?(?:_version|_tag)\\s*:\\s*[\"']?(?<currentValue>.+?)[\"']?\\s" "# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?(?:_version|_tag)\\s*:\\s*[\"']?(?<currentValue>.+?)[\"']?\\s"
] ]
@ -14,14 +19,17 @@
], ],
"packageRules": [ "packageRules": [
{ {
"matchSourceUrlPrefixes": [ "ignoreUnstable": false,
"https://github.com/devture/com.devture.ansible.role", "matchSourceUrls": [
"https://github.com/mother-of-all-self-hosting" "https://github.com/devture/com.devture.ansible.role{/,}**",
], "https://github.com/mother-of-all-self-hosting{/,}**"
"ignoreUnstable": false ]
} }
], ],
"ignoreDeps": [ "ignoreDeps": [
"ghcr.io/matrixgpt/matrix-chatgpt-bot" "ghcr.io/matrixgpt/matrix-chatgpt-bot"
] ],
"pre-commit": {
"enabled": true
}
} }

29
.github/workflows/lock-threads.yml vendored Normal file
View File

@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2017 - 2023 Armin Sebastian
#
# SPDX-License-Identifier: MIT
---
name: 'Lock Threads'
on: # yamllint disable-line rule:truthy
# Use this to do a dry run from a pull request
# pull_request:
schedule:
- cron: '0 * * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
concurrency:
group: lock-threads
jobs:
action:
if: github.repository == 'spantaleev/matrix-docker-ansible-deploy'
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
with:
add-issue-labels: 'outdated'
process-only: 'issues, prs'

View File

@ -7,9 +7,7 @@
--- ---
name: Matrix CI name: Matrix CI
on: # yamllint disable-line rule:truthy on: [push, pull_request] # yamllint disable-line rule:truthy
push:
pull_request:
jobs: jobs:
yamllint: yamllint:
@ -30,3 +28,11 @@ jobs:
uses: ansible-community/ansible-lint-action@v6.17.0 uses: ansible-community/ansible-lint-action@v6.17.0
with: with:
path: roles/custom path: roles/custom
precommit:
name: Run pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run pre-commit
uses: pre-commit/action@v3.0.1

View File

@ -1,20 +0,0 @@
# 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

26
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,26 @@
---
default_install_hook_types: [pre-push]
exclude: "LICENSES/"
# See: https://pre-commit.com/hooks.html
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
# - id: check-executables-have-shebangs
- id: check-added-large-files
- id: check-case-conflict
- id: check-json
- id: check-toml
- id: trailing-whitespace
- id: end-of-file-fixer
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell
args: ["--skip=*.po,*.pot,i18n/"]
- repo: https://github.com/fsfe/reuse-tool # https://reuse.software/dev/#pre-commit-hook
rev: v5.0.2
hooks:
- id: reuse

View File

@ -1,3 +1,58 @@
# 2025-04-26
## Continuwuity support
Thanks to [Virkkunen](https://github.com/Virkkunen), we now have optional experimental [Continuwuity](./docs/configuring-playbook-continuwuity.md) homeserver support.
Continuwuity is a fork of [conduwuit](./docs/configuring-playbook-conduwuit.md), which the playbook also supports. It appears that conduwuit has been abandoned and various forks (like Continuwuity, [Tuwunel](https://github.com/matrix-construct/tuwunel) and possibly others) are continuing in its path.
Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook.
People that used to run conduwuit, may wish to:
- either [migrate from conduwuit to Continuwuity](./docs/configuring-playbook-continuwuity.md#migrating-from-conduwuit)
- or wait for some of the other forks to progress and for support for them to get added to the playbook
**The homeserver implementation of an existing server cannot be changed** (e.g. from Synapse/Conduit/Dendrite to Continuwuity) without data loss.
# 2025-04-09
## Element Call frontend installation is now optional
Because all Element clients (Element Web and Element X mobile) now embed and use their own Element Call frontend application (and not the one hosted via the playbook), it makes little sense for the playbook to self-host the Element Call frontend for you. Setting up the frontend requires an additional hostname (DNS setup) and it won't be used by Element clients anyway, so **we now recommend not installing the Element Call frontend**.
💡 A reason you may wish to continue installing the Element Call frontend (despite Matrix clients not making use of it), is if you need to use it standalone - directly via a browser (without a Matrix client).
The playbook now lets you [Decide between Element Call vs just the Matrix RTC stack](./docs/configuring-playbook-element-call.md#decide-between-element-call-vs-just-the-matrix-rtc-stack).
If you've already installed Element Call (via `matrix_element_call_enabled: true`), you can switch to installing just the [Matrix RTC (Real-Time Communication) stack](./docs/configuring-playbook-matrix-rtc.md) (all supporting services **without the Element Call frontend**) by:
1. Adjusting your `vars.yml` configuration like this:
```diff
-matrix_element_call_enabled: true
+matrix_rtc_enabled: true
```
2. [Re-running the playbook](./docs/installing.md) with the `setup-all` Ansible tag (e.g. `just setup-all`)
3. Getting rid of the `call.element.example.com` DNS record
# 2025-03-15
## Element Call support
The playbook now supports [Element Call](https://github.com/element-hq/element-call) as an optional feature. Thanks to [wjbeckett](https://github.com/wjbeckett) for getting us started via [PR#3562](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562).
Element Call is a native Matrix video conferencing application developed by [Element](https://element.io/) that has the goal of replacing [Jitsi](./docs/configuring-playbook-jitsi.md) and the old WebRTC stack used in previous Element versions.
💡 For now, Element Call is only supported with the [Synapse](docs/configuring-playbook-synapse.md) homeserver (with [federation](docs/configuring-playbook-federation.md) enabled) and [Element Web](docs/configuring-playbook-client-element-web.md) and Element X mobile clients. See the [Prerequisites](docs/configuring-playbook-element-call.md#prerequisites) section of the [Element Call documentation](docs/configuring-playbook-element-call.md) for more details.
To get started, see the [Configuring Element Call](docs/configuring-playbook-element-call.md) documentation page.
# 2025-03-08 # 2025-03-08
## 6⃣ IPv6 support enablement recommended by default ## 6⃣ IPv6 support enablement recommended by default
@ -101,7 +156,7 @@ To **completely eliminate the problem** of DDoS amplification attacks done throu
The playbook now **only exposes the Coturn STUN port (`3478`) over TCP by default**. 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`. 💡 Users may wish to further remove the (now unnecessary) 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: 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:
@ -115,7 +170,7 @@ matrix_coturn_container_stun_plain_host_bind_port_udp: "3478"
# 2025-02-17 # 2025-02-17
## FluffyChat Web suport ## FluffyChat Web support
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. 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.
@ -137,7 +192,7 @@ The playbook will let you know if you're using any `matrix_mautrix_hangouts_*` v
## Redis and KeyDB are no longer part of the playbook ## Redis and KeyDB are no longer part of the playbook
**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead. **TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly defining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead.
The playbook has gone through several iterations of memorystore implementations: The playbook has gone through several iterations of memorystore implementations:
@ -363,8 +418,8 @@ If upstream synapse-admin picks up the pace and improves, the etke.cc fork may d
If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file: If you'd like to switch back to the original synapse-admin software, you can do so by adding the following configuration to your `vars.yml` file:
```yaml ```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: "{{ matrix_synapse_admin_docker_image_registry_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 'docker.io/' }}" matrix_synapse_admin_docker_image_registry_prefix_upstream: docker.io/
matrix_synapse_admin_version: 0.10.3 matrix_synapse_admin_version: 0.10.3
@ -690,7 +745,7 @@ For people building commercial products on top of Synapse, they may have to eith
We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own! We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own!
If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this: If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by introducing a new Ansible variable. You can do it like this:
```yaml ```yaml
# Switch the organization that Synapse container images (or source code for self-building) are pulled from. # Switch the organization that Synapse container images (or source code for self-building) are pulled from.
@ -773,7 +828,7 @@ Despite these downsides (which the playbook manages automatically), we believe i
People running the default Traefik setup do not need to do anything to make Traefik take on this extra job. Your Traefik configuration will be updated automatically. People running the default Traefik setup do not need to do anything to make Traefik take on this extra job. Your Traefik configuration will be updated automatically.
**People runnning their own Traefik reverse-proxy need to do [minor adjustments](#people-managing-their-own-traefik-instance-need-to-do-minor-changes)**, as described in the section below. **People running their own Traefik reverse-proxy need to do [minor adjustments](#people-managing-their-own-traefik-instance-need-to-do-minor-changes)**, as described in the section below.
You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a "simpler" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended. You may disable Traefik acting as an intermediary by explicitly setting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled` to `false`. Services would then be configured to talk to the homeserver directly, giving you a slight performance boost and a "simpler" Traefik setup. However, such a configuration is less tested and will cause troubles, especially if you enable more services (like `matrix-media-repo`, etc.) in the future. As such, it's not recommended.
@ -2796,7 +2851,7 @@ As always, re-running the playbook is enough to get the updated bits.
## SMS bridging requires db reset ## SMS bridging requires db reset
The current version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) needs you to delete the database to work as expected. Just remove `/matrix/matrix-sms-bridge/database/*`. It also adds a new requried var `matrix_sms_bridge_default_region`. The current version of [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) needs you to delete the database to work as expected. Just remove `/matrix/matrix-sms-bridge/database/*`. It also adds a new required var `matrix_sms_bridge_default_region`.
To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a message. You are also able to use automated room creation with telephonenumers by writing `sms send -t 01749292923 "Hello World"` in a room with `@smsbot:yourServer`. See [the docs](https://github.com/benkuly/matrix-sms-bridge) for more information. To reuse your existing rooms, invite `@smsbot:yourServer` to the room or write a message. You are also able to use automated room creation with telephonenumers by writing `sms send -t 01749292923 "Hello World"` in a room with `@smsbot:yourServer`. See [the docs](https://github.com/benkuly/matrix-sms-bridge) for more information.
@ -2828,7 +2883,7 @@ Until the issue gets fixed, we're making User Directory search not go to ma1sd b
This upgrades matrix-appservice-irc from 0.14.1 to 0.16.0. Upstream 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 made a change to how you define manual mappings. If you added a
`mapping` to your configuration, you will need to update it accoring `mapping` to your configuration, you will need to update it according
to the [upstream 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 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
@ -2991,7 +3046,7 @@ As per this [advisory blog post](https://matrix.org/blog/2019/11/09/avoiding-unw
Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**. Our general goal is to favor privacy and security when running personal (family & friends) and corporate homeservers. Both of these likely benefit from having a more secure default of **not showing the room directory without authentication** and **not publishing the room directory over federation**.
As with anything else, these new defaults can be overriden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively. As with anything else, these new defaults can be overridden by changing the `matrix_synapse_allow_public_rooms_without_auth` and `matrix_synapse_allow_public_rooms_over_federation` variables, respectively.
# 2019-10-05 # 2019-10-05
@ -3545,7 +3600,7 @@ The following changes had to be done:
- glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. - glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file.
- `matrix_postgres_use_external` has been superceeded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement. - `matrix_postgres_use_external` has been superseded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement.
- Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're not enabling the `matrix-postgres` role (`matrix_postgres_enabled: false`) - Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're not enabling the `matrix-postgres` role (`matrix_postgres_enabled: false`)
@ -3734,7 +3789,7 @@ matrix_riot_web_integrations_jitsi_widget_url: "https://dimension.t2bot.io/widge
There's now a new `matrix_nginx_proxy_ssl_protocols` playbook variable, which controls the SSL protocols used to serve Riot and Synapse. Its default value is `TLSv1.1 TLSv1.2`. This playbook previously used `TLSv1 TLSv1.1 TLSv1.2` to serve Riot and Synapse. There's now a new `matrix_nginx_proxy_ssl_protocols` playbook variable, which controls the SSL protocols used to serve Riot and Synapse. Its default value is `TLSv1.1 TLSv1.2`. This playbook previously used `TLSv1 TLSv1.1 TLSv1.2` to serve Riot and Synapse.
You may wish to reenable TLSv1 if you need to access Riot in older browsers. You may wish to re-enable TLSv1 if you need to access Riot in older browsers.
Note: Currently the dockerized nginx doesn't support TLSv1.3. See https://github.com/nginxinc/docker-nginx/issues/190 for more details. Note: Currently the dockerized nginx doesn't support TLSv1.3. See https://github.com/nginxinc/docker-nginx/issues/190 for more details.

18
LICENSES/MIT.txt Normal file
View File

@ -0,0 +1,18 @@
MIT License
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.

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) [![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) [![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&fetchMode=summary)](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 # Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
@ -53,6 +53,7 @@ The homeserver is the backbone of your Matrix system. Choose one from the follow
| [Synapse](https://github.com/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) | | [Synapse](https://github.com/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) |
| [Conduit](https://conduit.rs) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) | | [Conduit](https://conduit.rs) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) |
| [conduwuit](https://conduwuit.puppyirl.gay/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | [Link](docs/configuring-playbook-conduwuit.md) | | [conduwuit](https://conduwuit.puppyirl.gay/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | [Link](docs/configuring-playbook-conduwuit.md) |
| [continuwuity](https://continuwuity.org) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit. | [Link](docs/configuring-playbook-continuwuity.md) |
| [Dendrite](https://github.com/element-hq/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) | | [Dendrite](https://github.com/element-hq/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) |
### Clients ### Clients
@ -80,6 +81,8 @@ Services that run on the server to make the various parts of your installation w
| [Exim](https://www.exim.org/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | [Link](docs/configuring-playbook-email.md) | | [Exim](https://www.exim.org/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | [Link](docs/configuring-playbook-email.md) |
| [ma1sd](https://github.com/ma1uta/ma1sd) | ❌ | Matrix Identity Server | [Link](docs/configuring-playbook-ma1sd.md) | [ma1sd](https://github.com/ma1uta/ma1sd) | ❌ | Matrix Identity Server | [Link](docs/configuring-playbook-ma1sd.md)
| [ddclient](https://github.com/linuxserver/docker-ddclient) | ❌ | Dynamic DNS | [Link](docs/configuring-playbook-dynamic-dns.md) | | [ddclient](https://github.com/linuxserver/docker-ddclient) | ❌ | Dynamic DNS | [Link](docs/configuring-playbook-dynamic-dns.md) |
| [LiveKit Server](https://github.com/livekit/livekit) | ❌ | WebRTC server for audio/video calls | [Link](docs/configuring-playbook-livekit-server.md) |
| [Livekit JWT Service](https://github.com/livekit/livekit-jwt-service) | ❌ | JWT service for integrating [Element Call](./configuring-playbook-element-call.md) with [LiveKit Server](./configuring-playbook-livekit-server.md) | [Link](docs/configuring-playbook-livekit-jwt-service.md) |
### Authentication ### Authentication
@ -185,6 +188,7 @@ Various services that don't fit any other categories.
| [Pantalaimon](https://github.com/matrix-org/pantalaimon) | ❌ | E2EE aware proxy daemon | [Link](docs/configuring-playbook-pantalaimon.md) | | [Pantalaimon](https://github.com/matrix-org/pantalaimon) | ❌ | E2EE aware proxy daemon | [Link](docs/configuring-playbook-pantalaimon.md) |
| [Sygnal](https://github.com/matrix-org/sygnal) | ❌ | Push gateway | [Link](docs/configuring-playbook-sygnal.md) | | [Sygnal](https://github.com/matrix-org/sygnal) | ❌ | Push gateway | [Link](docs/configuring-playbook-sygnal.md) |
| [ntfy](https://ntfy.sh) | ❌ | Push notifications server | [Link](docs/configuring-playbook-ntfy.md) | | [ntfy](https://ntfy.sh) | ❌ | Push notifications server | [Link](docs/configuring-playbook-ntfy.md) |
| [Element Call](https://github.com/element-hq/element-call) | ❌ | A native Matrix video conferencing application | [Link](docs/configuring-playbook-element-call.md) |
## 🆕 Changes ## 🆕 Changes

View File

@ -13,10 +13,12 @@ path = [
"i18n/PUBLISHED_LANGUAGES", "i18n/PUBLISHED_LANGUAGES",
"i18n/requirements.txt", "i18n/requirements.txt",
"roles/custom/**/*.repo", "roles/custom/**/*.repo",
".codespellrc",
".editorconfig", ".editorconfig",
".envrc", ".envrc",
".gitattributes", ".gitattributes",
".gitignore", ".gitignore",
".pre-commit-config.yaml",
".yamllint", ".yamllint",
"ansible.cfg", "ansible.cfg",
"flake.lock", "flake.lock",

View File

@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
2023 is probably [the year of AI](https://journal.everypixel.com/2023-the-year-of-ai), with millions of people jumping aboard [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/chatgpt) train. matrix-docker-ansible-deploy is no stranger to this and 2023 began with a PR from [bertybuttface](https://github.com/bertybuttface) who added support for [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#chatgpt-support)). While OpenAI's chat GPT website was frequently overloaded in the past, their API was up which made using this bot both convenient and more reliable. 2023 is probably [the year of AI](https://journal.everypixel.com/2023-the-year-of-ai), with millions of people jumping aboard [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/chatgpt) train. matrix-docker-ansible-deploy is no stranger to this and 2023 began with a PR from [bertybuttface](https://github.com/bertybuttface) who added support for [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#chatgpt-support)). While OpenAI's chat GPT website was frequently overloaded in the past, their API was up which made using this bot both convenient and more reliable.
AI aside, with the playbook's focus being containers, we're **doubling down on being "container native"** and becoming more interoperable for people hosting other containers on the Matrix server. In [2022](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/YEAR-IN-REVIEW.md#2022), we've announced a few sibling Ansible playbooks, their use of [Traefik](https://doc.traefik.io/traefik/) and the possiblity of matrix-docker-ansible-deploy also switching to this reverse-proxy. This prediction materialized quickly. The **largest change** in the playbook in 2023 happened way back in February - matrix-docker-ansible-deploy [starting the switch from nginx to Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support) and then quickly [making Treafik the default reverse-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now). As noted in the changelog entries, we envisioned a quick and complete elimination of `matrix-nginx-proxy`, but at the end of 2023, it hasn't happened yet. The playbook is already using Traefik as the front-most reverse-proxy, but nginx (via `matrix-nginx-proxy`) is still around - it has taken a step back and is only used internally for new setups. Work got to a stall due to: AI aside, with the playbook's focus being containers, we're **doubling down on being "container native"** and becoming more interoperable for people hosting other containers on the Matrix server. In [2022](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/YEAR-IN-REVIEW.md#2022), we've announced a few sibling Ansible playbooks, their use of [Traefik](https://doc.traefik.io/traefik/) and the possibility of matrix-docker-ansible-deploy also switching to this reverse-proxy. This prediction materialized quickly. The **largest change** in the playbook in 2023 happened way back in February - matrix-docker-ansible-deploy [starting the switch from nginx to Traefik](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support) and then quickly [making Treafik the default reverse-proxy](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now). As noted in the changelog entries, we envisioned a quick and complete elimination of `matrix-nginx-proxy`, but at the end of 2023, it hasn't happened yet. The playbook is already using Traefik as the front-most reverse-proxy, but nginx (via `matrix-nginx-proxy`) is still around - it has taken a step back and is only used internally for new setups. Work got to a stall due to:
* complexity: untangling the overly large and messy `matrix-nginx-proxy` component is difficult * complexity: untangling the overly large and messy `matrix-nginx-proxy` component is difficult
* the current setup became "good enough" because nginx has become an internal implementation detail for those who have migrated to Traefik. Traefik is already the default public reverse-proxy and gives better possibilities to people wishing to run other web-exposed containers on their Matrix server via [Docker Compose](https://docs.docker.com/compose/), other Ansible playbooks like [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) (more about this one, below) or any other way. * the current setup became "good enough" because nginx has become an internal implementation detail for those who have migrated to Traefik. Traefik is already the default public reverse-proxy and gives better possibilities to people wishing to run other web-exposed containers on their Matrix server via [Docker Compose](https://docs.docker.com/compose/), other Ansible playbooks like [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) (more about this one, below) or any other way.

View File

@ -1,6 +1,11 @@
[defaults] [defaults]
vault_password_file = gpg/open_vault.sh
retry_files_enabled = False retry_files_enabled = False
stdout_callback = yaml result_format = yaml
inventory = inventory/hosts
[connection] [connection]
pipelining = True pipelining = True

View File

@ -37,7 +37,17 @@ done
sed --in-place 's/matrix_mautrix_meta_instagram_meta_mode: \(.*\)/matrix_mautrix_meta_instagram_meta_mode: instagram/g' $instagram_role_path/defaults/main.yml sed --in-place 's/matrix_mautrix_meta_instagram_meta_mode: \(.*\)/matrix_mautrix_meta_instagram_meta_mode: instagram/g' $instagram_role_path/defaults/main.yml
sed --in-place 's/matrix_mautrix_meta_instagram_identifier: \(.*\)/matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram/g' $instagram_role_path/defaults/main.yml sed --in-place 's/matrix_mautrix_meta_instagram_identifier: \(.*\)/matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram/g' $instagram_role_path/defaults/main.yml
echo "# matrix-mautrix-meta-instagram" > $instagram_role_path/README.md # Create the README.md file with the license header
cat > $instagram_role_path/README.md << 'EOF'
<!--
SPDX-FileCopyrightText: 2024 - 2025 MDAD Contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-->
EOF
echo "" >> $instagram_role_path/README.md
echo "# matrix-mautrix-meta-instagram" >> $instagram_role_path/README.md
echo "" >> $instagram_role_path/README.md echo "" >> $instagram_role_path/README.md
echo "This bridge role is derived from the matrix-mautrix-meta-messenger Ansible role via automatic changes (see \`just rebuild-mautrix-meta-instagram\` or \`bin/rebuild-mautrix-meta-instagram.sh\`)." >> $instagram_role_path/README.md echo "This bridge role is derived from the matrix-mautrix-meta-messenger Ansible role via automatic changes (see \`just rebuild-mautrix-meta-instagram\` or \`bin/rebuild-mautrix-meta-instagram.sh\`)." >> $instagram_role_path/README.md
echo "" >> $instagram_role_path/README.md echo "" >> $instagram_role_path/README.md

View File

@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
# Table of Contents # Table of Contents
## ⬇️ Installaton guides <!-- NOTE: the 🚀 emoji is used by "Getting started" on README.md --> ## ⬇️ Installation guides <!-- NOTE: the 🚀 emoji is used by "Getting started" on README.md -->
There are two installation guides available for beginners and advanced users. There are two installation guides available for beginners and advanced users.

View File

@ -117,7 +117,7 @@ Then, to be asked for the password whenever running an `ansible-playbook` comman
#### Resolve directory ownership issues #### Resolve directory ownership issues
Because you're `root` in the container running Ansible and this likely differs fom the owner (your regular user account) of the playbook directory outside of the container, certain playbook features which use `git` locally may report warnings such as: Because you're `root` in the container running Ansible and this likely differs from the owner (your regular user account) of the playbook directory outside of the container, certain playbook features which use `git` locally may report warnings such as:
> fatal: unsafe repository ('/work' is owned by someone else) > fatal: unsafe repository ('/work' is owned by someone else)
> To add an exception for this directory, call: > To add an exception for this directory, call:

View File

@ -58,7 +58,7 @@ Doing this:
> [!WARNING] > [!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. > 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. > As such, containers will only have an IPv4 address and all IPv6 traffic that reaches them will seem to originate from a local IP. Containers also won't be able to make outgoing (even cross-container) IPv6 requests.
To confirm connectivity, see the following other resources: To confirm connectivity, see the following other resources:

View File

@ -105,16 +105,12 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -35,16 +35,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -45,7 +45,7 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/
```yaml ```yaml
matrix_appservice_draupnir_for_all_enabled: true matrix_appservice_draupnir_for_all_enabled: true
matrix_appservice_draupnir_for_all_master_control_room_alias: "MANAGEMENT_ROOM_ALIAS_HERE" matrix_appservice_draupnir_for_all_config_adminRoom: "MANAGEMENT_ROOM_ALIAS_HERE"
``` ```
### Extending the configuration ### Extending the configuration
@ -95,13 +95,13 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
## Usage ## Usage
If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have succesfully installed Draupnir for All and can now start using it. If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have successfully installed Draupnir for All and can now start using it.
The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode. The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode.
### Granting Users the ability to use D4A ### Granting Users the ability to use D4A
Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended. Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recommendation. Using the chat is recommended.
The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297)) The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))

View File

@ -14,6 +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. 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.
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 [Ansible role for BorgBackup](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring BorgBackup, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/docs/configuring-backup-borg.md) online - 🌐 [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) - 📁 `roles/galaxy/backup_borg/docs/configuring-backup-borg.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)

View File

@ -242,7 +242,7 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "YOUR_
# matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" # matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}"
# If you'd like to use another text-generation agent, uncomment and adjust: # If you'd like to use another text-generation agent, uncomment and adjust:
# matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4o # matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4.1
``` ```
Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`. Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`.

View File

@ -57,7 +57,7 @@ matrix_bot_chatgpt_openai_api_key: 'API_KEY_HERE'
matrix_bot_chatgpt_matrix_access_token: 'ACCESS_TOKEN_HERE' matrix_bot_chatgpt_matrix_access_token: 'ACCESS_TOKEN_HERE'
# Configuring the system promt used, needed if the bot is used for special tasks. # Configuring the system prompt used, needed if the bot is used for special tasks.
# More information: https://github.com/mustvlad/ChatGPT-System-Prompts # More information: https://github.com/mustvlad/ChatGPT-System-Prompts
matrix_bot_chatgpt_matrix_bot_prompt_prefix: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.' matrix_bot_chatgpt_matrix_bot_prompt_prefix: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.'
``` ```

View File

@ -54,11 +54,11 @@ To enable the native E2EE support, add the following configuration to your `vars
```yaml ```yaml
# Enables the native E2EE support # Enables the native E2EE support
matrix_bot_draupnir_enable_experimental_rust_crypto: true matrix_bot_draupnir_config_experimentalRustCrypto: true
# Access token which the bot will use for logging in. # Access token which the bot will use for logging in.
# Comment out `matrix_bot_draupnir_login_native` when using this option. # Comment out `matrix_bot_draupnir_login_native` when using this option.
matrix_bot_draupnir_access_token: "CLEAN_ACCESS_TOKEN_HERE" matrix_bot_draupnir_config_accessToken: "CLEAN_ACCESS_TOKEN_HERE"
``` ```
## Adjusting the playbook configuration ## Adjusting the playbook configuration
@ -73,13 +73,13 @@ matrix_bot_draupnir_enabled: true
# matrix_bot_draupnir_login: bot.draupnir # matrix_bot_draupnir_login: bot.draupnir
# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. # Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`.
# If creating the user on your own and using `matrix_bot_draupnir_access_token` to login you can comment out this line. # If creating the user on your own and using `matrix_bot_draupnir_config_accessToken` to login you can comment out this line.
matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT
# Comment out if using `matrix_bot_draupnir_enable_experimental_rust_crypto: true` or `matrix_bot_draupnir_access_token` to login. # Comment out if using `matrix_bot_draupnir_config_experimentalRustCrypto: true` or `matrix_bot_draupnir_config_accessToken` to login.
matrix_bot_draupnir_login_native: true matrix_bot_draupnir_login_native: true
matrix_bot_draupnir_management_room: "MANAGEMENT_ROOM_ID_HERE" matrix_bot_draupnir_config_managementRoom: "MANAGEMENT_ROOM_ID_HERE"
``` ```
### Create and invite the bot to the management room ### Create and invite the bot to the management room
@ -142,9 +142,23 @@ Draupnir can receive reports in the management room.
The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you: The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:
```yaml ```yaml
matrix_bot_draupnir_abuse_reporting_enabled: true matrix_bot_draupnir_config_web_abuseReporting: true
``` ```
### Enabling synapse-http-antispam support
Certain protections in Draupnir require the [synapse-http-antispam](https://github.com/maunium/synapse-http-antispam) module and a Synapse homeserver plus homeserver admin status to function. This module can be enabled in the playbook via setting `matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled` to `true` and making sure that Draupnir admin API access is enabled.
```yaml
# Enables the integration between Draupnir and synapse-http-antispam module.
matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled: true
# Enables draupnir to access Synapse admin APIs. This is required for the module functionality to take full effect.
matrix_bot_draupnir_admin_api_enabled: true
```
These protections need to be manually activated and consulting the [enabling protections](#enabling-built-in-protections) guide can be helpful or consulting upstream documentation.
<!-- <!--
NOTE: this is unsupported by the playbook due to the admin API being inaccessible from containers currently. NOTE: this is unsupported by the playbook due to the admin API being inaccessible from containers currently.
@ -190,9 +204,15 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
``` ```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` **Notes**:
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. - The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account.
- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.
- If you change the bot password (`matrix_bot_draupnir_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_draupnir_password` to let the bot know its new password.
## Usage ## Usage
@ -222,7 +242,7 @@ For Draupnir to do its job, you need to [give it permissions](https://the-draupn
We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms). We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms).
Polcy lists are maintained in Matrix rooms. A popular policy list is maintained in the public `#community-moderation-effort-bl:neko.dev` room. Policy lists are maintained in Matrix rooms. A popular policy list is maintained in the public `#community-moderation-effort-bl:neko.dev` room.
You can tell Draupnir to subscribe to it by sending the following command to the Management Room: `!draupnir watch #community-moderation-effort-bl:neko.dev` You can tell Draupnir to subscribe to it by sending the following command to the Management Room: `!draupnir watch #community-moderation-effort-bl:neko.dev`

View File

@ -245,16 +245,12 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -77,7 +77,7 @@ Send `help` to the bot to see the available commands.
You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands). You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands).
If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de). If you have any questions, or if you need help setting it up, read the [troubleshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md) or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de).
To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use: To clean the cache (session & encryption data) after you changed the bot's username, changed the login method from access_token to password etc… you can use:

View File

@ -189,13 +189,11 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: **Notes**:
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account.
- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` - The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.

View File

@ -52,16 +52,13 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.
## Self-Service Bridging (Manual) ## Self-Service Bridging (Manual)

View File

@ -84,16 +84,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -49,16 +49,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -94,16 +94,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -47,16 +47,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -3,7 +3,7 @@ SPDX-FileCopyrightText: 2021 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2021 Alexandar Mechev SPDX-FileCopyrightText: 2021 Alexandar Mechev
SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2023 Kuba Orlik SPDX-FileCopyrightText: 2023 Kuba Orlik
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -46,16 +46,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -1,6 +1,6 @@
<!-- <!--
SPDX-FileCopyrightText: 2022 Vladimir Panteleev SPDX-FileCopyrightText: 2022 Vladimir Panteleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -43,16 +43,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -65,16 +65,12 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -103,7 +103,6 @@ Unless indicated otherwise, the following endpoints are reachable on your `matri
| github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" | | github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" |
| jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_hookshot_jira_oauth_endpoint` | Jira OAuth | | jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_hookshot_jira_oauth_endpoint` | Jira OAuth |
| figma endpoint | `/hookshot/webhooks/figma/webhook` | `matrix_hookshot_figma_endpoint` | Figma | | figma endpoint | `/hookshot/webhooks/figma/webhook` | `matrix_hookshot_figma_endpoint` | Figma |
| provisioning | `/hookshot/v1/` | `matrix_hookshot_provisioning_endpoint` | Dimension [provisioning](#provisioning-api) |
| appservice | `/hookshot/_matrix/app/` | `matrix_hookshot_appservice_endpoint` | Matrix server | | appservice | `/hookshot/_matrix/app/` | `matrix_hookshot_appservice_endpoint` | Matrix server |
| widgets | `/hookshot/widgetapi/` | `matrix_hookshot_widgets_endpoint` | Widgets | | widgets | `/hookshot/widgetapi/` | `matrix_hookshot_widgets_endpoint` | Widgets |
@ -126,16 +125,12 @@ aux_file_definitions:
- dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}" - dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}" content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}"
mode: '0400' mode: '0400'
owner: "{{ matrix_user_username }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_user_groupname }}" group: "{{ matrix_group_name }}"
``` ```
For more information, see the documentation in the [default configuration of the aux role](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml). For more information, see the documentation in the [default configuration of the aux role](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml).
### Provisioning API
The provisioning API will be enabled automatically if you set `matrix_dimension_enabled: true` and provided a `matrix_hookshot_provisioning_secret`, unless you override it either way. To use hookshot with Dimension, you will need to enter as "Provisioning URL": `http://matrix-hookshot:9002`, which is made up of the variables `matrix_hookshot_container_url` and `matrix_hookshot_provisioning_port`.
### Collision with matrix-appservice-webhooks ### Collision with matrix-appservice-webhooks
If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`). If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`).
@ -172,7 +167,7 @@ To `matrix_hookshot_container_labels_metrics_middleware_basic_auth_users`, set t
#### Enable Grafana (optional) #### Enable Grafana (optional)
Probably you wish to enable Grafana along with Prometheus for generating graphs of the metics. Probably you wish to enable Grafana along with Prometheus for generating graphs of the metrics.
To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions. To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions.

View File

@ -54,16 +54,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -1,6 +1,7 @@
<!-- <!--
SPDX-FileCopyrightText: 2025 MDAD project contributors SPDX-FileCopyrightText: 2025 MDAD project contributors
SPDX-FileCopyrightText: 2025 Slavi Pantaleev SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -57,7 +58,7 @@ To use the bridge, you need to start a chat with `@blueskybot:example.com` (wher
You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/bluesky/authentication.html). 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. After logging in, the bridge will create portal rooms for recent chats. Portal rooms for other chats will be created as you receive messages.
## Troubleshooting ## Troubleshooting

View File

@ -153,16 +153,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -57,16 +57,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -50,16 +50,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -43,16 +43,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -46,16 +46,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage
@ -63,7 +59,7 @@ To use the bridge, you need to start a chat with `@googlechatbot:example.com` (w
You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html). You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/googlechat/authentication.html).
After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages. After logging in, the bridge will create portal rooms for recent chats. Portal rooms for other chats will be created as you receive messages.
## Troubleshooting ## Troubleshooting

View File

@ -37,16 +37,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -58,16 +58,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -72,16 +72,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -56,16 +56,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -54,16 +54,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -88,16 +88,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -46,16 +46,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage
@ -63,7 +59,7 @@ To use the bridge, you need to start a chat with `@twitterbot:example.com` (wher
You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html). You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/twitter/authentication.html).
After logging in, the bridge will create portal rooms for some recent chats. Portal rooms for other chats will be created as you receive messages. After logging in, the bridge will create portal rooms for recent chats. Portal rooms for other chats will be created as you receive messages.
## Troubleshooting ## Troubleshooting

View File

@ -6,7 +6,7 @@ SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 Marko Weltzer SPDX-FileCopyrightText: 2022 Marko Weltzer
SPDX-FileCopyrightText: 2023 James Collier SPDX-FileCopyrightText: 2023 James Collier
SPDX-FileCopyrightText: 2023 Kuba Orlik SPDX-FileCopyrightText: 2023 Kuba Orlik
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -49,16 +49,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -61,20 +61,16 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage
Follow the [mautrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s). Follow the [mautrix-imessage documentation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s).
## Troubleshooting ## Troubleshooting

View File

@ -2,7 +2,7 @@
SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev SPDX-FileCopyrightText: 2020 - 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Hugues Morisset SPDX-FileCopyrightText: 2020 Hugues Morisset
SPDX-FileCopyrightText: 2022 MDAD project contributors SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -31,16 +31,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -2,7 +2,7 @@
SPDX-FileCopyrightText: 2021 Cody Neiman SPDX-FileCopyrightText: 2021 Cody Neiman
SPDX-FileCopyrightText: 2021 Slavi Pantaleev SPDX-FileCopyrightText: 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman SPDX-FileCopyrightText: 2022 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -27,16 +27,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -1,6 +1,6 @@
<!-- <!--
SPDX-FileCopyrightText: 2021 MDAD project contributors SPDX-FileCopyrightText: 2021 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -25,16 +25,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -4,7 +4,7 @@ SPDX-FileCopyrightText: 2020 Rodrigo Belem
SPDX-FileCopyrightText: 2021 Marcel Ackermann SPDX-FileCopyrightText: 2021 Marcel Ackermann
SPDX-FileCopyrightText: 2022 Jim Myhrberg SPDX-FileCopyrightText: 2022 Jim Myhrberg
SPDX-FileCopyrightText: 2022 Nikita Chernyi SPDX-FileCopyrightText: 2022 Nikita Chernyi
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -38,16 +38,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -2,7 +2,7 @@
SPDX-FileCopyrightText: 2020 - 2021 Slavi Pantaleev SPDX-FileCopyrightText: 2020 - 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2020 Hugues Morisset SPDX-FileCopyrightText: 2020 Hugues Morisset
SPDX-FileCopyrightText: 2020 Panagiotis Vasilopoulos SPDX-FileCopyrightText: 2020 Panagiotis Vasilopoulos
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -27,16 +27,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -1,7 +1,7 @@
<!-- <!--
SPDX-FileCopyrightText: 2020 Tulir Asokan SPDX-FileCopyrightText: 2020 Tulir Asokan
SPDX-FileCopyrightText: 2021 Slavi Pantaleev SPDX-FileCopyrightText: 2021 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -37,16 +37,12 @@ After configuring the playbook, run it with [playbook tags](playbook-tags.md) as
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -2,7 +2,7 @@
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
SPDX-FileCopyrightText: 2023 MDAD project contributors SPDX-FileCopyrightText: 2023 MDAD project contributors
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -86,16 +86,12 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -65,6 +65,7 @@ Find the `registration.yaml` in the `/matrix` directory, for example `/matrix/ma
``` ```
as_token: <token> as_token: <token>
de.sorunome.msc2409.push_ephemeral: true de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
hs_token: <token> hs_token: <token>
id: signal id: signal
namespaces: namespaces:

View File

@ -18,6 +18,7 @@ By default, the playbook installs [Synapse](https://github.com/element-hq/synaps
> [!WARNING] > [!WARNING]
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet. > - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding > - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding
> - **the Conduwuit project appears to have been abandoned**. You may wish to install [Conduit](./configuring-playbook-conduit.md), or one of the Conduwuit successors (like [Continuwuity](configuring-playbook-continuwuity.md))
## Adjusting the playbook configuration ## Adjusting the playbook configuration
@ -83,6 +84,7 @@ Then, send its content to the existing admin room:
``` ```
as_token: <token> as_token: <token>
de.sorunome.msc2409.push_ephemeral: true de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
hs_token: <token> hs_token: <token>
id: signal id: signal
namespaces: namespaces:

View File

@ -0,0 +1,117 @@
<!--
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Configuring Continuwuity (optional)
The playbook can install and configure the [Continuwuity](https://continuwuity.org) Matrix server for you.
See the project's [documentation](https://continuwuity.org) to learn what it does and why it might be useful to you.
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
💡 **Note**: continuwuity is a fork of [conduwuit](./configuring-playbook-conduwuit.md), which the playbook also supports.
> [!WARNING]
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Continuwuity). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding
## Adjusting the playbook configuration
To use Continuwuity, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:
```yaml
matrix_homeserver_implementation: continuwuity
# Registering users can only happen via the API,
# so it makes sense to enable it, at least initially.
matrix_continuwuity_config_allow_registration: true
# Generate a strong registration token to protect the registration endpoint from abuse.
# You can create one with a command like `pwgen -s 64 1`.
matrix_continuwuity_config_registration_token: ''
```
### Extending the configuration
There are some additional things you may wish to configure about the server.
Take a look at:
- `roles/custom/matrix-continuwuity/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-continuwuity/templates/continuwuity.toml.j2` for the server's default configuration
There are various Ansible variables that control settings in the `continuwuity.toml` file.
If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://continuwuity.org/configuration#environment-variables) using `matrix_continuwuity_environment_variables_extension`. For example:
```yaml
matrix_continuwuity_environment_variables_extension: |
continuwuity_MAX_REQUEST_SIZE=50000000
continuwuity_REQUEST_TIMEOUT=60
```
## Creating the first user account
Unlike other homeserver implementations (like Synapse and Dendrite), continuwuity does not support creating users via the command line or via the playbook.
If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token.
This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users.
The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**.
## Configuring bridges / appservices
For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver.
For continuwuity, you will have to manually register appservices using the [`!admin appservices register` command](https://continuwuity.org/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account.
The server's bot account has a Matrix ID of `@conduit:example.com` (not `@continuwuity:example.com`!) due to continuwuity's historical legacy.
Your first user account would already have been invited to an admin room with this bot.
Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`.
Then, send its content to the existing admin room:
!admin appservices register
```
as_token: <token>
de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
hs_token: <token>
id: signal
namespaces:
aliases:
- exclusive: true
regex: ^#signal_.+:example\.org$
users:
- exclusive: true
regex: ^@signal_.+:example\.org$
- exclusive: true
regex: ^@signalbot:example\.org$
rate_limited: false
sender_localpart: _bot_signalbot
url: http://matrix-mautrix-signal:29328
```
## Migrating from conduwuit
Since Continuwuity is a drop-in replacement for [conduwuit](configuring-playbook-conduwuit.md), migration is possible.
1. Make sure that Continuwuity is properly set up on your `vars.yml` as described above
2. Make sure that Conduwuit references are removed from your `vars.yml` file
3. Run the installation in a way that installs new services and uninstalls old ones (e.g. `just setup-all`)
4. Run the playbook with the `continuwuity-migrate-from-conduwuit` tag (e.g. `just run-tags continuwuity-migrate-from-conduwuit`). This migrates data from `/matrix/conduwuit` to `/matrix/continuwuity`
## 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-continuwuity`.

View File

@ -14,7 +14,7 @@ Most cloud providers / ISPs will charge you extra for a static IP address. If yo
## Prerequisite ## Prerequisite
You'll need to get a username and password from your DNS provider. Please consult with the provider about how to retrieve them. You'll need to authenticate with your DNS provider somehow, in most cases this is simply a username and password but can differ from provider to provider. Please consult with your providers documentation and the upstream [ddclient documentation](https://github.com/ddclient/ddclient/blob/main/ddclient.conf.in) to determine what you'll need to provide to authenticate.
## Adjusting the playbook configuration ## Adjusting the playbook configuration
@ -31,6 +31,8 @@ matrix_dynamic_dns_domain_configurations:
domain: "{{ matrix_domain }}" domain: "{{ matrix_domain }}"
``` ```
Keep in mind that certain providers may require a different configuration of the `matrix_dynamic_dns_domain_configurations` variable, for provider specific examples see the [upstream documentation](https://github.com/ddclient/ddclient/blob/main/ddclient.conf.in).
### Extending the configuration ### Extending the configuration
There are some additional things you may wish to configure about the component. There are some additional things you may wish to configure about the component.
@ -57,7 +59,8 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
Additional resources: Additional resources:
- https://matrix.org/docs/guides/free-small-matrix-server - https://matrix.org/docs/guides/free-small-matrix-server
- https://github.com/linuxserver/docker-ddclient
## Troubleshooting ## Troubleshooting
As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-dynamic-dns`. As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-dynamic-dns`. However, due to an [upstream issue](https://github.com/linuxserver/docker-ddclient/issues/54#issuecomment-1153143132) the logging output is not always complete. For advanced debugging purposes running the `ddclient` tool outside of the container is useful via the following: `ddclient -file ./ddclient.conf -daemon=0 -debug -verbose -noquiet`.

View File

@ -0,0 +1,122 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Element Call (optional)
The playbook can install and configure [Element Call](https://github.com/element-hq/element-call) and its supporting components that are part of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md).
Element Call is a native Matrix video conferencing application developed by [Element](https://element.io), designed for secure, scalable, privacy-respecting, and decentralized video and voice calls over the Matrix protocol. Built on MatrixRTC ([MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)), it utilizes [MSC4195](https://github.com/hughns/matrix-spec-proposals/blob/hughns/matrixrtc-livekit/proposals/4195-matrixrtc-livekit.md) with [LiveKit Server](configuring-playbook-livekit-server.md) as its backend.
See the project's [documentation](https://github.com/element-hq/element-call) to learn more.
## Prerequisites
- A [Synapse](configuring-playbook-synapse.md) homeserver (see the warning below)
- The [Matrix RTC (Real-Time Communication) stack](configuring-playbook-matrix-rtc.md) (automatically done when Element Call is enabled)
- A client compatible with Element Call. As of 2025-03-15, that's just [Element Web](configuring-playbook-client-element-web.md) and the Element X mobile clients (iOS and Android).
- (Optional) Guest accounts being enabled for your Matrix server, if you'd like guests to be able to use Element Call. See [Allowing guests to use Element Call](#allowing-guests-to-use-element-call-optional)
> [!WARNING]
> Because Element Call [requires](https://github.com/element-hq/element-call/blob/93ae2aed9841e0b066d515c56bd4c122d2b591b2/docs/self-hosting.md#a-matrix-homeserver) a few experimental features in the Matrix protocol, it's **very likely that it only works with the Synapse homeserver**.
## Decide between Element Call vs just the Matrix RTC stack
All clients that can currently use Element Call (Element Web and Element X on mobile) already embed the Element Call frontend within them.
These **clients will use their own embedded Element Call frontend**, so **self-hosting the Element Call frontend by the playbook is largely unnecessary**.
💡 A reason you may wish to continue installing the Element Call frontend (despite Matrix clients not making use of it), is if you need to use it standalone - directly via a browser (without a Matrix client). Note that unless you [allow guest accounts to use Element Call](#allowing-guests-to-use-element-call-optional), you will still need a Matrix user account **on the same homeserver** to be able to use Element Call.
The playbook makes a distinction between enabling Element Call (`matrix_element_call_enabled`) and enabling the Matrix RTC Stack (`matrix_rtc_enabled`). Enabling Element Call automatically enables the Matrix RTC stack. Because installing the Element Call frontend is now unnecessary, **we recommend only installing the Matrix RTC stack, without the Element Call frontend**.
| Description / Variable | Element Call frontend | [LiveKit Server](configuring-playbook-livekit-server.md) | [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) |
|------------------------|-----------------------|----------------|---------------------|
| Description | Static website that provides the Element Call UI (but often embedded by clients) | Scalable, multi-user conferencing solution based on WebRTC | A helper component that allows Element Call to integrate with LiveKit Server |
| Required for Element Call to function | No | Yes | Yes |
| `matrix_element_call_enabled` | ✅ Installed | ✅ Installed | ✅ Installed |
| `matrix_rtc_enabled` | ❌ Not Installed, but usually unnecessary | ✅ Installed | ✅ Installed |
All documentation below assumes that you've decided to install Element Call and not just the Matrix RTC stack.
## Decide on a domain and path
By default, the Element Call frontend is configured to be served on the `call.element.example.com` domain.
If you'd like to run Element Call on another hostname, see the [Adjusting the Element Call URL](#adjusting-the-element-call-url-optional) section below.
## Adjusting DNS records
By default, this playbook installs Element Call on the `call.element.` subdomain (`call.element.example.com`) and requires you to create a `CNAME` record for `call.element`, which targets `matrix.example.com`.
When setting these values, replace `example.com` with your own.
All dependency services for Element Call ([LiveKit Server](configuring-playbook-livekit-server.md) and [Livekit JWT Service](configuring-playbook-livekit-jwt-service.md)) are installed and configured automatically by the playbook. By default, these services are installed on subpaths on the `matrix.` domain (e.g. `/livekit-server`, `/livekit-jwt-service`), so no DNS record adjustments are required for them.
## Adjusting firewall rules
In addition to the HTTP/HTTPS ports (which you've already exposed as per the [prerequisites](prerequisites.md) document), you'll also need to open ports required by [LiveKit Server](configuring-playbook-livekit-server.md) as described in its own [Adjusting firewall rules](configuring-playbook-livekit-server.md#adjusting-firewall-rules) section.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
# Enable the Element Call frontend UI to allow standalone use of Element Call.
# Enabling this also auto-enables the Matrix RTC stack.
matrix_element_call_enabled: true
```
### Adjusting the Element Call URL (optional)
By tweaking the `matrix_element_call_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
Example additional configuration for your `vars.yml` file:
```yaml
matrix_element_call_hostname: element-call.example.com
```
> [!WARNING]
> A `matrix_element_call_path_prefix` variable is also available and mean to let you configure a path prefix for the Element Call service, but [Element Call does not support running under a sub-path yet](https://github.com/element-hq/element-call/issues/3084).
### Allowing guests to use Element Call (optional)
By default, Element Call can only be used by people having accounts on your Matrix server.
If you'd like guests to be able to use Element Call as well, you need to enable guest accounts support for your homeserver.
> [!WARNING]
> Enabling guest accounts means that your homeserver's user database may get polluted with guest account signups (potentially made by bots).
> Guest accounts should be limited in what (damage) they can do to your server and the rest of the Matrix ecosystem, but it's better to not enable them unless necessary.
For [Synapse](configuring-playbook-synapse.md) (the default homeserver implementation), the configuration is like this:
```yml
matrix_synapse_allow_guest_access: true
```
For [Dendrite](configuring-playbook-dendrite.md), the configuration is like this:
```yml
matrix_dendrite_guests_disabled: false
```
## Installing
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records) and [adjusting firewall rules](#adjusting-firewall-rules), run the playbook with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## Usage
Once installed, Element Call integrates seamlessly with Matrix clients like [Element Web](configuring-playbook-client-element-web.md) and Element X on mobile (iOS and Android).

View File

@ -13,7 +13,7 @@ By default, this playbook sets up an [Exim](https://www.exim.org/) relay SMTP ma
**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. **With the default setting, exim-relay attempts to deliver emails directly with the address `matrix@matrix.example.com`**, as specified by the `exim_relay_sender_address` playbook variable. See below if you want to configure the playbook to relay email through another SMTP server.
The Ansible role for exim-relay 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 [Ansible role for exim-relay](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring exim-relay, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay/blob/main/docs/configuring-exim-relay.md) online - 🌐 [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) - 📁 `roles/galaxy/exim_relay/docs/configuring-exim-relay.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)

View File

@ -18,7 +18,8 @@ Etherpad is an open source collaborative text editor. It can not only be integra
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. 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 [Ansible role for Etherpad](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring Etherpad, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-etherpad/blob/main/docs/configuring-etherpad.md) online - 🌐 [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) - 📁 `roles/galaxy/etherpad/docs/configuring-etherpad.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)
@ -85,16 +86,12 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> <!-- 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 ```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` ```
**Notes**: The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the Etherpad admin user (`etherpad_admin_username`). `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If 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.
- 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 ## Usage

View File

@ -20,7 +20,9 @@ The playbook can install and configure the [Jitsi](https://jitsi.org/) video-con
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. Jitsi is an open source video-conferencing platform. It can not only be integrated with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS) as a widget, but also be used as standalone web app.
The Ansible role for Jitsi 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: 💡 If you're into experimental technology, you may also be interested in trying out [Element Call](configuring-playbook-element-call.md) - a native Matrix video conferencing application.
The [Ansible role for Jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring Jitsi, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/docs/configuring-jitsi.md) online - 🌐 [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) - 📁 `roles/galaxy/jitsi/docs/configuring-jitsi.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)

View File

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

View File

@ -0,0 +1,18 @@
<!--
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up LiveKit JWT Service (optional)
The playbook can install and configure [LiveKit JWT Service](https://github.com/element-hq/lk-jwt-service/) for you.
This is a helper component which is part of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) that allows [Element Call](configuring-playbook-element-call.md) to integrate with [LiveKit Server](configuring-playbook-livekit-server.md).
💡 LiveKit JWT Service is automatically installed and configured when either [Element Call](configuring-playbook-element-call.md) or the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) is enabled, so you don't need to do anything extra.
Take a look at:
- `roles/custom/matrix-livekit-jwt-service/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-livekit-jwt-service/templates/env.j2` for the component's default configuration.

View File

@ -0,0 +1,38 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up LiveKit Server (optional)
The playbook can install and configure [LiveKit Server](https://github.com/livekit/livekit) for you.
LiveKit Server is an open source project that provides scalable, multi-user conferencing based on WebRTC. It's designed to provide everything you need to build real-time video audio data capabilities in your applications.
💡 LiveKit Server is automatically installed and configured when either [Element Call](configuring-playbook-element-call.md) or the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) is enabled, so you don't need to do anything extra.
The [Ansible role for LiveKit Server](https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring LiveKit Server, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server/blob/main/docs/configuring-livekit-server.md) online
- 📁 `roles/galaxy/livekit-server/docs/configuring-livekit-server.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)
## Adjusting firewall rules
To ensure LiveKit Server functions correctly, the following firewall rules and port forwarding settings are required:
- `7881/tcp`: ICE/TCP
- `7882/udp`: ICE/UDP Mux
- `3479/udp`: TURN/UDP. Also see the [Limitations](#limitations) section below.
- `5350/tcp`: TURN/TCP. Also see the [Limitations](#limitations) section below.
💡 The suggestions above are inspired by the upstream [Ports and Firewall](https://docs.livekit.io/home/self-hosting/ports-firewall/) documentation based on how LiveKit is configured in the playbook. If you've using custom configuration for the LiveKit Server role, you may need to adjust the firewall rules accordingly.
## Limitations
For some reason, LiveKit Server's TURN ports (`3479/udp` and `5350/tcp`) are not reachable over IPv6 regardless of whether you've [enabled IPv6](./configuring-ipv6.md) for your server.
It seems like LiveKit Server intentionally only listens on `udp4` and `tcp4` as seen [here](https://github.com/livekit/livekit/blob/154b4d26b769c68a03c096124094b97bf61a996f/pkg/service/turn.go#L128) and [here](https://github.com/livekit/livekit/blob/154b4d26b769c68a03c096124094b97bf61a996f/pkg/service/turn.go#L92).

View File

@ -41,7 +41,7 @@ Below, we'll try to **highlight some potential reasons for switching** to Matrix
## Prerequisites ## Prerequisites
- ⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet. - ⚠️ the [Synapse](configuring-playbook-synapse.md) homeserver implementation (which is the default for this playbook). Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating with Matrix Authentication Service yet.
-**disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below. -**disabling all password providers** for Synapse (things like [shared-secret-auth](./configuring-playbook-shared-secret-auth.md), [rest-auth](./configuring-playbook-rest-auth.md), [LDAP auth](./configuring-playbook-ldap-auth.md), etc.) More details about this are available in the [Expectations](#expectations) section below.
@ -55,15 +55,13 @@ This section details what you can expect when switching to the Matrix Authentica
-**Some services experience issues when authenticating via MAS**: -**Some services experience issues when authenticating via MAS**:
- [Postmoogle](./configuring-playbook-bridge-postmoogle.md) works the first time around, but it consistently fails after restarting: - [Reminder bot](configuring-playbook-bot-matrix-reminder-bot.md) seems to be losing some of its state on each restart and may reschedule old reminders once again
> cannot initialize matrix bot error="olm account is marked as shared, keys seem to have disappeared from the server"
-**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). -**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. - ⚠️ [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.
- ⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependant on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch. - ⚠️ Delegating user authentication to MAS causes **your Synapse server to be completely dependent on one more service** for its operations. MAS is quick & lightweight and should be stable enough already, but this is something to keep in mind when making the switch.
- ⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration). - ⚠️ If you've got [OIDC configured in Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on), you will need to migrate your OIDC configuration to MAS by adding an [Upstream OAuth2 configuration](#upstream-oauth2-configuration).
@ -87,7 +85,7 @@ For new homeservers (which don't have any users in their Synapse database yet),
### Existing homeserver ### Existing homeserver
Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating wtih Matrix Authentication Service yet. Other homeserver implementations ([Dendrite](./configuring-playbook-dendrite.md), [Conduit](./configuring-playbook-conduit.md), etc.) do not support integrating with Matrix Authentication Service yet.
For existing Synapse homeservers: For existing Synapse homeservers:
@ -159,6 +157,10 @@ matrix_authentication_service_config_upstream_oauth2_providers:
- # A unique identifier for the provider - # A unique identifier for the provider
# Must be a valid ULID # Must be a valid ULID
id: 01HFVBY12TMNTYTBV8W921M5FA id: 01HFVBY12TMNTYTBV8W921M5FA
# This can be set if you're migrating an existing (legacy) Synapse OIDC configuration.
# The value used here would most likely be "oidc" or "oidc-provider".
# See: https://element-hq.github.io/matrix-authentication-service/setup/migration.html#map-any-upstream-sso-providers
synapse_idp_id: null
# The issuer URL, which will be used to discover the provider's configuration. # The issuer URL, which will be used to discover the provider's configuration.
# If discovery is enabled, this *must* exactly match the `issuer` field # If discovery is enabled, this *must* exactly match the `issuer` field
# advertised in `<issuer>/.well-known/openid-configuration`. # advertised in `<issuer>/.well-known/openid-configuration`.
@ -306,7 +308,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide. Our migration guide is loosely based on the upstream [Migrating an existing homeserver](https://element-hq.github.io/matrix-authentication-service/setup/migration.html) guide.
Migration is done via a tool called `syn2mas`, which the playbook could run for you (in a container). Migration is done via a sub-command called `syn2mas`, which the playbook could run for you (in a container).
The installation + migration steps are like this: The installation + migration steps are like this:
@ -322,7 +324,7 @@ The installation + migration steps are like this:
- The `matrix-user-creator` role would be suppressed, so that it doesn't automatically attempt to create users (for bots, etc.) in the MAS database. These user accounts likely already exist in Synapse's user database and could be migrated over (via syn2mas, as per the steps below), so creating them in the MAS database would have been unnecessary and potentially problematic (conflicts during the syn2mas migration). - The `matrix-user-creator` role would be suppressed, so that it doesn't automatically attempt to create users (for bots, etc.) in the MAS database. These user accounts likely already exist in Synapse's user database and could be migrated over (via syn2mas, as per the steps below), so creating them in the MAS database would have been unnecessary and potentially problematic (conflicts during the syn2mas migration).
3. Consider taking a full [backup of your Postgres database](./maintenance-postgres.md#backing-up-postgresql). This is done just in case. The **syn2mas migration tool does not delete any data**, so it should be possible to revert to your previous setup by merely disabling MAS and re-running the playbook (no need to restore a Postgres backup). However, do note that as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break. 3. Consider taking a full [backup of your Postgres database](./maintenance-postgres.md#backing-up-postgresql). This is done just in case. The **syn2mas migration command does not delete any data**, so it should be possible to revert to your previous setup by merely disabling MAS and re-running the playbook (no need to restore a Postgres backup). However, do note that as users start logging in (creating new login sessions) via the new MAS setup, disabling MAS and reverting back to the Synapse user database will cause these new sessions to break.
4. [Migrate your data from Synapse to Matrix Authentication Service using syn2mas](#migrate-your-data-from-synapse-to-matrix-authentication-service-using-syn2mas) 4. [Migrate your data from Synapse to Matrix Authentication Service using syn2mas](#migrate-your-data-from-synapse-to-matrix-authentication-service-using-syn2mas)
@ -342,9 +344,7 @@ The installation + migration steps are like this:
### Migrate your data from Synapse to Matrix Authentication Service using syn2mas ### Migrate your data from Synapse to Matrix Authentication Service using syn2mas
We **don't** ask you to [run the `syn2mas` migration advisor command](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#run-the-migration-advisor), because it only gives you the green light if your Synapse configuration (`homeserver.yaml`) is configured in a way that's compatible with MAS (delegating authentication to MAS; disabling Synapse's password config; etc.). Until we migrate your data with the `syn2mas` tool, we intentionally avoid doing these changes to allow existing user sessions to work. You can invoke the `syn2mas` tool via the playbook by running the playbook's `matrix-authentication-service-mas-cli-syn2mas` tag. We recommend first doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration).
You can invoke the `syn2mas` tool via the playbook by running the playbook's `matrix-authentication-service-syn2mas` tag. We recommend first doing a [dry-run](#performing-a-syn2mas-dry-run) and then a [real migration](#performing-a-real-syn2mas-migration).
#### Configuring syn2mas #### Configuring syn2mas
@ -356,26 +356,9 @@ When you're done with potentially configuring `syn2mas`, proceed to doing a [dry
##### Configuring upstream OIDC provider mapping for syn2mas ##### Configuring upstream OIDC provider mapping for syn2mas
If you have existing OIDC users in your Synapse user database (which will be the case if when using [OIDC with Synapse](./configuring-playbook-synapse.md#synapse--openid-connect-for-single-sign-on)), you may need to pass an additional `--upstreamProviderMapping` argument to the `syn2mas` tool to tell it which provider (on the Synapse side) maps to which other provider on the MAS side. Since Matrix Authentication Service v0.16.0 (which replaced the standalone `syn2mas` tool with a `mas-cli syn2mas` sub-command), OIDC configuration (mapping from your old OIDC configuration to your new one, etc) is meant to be configured in the Matrix Authentication Service configuration (via `matrix_authentication_service_config_upstream_oauth2_providers`) as a `synapse_idp_id` property for each provider.
If you don't do this, `syn2mas` would report errors like this one: You can refer to the [Map any upstream SSO providers](https://element-hq.github.io/matrix-authentication-service/setup/migration.html#map-any-upstream-sso-providers) section of the MAS documentation for figuring out how to set the `synapse_idp_id` value in `matrix_authentication_service_config_upstream_oauth2_providers` correctly.
> [FATAL] migrate - [Failed to import external id 4264b0f0-4f11-4ddd-aedb-b500e4d07c25 with oidc-keycloak for user @alice:example.com: Error: Unknown upstream provider oidc-keycloak]
Below is an example situation and a guide for how to solve it.
If in `matrix_synapse_oidc_providers` your provider `idp_id` is (was) named `keycloak`, in the Synapse database users would be associated with the `oidc-keycloak` provider (note the `oidc-` prefix that was added automatically by Synapse to your `idp_id` value).
The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the MAS side, as defined in `matrix_authentication_service_config_upstream_oauth2_providers` (see the [Upstream OAuth2 configuration](#upstream-oauth2-configuration) section above).
To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `vars.yml` file:
```yaml
# Adjust the mapping below to match your provider IDs on the Synapse side and the MAS side.
# Don't forget that Synapse automatically adds an `oidc-` prefix to provider ids defined in its configuration.
matrix_authentication_service_syn2mas_process_extra_arguments:
- "--upstreamProviderMapping oidc-keycloak:01HFVBY12TMNTYTBV8W921M5FA"
```
#### Performing a syn2mas dry-run #### Performing a syn2mas dry-run
@ -386,7 +369,7 @@ A dry-run would not cause downtime, because it avoids stopping Synapse.
To perform a dry-run, run: To perform a dry-run, run:
```sh ```sh
just run-tags matrix-authentication-service-syn2mas -e matrix_authentication_service_syn2mas_dry_run=true just run-tags matrix-authentication-service-mas-cli-syn2mas -e matrix_authentication_service_syn2mas_migrate_dry_run=true
``` ```
Observe the command output (especially the last line of the the syn2mas output). If you are confident that the migration will work out as expected, you can proceed with a [real migration](#performing-a-real-syn2mas-migration). Observe the command output (especially the last line of the the syn2mas output). If you are confident that the migration will work out as expected, you can proceed with a [real migration](#performing-a-real-syn2mas-migration).
@ -405,13 +388,13 @@ Before performing a real migration make sure:
- you've performed a [syn2mas dry-run](#performing-a-syn2mas-dry-run) and don't see any issues in its output - you've performed a [syn2mas dry-run](#performing-a-syn2mas-dry-run) and don't see any issues in its output
To perform a real migration, run the `matrix-authentication-service-syn2mas` tag **without** the `matrix_authentication_service_syn2mas_dry_run` variable: To perform a real migration, run the `matrix-authentication-service-mas-cli-syn2mas` tag **without** the `matrix_authentication_service_syn2mas_migrate_dry_run` variable:
```sh ```sh
just run-tags matrix-authentication-service-syn2mas just run-tags matrix-authentication-service-mas-cli-syn2mas
``` ```
Having performed a `syn2mas` migration once, trying to do it again will report errors for users that were already migrated (e.g. "Error: Unknown upstream provider oauth-delegated"). Having performed a `syn2mas` migration once, trying to do it again will report errors (e.g. "Error: The MAS database is not empty: rows found in at least `users`. Please drop and recreate the database, then try again.").
## Verify that Matrix Authentication Service is installed correctly ## Verify that Matrix Authentication Service is installed correctly

View File

@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you. The playbook can install and configure [matrix-corporal](https://github.com/devture/matrix-corporal) for you.
In short, it's a sort of automation and firewalling service, which is helpful if you're instaling Matrix services in a controlled corporate environment. In short, it's a sort of automation and firewalling service, which is helpful if you're installing Matrix services in a controlled corporate environment.
See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you. See the project's [documentation](https://github.com/devture/matrix-corporal/blob/main/README.md) to learn what it does and why it might be useful to you.

View File

@ -60,7 +60,7 @@ To `matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_use
#### Enable Grafana (optional) #### Enable Grafana (optional)
Probably you wish to enable Grafana along with Prometheus for generating graphs of the metics. Probably you wish to enable Grafana along with Prometheus for generating graphs of the metrics.
To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions. To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions.

View File

@ -0,0 +1,59 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up the Matrix RTC stack (optional)
The playbook can install and configure the Matrix RTC (Real-Time Communication) stack.
The Matrix RTC stack is a set of supporting components ([LiveKit Server](configuring-playbook-livekit-server.md) and [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md)) that allow the new [Element Call](configuring-playbook-element-call.md) audio/video calls to function.
💡 If you only plan on doing audio/video calls via Matrix client (which typically embed the Element Call frontend UI within them), you only need to install the Matrix RTC stack and don't necessarily need to install [Element Call](configuring-playbook-element-call.md). See the [Decide between Element Call vs just the Matrix RTC stack](configuring-playbook-element-call.md#decide-between-element-call-vs-just-the-matrix-rtc-stack) section of the [Element Call documentation](configuring-playbook-element-call.md) for more details.
## Prerequisites
- A [Synapse](configuring-playbook-synapse.md) homeserver (see the warning below)
- [Federation](configuring-playbook-federation.md) being enabled for your Matrix homeserver (federation is enabled by default, unless you've explicitly disabled it), because [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) currently [requires it](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2725250554) ([relevant source code](https://github.com/element-hq/lk-jwt-service/blob/f5f5374c4bdcc00a4fb13d27c0b28e20e4c62334/main.go#L135-L146))
- Various experimental features for the Synapse homeserver which Element Call [requires](https://github.com/element-hq/element-call/blob/93ae2aed9841e0b066d515c56bd4c122d2b591b2/docs/self-hosting.md#a-matrix-homeserver) (automatically done when Element Call is enabled)
- A [LiveKit Server](configuring-playbook-livekit-server.md) (automatically installed when [Element Call or the Matrix RTC stack is enabled](#decide-between-element-call-vs-just-the-matrix-rtc-stack))
- The [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) (automatically installed when [Element Call or the Matrix RTC stack is enabled](#decide-between-element-call-vs-just-the-matrix-rtc-stack))
- A client compatible with Element Call. As of 2025-03-15, that's just [Element Web](configuring-playbook-client-element-web.md) and the Element X mobile clients (iOS and Android).
> [!WARNING]
> Because Element Call [requires](https://github.com/element-hq/element-call/blob/93ae2aed9841e0b066d515c56bd4c122d2b591b2/docs/self-hosting.md#a-matrix-homeserver) a few experimental features in the Matrix protocol, it's **very likely that it only works with the Synapse homeserver**.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
# Enable the Matrix RTC stack.
# This provides all supporting services for Element Call, without the Element Call frontend.
matrix_rtc_enabled: true
```
## Adjusting firewall rules
In addition to the HTTP/HTTPS ports (which you've already exposed as per the [prerequisites](prerequisites.md) document), you'll also need to open ports required by [LiveKit Server](configuring-playbook-livekit-server.md) as described in its own [Adjusting firewall rules](configuring-playbook-livekit-server.md#adjusting-firewall-rules) section.
## Installing
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records) and [adjusting firewall rules](#adjusting-firewall-rules), run the playbook with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too.
## Usage
Once installed, Matrix clients which support Element Call (like [Element Web](configuring-playbook-client-element-web.md) and Element X on mobile (iOS and Android)) will automatically use the Matrix RTC stack.
These clients typically embed the Element Call frontend UI within them, so installing [Element Call](configuring-playbook-element-call.md) is only necessary if you'd like to use it standalone - directly via a browser.

View File

@ -1,5 +1,6 @@
<!-- <!--
SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2022 - 2024 Nikita Chernyi
SPDX-FileCopyrightText: 2022 Julian Foad SPDX-FileCopyrightText: 2022 Julian Foad
SPDX-FileCopyrightText: 2022 MDAD project contributors SPDX-FileCopyrightText: 2022 MDAD project contributors
SPDX-FileCopyrightText: 2023 Felix Stupp SPDX-FileCopyrightText: 2023 Felix Stupp
@ -10,13 +11,37 @@ SPDX-License-Identifier: AGPL-3.0-or-later
# Setting up the ntfy push notifications server (optional) # Setting up the ntfy push notifications server (optional)
The playbook can install and configure the [ntfy](https://ntfy.sh/) push notifications server for you. The playbook can install and configure the [ntfy](https://ntfy.sh/) (pronounced "notify") push notifications server for you.
Using the [UnifiedPush](https://unifiedpush.org) standard, ntfy enables self-hosted (Google-free) push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix compatible client apps running on Android and other devices. ntfy lets you send push notifications to your phone or desktop via scripts from any computer, using simple HTTP PUT or POST requests. It makes it possible to send/receive notifications, without relying on servers owned and controlled by third parties.
This role is intended to support UnifiedPush notifications for use with the Matrix and Matrix-related services that this playbook installs. This role is not intended to support all of ntfy's other features. With the [UnifiedPush](https://unifiedpush.org) standard, ntfy also enables self-hosted push notifications from Matrix (and other) servers to UnifiedPush-compatible Matrix client apps running on Android devices.
**Note**: In contrast to push notifications using Google's FCM or Apple's APNs, the use of UnifiedPush allows each end-user to choose the push notification server that they prefer. As a consequence, deploying this ntfy server does not by itself ensure any particular user or device or client app will use it. See the project's [documentation](https://docs.ntfy.sh/) to learn what ntfy does and why it might be useful to you.
The [Ansible role for ntfy](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring ntfy, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md) online
- 📁 `roles/galaxy/ntfy/docs/configuring-ntfy.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)
**Note**: this playbook focuses on setting up a ntfy server for getting it send push notifications with UnifiedPush to Matrix-related services that this playbook installs, while the installed server will be available for other non-Matrix apps like [Tusky](https://tusky.app/) and [DAVx⁵](https://www.davx5.com/) as well. This playbook does not intend to support all of ntfy's features. If you want to use them as well, refer the role's documentation for details to configure them by yourself.
### Improve push notification's privacy with ntfy
By default, push notifications received on Matrix apps on Android/iOS act merely as "wake-up calls" for the application, which contain only event IDs, and do not transmit actual message payload such as text message data.
While your messages remain private even without ntfy, it makes it possible to improve privacy and sovereignty of your Matrix installation, offering greater control over your data, by avoiding routing these "application wake-up calls" through Google or Apple servers and having them pass through the self-hosted ntfy instance on your Matrix server.
### How ntfy works with UnifiedPush
⚠️ [UnifiedPush does not work on iOS.](https://unifiedpush.org/users/faq/#will-unifiedpush-ever-work-on-ios)
ntfy implements UnifiedPush, the standard which makes it possible to send and receive push notifications without using Google's Firebase Cloud Messaging (FCM) service.
Working as a **Push Server**, a ntfy server can forward messages via [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/) as a **Distributor** to a UnifiedPush-compatible Matrix client such as Element Android and FluffyChat Android (see [here](https://unifiedpush.org/users/distributors/#definitions) for the definition of the Push Server and the Distributor).
Note that UnifiedPush-compatible applications must be able to communicate with the ntfy Android app which works as the Distributor on the same device, in order to receive push notifications from the Push Server.
As the ntfy Android app functions as the Distributor, you do not have to install something else on your device, besides a UnifiedPush-compatible Matrix client.
## Adjusting DNS records ## Adjusting DNS records
@ -26,16 +51,28 @@ When setting, replace `example.com` with your own.
## Adjusting the playbook configuration ## Adjusting the playbook configuration
To enable ntfy, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable a ntfy server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
# Enabling it is the only required setting ########################################################################
# #
# ntfy #
# #
########################################################################
ntfy_enabled: true ntfy_enabled: true
# Uncomment to enable the ntfy web app (disabled by default) ########################################################################
# ntfy_web_root: app # defaults to "disable" # #
# /ntfy #
# #
########################################################################
``` ```
As the most of the necessary settings for the role have been taken care of by the playbook, you can enable the ntfy server on your Matrix server with this minimum configuration.
See the role's documentation for details about configuring ntfy per your preference (such as [setting access control with authentication](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#enable-access-control-with-authentication-optional)).
### Adjusting the ntfy URL (optional) ### Adjusting the ntfy URL (optional)
By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one. By tweaking the `ntfy_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
@ -49,15 +86,19 @@ ntfy_hostname: push.example.com
After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server. After changing the domain, **you may need to adjust your DNS** records to point the ntfy domain to the Matrix server.
### Extending the configuration ### Enable web app (optional)
There are some additional things you may wish to configure about the component. The ntfy server can be accessed via its web app where you can subscribe to and push to "topics" from the browser. The web app may be helpful to troubleshoot notification issues or to use ntfy for other purposes than getting ntfy send UnifiedPush notifications to your Matrix-related services.
Take a look at: **Note**: subscribing to a topic is not necessary for using the nfty server as the Push Server for UnifiedPush.
- [ntfy role](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/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 `ntfy_configuration_extension_yaml` variable To enable the web app, add the following configuration to your `vars.yml` file:
For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options). ```yaml
ntfy_web_root: app
```
See [the official documentation](https://docs.ntfy.sh/subscribe/web/) for details about how to use it.
## Installing ## Installing
@ -74,72 +115,47 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
## Usage ## Usage
To make use of your ntfy installation, on Android for example, you need two things: To receive push notifications with UnifiedPush from the ntfy server, you need to **install [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/)** which works as the Distributor, **log in to the account on the ntfy app** if you have enabled the access control, and then **configure a UnifiedPush-compatible Matrix client**. After setting up the ntfy Android app, the Matrix client listens to it, and push notifications are "distributed" from it.
* the `ntfy` app For details about installing and configuring the ntfy Android app, take a look at [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#install-the-ntfy-androidios-app) on the role's documentation.
* a UnifiedPush-compatible Matrix app
You need to install the `ntfy` app on each device on which you want to receive push notifications through your ntfy server. The `ntfy` app will provide UnifiedPush notifications to any number of UnifiedPush-compatible messaging apps installed on the same device. ⚠️ Though the ntfy app is available for iOS ([App Store](https://apps.apple.com/us/app/ntfy/id1625396347); the app's source code can be retrieved from [here](https://github.com/binwiederhier/ntfy-ios)), **any Matrix clients for iOS currently do not support ntfy** due to [technical limitations of the iOS platform](https://github.com/binwiederhier/ntfy-ios/blob/main/docs/TECHNICAL_LIMITATIONS.md). If you develop your own Matrix client app for iOS, you may need to use the [Sygnal](configuring-playbook-sygnal.md) push gateway service to deliver push notifications to it.
### Setting up the `ntfy` Android app ### Setting up a UnifiedPush-compatible Matrix client
1. Install the [ntfy Android app](https://ntfy.sh/docs/subscribe/phone/) from F-droid or Google Play. Having configured the ntfy Android app, you can configure a UnifiedPush-compatible Matrix client on the same device.
2. In its Settings -> `General: Default server`, enter your ntfy server URL, such as `https://ntfy.example.com`.
3. In its Settings -> `Advanced: Connection protocol`, choose `WebSockets`.
That is all you need to do in the ntfy app. It has many other features, but for our purposes you can ignore them. In particular you do not need to follow any instructions about subscribing to a notification topic as UnifiedPush will do that automatically. Steps needed for specific Matrix clients:
### Setting up a UnifiedPush-compatible Matrix app * FluffyChat-Android: this should auto-detect and use the app. No manual settings required.
Install any UnifiedPush-enabled Matrix app on that same device. The Matrix app will learn from the `ntfy` app that you have configured UnifiedPush on this device, and then it will tell your Matrix server to use it. * SchildiChat-Android:
Steps needed for specific Matrix apps:
* FluffyChat-android:
- Should auto-detect and use it. No manual settings.
* SchildiChat-android:
1. enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`. 1. enable `Settings` -> `Notifications` -> `UnifiedPush: Force custom push gateway`.
2. choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in `ntfy` app, force-close SchildiChat, re-open it.)* 2. choose `Settings` -> `Notifications` -> `UnifiedPush: Re-register push distributor`. *(For info, a more complex alternative to achieve the same is: delete the relevant unifiedpush registration in the ntfy Android app, force-close SchildiChat, re-open it.)*
3. verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the "Troubleshooting" section. 3. verify `Settings` -> `Notifications` -> `UnifiedPush: Notification targets` as described below in the "Troubleshooting" section.
* Element-android v1.4.26+: * Element-Android v1.4.26+:
1. choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy` 1. choose `Settings` -> `Notifications` -> `Notification method` -> `ntfy`
2. verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings` 2. verify `Settings` -> `Troubleshoot` -> `Troubleshoot notification settings`
If the Matrix app asks, "Choose a distributor: FCM Fallback or ntfy", then choose "ntfy". If the Matrix client asks, "Choose a distributor: FCM Fallback or ntfy", then choose "ntfy".
If the Matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below. If the Matrix client doesn't seem to pick it up, try restarting it and try the Troubleshooting section below.
### Web App
ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript).
The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: "app"` and re-running Ansible.
## Troubleshooting ## Troubleshooting
### Check a client application The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device.
First check that the Matrix client app you are using supports UnifiedPush. There may well be different variants of the app. ### Check the Matrix client
To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element Android or SchildiChat Android, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL. Make sure that the Matrix client you are using supports UnifiedPush. There may well be different variants of the app.
To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element Android or SchildiChat Android, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL.
In the "Notification Targets" screen in Element Android or SchildiChat Android, two relevant URLs are shown, "push\_key" and "Url", and both should begin with your ntfy server's URL. If "push\_key" shows your server but "Url" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the "Usage" section above. In the "Notification Targets" screen in Element Android or SchildiChat Android, two relevant URLs are shown, "push\_key" and "Url", and both should begin with your ntfy server's URL. If "push\_key" shows your server but "Url" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the "Usage" section above.
If it is not working, useful tools are "Settings -> Notifications -> Re-register push distributor" and "Settings -> Notifications -> Troubleshoot Notifications" in SchildiChat Android (possibly also Element Android). In particular the "Endpoint/FCM" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app. If it is not working, useful tools are "Settings -> Notifications -> Re-register push distributor" and "Settings -> Notifications -> Troubleshoot Notifications" in SchildiChat Android (possibly also Element Android). In particular the "Endpoint/FCM" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app.
The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device.
### Check the service's logs ### Check the service's logs
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-ntfy`. See [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#check-the-services-logs) on the role's documentation for details.
#### 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
ntfy_configuration_extension_yaml: |
log_level: DEBUG
```

View File

@ -26,7 +26,7 @@ By default, this playbook installs its own [Traefik](https://traefik.io/) revers
- serving public traffic and providing SSL-termination with certificates obtained from [Let's Encrypt](https://letsencrypt.org/). See [Adjusting SSL certificate retrieval](./configuring-playbook-ssl-certificates.md). - serving public traffic and providing SSL-termination with certificates obtained from [Let's Encrypt](https://letsencrypt.org/). See [Adjusting SSL certificate retrieval](./configuring-playbook-ssl-certificates.md).
- assists internal communication between addon services (briges, bots, etc.) and the homeserver via an internal entrypoint (`matrix-internal-matrix-client-api`). - assists internal communication between addon services (bridges, bots, etc.) and the homeserver via an internal entrypoint (`matrix-internal-matrix-client-api`).
There are 2 ways to use Traefik with this playbook, as described below. There are 2 ways to use Traefik with this playbook, as described below.

View File

@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you. The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you.
The Ansible role for docker-postgres-backup-local is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup). For details about configuring docker-postgres-backup-local, you can check them via: The [Ansible role for docker-postgres-backup-local](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup) is developed and maintained by [the MASH (mother-of-all-self-hosting) project](https://github.com/mother-of-all-self-hosting). For details about configuring docker-postgres-backup-local, you can check them via:
- 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/blob/main/docs/configuring-postgres-backup.md) online - 🌐 [the role's documentation at the MASH project](https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup/blob/main/docs/configuring-postgres-backup.md) online
- 📁 `roles/galaxy/postgres_backup/docs/configuring-postgres-backup.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles) - 📁 `roles/galaxy/postgres_backup/docs/configuring-postgres-backup.md` locally, if you have [fetched the Ansible roles](installing.md#update-ansible-roles)

View File

@ -6,7 +6,7 @@ SPDX-FileCopyrightText: 2021 Kim Brose
SPDX-FileCopyrightText: 2021 Luca Di Carlo SPDX-FileCopyrightText: 2021 Luca Di Carlo
SPDX-FileCopyrightText: 2022 Olivér Falvai SPDX-FileCopyrightText: 2022 Olivér Falvai
SPDX-FileCopyrightText: 2023 Michael Hollister SPDX-FileCopyrightText: 2023 Michael Hollister
SPDX-FileCopyrightText: 2024 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
@ -16,9 +16,9 @@ SPDX-License-Identifier: AGPL-3.0-or-later
The playbook can install [Prometheus](https://prometheus.io/) with [Grafana](https://grafana.com/) and configure performance metrics of your homeserver with graphs for you. The playbook can install [Prometheus](https://prometheus.io/) with [Grafana](https://grafana.com/) and configure performance metrics of your homeserver with graphs for you.
> [!WARNING] > [!WARNING]
> Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling (anonymous) access. And you should really not forget to change your Grafana password. > Metrics and graphs contain a lot of information, and anyone who has access to them can make an educated guess about your server usage patterns. This especially applies to small personal/family scale homeservers, where the number of samples is fairly limited. Analyzing the metrics over time, one might be able to figure out your life cycle, such as when you wake up, go to bed, etc. Before enabling (anonymous) access, you should carefully evaluate the risk, and if you do enable it, it is highly recommended to change your Grafana password from the default one.
> >
> Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source. > Most of our Docker containers run with limited system access, but the `prometheus-node-exporter` can access the host network stack and (readonly) root filesystem. If it is fine, you can enable it and have it capture metrics about them (see [below](#enable-metrics-and-graphs-for-generic-system-information-optional) for the instruction). Even if `prometheus-node-exporter` is not enabled, you will still get Synapse homeserver metrics. Note that both of these dashboards are always be enabled, so you can still see historical data even after disabling either source.
## Adjusting DNS records ## Adjusting DNS records
@ -258,4 +258,4 @@ As with all other services, you can find the logs in [systemd-journald](https://
- [The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2) - [The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2)
- [The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana) - [The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana)
- [The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs) - [The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs)
- [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic Postgres dashboard) - [The PostgreSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic Postgres dashboard)

View File

@ -22,13 +22,11 @@ Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring
## Choosing an Object Storage provider ## Choosing an Object Storage provider
You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Storj](https://storj.io), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), etc. You can create [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object storage like [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), [Wasabi](https://wasabi.com), [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces), [Storj](https://storj.io), etc.
Amazon S3, Backblaze B2, and Storj are pay-as-you with no minimum charges for storing too little data. Amazon S3 and Backblaze B2 are pay-as-you with no minimum charges for storing too little data. Note that Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress.
All these providers have different prices, with Storj appearing to be the cheapest (as of 2024-10, storage fee is $0.004 per GB/month, and egress fee is $0.007 per GB; check actual pricing [here](https://storj.dev/dcs/pricing)). Backblaze egress is free, but for only certain users for up to 3x the amount of data stored. Beyond that you will pay $0.01/GB of egress. Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10). Though Storj does not set minimum amount of data to be stored, it also charges $5 minimum monthly usage fee since July 1, 2025, if your monthly usage (storage, bandwidth, and segments) totals less than $5.
Wasabi has a minimum charge of 1TB if you're storing less than 1TB, which becomes expensive if you need to store less data than that. Likewise, Digital Ocean Spaces has also a minimum charge of 250GB ($5/month as of 2022-10).
Here are some of the important aspects of choosing the right provider: Here are some of the important aspects of choosing the right provider:

View File

@ -11,57 +11,60 @@ SPDX-License-Identifier: AGPL-3.0-or-later
# Adjusting SSL certificate retrieval (optional, advanced) # Adjusting SSL certificate retrieval (optional, advanced)
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others) By default, the playbook retrieves and automatically renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) for the domains of the services it installs (e.g. `matrix.example.com` and others). Refer this guide if you want to modify settings about how it manages SSL certificates or have the Traefik server use yours.
This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md). **Notes**:
- This guide is intended to be referred for configuring the integrated Traefik server with regard to SSL certificates retrieval. If you're using [your own webserver](configuring-playbook-own-webserver.md), consult its documentation about how to configure it.
- Let's Encrypt ends the expiration notification email service on June 4, 2025 (see: [the official announcement](https://letsencrypt.org/2025/01/22/ending-expiration-emails/)), and it recommends using a third party service for those who want to receive expiration notifications. If you are looking for a self-hosting service, you may be interested in a monitoring tool such as [Update Kuma](https://github.com/louislam/uptime-kuma/).
## Using staging Let's Encrypt certificates instead of real ones The [Mother-of-All-Self-Hosting (MASH)](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook can be used to install and manage an Uptime Kuma instance. See [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/uptime-kuma.md) for the instruction to install it with the MASH playbook. If you are wondering how to use the MASH playbook for your Matrix server, refer [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/setting-up-services-on-mdad-server.md).
For testing purposes, you may wish to use staging certificates provide by Let's Encrypt. ## Use staging Let's Encrypt certificates
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: For testing purposes, you may wish to use staging certificates provided by Let's Encrypt to avoid hitting [its rate limits](https://letsencrypt.org/docs/rate-limits/).
To use ones, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
traefik_config_certificatesResolvers_acme_use_staging: true traefik_config_certificatesResolvers_acme_use_staging: true
``` ```
## Disabling SSL termination ## Disable SSL termination
For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`. For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`.
Add the following configuration to your `vars.yml` file: To do so, add the following configuration to your `vars.yml` file:
```yaml ```yaml
traefik_config_entrypoint_web_secure_enabled: false traefik_config_entrypoint_web_secure_enabled: false
``` ```
## Using self-signed SSL certificates ## Use self-signed SSL certificates
If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)): To use self-signed certificates, generate them and follow the documentation below about using your own certificates.
- generate your self-signed certificate files ## Use your own SSL certificates
- follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below
## Using your own SSL certificates To use your own certificates, prepare them and follow the steps below:
To use your own SSL certificates with Traefik, you need to: - Disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support
- Put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
- Register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
- Put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
- disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support For those steps, you can add the following configuration to your `vars.yml` file (adapt to your needs). If you will put the custom configuration files manually, make sure to remove the `aux_file_definitions` variable.
- put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
- register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
- put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
```yaml ```yaml
# Disable ACME / Let's Encrypt support. # Disable ACME / Let's Encrypt support.
traefik_config_certificatesResolvers_acme_enabled: false traefik_config_certificatesResolvers_acme_enabled: false
# Disabling ACME support (above) automatically disables the creation of the SSL directory. # Disabling ACME support (above) automatically disables the SSL directory to be created.
# Force-enable it here, because we'll add our certificate files there. # Force-enable it to be created with this configuration, because we'll add our certificate files there.
traefik_ssl_dir_enabled: true traefik_ssl_dir_enabled: true
# Tell Traefik to load our custom ssl key pair by extending provider configuration. # Tell Traefik to load our custom SSL key pair by extending provider configuration.
# The key pair files are created below, in `aux_file_definitions`. # The key pair files are created below, in `aux_file_definitions`.
# The `/ssl/…` path is an in-container path, not a path on the host (like `/matrix/traefik/ssl`). Do not change it! # Note that the `/ssl/…` path is an **in-container path**, not a path on the host (like `/matrix/traefik/ssl`). Do not change it!
traefik_provider_configuration_extension_yaml: traefik_provider_configuration_extension_yaml:
tls: tls:
certificates: certificates:
@ -74,14 +77,14 @@ traefik_provider_configuration_extension_yaml:
keyFile: /ssl/privkey.pem keyFile: /ssl/privkey.pem
# Use the aux role to create our custom files on the server. # Use the aux role to create our custom files on the server.
# If you'd like to do this manually, you remove this `aux_file_definitions` variable. # If you'd like to do this manually, remove this `aux_file_definitions` variable.
aux_file_definitions: aux_file_definitions:
# Create the privkey.pem file on the server by # Create the privkey.pem file on the server by
# uploading a file from the computer where Ansible is running. # uploading a file from the computer where Ansible is running.
- dest: "{{ traefik_ssl_dir_path }}/privkey.pem" - dest: "{{ traefik_ssl_dir_path }}/privkey.pem"
src: /path/on/your/Ansible/computer/to/privkey.pem src: /path/on/your/Ansible/computer/to/privkey.pem
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline. # Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
# Note the indentation level. # Mind the indentation level (indented with two white space characters).
# content: | # content: |
# FILE CONTENT # FILE CONTENT
# HERE # HERE
@ -91,20 +94,22 @@ aux_file_definitions:
- dest: "{{ traefik_ssl_dir_path }}/cert.pem" - dest: "{{ traefik_ssl_dir_path }}/cert.pem"
src: /path/on/your/Ansible/computer/to/cert.pem src: /path/on/your/Ansible/computer/to/cert.pem
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline. # Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
# Note the indentation level. # Mind the indentation level (indented with two white space characters).
# content: | # content: |
# FILE CONTENT # FILE CONTENT
# HERE # HERE
``` ```
## Using a DNS-01 ACME challenge type, instead of HTTP-01 ## Use a DNS-01 ACME challenge type, instead of HTTP-01
You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but it can be helpful to: You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but can be helpful to:
- hide your public IP from Let's Encrypt logs - hide your public IP from Let's Encrypt logs
- allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail) - allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)
This is an example for how to edit the `vars.yml` file if you're using Cloudflare: ### Example: Cloudflare
Here is an example for configurations on the `vars.yml` file for Cloudflare. Please adjust it as necessary before applying it.
```yaml ```yaml
traefik_config_certificatesResolvers_acme_dnsChallenge_enabled: true traefik_config_certificatesResolvers_acme_dnsChallenge_enabled: true
@ -112,7 +117,7 @@ traefik_config_certificatesResolvers_acme_dnsChallenge_provider: "cloudflare"
traefik_config_certificatesResolvers_acme_dnsChallenge_delayBeforeCheck: 60 traefik_config_certificatesResolvers_acme_dnsChallenge_delayBeforeCheck: 60
traefik_config_certificatesResolvers_acme_dnsChallenge_resolvers: traefik_config_certificatesResolvers_acme_dnsChallenge_resolvers:
- "1.1.1.1:53" - "1.1.1.1:53"
traefik_environment_variables_additional_variables: | traefik_environment_variables: |
CF_API_EMAIL=redacted CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted CF_DNS_API_TOKEN=redacted

View File

@ -49,8 +49,8 @@ aux_file_definitions:
content content
here here
mode: '0600' mode: '0600'
owner: "{{ matrix_user_username }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_user_groupname }}" group: "{{ matrix_group_name }}"
``` ```
Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values. Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easier, as it only requires that you provide some config values.

View File

@ -24,12 +24,15 @@ matrix_synapse_auto_compressor_enabled: true
### Edit the schedule (optional) ### Edit the schedule (optional)
By default the task will run 0 a.m. every day based on the `matrix_synapse_auto_compressor_schedule` variable. It is defined in the format of systemd timer calendar. By default the task will around 0 a.m. every day based on the `matrix_synapse_auto_compressor_schedule` variable with a randomized delay of 6 hours (controlled by the `matrix_synapse_auto_compressor_schedule_randomized_delay_sec` 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): To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):
```yaml ```yaml
matrix_synapse_auto_compressor_schedule: "*-*-* 00:00:00" matrix_synapse_auto_compressor_schedule: "*-*-* 00:00:00"
# Consider adjusting the randomized delay or setting it to 0 to disable randomized delays.
# matrix_synapse_auto_compressor_schedule_randomized_delay_sec: 6h
``` ```
### Extending the configuration ### Extending the configuration

View File

@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you. The playbook can install and configure [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) for you.
It lets you fight invite-spam by automatically blocking invitiations from a list of servers specified by you (blacklisting). It lets you fight invite-spam by automatically blocking invitations from a list of servers specified by you (blacklisting).
See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you. See the project's [documentation](https://github.com/t2bot/synapse-simple-antispam/blob/master/README.md) to learn what it does and why it might be useful to you.

View File

@ -53,7 +53,7 @@ You may also consider [tweaking the number of workers of each type](#controlling
##### Specialized workers ##### Specialized workers
The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requestor's IP adddress, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requestor and/or on the resource (room, etc.) being requested. The playbook now supports a smarter **specialized load-balancing** inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse homeserver guide](https://tcpipuk.github.io/synapse/index.html). Instead of routing requests to one or more [generic workers](#generic-workers) based only on the requester's IP address, specialized load-balancing routes to **4 different types of specialized workers** based on **smarter criteria** — the access token (username) of the requester and/or on the resource (room, etc.) being requested.
The playbook supports these **4 types** of specialized workers: The playbook supports these **4 types** of specialized workers:

View File

@ -53,6 +53,8 @@ For a more custom setup, see the [Other configuration options](#other-configurat
- [Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation - [Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation
- [Configuring continuwuity](configuring-playbook-continuwuity.md), if you've switched to the [continuwuity](https://continuwuity.org) homeserver implementation
- [Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation - [Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation
- Server components: - Server components:
@ -237,6 +239,14 @@ Services that help you in administrating and monitoring your Matrix installation
Various services that don't fit any other categories. Various services that don't fit any other categories.
- [Setting up Element Call](configuring-playbook-element-call.md) — a native Matrix video conferencing application, built on top of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)
- [Setting up LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)
- [Setting up LiveKit Server](configuring-playbook-livekit-server.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)
- [Setting up Matrix RTC](configuring-playbook-matrix-rtc.md) (optional)
- [Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md) - [Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md)
- [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers - [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers

View File

@ -28,6 +28,7 @@ We try to stick to official images (provided by their respective projects) as mu
| [Synapse](configuring-playbook-synapse.md) | [element-hq/synapse](https://ghcr.io/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | | [Synapse](configuring-playbook-synapse.md) | [element-hq/synapse](https://ghcr.io/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network |
| [Conduit](configuring-playbook-conduit.md) | [matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | | [Conduit](configuring-playbook-conduit.md) | [matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements |
| [conduwuit](configuring-playbook-conduwuit.md) | [girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | | [conduwuit](configuring-playbook-conduwuit.md) | [girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. |
| [continuwuity](configuring-playbook-continuwuity.md) | [continuwuation/continuwuity](https://forgejo.ellis.link/continuwuation/continuwuity) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit. |
| [Dendrite](configuring-playbook-dendrite.md) | [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | | [Dendrite](configuring-playbook-dendrite.md) | [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. |
## Clients ## Clients
@ -54,6 +55,8 @@ Services that run on the server to make the various parts of your installation w
| [Exim](configuring-playbook-email.md) | [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | | [Exim](configuring-playbook-email.md) | [devture/exim-relay](https://hub.docker.com/r/devture/exim-relay/) | ✅ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) |
| [ma1sd](configuring-playbook-ma1sd.md) | [ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/) | ❌ | Matrix Identity Server | | [ma1sd](configuring-playbook-ma1sd.md) | [ma1uta/ma1sd](https://hub.docker.com/r/ma1uta/ma1sd/) | ❌ | Matrix Identity Server |
| [ddclient](configuring-playbook-dynamic-dns.md) | [linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient) | ❌ | Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider | | [ddclient](configuring-playbook-dynamic-dns.md) | [linuxserver/ddclient](https://hub.docker.com/r/linuxserver/ddclient) | ❌ | Update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider |
| [LiveKit Server](configuring-playbook-livekit-server.md) | [livekit/livekit-server](https://hub.docker.com/r/livekit/livekit-server/) | ❌ | WebRTC server for audio/video calls |
| [Livekit JWT Service](configuring-playbook-livekit-jwt-service.md) | [element-hq/lk-jwt-service](https://ghcr.io/element-hq/lk-jwt-service) | ❌ | JWT service for integrating [Element Call](./configuring-playbook-element-call.md) with [LiveKit Server](./configuring-playbook-livekit-server.md) |
## Authentication ## Authentication
@ -167,6 +170,7 @@ Various services that don't fit any other categories.
| [Pantalaimon](configuring-playbook-pantalaimon.md) | [matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon) | ❌ | E2EE aware proxy daemon | | [Pantalaimon](configuring-playbook-pantalaimon.md) | [matrixdotorg/pantalaimon](https://hub.docker.com/r/matrixdotorg/pantalaimon) | ❌ | E2EE aware proxy daemon |
| [Sygnal](configuring-playbook-sygnal.md) | [matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/) | ❌ | Reference Push Gateway for Matrix | | [Sygnal](configuring-playbook-sygnal.md) | [matrixdotorg/sygnal](https://hub.docker.com/r/matrixdotorg/sygnal/) | ❌ | Reference Push Gateway for Matrix |
| [ntfy](configuring-playbook-ntfy.md) | [binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/) | ❌ | Self-hosted, UnifiedPush-compatible push notifications server | | [ntfy](configuring-playbook-ntfy.md) | [binwiederhier/ntfy](https://hub.docker.com/r/binwiederhier/ntfy/) | ❌ | Self-hosted, UnifiedPush-compatible push notifications server |
| [Element Call](configuring-playbook-element-call.md) | [element-hq/element-call](https://ghcr.io/element-hq/element-call) | ❌ | A native Matrix video conferencing application |
## Container images of deprecated / unmaintained services ## Container images of deprecated / unmaintained services

View File

@ -235,7 +235,7 @@ Running Matrix on a server with 1GB of memory is possible (especially if you dis
**We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea. **We recommend starting with a server having at least 2GB of memory** and even then using it sparingly. If you know for sure you'll be joining various large rooms, etc., then going for 4GB of memory or more is a good idea.
Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferrably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage. Besides the regular Matrix stuff, we also support things like video-conferencing using [Jitsi](configuring-playbook-jitsi.md) and other additional services which (when installed) may use up a lot of memory. Things do add up. Besides the Synapse Matrix server, Jitsi is especially notorious for consuming a lot of resources. If you plan on running Jitsi, we recommend a server with at least 2GB of memory (preferably more). See our [Jitsi documentation page](configuring-playbook-jitsi.md) to learn how to optimize its memory/CPU usage.
### Can I run this in an LXC container? ### Can I run this in an LXC container?
@ -362,7 +362,7 @@ Configuration variables are defined in multiple places in this playbook and are
You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`). You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`).
As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`. As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overridden by values defined in `group_vars/matrix_servers`.
Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.example.com/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features). Refer to both of these for inspiration. Still, as mentioned in [Configuring the playbook](configuring-playbook.md), you're only ever supposed to edit your own `inventory/host_vars/matrix.example.com/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features).

View File

@ -26,7 +26,7 @@ The up-to-date list can be accessed on [traefik's documentation](https://doc.tra
**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels: **Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:
- if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md) or [Dendrite](./configuring-playbook-dendrite.md)) - if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md), [continuwuity](./configuring-playbook-continuwuity.md) or [Dendrite](./configuring-playbook-dendrite.md))
- if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached - if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached
Also, all instructions below are from an older version of the playbook and may not work anymore. Also, all instructions below are from an older version of the playbook and may not work anymore.
@ -42,7 +42,7 @@ This is because with SRV federation, some servers / tools (one of which being th
### Tell Traefik which certificate to serve for the federation endpoint ### Tell Traefik which certificate to serve for the federation endpoint
Now that the federation endpoint is not bound to a domain anymore we need to explicitely tell Traefik to use a wildcard certificate in addition to one containing the base name. Now that the federation endpoint is not bound to a domain anymore we need to explicitly tell Traefik to use a wildcard certificate in addition to one containing the base name.
This is because the Matrix specification expects the federation endpoint to be served using a certificate compatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work. This is because the Matrix specification expects the federation endpoint to be served using a certificate compatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work.
@ -79,8 +79,8 @@ traefik_configuration_extension_yaml: |
- "8.8.8.8:53" - "8.8.8.8:53"
storage: {{ traefik_config_certificatesResolvers_acme_storage | to_json }} storage: {{ traefik_config_certificatesResolvers_acme_storage | to_json }}
# 2. Configure the environment variables needed by Rraefik to automate the ACME DNS Challenge (example for Cloudflare) # 2. Configure the environment variables needed by Traefik to automate the ACME DNS Challenge (example for Cloudflare)
traefik_environment_variables_additional_variables: | traefik_environment_variables: |
CF_API_EMAIL=redacted CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted CF_DNS_API_TOKEN=redacted
@ -158,7 +158,7 @@ traefik_configuration_extension_yaml: |
traefik_certResolver_primary: "dns" traefik_certResolver_primary: "dns"
# Configure the environment variables needed by Traefik to automate the ACME DNS Challenge (example for Cloudflare) # Configure the environment variables needed by Traefik to automate the ACME DNS Challenge (example for Cloudflare)
traefik_environment_variables_additional_variables: | traefik_environment_variables: |
CF_API_EMAIL=redacted CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted CF_DNS_API_TOKEN=redacted

View File

@ -157,6 +157,8 @@ The upstream projects, which this playbook makes use of, occasionally if not oft
Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date. Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date.
Also, do not forget to update your system regularly. While this playbook may install basic services, such as Docker, it will not interfere further with system maintenance. Keeping the system itself up-to-date is out of scope for this playbook.
For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md) For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)
Feel free to **re-run the setup command any time** you think something is wrong with the server configuration. Ansible will take your configuration and update your server to match. Feel free to **re-run the setup command any time** you think something is wrong with the server configuration. Ansible will take your configuration and update your server to match.

View File

@ -98,7 +98,7 @@ As part of the upgrade, the database is dumped to `/tmp`, an upgraded and empty
To save disk space in `/tmp`, the dump file is gzipped on the fly at the expense of CPU usage. If you have plenty of space in `/tmp` and would rather avoid gzipping, you can explicitly pass a dump filename which doesn't end in `.gz`. Example: `--extra-vars="postgres_dump_name=matrix-postgres-dump.sql"` To save disk space in `/tmp`, the dump file is gzipped on the fly at the expense of CPU usage. If you have plenty of space in `/tmp` and would rather avoid gzipping, you can explicitly pass a dump filename which doesn't end in `.gz`. Example: `--extra-vars="postgres_dump_name=matrix-postgres-dump.sql"`
**All databases, roles, etc. on the Postgres server are migrated**. **All databases, roles, etc. on the Postgres server are migrated**. However, other components that depend on specific Postgres versions (like the [Postgres Backup](configuring-playbook-postgres-backup.md) service) may need to be updated after the upgrade by using `just install-all`
## Tuning PostgreSQL ## Tuning PostgreSQL

View File

@ -27,7 +27,7 @@ Here are some playbook tags that you should be familiar with:
- `stop` — stops all systemd services - `stop` — stops all systemd services
- `ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created - `ensure-matrix-users-created` or its alias `ensure-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created. See the variable `matrix_user_creator_users_auto` on [`group_vars/matrix_servers`](../group_vars/matrix_servers) for actual values of users which running this tag can create by default.
**Notes**: **Notes**:
- `setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc. - `setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc.

View File

@ -49,7 +49,7 @@ We will be using `example.com` as the domain in the following instruction. Pleas
- [Python](https://www.python.org/). Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`) - [Python](https://www.python.org/). Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like `apt-get install python3`). On some distros, Ansible may incorrectly [detect the Python version](https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html) (2 vs 3) and you may need to explicitly specify the interpreter path in `inventory/hosts` during installation (e.g. `ansible_python_interpreter=/usr/bin/python3`)
- [sudo](https://www.sudo.ws/), even when you've configured Ansible to log in as `root`. Some distributions, like a minimal Debian net install, do not include the `sudo` package by default. - [sudo](https://www.sudo.ws/), even when you've configured Ansible to log in as `root`, because this Ansible playbook sometimes uses the Ansible [become](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html) module to perform tasks as another user (e.g. `matrix`) and the `become` module's default implementation uses `sudo`. Some distributions, like a minimal Debian net install, do not include the `sudo` package by default.
- An HTTPS-capable web server at the base domain name (`example.com`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md). - An HTTPS-capable web server at the base domain name (`example.com`) which is capable of serving static files. Unless you decide to [Serve the base domain from the Matrix server](configuring-playbook-base-domain-serving.md) or alternatively, to use DNS SRV records for [Server Delegation](howto-server-delegation.md).
@ -59,10 +59,10 @@ We will be using `example.com` as the domain in the following instruction. Pleas
- `80/tcp`: HTTP webserver - `80/tcp`: HTTP webserver
- `443/tcp` and `443/udp`: HTTPS webserver - `443/tcp` and `443/udp`: HTTPS webserver
- `3478/tcp`: STUN/TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) - `3478/tcp`: STUN/TURN over TCP (used by [coturn](./configuring-playbook-turn.md))
- `3478/udp`: STUN/TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) - `3478/udp`: STUN/TURN over UDP (used by [coturn](./configuring-playbook-turn.md))
- `5349/tcp`: TURN over TCP (used by [coturn](./docs/configuring-playbook-turn.md)) - `5349/tcp`: TURN over TCP (used by [coturn](./configuring-playbook-turn.md))
- `5349/udp`: TURN over UDP (used by [coturn](./docs/configuring-playbook-turn.md)) - `5349/udp`: TURN over UDP (used by [coturn](./configuring-playbook-turn.md))
- `8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**. - `8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. Some components like [Matrix User Verification Service](configuring-playbook-user-verification-service.md#open-matrix-federation-port) require this port to be opened **even with federation disabled**.
- the range `49152-49172/udp`: TURN over UDP - the range `49152-49172/udp`: TURN over UDP
- potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that. - potentially some other ports, depending on the additional (non-default) services that you enable in the **configuring the playbook** step (later on). Consult each service's documentation page in `docs/` for that.

View File

@ -2,8 +2,8 @@
# If you'd rather use a local IP here, make sure to set up `matrix_coturn_turn_external_ip_address`. # If you'd rather use a local IP here, make sure to set up `matrix_coturn_turn_external_ip_address`.
# #
# To connect using a non-root user (and elevate to root with sudo later), # To connect using a non-root user (and elevate to root with sudo later),
# replace `ansible_ssh_user=root` with something like this: `ansible_ssh_user=username become=true become_user=root`. # replace `ansible_ssh_user=root` with something like this: `ansible_ssh_user=username ansible_become=true ansible_become_user=root`.
# If sudo requires a password, either add `become_password=PASSWORD_HERE` to the host line # If sudo requires a password, either add `ansible_become_password=PASSWORD_HERE` to the host line
# or tell Ansible to ask you for the password interactively by adding a `--ask-become-pass` (`-K`) flag to all `ansible-playbook` (or `just`) commands. # or tell Ansible to ask you for the password interactively by adding a `--ask-become-pass` (`-K`) flag to all `ansible-playbook` (or `just`) commands.
# #
# For improved Ansible performance, SSH pipelining is enabled by default in `ansible.cfg`. # For improved Ansible performance, SSH pipelining is enabled by default in `ansible.cfg`.

View File

@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2017 - 2024 Slavi Pantaleev SPDX-FileCopyrightText: 2017 - 2025 Slavi Pantaleev
SPDX-FileCopyrightText: 2019 Dan Arnfield SPDX-FileCopyrightText: 2019 Dan Arnfield
SPDX-FileCopyrightText: 2019 MDAD project contributors SPDX-FileCopyrightText: 2019 MDAD project contributors
SPDX-FileCopyrightText: 2021 Aaron Raimist SPDX-FileCopyrightText: 2021 Aaron Raimist

View File

@ -10,7 +10,7 @@ matrix.example.com {
encode zstd gzip encode zstd gzip
# Use the docker service name instead of localhost or 127.0.0.1 here # Use the docker service name instead of localhost or 127.0.0.1 here
matrix-traefik:8080 { reverse_proxy matrix-traefik:8080 {
header_up X-Forwarded-Port {http.request.port} header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-TlsProto {tls_protocol} header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher} header_up X-Forwarded-TlsCipher {tls_cipher}

View File

@ -23,7 +23,7 @@ If Matrix federation is enabled, then you will need to make changes to [NPM's Do
You'll need to create two proxy hosts in NPM for Matrix web and federation traffic. You'll need to create two proxy hosts in NPM for Matrix web and federation traffic.
Open the 'Proxy Hosts' page in the NPM web interface and select `Add Proxy Host`, the first being for Matrix web traffic. Apply the proxys configuration like this: Open the 'Proxy Hosts' page in the NPM web interface and select `Add Proxy Host`, the first being for Matrix web traffic. Apply the proxy's configuration like this:
```md ```md
# Details # Details
@ -44,7 +44,7 @@ Custom Nginx Configuration:
client_max_body_size 50M; client_max_body_size 50M;
``` ```
Again, under the 'Proxy Hosts' page select `Add Proxy Host`, this time for your federation traffic. Apply the proxys configuration like this: Again, under the 'Proxy Hosts' page select `Add Proxy Host`, this time for your federation traffic. Apply the proxy's configuration like this:
```md ```md
# Details # Details

5
gpg/open_vault.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
set -e -u
gpg2 --batch --use-agent --decrypt $(dirname $0)/vault_passphrase.gpg 2>/dev/null

18
gpg/vault_passphrase.gpg Normal file
View File

@ -0,0 +1,18 @@
-----BEGIN PGP MESSAGE-----
hQIMAxEs7W/4x4lxARAAssinIzR2rGs+Qkm0Q2tRdSXSXRx3OhH+2T5p0Rz3YkqU
iyiUtyT/Ll7RMUAlAEDZITvirXe4ZZImDcxQegEzFgO7BowQYJDRdhaRmLKZpiuQ
foRnJAAR12sf49arjJjaBQb91ViOp5MkxAtXiiqWyXwSSII+cV88flMq143cFmfC
C5OdIQd3SqrbFhGRTjUzoIMqnJH8xksjwph9GS811dY14rQv5X1Ybt5zehMJ7/m/
luLNg2zgQgYOUxcovddCVMI54ThXyDubDox/5xLvVjyVOFHgwC/VLn+QXHuPY/r5
+rVzz/30eq0uOLKD3LnDBQskCWRVWGC2ulKaZtlylBq6KRzIM6c6+VPSHCjoFyES
RRpRHeIXGLs31eLkr8dc+VNbPKpMsjm/E/4ZVE2JBpy7S/kh1XYVQxT6ahDKT1tD
4YN9O0JyNXzjiyNaTTLwNGh5+ICEd3ZCfa4O/og2LySGPOw6mX8ukgP029LHVp6+
0tRwSWiIM3US/NIVGA+o9e9I/I5Bp/cnzJgd7faUIlzcVPP+euCbo4GsYWpX3Nca
eRcr7AVY3wwuZtl7/s8KbQKk0ulLxS4Lo2XmdpQl8CPGwASdbMf/H8B256+xiUQ3
ml400ZaCC7Loeduwl1ez1H/dFFzmpUziaxxtWW4aFtOUYhGeSCTu6ZIgxVq3eBnS
jAGv8bt+0Xnrpih3mZWM92cw2VKfzYD9WG+dCB4DtZMKhl1ub2bkeTC/B9F+QuP6
anlonYHs2wmPXzjcx8ajonbYrYXanoNRHDId6OqVAbjYqbua6TG6H9LUFweIj1RV
yhUPejzhA8xEB0nUcKJZKLvuqvwPbr06GODnAKY5TQ4yILMAnBx0pNzfQNzo
=Cecg
-----END PGP MESSAGE-----

View File

@ -36,6 +36,8 @@ matrix_playbook_docker_installation_daemon_options_auto: |
matrix_playbook_docker_installation_daemon_options_custom: {} matrix_playbook_docker_installation_daemon_options_custom: {}
matrix_playbook_docker_installation_daemon_options_file_path: /etc/docker/daemon.json
# Controls whether to attach Traefik labels to services. # Controls whether to attach Traefik labels to services.
# This is separate from `traefik_enabled`, because you may wish to disable Traefik installation by the playbook, # This is separate from `traefik_enabled`, because you may wish to disable Traefik installation by the playbook,
# yet still use Traefik installed in another way. # yet still use Traefik installed in another way.
@ -71,11 +73,11 @@ matrix_federation_traefik_entrypoint_tls: "{{ traefik_config_entrypoint_web_secu
# # # #
######################################################################## ########################################################################
aux_directory_default_owner: "{{ matrix_user_username }}" aux_directory_default_owner: "{{ matrix_user_name }}"
aux_directory_default_group: "{{ matrix_user_groupname }}" aux_directory_default_group: "{{ matrix_group_name }}"
aux_file_default_owner: "{{ matrix_user_username }}" aux_file_default_owner: "{{ matrix_user_name }}"
aux_file_default_group: "{{ matrix_user_groupname }}" aux_file_default_group: "{{ matrix_group_name }}"
######################################################################## ########################################################################
# # # #
@ -241,7 +243,7 @@ matrix_addons_homeserver_client_api_url: "{{ ('http://' + matrix_playbook_revers
matrix_addons_homeserver_systemd_services_list: "{{ ([traefik_identifier + '.service'] if matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' else []) if matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled else matrix_homeserver_systemd_services_list }}" matrix_addons_homeserver_systemd_services_list: "{{ ([traefik_identifier + '.service'] if matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' else []) if matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled else matrix_homeserver_systemd_services_list }}"
# Starting from version `0.6.0` Conduit natively supports some sync v3 (sliding-sync) features. # Starting from version `0.6.0` Conduit natively supports some sync v3 (sliding-sync) features.
matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_sliding_sync_enabled else (matrix_homeserver_url if matrix_homeserver_implementation in ['conduit', 'conduwuit'] else '') }}" matrix_homeserver_sliding_sync_url: "{{ matrix_sliding_sync_base_url if matrix_sliding_sync_enabled else (matrix_homeserver_url if matrix_homeserver_implementation in ['conduit', 'conduwuit', 'continuwuity'] else '') }}"
######################################################################## ########################################################################
# # # #
@ -445,6 +447,12 @@ devture_systemd_service_manager_services_list_auto: |
+ +
([{'name': 'matrix-pantalaimon.service', 'priority': 4000, 'groups': ['matrix', 'pantalaimon']}] if matrix_pantalaimon_enabled else []) ([{'name': 'matrix-pantalaimon.service', 'priority': 4000, 'groups': ['matrix', 'pantalaimon']}] if matrix_pantalaimon_enabled else [])
+ +
([{'name': 'matrix-element-call.service', 'priority': 4000, 'groups': ['matrix', 'element-call']}] if matrix_element_call_enabled else [])
+
([{'name': 'matrix-livekit-jwt-service.service', 'priority': 3500, 'groups': ['matrix', 'livekit-jwt-service']}] if matrix_livekit_jwt_service_enabled else [])
+
([{'name': (livekit_server_identifier + '.service'), 'priority': 3000, 'groups': ['matrix', 'livekit-server']}] if livekit_server_enabled else [])
+
([{'name': 'matrix-registration.service', 'priority': 4000, 'groups': ['matrix', 'registration', 'matrix-registration']}] if matrix_registration_enabled else []) ([{'name': 'matrix-registration.service', 'priority': 4000, 'groups': ['matrix', 'registration', 'matrix-registration']}] if matrix_registration_enabled else [])
+ +
([{'name': 'matrix-sliding-sync.service', 'priority': 1500, 'groups': ['matrix', 'sliding-sync']}] if matrix_sliding_sync_enabled else []) ([{'name': 'matrix-sliding-sync.service', 'priority': 1500, 'groups': ['matrix', 'sliding-sync']}] if matrix_sliding_sync_enabled else [])
@ -559,6 +567,7 @@ matrix_homeserver_container_client_api_endpoint: |-
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string), 'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string), 'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string), 'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string),
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
}[matrix_homeserver_implementation] }[matrix_homeserver_implementation]
}} }}
@ -569,6 +578,7 @@ matrix_homeserver_container_federation_api_endpoint: |-
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string), 'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string), 'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string), 'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string),
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
}[matrix_homeserver_implementation] }[matrix_homeserver_implementation]
}} }}
@ -2067,6 +2077,8 @@ matrix_wechat_systemd_required_services_list_auto: |
matrix_wechat_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_wechat_container_image_registry_prefix_upstream_default }}" matrix_wechat_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_wechat_container_image_registry_prefix_upstream_default }}"
matrix_wechat_agent_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_wechat_agent_container_image_registry_prefix_upstream_default }}"
matrix_wechat_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" matrix_wechat_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"
matrix_wechat_agent_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_wechat_agent_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}"
@ -2305,7 +2317,6 @@ matrix_hookshot_container_http_host_bind_ports_defaultmapping:
- "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_appservice_port }}:{{ matrix_hookshot_appservice_port }}" - "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_appservice_port }}:{{ matrix_hookshot_appservice_port }}"
- "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_metrics_port }}:{{ matrix_hookshot_metrics_port }}" - "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_metrics_port }}:{{ matrix_hookshot_metrics_port }}"
- "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_webhook_port }}:{{ matrix_hookshot_webhook_port }}" - "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_webhook_port }}:{{ matrix_hookshot_webhook_port }}"
- "{{ matrix_playbook_service_host_bind_interface_prefix }}{{ matrix_hookshot_provisioning_port }}:{{ matrix_hookshot_provisioning_port }}"
matrix_hookshot_container_http_host_bind_ports: "{{ matrix_hookshot_container_http_host_bind_ports_defaultmapping if matrix_playbook_service_host_bind_interface_prefix else [] }}" matrix_hookshot_container_http_host_bind_ports: "{{ matrix_hookshot_container_http_host_bind_ports_defaultmapping if matrix_playbook_service_host_bind_interface_prefix else [] }}"
@ -2314,8 +2325,6 @@ matrix_hookshot_container_labels_traefik_docker_network: "{{ matrix_playbook_rev
matrix_hookshot_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" matrix_hookshot_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_hookshot_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" matrix_hookshot_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_hookshot_provisioning_enabled: "{{ matrix_hookshot_provisioning_secret and matrix_dimension_enabled }}"
matrix_hookshot_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_hookshot_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
matrix_hookshot_metrics_proxying_enabled: "{{ matrix_hookshot_metrics_enabled and matrix_metrics_exposure_enabled }}" matrix_hookshot_metrics_proxying_enabled: "{{ matrix_hookshot_metrics_enabled and matrix_metrics_exposure_enabled }}"
@ -3182,13 +3191,16 @@ matrix_bot_draupnir_container_additional_networks_auto: |-
) | unique ) | unique
}} }}
matrix_bot_draupnir_homeserver_url: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}" matrix_bot_draupnir_config_homeserverUrl: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}" # noqa var-naming
matrix_bot_draupnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" matrix_bot_draupnir_config_rawHomeserverUrl: "{{ matrix_addons_homeserver_client_api_url }}" # noqa var-naming
matrix_bot_draupnir_container_labels_traefik_enabled: "{{ matrix_bot_draupnir_web_enabled and matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" matrix_bot_draupnir_container_labels_traefik_enabled: "{{ matrix_bot_draupnir_config_web_enabled and matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_bot_draupnir_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" matrix_bot_draupnir_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_bot_draupnir_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" matrix_bot_draupnir_container_labels_web_abuseReporting_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_bot_draupnir_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" matrix_bot_draupnir_container_labels_web_abuseReporting_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
#The salt is size restricted here as a maximum salt size of 16 characters exists due to the functions used.
matrix_bot_draupnir_config_web_synapseHTTPAntispam_authorization: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'draupnir.httpmod', rounds=655555) | to_uuid }}" # noqa var-naming
###################################################################### ######################################################################
# #
@ -3300,7 +3312,7 @@ backup_borg_storage_archive_name_format: matrix-{now:%Y-%m-%d-%H%M%S}
backup_borg_base_path: "{{ matrix_base_data_path }}/backup-borg" backup_borg_base_path: "{{ matrix_base_data_path }}/backup-borg"
backup_borg_username: "{{ matrix_user_username }}" backup_borg_username: "{{ matrix_user_name }}"
backup_borg_uid: "{{ matrix_user_uid }}" backup_borg_uid: "{{ matrix_user_uid }}"
backup_borg_gid: "{{ matrix_user_gid }}" backup_borg_gid: "{{ matrix_user_gid }}"
@ -3556,10 +3568,8 @@ matrix_coturn_container_additional_volumes: |
) )
}} }}
matrix_coturn_systemd_required_services_list: | matrix_coturn_systemd_required_services_list_auto: |
{{ {{
[devture_systemd_docker_base_docker_service_name]
+
([traefik_certs_dumper_identifier + '-wait-for-domain@' + matrix_server_fqn_matrix + '.service'] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else []) ([traefik_certs_dumper_identifier + '-wait-for-domain@' + matrix_server_fqn_matrix + '.service'] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else [])
}} }}
@ -3731,7 +3741,7 @@ jitsi_base_path: "{{ matrix_base_data_path }}/jitsi"
jitsi_uid: "{{ matrix_user_uid }}" jitsi_uid: "{{ matrix_user_uid }}"
jitsi_gid: "{{ matrix_user_gid }}" jitsi_gid: "{{ matrix_user_gid }}"
jitsi_user_username: "{{ matrix_user_username }}" jitsi_user_username: "{{ matrix_user_name }}"
jitsi_web_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_web_container_image_registry_prefix_upstream_default }}" jitsi_web_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else jitsi_web_container_image_registry_prefix_upstream_default }}"
@ -4599,6 +4609,14 @@ matrix_client_element_enable_presence_by_hs_url: |-
matrix_client_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jitsi_enabled else '' }}" matrix_client_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jitsi_enabled else '' }}"
matrix_client_element_features_feature_video_rooms: "{{ matrix_rtc_enabled }}"
matrix_client_element_features_feature_group_calls: "{{ matrix_rtc_enabled }}"
matrix_client_element_features_feature_element_call_video_rooms: "{{ matrix_rtc_enabled }}"
matrix_client_element_features_feature_oidc_native_flow: "{{ matrix_authentication_service_enabled }}"
matrix_client_element_element_call_enabled: "{{ matrix_element_call_enabled }}"
matrix_client_element_element_call_url: "{{ matrix_element_call_public_url if matrix_element_call_enabled else '' }}"
###################################################################### ######################################################################
# #
# /matrix-client-element # /matrix-client-element
@ -4775,7 +4793,7 @@ matrix_client_fluffychat_self_check_validate_certificates: "{{ matrix_playbook_s
matrix_synapse_enabled: "{{ matrix_homeserver_implementation == 'synapse' }}" matrix_synapse_enabled: "{{ matrix_homeserver_implementation == 'synapse' }}"
matrix_synapse_username: "{{ matrix_user_username }}" matrix_synapse_username: "{{ matrix_user_name }}"
matrix_synapse_uid: "{{ matrix_user_uid }}" matrix_synapse_uid: "{{ matrix_user_uid }}"
matrix_synapse_gid: "{{ matrix_user_gid }}" matrix_synapse_gid: "{{ matrix_user_gid }}"
@ -4785,6 +4803,8 @@ matrix_synapse_docker_image_registry_prefix_upstream: "{{ matrix_container_globa
matrix_s3_goofys_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_s3_goofys_docker_image_registry_prefix_upstream_default }}" matrix_s3_goofys_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_s3_goofys_docker_image_registry_prefix_upstream_default }}"
matrix_synapse_rust_synapse_compress_state_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_synapse_rust_synapse_compress_state_docker_image_registry_prefix_upstream_default }}"
matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_synapse_account_threepid_delegates_msisdn_mas1sd_url: "{{ ('http://matrix-ma1sd:' + matrix_ma1sd_container_port| string) }}" matrix_synapse_account_threepid_delegates_msisdn_mas1sd_url: "{{ ('http://matrix-ma1sd:' + matrix_ma1sd_container_port| string) }}"
@ -4815,6 +4835,8 @@ matrix_synapse_container_additional_networks_auto: |
([exim_relay_container_network] if (exim_relay_enabled and matrix_synapse_email_enabled and matrix_synapse_email_smtp_host == exim_relay_identifier and matrix_synapse_container_network != exim_relay_container_network) else []) ([exim_relay_container_network] if (exim_relay_enabled and matrix_synapse_email_enabled and matrix_synapse_email_smtp_host == exim_relay_identifier and matrix_synapse_container_network != exim_relay_container_network) else [])
+ +
([matrix_ma1sd_container_network] if (matrix_ma1sd_enabled and matrix_synapse_account_threepid_delegates_msisdn == matrix_synapse_account_threepid_delegates_msisdn_mas1sd_url and matrix_synapse_container_network != matrix_ma1sd_container_network) else []) ([matrix_ma1sd_container_network] if (matrix_ma1sd_enabled and matrix_synapse_account_threepid_delegates_msisdn == matrix_synapse_account_threepid_delegates_msisdn_mas1sd_url and matrix_synapse_container_network != matrix_ma1sd_container_network) else [])
+
([matrix_bot_draupnir_container_network] if (matrix_synapse_ext_synapse_http_antispam_enabled and matrix_synapse_ext_synapse_http_antispam_config_base_url == matrix_bot_draupnir_synapse_http_antispam_config_base_url and matrix_bot_draupnir_container_network != matrix_synapse_container_network) else [])
) | unique ) | unique
}} }}
@ -4833,6 +4855,8 @@ matrix_synapse_container_labels_public_client_root_redirection_enabled: "{{ matr
matrix_synapse_container_labels_public_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}" matrix_synapse_container_labels_public_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}"
matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: "{{ matrix_synapse_admin_enabled }}" matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: "{{ matrix_synapse_admin_enabled }}"
matrix_synapse_container_labels_internal_client_synapse_admin_api_enabled: "{{ (matrix_bot_draupnir_enabled and matrix_bot_draupnir_admin_api_enabled) }}"
matrix_synapse_container_labels_internal_client_synapse_admin_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
matrix_synapse_container_labels_public_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix_federation }}" matrix_synapse_container_labels_public_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix_federation }}"
matrix_synapse_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}" matrix_synapse_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
@ -4908,9 +4932,18 @@ matrix_synapse_app_service_config_files_auto: "{{ matrix_homeserver_app_service_
# Disable creation of media repository Synapse worker when using media-repo # Disable creation of media repository Synapse worker when using media-repo
matrix_synapse_ext_media_repo_enabled: "{{ matrix_media_repo_enabled }}" matrix_synapse_ext_media_repo_enabled: "{{ matrix_media_repo_enabled }}"
matrix_synapse_ext_synapse_http_antispam_enabled: "{{ matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled }}"
matrix_synapse_ext_synapse_http_antispam_config_base_url: "{{ matrix_bot_draupnir_synapse_http_antispam_config_base_url if matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled else '' }}"
matrix_synapse_ext_synapse_http_antispam_config_authorization: "{{ matrix_bot_draupnir_config_web_synapseHTTPAntispam_authorization if matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled else '' }}"
matrix_synapse_ext_synapse_http_antispam_config_enabled_callbacks: "{{ matrix_bot_draupnir_synapse_http_antispam_config_enabled_callbacks if matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled else [] }}"
matrix_synapse_ext_synapse_http_antispam_config_fail_open: "{{ matrix_bot_draupnir_synapse_http_antispam_config_fail_open if matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled else {} }}"
matrix_synapse_ext_synapse_http_antispam_config_async: "{{ matrix_bot_draupnir_synapse_http_antispam_config_async if matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled else {} }}"
# Enable Synapse statistics reporting when using synapse-usage-exporter # Enable Synapse statistics reporting when using synapse-usage-exporter
matrix_synapse_report_stats: "{{ matrix_synapse_usage_exporter_enabled }}" matrix_synapse_report_stats: "{{ matrix_synapse_usage_exporter_enabled }}"
matrix_synapse_report_stats_endpoint: "http://{{ matrix_synapse_usage_exporter_identifier }}:{{ matrix_synapse_usage_exporter_container_port | string }}/report-usage-stats/push" matrix_synapse_report_stats_endpoint: "{{ (('http://' + matrix_synapse_usage_exporter_identifier + ':' + matrix_synapse_usage_exporter_container_port | string + '/report-usage-stats/push') if matrix_synapse_usage_exporter_enabled else '') }}"
matrix_synapse_experimental_features_msc3266_enabled: "{{ matrix_rtc_enabled }}"
matrix_synapse_experimental_features_msc3861_enabled: "{{ matrix_authentication_service_enabled and not matrix_authentication_service_migration_in_progress }}" matrix_synapse_experimental_features_msc3861_enabled: "{{ matrix_authentication_service_enabled and not matrix_authentication_service_migration_in_progress }}"
matrix_synapse_experimental_features_msc3861_issuer: "{{ matrix_authentication_service_http_base_container_url if matrix_authentication_service_enabled else '' }}" matrix_synapse_experimental_features_msc3861_issuer: "{{ matrix_authentication_service_http_base_container_url if matrix_authentication_service_enabled else '' }}"
@ -4920,6 +4953,10 @@ matrix_synapse_experimental_features_msc3861_account_management_url: "{{ matrix_
matrix_synapse_experimental_features_msc4108_enabled: "{{ matrix_authentication_service_enabled and not matrix_authentication_service_migration_in_progress }}" matrix_synapse_experimental_features_msc4108_enabled: "{{ matrix_authentication_service_enabled and not matrix_authentication_service_migration_in_progress }}"
matrix_synapse_experimental_features_msc4140_enabled: "{{ matrix_rtc_enabled }}"
matrix_synapse_experimental_features_msc4222_enabled: "{{ matrix_rtc_enabled }}"
# Disable password authentication when delegating authentication to Matrix Authentication Service. # Disable password authentication when delegating authentication to Matrix Authentication Service.
# Unless this is done, Synapse fails on startup with: # Unless this is done, Synapse fails on startup with:
# > Error in configuration at 'password_config.enabled': # > Error in configuration at 'password_config.enabled':
@ -5013,6 +5050,9 @@ matrix_synapse_reverse_proxy_companion_container_labels_traefik_compression_midd
matrix_synapse_reverse_proxy_companion_container_labels_public_client_synapse_client_api_enabled: "{{ matrix_synapse_container_labels_public_client_synapse_client_api_enabled }}" matrix_synapse_reverse_proxy_companion_container_labels_public_client_synapse_client_api_enabled: "{{ matrix_synapse_container_labels_public_client_synapse_client_api_enabled }}"
matrix_synapse_reverse_proxy_companion_container_labels_public_client_synapse_admin_api_enabled: "{{ matrix_synapse_container_labels_public_client_synapse_admin_api_enabled }}" matrix_synapse_reverse_proxy_companion_container_labels_public_client_synapse_admin_api_enabled: "{{ matrix_synapse_container_labels_public_client_synapse_admin_api_enabled }}"
matrix_synapse_reverse_proxy_companion_container_labels_internal_client_synapse_admin_api_enabled: "{{ matrix_synapse_container_labels_internal_client_synapse_admin_api_enabled }}"
matrix_synapse_reverse_proxy_companion_container_labels_internal_client_synapse_admin_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
matrix_synapse_reverse_proxy_companion_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_synapse_container_labels_public_federation_api_traefik_entrypoints }}" matrix_synapse_reverse_proxy_companion_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_synapse_container_labels_public_federation_api_traefik_entrypoints }}"
matrix_synapse_reverse_proxy_companion_container_labels_public_federation_api_traefik_tls: "{{ matrix_synapse_container_labels_public_federation_api_traefik_tls }}" matrix_synapse_reverse_proxy_companion_container_labels_public_federation_api_traefik_tls: "{{ matrix_synapse_container_labels_public_federation_api_traefik_tls }}"
@ -5305,7 +5345,7 @@ prometheus_node_exporter_gid: "{{ matrix_user_gid }}"
prometheus_node_exporter_hostname: "{{ matrix_server_fqn_matrix }}" prometheus_node_exporter_hostname: "{{ matrix_server_fqn_matrix }}"
prometheus_node_exporter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_node_exporter_docker_image_registry_prefix_upstream_default }}" prometheus_node_exporter_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_node_exporter_container_image_registry_prefix_upstream_default }}"
prometheus_node_exporter_container_network: "{{ matrix_monitoring_container_network }}" prometheus_node_exporter_container_network: "{{ matrix_monitoring_container_network }}"
@ -5343,7 +5383,7 @@ prometheus_postgres_exporter_gid: "{{ matrix_user_gid }}"
prometheus_postgres_exporter_hostname: "{{ matrix_server_fqn_matrix }}" prometheus_postgres_exporter_hostname: "{{ matrix_server_fqn_matrix }}"
prometheus_postgres_exporter_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_postgres_exporter_docker_image_registry_prefix_upstream_default }}" prometheus_postgres_exporter_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else prometheus_postgres_exporter_container_image_registry_prefix_upstream_default }}"
prometheus_postgres_exporter_container_network: "{{ matrix_monitoring_container_network }}" prometheus_postgres_exporter_container_network: "{{ matrix_monitoring_container_network }}"
@ -5566,7 +5606,7 @@ grafana_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_prim
grafana_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '3000') if matrix_playbook_service_host_bind_interface_prefix else '' }}" grafana_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '3000') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
grafana_provisioning_datasources: | grafana_provisioning_datasources_datasources: |
{{ {{
([{ ([{
'name': (matrix_server_fqn_matrix + ' - Prometheus'), 'name': (matrix_server_fqn_matrix + ' - Prometheus'),
@ -5609,6 +5649,7 @@ grafana_default_home_dashboard_path: |-
'dendrite': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), 'dendrite': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
'conduit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), 'conduit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
'conduwuit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''), 'conduwuit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
'continuwuity': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
}[matrix_homeserver_implementation] }[matrix_homeserver_implementation]
}} }}
@ -5669,6 +5710,7 @@ matrix_registration_shared_secret: |-
'dendrite': matrix_dendrite_client_api_registration_shared_secret | default (''), 'dendrite': matrix_dendrite_client_api_registration_shared_secret | default (''),
'conduit': '', 'conduit': '',
'conduwuit': '', 'conduwuit': '',
'continuwuity': '',
}[matrix_homeserver_implementation] }[matrix_homeserver_implementation]
}} }}
@ -5946,6 +5988,58 @@ matrix_conduwuit_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabl
###################################################################### ######################################################################
######################################################################
#
# matrix-continuwuity
#
######################################################################
matrix_continuwuity_enabled: "{{ matrix_homeserver_implementation == 'continuwuity' }}"
matrix_continuwuity_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_continuwuity_config_allow_federation: "{{ matrix_homeserver_federation_enabled }}"
matrix_continuwuity_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_continuwuity_docker_image_registry_prefix_upstream_default }}"
matrix_continuwuity_container_network: "{{ matrix_homeserver_container_network }}"
matrix_continuwuity_container_additional_networks_auto: |
{{
(
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_continuwuity_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network else [])
) | unique
}}
matrix_continuwuity_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and not matrix_synapse_workers_enabled }}"
matrix_continuwuity_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_continuwuity_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_continuwuity_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_continuwuity_container_labels_public_client_root_redirection_enabled: "{{ matrix_continuwuity_container_labels_public_client_root_redirection_url != '' }}"
matrix_continuwuity_container_labels_public_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}"
matrix_continuwuity_container_labels_public_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix_federation }}"
matrix_continuwuity_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
matrix_continuwuity_container_labels_public_federation_api_traefik_tls: "{{ matrix_federation_traefik_entrypoint_tls }}"
matrix_continuwuity_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
matrix_continuwuity_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
matrix_continuwuity_config_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}"
matrix_continuwuity_config_turn_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}"
matrix_continuwuity_config_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}"
matrix_continuwuity_config_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}"
matrix_continuwuity_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}"
######################################################################
#
# /matrix-continuwuity
#
######################################################################
###################################################################### ######################################################################
# #
# matrix-user-creator # matrix-user-creator
@ -6056,7 +6150,7 @@ matrix_user_verification_service_container_url: "http://{{ matrix_user_verifica
matrix_user_verification_service_uvs_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" matrix_user_verification_service_uvs_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
# We connect via the container network (private IPs), so we need to disable IP checks # We connect via the container network (private IPs), so we need to disable IP checks
matrix_user_verification_service_uvs_disable_ip_blacklist: "{{'true' if matrix_synapse_enabled else 'false'}}" matrix_user_verification_service_uvs_disable_ip_blacklist: "{{ matrix_synapse_enabled }}"
matrix_user_verification_service_uvs_auth_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'uvs.auth.token', rounds=655555) | to_uuid }}" matrix_user_verification_service_uvs_auth_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'uvs.auth.token', rounds=655555) | to_uuid }}"
@ -6092,7 +6186,7 @@ matrix_static_files_container_labels_base_domain_traefik_hostname: "{{ matrix_do
# If we're not serving a static webpage, serve a redirect instead of a 404. # If we're not serving a static webpage, serve a redirect instead of a 404.
matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: "{{ not matrix_static_files_file_index_html_enabled }}" matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: "{{ not matrix_static_files_file_index_html_enabled }}"
matrix_static_files_container_labels_base_domain_root_path_redirection_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_matrix }}" matrix_static_files_container_labels_base_domain_root_path_redirection_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_matrix }}/${1}"
matrix_static_files_file_matrix_client_property_io_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jitsi_enabled else '' }}" matrix_static_files_file_matrix_client_property_io_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jitsi_enabled else '' }}"
@ -6109,6 +6203,14 @@ matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "{{
# See: https://github.com/etkecc/synapse-admin/pull/126 # See: https://github.com/etkecc/synapse-admin/pull/126
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_auto: "{{ matrix_synapse_admin_configuration if matrix_homeserver_implementation == 'synapse' else {} }}" matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_auto: "{{ matrix_synapse_admin_configuration if matrix_homeserver_implementation == 'synapse' else {} }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled: "{{ matrix_livekit_jwt_service_enabled }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto: |-
{{
(
[{'type': 'livekit', 'livekit_service_url': matrix_livekit_jwt_service_public_url}] if matrix_livekit_jwt_service_enabled else []
)
}}
matrix_static_files_file_matrix_server_property_m_server: "{{ matrix_server_fqn_matrix_federation }}:{{ matrix_federation_public_port }}" matrix_static_files_file_matrix_server_property_m_server: "{{ matrix_server_fqn_matrix_federation }}:{{ matrix_federation_public_port }}"
matrix_static_files_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}" matrix_static_files_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
@ -6223,3 +6325,184 @@ traefik_certs_dumper_container_image_registry_prefix_upstream: "{{ matrix_contai
# /traefik_certs_dumper # # /traefik_certs_dumper #
# # # #
######################################################################## ########################################################################
########################################################################
# #
# matrix-element-call #
# #
########################################################################
matrix_element_call_enabled: false
matrix_element_call_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_element_call_container_network: "{{ matrix_addons_container_network }}"
matrix_element_call_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_element_call_container_image_registry_prefix_upstream_default }}"
matrix_element_call_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_element_call_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
matrix_element_call_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_element_call_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_element_call_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_element_call_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_element_call_config_livekit_livekit_service_url: "{{ matrix_livekit_jwt_service_public_url if matrix_livekit_jwt_service_enabled else '' }}"
########################################################################
# #
# /matrix-element-call #
# #
########################################################################
########################################################################
# #
# livekit-server #
# #
########################################################################
livekit_server_enabled: "{{ matrix_rtc_enabled }}"
livekit_server_identifier: matrix-livekit-server
livekit_server_uid: "{{ matrix_user_uid }}"
livekit_server_gid: "{{ matrix_user_gid }}"
livekit_server_base_path: "{{ matrix_base_data_path }}/livekit-server"
livekit_server_hostname: "{{ matrix_server_fqn_matrix }}"
livekit_server_path_prefix: "/livekit-server"
livekit_server_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
livekit_server_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else livekit_server_container_image_registry_prefix_upstream_default }}"
livekit_server_container_network: "{{ matrix_addons_container_network }}"
livekit_server_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (livekit_server_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
livekit_server_container_additional_volumes_auto: |
{{
(
[
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + livekit_server_config_turn_domain + '/certificate.crt'),
'dst': livekit_server_config_turn_cert_file,
'options': 'ro',
},
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + livekit_server_config_turn_domain + '/privatekey.key'),
'dst': livekit_server_config_turn_key_file,
'options': 'ro',
},
] if (matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and livekit_server_config_turn_enabled and (livekit_server_config_turn_cert_file and livekit_server_config_turn_key_file)) else []
)
}}
livekit_server_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
livekit_server_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
livekit_server_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
livekit_server_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
livekit_server_container_labels_public_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
livekit_server_container_labels_public_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
livekit_server_metrics_proxying_enabled: "{{ livekit_server_config_prometheus_enabled and matrix_metrics_exposure_enabled }}"
livekit_server_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
livekit_server_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/livekit-server"
livekit_server_config_prometheus_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
livekit_server_config_keys_auto: |-
{{
{}
| combine(
{matrix_livekit_jwt_service_environment_variable_livekit_key: matrix_livekit_jwt_service_environment_variable_livekit_secret}
if matrix_livekit_jwt_service_enabled else {}
)
}}
# The playbook intentionally uses a non-standard port than the default used by the role (5349),
# because Coturn is already using that port.
# Note that TURN is not enabled by default. See `livekit_server_config_turn_enabled`.
livekit_server_config_turn_tls_port: 5350
# The playbook intentionally uses a non-standard port than the default used by the role (3478),
# because Coturn is already using that port.
# Note that TURN is not enabled by default. See `livekit_server_config_turn_enabled`.
livekit_server_config_turn_udp_port: 3479
# LiveKit's TURN implementation requires SSL certificates.
# We only enable it if we can provide them automatically via Traefik + Traefik Certs Dumper.
livekit_server_config_turn_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled }}"
livekit_server_config_turn_cert_file: |-
{{
{
'playbook-managed-traefik': ('/certificate.crt' if traefik_certs_dumper_enabled else ''),
'other-traefik-container': ('/certificate.crt' if traefik_certs_dumper_enabled else ''),
'none': '',
}[matrix_playbook_reverse_proxy_type]
}}
livekit_server_config_turn_key_file: |-
{{
{
'playbook-managed-traefik': ('/privatekey.key' if traefik_certs_dumper_enabled else ''),
'other-traefik-container': ('/privatekey.key' if traefik_certs_dumper_enabled else ''),
'none': '',
}[matrix_playbook_reverse_proxy_type]
}}
livekit_server_systemd_required_services_list_auto: |
{{
([traefik_certs_dumper_identifier + '-wait-for-domain@' + livekit_server_config_turn_domain + '.service'] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and livekit_server_config_turn_enabled else [])
}}
########################################################################
# #
# /livekit-server #
# #
########################################################################
########################################################################
# #
# matrix-livekit-jwt-service #
# #
########################################################################
matrix_livekit_jwt_service_enabled: "{{ matrix_rtc_enabled and livekit_server_enabled }}"
matrix_livekit_jwt_service_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_livekit_jwt_service_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_livekit_jwt_service_path_prefix: "/livekit-jwt-service"
matrix_livekit_jwt_service_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"
matrix_livekit_jwt_service_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_livekit_jwt_service_container_image_registry_prefix_upstream_default }}"
matrix_livekit_jwt_service_container_network: "{{ matrix_addons_container_network }}"
matrix_livekit_jwt_service_container_additional_networks_auto: |
{{
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_livekit_jwt_service_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [])
}}
matrix_livekit_jwt_service_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_livekit_jwt_service_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_livekit_jwt_service_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_livekit_jwt_service_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_livekit_jwt_service_environment_variable_livekit_url: "{{ livekit_server_websocket_public_url }}"
matrix_livekit_jwt_service_environment_variable_livekit_key: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'lk.key', rounds=655555) | to_uuid }}"
matrix_livekit_jwt_service_environment_variable_livekit_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'lk.secret', rounds=655555) | to_uuid }}"
########################################################################
# #
# /matrix-livekit-jwt-service #
# #
########################################################################

View File

@ -52,7 +52,7 @@ SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister
SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty
SPDX-FileCopyrightText: 2023 Antonis Christofides SPDX-FileCopyrightText: 2023 Antonis Christofides
SPDX-FileCopyrightText: 2023 Benjamin Kampmann SPDX-FileCopyrightText: 2023 Benjamin Kampmann
SPDX-FileCopyrightText: 2023 Catalan Lover SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman
SPDX-FileCopyrightText: 2023 Johan Swetzén SPDX-FileCopyrightText: 2023 Johan Swetzén
SPDX-FileCopyrightText: 2023 Kabir Kwatra SPDX-FileCopyrightText: 2023 Kabir Kwatra

View File

@ -20,7 +20,7 @@ Currently, we support translation of:
Organization of this `i18n` directory is as follows: Organization of this `i18n` directory is as follows:
- [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory) - [PUBLISHED_LANGUAGES](PUBLISHED_LANGUAGES): a list of languages that we publish translations for (in the [translations/](translations/) directory)
- [.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionaly ignore translated results (`translations/<language>` directories) for languages taht are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold. - [.gitignore](.gitignore): a list of files and directories to ignore in the `i18n` directory. We intentionally ignore translated results (`translations/<language>` directories) for languages that are still in progress. We only [publish translations in a new language](#publish-translations-in-a-new-language) when the translation progresses beyond a certain threshold.
- [justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner - [justfile](justfile): a list of recipes for [just](https://github.com/casey/just) command runner
- [requirements.txt](requirements.txt): a list of Python packages required to work with translations - [requirements.txt](requirements.txt): a list of Python packages required to work with translations
- [translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files - [translation-templates/](translation-templates/): a list of English translation templates - strings extracted from Markdown files

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