Compare commits

..

312 Commits

Author SHA1 Message Date
c497287ae8
meta: move inventory structure to be more usable 2024-08-24 11:37:01 +02:00
74d4ad73f2
meta: add own inventory, add vault-unlock with GPG 2024-08-24 11:36:57 +02:00
Slavi Pantaleev
bc7ef40019
Merge pull request #3494 from FSG-Cat/authenticated-media
Authenticated Media Configuration options
2024-08-23 20:22:43 +03:00
Catalan Lover
3eae4384dc
Add Authenticated Media configuration options 2024-08-23 16:35:14 +02:00
Slavi Pantaleev
efc61596a2
Merge pull request #3492 from aine-etke/patch-342
buscarron v1.4.3 - migrated to github
2024-08-21 23:20:10 +03:00
Aine
d887e08376
buscarron v1.4.3 - migrated to github 2024-08-21 23:08:17 +03:00
Slavi Pantaleev
48a1bf3b45
Merge pull request #3491 from aine-etke/patch-341
honoroit v0.9.25 - migrate to github
2024-08-21 21:25:26 +03:00
Aine
5fac2b65cd
honoroit v0.9.25 - migrate to github 2024-08-21 21:16:49 +03:00
Slavi Pantaleev
e42c530abc
Merge pull request #3490 from spantaleev/renovate/docker.io-metio-matrix-alertmanager-receiver-2024.x
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2024.8.21
2024-08-21 12:18:06 +03:00
renovate[bot]
6def6d2887
Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2024.8.21 2024-08-21 08:17:13 +00:00
Aine
5bd11f8175
postmoogle v0.9.21 (#3489)
* postmoogle v0.9.21

* update postmoogle source code url

* update postmoogle renovate comment
2024-08-21 08:47:40 +03:00
Slavi Pantaleev
c2e242ad73
Merge pull request #3488 from aine-etke/patch-339
fix schildichat docker image
2024-08-21 08:22:45 +03:00
Aine
cdc0c0e7af
fix schildichat docker image 2024-08-20 22:35:48 +03:00
Slavi Pantaleev
f1f3553eca
Merge pull request #3486 from spantaleev/renovate/vectorim-element-web-1.x
Update vectorim/element-web Docker tag to v1.11.75
2024-08-20 17:19:56 +03:00
renovate[bot]
335108fb8e
Update vectorim/element-web Docker tag to v1.11.75 2024-08-20 14:10:22 +00:00
Slavi Pantaleev
7581ab8ff4
Merge pull request #3485 from aine-etke/patch-338
migrate schildichat docker image
2024-08-20 17:09:15 +03:00
Aine
171f5f84a2
migrate schildichat docker image 2024-08-20 16:30:36 +03:00
Slavi Pantaleev
1385ad8254
Merge pull request #3484 from spantaleev/renovate/ghcr.io-element-hq-hydrogen-web-0.x
Update ghcr.io/element-hq/hydrogen-web Docker tag to v0.5.0
2024-08-20 13:53:44 +03:00
renovate[bot]
1d145e86b8
Update ghcr.io/element-hq/hydrogen-web Docker tag to v0.5.0 2024-08-20 10:47:58 +00:00
Slavi Pantaleev
55b222f636
Merge pull request #3482 from aine-etke/migrate-etkecc-roles
migrate etke.cc roles
2024-08-18 11:53:30 +03:00
Aine
63d5f20f38
migrate etke.cc roles 2024-08-18 11:42:43 +03:00
Slavi Pantaleev
e15d09819e Fix displayname_template for mautrix-slack containing {% endraw % %}
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3479#issuecomment-2294956958
2024-08-17 23:02:54 +03:00
Slavi Pantaleev
dabe46cf2f Add missing document start to matrix-appservice-double-puppet/defaults/main.yml 2024-08-17 22:55:30 +03:00
Slavi Pantaleev
2c3d0b9d81 Announce appservice-double-puppet 2024-08-17 21:43:11 +03:00
Slavi Pantaleev
2086e3efe0 Add appservice-double-puppet double-puppeting support to beeper-linkedin
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:25:52 +03:00
Slavi Pantaleev
48bab2f0ea Add appservice-double-puppet double-puppeting support to mautrix-gmessages
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:22:35 +03:00
Slavi Pantaleev
9b8fe6eadc Add appservice-double-puppet double-puppeting support to mautrix-googlechat
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:22:24 +03:00
Slavi Pantaleev
08c602b19c Add appservice-double-puppet double-puppeting support to mautrix-twitter
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:11:28 +03:00
Slavi Pantaleev
f0479dbd9e Add appservice-double-puppet double-puppeting support to mautrix-telegram
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:08:28 +03:00
Slavi Pantaleev
92c216bf5b Update configuring-playbook-mautrix-bridges.md with information About Appservice Double Puppet 2024-08-17 21:04:37 +03:00
Slavi Pantaleev
d3831ba3a5 Add appservice-double-puppet double-puppeting support to mautrix-whatsapp
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 21:04:09 +03:00
Slavi Pantaleev
fbd25ae9e9 Add appservice-double-puppet double-puppeting support to mautrix-meta-messenger/mautrix-meta-instagram
Shared Secret Auth double puppeting still works for these bridges, but
is deprecated and will go away in the future.
2024-08-17 19:31:04 +03:00
Slavi Pantaleev
77c59aaea0 Add appservice-double-puppet double-puppeting support to mautrix-discord
Shared Secret Auth double puppeting still works for this bridge, but
is deprecated and will go away in the future.
2024-08-17 19:31:04 +03:00
Slavi Pantaleev
1722e4bd83 Switch mautrix-slack double-puppeting method (shared secret auth -> appservice-double-puppet)
Since upgrading mautrix-slack (and pinning to v0.1.0) in e4b54c37fe,
we expect double-puppeting to require the new appservice double-puppeting method.

This commit switches the mautrix-slack bridge to it.
2024-08-17 19:03:38 +03:00
Slavi Pantaleev
999f2bf8dd Switch mautrix-signal double-puppeting method (shared secret auth -> appservice-double-puppet)
Since upgrading mautrix-signal (v0.6.3 -> v0.7.0) in 76fec0b863,
we expect double-puppeting to require the new appservice double-puppeting method.

This commit switches the mautrix-signal bridge to it.
2024-08-17 19:01:43 +03:00
Slavi Pantaleev
111fa65e44 Add appservice-double-puppet service for better bridge double-puppeting
Bridges will be switched to this new method in future patches.
2024-08-17 19:00:20 +03:00
Slavi Pantaleev
e4b54c37fe Upgrade mautrix-slack, pin to v0.1.0 and adapt configuration
Related to:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3479
- https://github.com/mautrix/slack/releases/tag/v0.1.0
- https://mau.fi/blog/2024-08-mautrix-release/
2024-08-17 16:43:35 +03:00
Slavi Pantaleev
76fec0b863 Upgrade mautrix-signal (v0.6.3 -> v0.7.0) and adapt configuration
Related to:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3479
- https://github.com/mautrix/signal/releases/tag/v0.7.0
- https://mau.fi/blog/2024-08-mautrix-release/

It seems like the new version does not support a `/metrics` endpoint.
We skip keep the Ansible variables, but they're not doing anything.

Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3481
2024-08-17 15:58:38 +03:00
Slavi Pantaleev
d35c0f486f
Merge pull request #3480 from spantaleev/renovate/nginx-1.x
chore(deps): update nginx docker tag to v1.27.1
2024-08-16 08:50:48 +03:00
renovate[bot]
e3d489c5fe
chore(deps): update nginx docker tag to v1.27.1 2024-08-15 23:04:44 +00:00
Aine
70cbf3d5ae
add synapse-auto-compressor workaround, fixes #3397 (#3473)
* add synapse-auto-compressor workaround, fixes #3397

* Clarify what the PG-prefixed variables are for

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-08-15 11:36:48 +03:00
lon
332301f2ed
Add DNS-01 challenge to configuring-playbook-ssl-certificates.md (#3474)
* Add DNS-01 challenge to configuring-playbook-ssl-certificates.md

* Minor rewording to the DNS-01 challenge type documentation

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-08-15 09:46:14 +03:00
Slavi Pantaleev
7005b8db26 Announce matrix-media-repo Authenticated Media support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3469
2024-08-15 09:38:41 +03:00
Slavi Pantaleev
48e021e446
Merge pull request #3469 from Michael-Hollister/michael/mmr-signing-key
Automated MMR signing key generation process
2024-08-15 09:26:55 +03:00
Slavi Pantaleev
05e813a846
Default matrix_media_repo_generate_signing_key to false in the matrix-media-repo role
No need to duplicate the same logic as in `group_vars/matrix_servers`.

Having it disabled by default in the role itself and overriding it at the playbook level (based on the selected homeserver implementation) makes more sense.
2024-08-15 09:25:08 +03:00
Slavi Pantaleev
922fe9af26
Merge pull request #3478 from spantaleev/renovate/grafana-11.x
chore(deps): update dependency grafana to v11.1.4-0
2024-08-15 08:15:57 +03:00
renovate[bot]
8eeffec47b
chore(deps): update dependency grafana to v11.1.4-0 2024-08-15 00:39:58 +00:00
Slavi Pantaleev
f629f3b0bb
Merge pull request #3477 from spantaleev/renovate/joseluisq-static-web-server-2.x
chore(deps): update joseluisq/static-web-server docker tag to v2.32.2
2024-08-14 07:30:08 +03:00
renovate[bot]
8a2bd345fd
chore(deps): update joseluisq/static-web-server docker tag to v2.32.2 2024-08-14 00:43:39 +00:00
Michael Hollister
56b0a72000 Apply PR feedback 2024-08-13 14:22:14 -05:00
Slavi Pantaleev
1691eaa7e5
Merge pull request #3475 from spantaleev/renovate/vectorim-element-web-1.x
chore(deps): update vectorim/element-web docker tag to v1.11.74
2024-08-13 22:19:24 +03:00
Slavi Pantaleev
ff19c0bc19
Merge pull request #3476 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.113.0
2024-08-13 22:19:03 +03:00
renovate[bot]
b022004adf
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.113.0 2024-08-13 17:13:32 +00:00
renovate[bot]
e1354d505f
chore(deps): update vectorim/element-web docker tag to v1.11.74 2024-08-13 17:13:29 +00:00
Slavi Pantaleev
01dbd259c6
Merge pull request #3472 from aine-etke/patch-337
Update agru url in justfile
2024-08-12 09:06:08 +03:00
Aine
c4d07f8b08
Update agru url in justfile 2024-08-11 22:38:44 +03:00
Slavi Pantaleev
6bef71ebb8 Make ansible-lint happy 2024-08-10 06:37:48 +03:00
Slavi Pantaleev
9d11271d59 Initial (not yet enabled) work on Heisenbridge handling media requests at matrix.DOMAIN/heisenbridge/*
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3470
- https://github.com/hifi/heisenbridge/releases/tag/v1.15.0

During testing, it appears that Heisenbridge generated media URLs
that look like this: `{media_url}/_matrix/media/v3/download/DOMAIN/FILE_ID/FILE_NAME`.

This seems off. We were expecting `{media_url}/_heisenbridge/media/something`
(e.g. `https://matrix.DOMAIN/heisenbridge/_heisenbridge/media/something`, leading to its own media proxy),
but Heisenbridge still seems to be generating URLs destined for the homeserver's Media API.

Until we figure out why that is, `media_url` remains pointed to the homeserver URL (just like before),
so that the bot can continue operating like before.
2024-08-10 06:22:59 +03:00
Slavi Pantaleev
8915869824
Merge pull request #3470 from spantaleev/renovate/hif1-heisenbridge-1.x
chore(deps): update hif1/heisenbridge docker tag to v1.15.0
2024-08-10 05:50:05 +03:00
renovate[bot]
5323bcc906
chore(deps): update hif1/heisenbridge docker tag to v1.15.0 2024-08-10 02:41:18 +00:00
Michael Hollister
c3fd33566d Automated MMR signing key generation process 2024-08-09 13:43:26 -05:00
Slavi Pantaleev
25b8f334a3
Merge pull request #3468 from spantaleev/renovate/prometheus-2.x
chore(deps): update dependency prometheus to v2.54.0-0
2024-08-09 16:33:19 +03:00
Slavi Pantaleev
c44432b968
Merge pull request #3467 from spantaleev/renovate/etherpad-2.x
chore(deps): update dependency etherpad to v2.2.2-0
2024-08-09 16:32:58 +03:00
renovate[bot]
abefed3dff
chore(deps): update dependency prometheus to v2.54.0-0 2024-08-09 13:30:11 +00:00
renovate[bot]
f4b58b95e9
chore(deps): update dependency etherpad to v2.2.2-0 2024-08-09 13:30:07 +00:00
Slavi Pantaleev
6c55c867af Fix exim-relay version (v4.98-r0-0-1 -> v4.98-r0-1-0) 2024-08-08 12:28:48 +03:00
Slavi Pantaleev
1184b3df02 Upgrade matrix-corporal (2.8.0 -> 3.0.0) 2024-08-08 11:59:07 +03:00
Slavi Pantaleev
96e0890df4 Upgrade devture/ansible (2.17.0-r0-0 -> 2.17.0-r0-1) 2024-08-08 11:30:56 +03:00
Slavi Pantaleev
c689eda506 Upgrade exim-relay (v4.98-r0-0-0 -> v4.98-r0-1-0) 2024-08-08 11:13:19 +03:00
Slavi Pantaleev
849c74991d Upgrade Traefik (v3.1.1-0 -> v3.1.2-0) 2024-08-08 06:48:40 +03:00
Slavi Pantaleev
d76a5c14d0 Make use of prebuilt Hydrogen container image on arm64
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2336

Related to https://github.com/element-hq/hydrogen-web/pull/996
2024-08-08 06:45:34 +03:00
Chasethechicken
4d46b625ff
Draupnir proxy (#3313)
* Allow redircting abuse-reports to draupnir

* Document redirecting abuse-reports to draupnir via traefik

* Apply suggestions from code review

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

* Rename variable

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-08-08 06:41:45 +03:00
Slavi Pantaleev
62ed4b6c9c
Merge pull request #3465 from spantaleev/renovate/vectorim-element-web-1.x
chore(deps): update vectorim/element-web docker tag to v1.11.73
2024-08-06 19:32:48 +03:00
renovate[bot]
9967165722
chore(deps): update vectorim/element-web docker tag to v1.11.73 2024-08-06 15:13:31 +00:00
Slavi Pantaleev
c675f19fe9
Merge pull request #3464 from adam-kress/master
Upgrade Jitsi (v9584-1 -> v9646-0)
2024-08-05 15:36:45 +03:00
adam-kress
d68fdbb409
Upgrade Jitsi (v9584-1 -> v9646-0) 2024-08-05 08:00:55 -04:00
Slavi Pantaleev
5cef79290f
Merge pull request #3462 from spantaleev/renovate/ajbura-cinny-4.x
chore(deps): update ajbura/cinny docker tag to v4.1.0
2024-08-04 18:01:08 +03:00
renovate[bot]
95e400b571
chore(deps): update ajbura/cinny docker tag to v4.1.0 2024-08-04 12:48:06 +00:00
Jost Alemann
2a35ad5a0a
Update nginx fronting example: http2 config and enable quic+http3 (#3460)
* update http2 config due to deprecation

the previous way to let `http2` follow a `listen` was depracated, it
moved to `http2 on;`

* enable quic and http3

I hope the comments are somewhat understandable. if someone can describe
the `reuseport` part more concise, please do.
2024-08-01 18:12:27 +03:00
Slavi Pantaleev
0db1e69790
Merge pull request #3459 from Zocker1999NET/patch-3
docs/maintenance-upgrading: indent "either" commands
2024-08-01 11:52:38 +03:00
Felix Stupp
97410df4f0
docs/maintenance-upgrading: indent "either" commands
improves readability
2024-08-01 08:40:37 +00:00
Slavi Pantaleev
c32881981e Upgrade Traefik (v3.1.0-0 -> v3.1.1-0) 2024-07-31 21:18:22 +03:00
Slavi Pantaleev
c6bc56139b
Merge pull request #3458 from spantaleev/renovate/ghcr.io-t2bot-matrix-media-repo-1.x
chore(deps): update ghcr.io/t2bot/matrix-media-repo docker tag to v1.3.7
2024-07-31 08:16:29 +03:00
renovate[bot]
b5473b3bd0
chore(deps): update ghcr.io/t2bot/matrix-media-repo docker tag to v1.3.7 2024-07-31 00:06:21 +00:00
Slavi Pantaleev
5f121a9fdb Upgrade Synapse (v1.111.1 -> v1.112.0) 2024-07-30 20:39:51 +03:00
Slavi Pantaleev
69ec437f82
Merge pull request #3457 from spantaleev/renovate/vectorim-element-web-1.x
chore(deps): update vectorim/element-web docker tag to v1.11.72
2024-07-30 19:50:13 +03:00
Slavi Pantaleev
fc7e8eef5d
Merge pull request #3456 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.111.1
2024-07-30 19:49:34 +03:00
renovate[bot]
aee6101f95
chore(deps): update vectorim/element-web docker tag to v1.11.72 2024-07-30 16:26:26 +00:00
renovate[bot]
9c3c25419e
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.111.1 2024-07-30 16:26:21 +00:00
Aine
1c0b14f63c
Update SaaS section in readme (#3455)
* Update SaaS section in readme

* Improve sentence wording

* Improve sentence flow

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-30 16:02:48 +03:00
Slavi Pantaleev
686a547dd3
Merge pull request #3454 from spantaleev/renovate/redis-7.x
chore(deps): update dependency redis to v7.2.5-0
2024-07-29 13:51:39 +03:00
renovate[bot]
8297c115ea
chore(deps): update dependency redis to v7.2.5-0 2024-07-29 10:46:07 +00:00
Slavi Pantaleev
ba04bace6d
Merge pull request #3453 from spantaleev/renovate/registry.gitlab.com-etke.cc-postmoogle-0.x
chore(deps): update registry.gitlab.com/etke.cc/postmoogle docker tag to v0.9.20
2024-07-27 22:11:45 +03:00
Slavi Pantaleev
b5de934ccb
Merge pull request #3452 from spantaleev/renovate/registry.gitlab.com-etke.cc-honoroit-0.x
chore(deps): update registry.gitlab.com/etke.cc/honoroit docker tag to v0.9.24
2024-07-27 22:11:29 +03:00
renovate[bot]
af089b89d1
chore(deps): update registry.gitlab.com/etke.cc/postmoogle docker tag to v0.9.20 2024-07-27 18:46:39 +00:00
renovate[bot]
880daf55af
chore(deps): update registry.gitlab.com/etke.cc/honoroit docker tag to v0.9.24 2024-07-27 18:46:34 +00:00
Slavi Pantaleev
570582b30b Upgrade Grafana (v11.1.3-0 -> v11.1.3-1)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3449

Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3450
2024-07-27 16:16:17 +03:00
Slavi Pantaleev
71a48ab580
Merge pull request #3447 from spantaleev/renovate/grafana-11.x
chore(deps): update dependency grafana to v11.1.3-0
2024-07-26 21:21:02 +03:00
renovate[bot]
bcd846d3b8
chore(deps): update dependency grafana to v11.1.3-0 2024-07-26 17:22:06 +00:00
Slavi Pantaleev
035b1c3c04 Upgrade Coturn (4.6.2-r10 -> 4.6.2-r11) 2024-07-26 15:15:51 +03:00
Slavi Pantaleev
a1a1c98257 Upgrade Grafana (v11.1.0-0 -> v11.1.1-0)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3445
2024-07-25 20:40:18 +03:00
Slavi Pantaleev
0028e3e27d Revert "chore(deps): update dependency grafana to v11.1.2-0"
This reverts commit 90e3f4cba8.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3445
2024-07-25 20:37:44 +03:00
Slavi Pantaleev
020c66a2c1 Announce synapse-usage-exporter support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3442
2024-07-25 20:30:41 +03:00
Slavi Pantaleev
4d9de7d58a Add matrix_synapse_usage_exporter_hostname and matrix_synapse_usage_exporter_path_prefix
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3442
2024-07-25 20:24:40 +03:00
Michael Hollister
55f869254b
Created role for synapse-usage-exporter (#3442)
* Created role for synapse-usage-exporter

* Apply suggestions from code review

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

* Renaming docker variables and moving synapse stats config location

* Respect devture_systemd_docker_base_docker_service_name

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-25 20:19:08 +03:00
Slavi Pantaleev
4202115dbe
Merge pull request #3446 from spantaleev/renovate/ajbura-cinny-4.x
chore(deps): update ajbura/cinny docker tag to v4.0.3
2024-07-25 15:08:19 +03:00
renovate[bot]
e29b5323df
chore(deps): update ajbura/cinny docker tag to v4.0.3 2024-07-25 11:31:33 +00:00
Slavi Pantaleev
57eeb1be33 Upgrade Cinny (v3.2.0 -> v4.0.0) and adapt our custom nginx configuration with the new URL rewrites
Cinny includes nginx configuration which does URL rewrites now, as seen
here: https://raw.githubusercontent.com/cinnyapp/cinny/dev/docker-nginx.conf

That said, we have our own nginx configuration for Cinny, because we'd
like to run ngin as non-root and on a non-privileged port (80 -> 8080).

For this reason, we override `/etc/nginx/nginx.conf` and need to
duplicate what we see in `/etc/nginx/conf.d/default.conf` with our own
`server` block (which listens on port 8080).
2024-07-24 21:54:06 +03:00
Slavi Pantaleev
ded398bf44
Merge pull request #3441 from Michael-Hollister/michael/mmr-config-updates-7-23-24
Added new fields to MMR config template
2024-07-24 20:27:40 +03:00
Slavi Pantaleev
c4e690d764
Merge pull request #3443 from spantaleev/renovate/grafana-11.x
chore(deps): update dependency grafana to v11.1.2-0
2024-07-24 16:14:41 +03:00
renovate[bot]
90e3f4cba8
chore(deps): update dependency grafana to v11.1.2-0 2024-07-24 13:11:41 +00:00
Michael Hollister
f1dbbd3106 Added new fields to MMR config template 2024-07-23 11:29:19 -05:00
Slavi Pantaleev
18f4b8a0b6
Merge pull request #3440 from spantaleev/renovate/registry.gitlab.com-etke.cc-honoroit-0.x
chore(deps): update registry.gitlab.com/etke.cc/honoroit docker tag to v0.9.23
2024-07-23 14:25:19 +03:00
Aine
91f5731287
buscarron v1.4.2 (#3437)
* buscarron v1.4.2

* Add more spaces before comments

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-23 14:21:32 +03:00
renovate[bot]
98f5f1c200
chore(deps): update registry.gitlab.com/etke.cc/honoroit docker tag to v0.9.23 2024-07-23 11:21:13 +00:00
Slavi Pantaleev
35b23f8ec4
Merge pull request #3438 from spantaleev/renovate/registry.gitlab.com-etke.cc-postmoogle-0.x
chore(deps): update registry.gitlab.com/etke.cc/postmoogle docker tag to v0.9.19
2024-07-23 14:20:31 +03:00
renovate[bot]
98a2810fa2
chore(deps): update registry.gitlab.com/etke.cc/postmoogle docker tag to v0.9.19 2024-07-23 10:22:47 +00:00
Slavi Pantaleev
03195ce80e
Merge pull request #3436 from Michael-Hollister/michael/mmr-metrics-proxying
Added MMR metrics proxying support
2024-07-23 08:27:15 +03:00
Michael Hollister
2c360a99fe Added MMR metrics proxying support 2024-07-22 17:38:34 -05:00
Slavi Pantaleev
cb7726f4a8 Make sure Draupnir is connected to Pantalaimon's network when Pantalaimon enabled
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3434
2024-07-21 08:23:42 +03:00
Slavi Pantaleev
9c5f22abeb
Merge pull request #3435 from spantaleev/renovate/joseluisq-static-web-server-2.x
chore(deps): update joseluisq/static-web-server docker tag to v2.32.1
2024-07-21 07:52:58 +03:00
renovate[bot]
bf6e9a2bfa
chore(deps): update joseluisq/static-web-server docker tag to v2.32.1 2024-07-21 00:06:35 +00:00
Slavi Pantaleev
36ef25669b
Merge pull request #3433 from spantaleev/renovate/awesometechnologies-synapse-admin-0.x
chore(deps): update awesometechnologies/synapse-admin docker tag to v0.10.3
2024-07-19 07:46:23 +03:00
Slavi Pantaleev
dce0f64f6d Use simple matching for ma1sd deprecated vars validation
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3432
2024-07-19 07:31:33 +03:00
renovate[bot]
469a0ebbf7
chore(deps): update awesometechnologies/synapse-admin docker tag to v0.10.3 2024-07-18 21:29:56 +00:00
Slavi Pantaleev
b09555f764 Use Go-style regexp and PathRegexp (not Path) for some ma1sd routes
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3430
2024-07-18 18:16:49 +03:00
Slavi Pantaleev
34b91957f0 Update comment 2024-07-17 17:54:10 +03:00
Slavi Pantaleev
a213164cb1 Enable client & federation listeners for media repository workers
Related to c6d8a68e77

Related to https://github.com/element-hq/synapse/pull/17421

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3427
2024-07-17 17:52:21 +03:00
Slavi Pantaleev
e608daaf8f Upgrade traefik_certs_dumper (v2.8.3-3 -> v2.8.3-4) 2024-07-17 16:19:20 +03:00
Slavi Pantaleev
7bd358df5c Upgrade traefik_certs_dumper (v2.8.3-2 -> v2.8.3-3) 2024-07-17 16:16:24 +03:00
Slavi Pantaleev
1bc34e2237
Merge pull request #3426 from spantaleev/renovate/dock.mau.dev-mautrix-discord-0.x
chore(deps): update dock.mau.dev/mautrix/discord docker tag to v0.7.0
2024-07-16 18:14:42 +03:00
Slavi Pantaleev
86bc14d640
Merge pull request #3425 from spantaleev/renovate/dock.mau.dev-mautrix-telegram-0.x
chore(deps): update dock.mau.dev/mautrix/telegram docker tag to v0.15.2
2024-07-16 18:14:34 +03:00
renovate[bot]
e8181b92ad
chore(deps): update dock.mau.dev/mautrix/discord docker tag to v0.7.0 2024-07-16 15:13:15 +00:00
renovate[bot]
5cb12ca2fb
chore(deps): update dock.mau.dev/mautrix/telegram docker tag to v0.15.2 2024-07-16 15:13:07 +00:00
Slavi Pantaleev
951771d0e2
Merge pull request #3420 from etkecc/patch-333
mautrix-meta-messenger v0.3.2
2024-07-16 18:11:31 +03:00
Slavi Pantaleev
e3c02dd722
Merge pull request #3421 from spantaleev/renovate/dock.mau.dev-mautrix-meta-0.x
chore(deps): update dock.mau.dev/mautrix/meta docker tag to v0.3.2
2024-07-16 18:11:20 +03:00
Slavi Pantaleev
62ebb733c0
Merge pull request #3423 from etkecc/patch-334
element v1.11.71
2024-07-16 18:11:11 +03:00
Slavi Pantaleev
615952cbaf Upgrade Synapse (v1.110.0 -> v1.111.0) 2024-07-16 18:10:27 +03:00
Slavi Pantaleev
c6d8a68e77 Add additional media repository prefix paths to matrix_synapse_workers_media_repository_endpoints
Related to https://github.com/element-hq/synapse/pull/17421
2024-07-16 18:10:27 +03:00
Slavi Pantaleev
6db03724ab
Merge pull request #3419 from etkecc/patch-332
mautrix-meta-instagram v0.3.2
2024-07-16 18:08:01 +03:00
Slavi Pantaleev
7c5b2563da
Merge pull request #3418 from etkecc/patch-331
mautrix-twitter v0.1.8
2024-07-16 18:07:48 +03:00
Aine
a89d19e88a
element v1.11.71 2024-07-16 18:07:39 +03:00
renovate[bot]
bf8e9a64d0
chore(deps): update dock.mau.dev/mautrix/meta docker tag to v0.3.2 2024-07-16 15:07:33 +00:00
Slavi Pantaleev
e3e8e7216f
Merge pull request #3417 from etkecc/patch-330
mautrix-signal v0.6.3
2024-07-16 18:07:26 +03:00
Aine
234fa3bd0c
mautrix-meta-messenger v0.3.2 2024-07-16 18:06:59 +03:00
Slavi Pantaleev
610243a217
Merge pull request #3416 from etkecc/patch-329
mautrix-whatsapp v0.10.9
2024-07-16 18:06:54 +03:00
Aine
2ca7df9e75
mautrix-meta-instagram v0.3.2 2024-07-16 18:06:14 +03:00
Aine
7af6c74734
mautrix-twitter v0.1.8 2024-07-16 18:05:21 +03:00
Aine
b003a711c9
mautrix-signal v0.6.3 2024-07-16 18:04:37 +03:00
Aine
90e70530cc
mautrix-whatsapp v0.10.9 2024-07-16 18:03:57 +03:00
Slavi Pantaleev
2737d7673e
Merge pull request #3415 from spantaleev/renovate/dock.mau.dev-mautrix-googlechat-0.x
chore(deps): update dock.mau.dev/mautrix/googlechat docker tag to v0.5.2
2024-07-16 16:21:49 +03:00
Slavi Pantaleev
6538f06b33
Merge pull request #3414 from spantaleev/renovate/dock.mau.dev-mautrix-gmessages-0.x
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.3
2024-07-16 16:21:37 +03:00
renovate[bot]
2ffadc1b4c
chore(deps): update dock.mau.dev/mautrix/googlechat docker tag to v0.5.2 2024-07-16 13:13:33 +00:00
renovate[bot]
c08ed10f3c
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.3 2024-07-16 13:13:29 +00:00
Slavi Pantaleev
35df420880
Merge pull request #3413 from bfabio/patch-1
doc: mention HTTP/3 in port configuration
2024-07-16 16:12:51 +03:00
Fabio Bonelli
04db5e77c0 doc: mention HTTP/3 in port configuration 2024-07-16 12:38:56 +02:00
Slavi Pantaleev
9ab6b6529a
Merge pull request #3412 from igogold/grafana-fix
Sync grafana datasource and prometheus scrape intervals.
2024-07-16 13:27:28 +03:00
Slavi Pantaleev
44064cfc7d Upgrade Traefik (v3.0.4-1 -> v3.1.0-0) 2024-07-16 13:13:20 +03:00
Igor Goldenberg
f66ea73c93 Sync grafana datasource and prometheus scrape intervals. 2024-07-16 14:28:09 +05:00
Slavi Pantaleev
e818b981f3 Update Redis (v7.2.4-1 -> v7.2.4-2) and Backup Borg (v1.2.8-1.8.11-1 -> v1.2.8-1.8.13-0) 2024-07-15 08:09:28 +03:00
Aine
b347d98161
rewrite just update command to provide a one-line command to update everything (#3410)
* rewrite `just update` command to provide a one-line command to update everything

* update prefix

* uncomment update-self

* Revert requirements.yml updates not belonging to this PR

* Justfile and documentation updates to make things clearer

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-15 07:57:08 +03:00
Slavi Pantaleev
f81c00c948
Merge pull request #3411 from spantaleev/renovate/prometheus_node_exporter-1.x
Update dependency prometheus_node_exporter to v1.8.2-0
2024-07-14 21:12:21 +03:00
renovate[bot]
3b2fd0ba2c
Update dependency prometheus_node_exporter to v1.8.2-0 2024-07-14 16:08:11 +00:00
Slavi Pantaleev
30baeded64 Upgrade exim-relay (v4.97.1-r0-1-0 -> v4.98-r0-0-0) 2024-07-12 20:52:34 +03:00
Slavi Pantaleev
f794aa2005 Add support for enabling/disabling all the other matrix-media-repo Traefik labels
This is provoked by de91fe933d,
where I've added a few new labels and made it possible for people to
disable them.

In this patch, I'm making it possible to disable any of the old Traefik
labels in a similar way.
2024-07-11 07:10:33 +03:00
Slavi Pantaleev
de91fe933d Add Traefik labels for handling authenticated media (MSC3916) in matrix-media-repo
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3409
- https://github.com/t2bot/matrix-media-repo/releases/tag/v1.3.5
- https://github.com/matrix-org/matrix-spec-proposals/pull/3916

Support for authenticated media routes is enabled by default, but
variables are in place to disable it if necessary.

This change has not been tested.
2024-07-11 07:03:20 +03:00
Slavi Pantaleev
663e545cda
Merge pull request #3409 from spantaleev/renovate/ghcr.io-t2bot-matrix-media-repo-1.x
Update ghcr.io/t2bot/matrix-media-repo Docker tag to v1.3.6
2024-07-11 07:02:37 +03:00
renovate[bot]
386d98886d
Update ghcr.io/t2bot/matrix-media-repo Docker tag to v1.3.6 2024-07-10 18:26:43 +00:00
Slavi Pantaleev
1014eee0a8
Merge pull request #3408 from spantaleev/renovate/prometheus-2.x
Update dependency prometheus to v2.53.1-0
2024-07-10 16:12:10 +03:00
renovate[bot]
07c73f7723
Update dependency prometheus to v2.53.1-0 2024-07-10 11:57:41 +00:00
Slavi Pantaleev
c044c815bc Fix fixing-template for matrix-alertmanager-receiver to also consider the alertname annotation
My alerts seem to contain `annotations.alertname` in the payload, so the
default configuration (coming from the matrix-alertmanager-receiver README)
seems to be outdated or something.
2024-07-10 06:45:26 +03:00
Slavi Pantaleev
33d5b0d991
Merge pull request #3407 from spantaleev/renovate/awesometechnologies-synapse-admin-0.x
Update awesometechnologies/synapse-admin Docker tag to v0.10.2
2024-07-09 13:50:21 +03:00
renovate[bot]
b71b59dd8e
Update awesometechnologies/synapse-admin Docker tag to v0.10.2 2024-07-09 10:46:03 +00:00
Slavi Pantaleev
2e1ef654b3 Upgrade container-socket-proxy (v0.1.2-2 -> v0.2.0-0) 2024-07-09 13:45:27 +03:00
Samuel S
7d5e430ee9
Autocreate webhook in Gitlab instance with Hookshot bot (#3405)
* Add public url for gitlab hookshot to autocreate webhook on gitlab instance

* Add `noqa var-naming` comment to variable

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-08 18:12:03 +03:00
Slavi Pantaleev
751ecaafbb
Merge pull request #3406 from spantaleev/renovate/vectorim-element-web-1.x
Update vectorim/element-web Docker tag to v1.11.70
2024-07-08 17:53:47 +03:00
renovate[bot]
8e7ab4e23f
Update vectorim/element-web Docker tag to v1.11.70 2024-07-08 14:38:08 +00:00
Slavi Pantaleev
49db307e5e
Merge pull request #3404 from spantaleev/renovate/etherpad-2.x
Update dependency etherpad to v2.1.1-0
2024-07-08 10:30:12 +03:00
renovate[bot]
e32190433d
Update dependency etherpad to v2.1.1-0 2024-07-08 07:28:18 +00:00
Slavi Pantaleev
6c3746b237 Update migrating guide to make it clear that switching CPU architecture requires skipping /matrix/postgres/data 2024-07-08 07:33:50 +03:00
Slavi Pantaleev
a56c2f8921 Mention matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled to people running their own webserver
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402
2024-07-08 07:22:26 +03:00
Slavi Pantaleev
9c9b2fe4cb
Merge pull request #3401 from Kuchenmampfer/Kuchenmampfer-patch-2
Update broken link in configuring-playbook-prometheus-grafana.md
2024-07-07 20:50:56 +03:00
Kuchenmampfer
0f037bba48
Update broken link in configuring-playbook-prometheus-grafana.md 2024-07-07 16:44:19 +00:00
Aine
a3200523b5
honoroit v0.9.22 (#3398)
* honoroit v0.9.22

* Add more spaces before comments to make yamllint happy

* Add more spaces before comment to make yamllint happy

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-07-07 07:40:55 +03:00
Slavi Pantaleev
f5a088b820 Remove useless quote 2024-07-06 22:10:23 +03:00
Slavi Pantaleev
2617d00e75 Adjust indentation for matrix-alertmanager-receiver 2024-07-06 21:53:08 +03:00
Slavi Pantaleev
032b76bd62 Add support for matrix-alertmanager-receiver 2024-07-06 21:48:41 +03:00
Slavi Pantaleev
c87bb206da Fix ansible-lint-reported error 2024-07-06 11:15:38 +03:00
Slavi Pantaleev
aad167561a Announce Traefik v3 and HTTP/3 2024-07-06 11:05:19 +03:00
Slavi Pantaleev
9b5be6825d Enable HTTP/3 by default for web-secure and matrix-federation
HTTP/3 is no longer considered experimental in Traefik v3,
so it's a good time to enable it.
2024-07-06 11:05:19 +03:00
Slavi Pantaleev
329796f4d4 Upgrade Traefik to v3 and adapt matrix-media-repo role
`matrix-media-repo` is the only role that seems incompatible with the
changes introduced by Traefik v3, due to its use of `PathPrefix` with
regular expressions in a few places.

Regular expressions should now be used with `PathRegexp`, not
`PathPrefix`. Furthermore, they should follow the Golang regexp syntax,
as described in the migration guide:
https://doc.traefik.io/traefik/migration/v2-to-v3-details/#dynamic-configuration-changes
2024-07-06 11:05:19 +03:00
Slavi Pantaleev
3e3ce659fe Upgrade matrix-corporal (2.7.0 -> 2.8.0) 2024-07-04 22:05:25 +03:00
Slavi Pantaleev
4322c0b496 Upgrade devture/ansible (2.16.1-r0-0 -> 2.17.0-r0-0) 2024-07-04 21:27:33 +03:00
Slavi Pantaleev
5d1b844fca Upgrade exim-relay (v4.97.1-r0-0-2 -> v4.97.1-r0-1-0) 2024-07-04 21:19:30 +03:00
Slavi Pantaleev
e1f4f6c8cb
Merge pull request #3394 from adam-kress/master
Upgrade Jitsi (v9584-0 -> v9584-1)
2024-07-04 20:41:21 +03:00
adam-kress
e2cc4e9447
Upgrade Jitsi (v9584-0 -> v9584-1) 2024-07-04 11:08:12 -04:00
Slavi Pantaleev
74bb812739 Revert "Make use of the new --exists-ok flag for register_new_matrix_user"
This reverts commit 752de4406e.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3393

When running the playbook against an existing server, it invokes `register_new_matrix_user`
as part of the `matrix-user-creator` role, which runs before the
`systemd_service_manager`. At that time, `matrix-user-creator` detects
that Synapse is up (from before), but it's the old version. Services have not yet been
restarted, so it's actually the older Synapse version that is up, not
the new one. The old version does not support the `--exists-ok` flag yet.

Basically, this `--exists-ok` patch landed too early and has affected existing playbook
users that have an older version of Synapse in operation.

It will be safer to bring back this patch some time in the future.
However, users upgrading from Synapse <= v1.109.0 even long into the
future will bump into the same issue. As such, it would be better to
either add special handling or to delay bringing back this patch enough
so as to ensure everyone using the playbook is on Synapse >= 1.110.0.
2024-07-04 13:56:47 +03:00
Slavi Pantaleev
18130f8436 Upgrade Postgres (v16.3-1 -> v16.3-2) 2024-07-04 11:20:32 +03:00
Slavi Pantaleev
752de4406e Make use of the new --exists-ok flag for register_new_matrix_user
Related to https://github.com/element-hq/synapse/pull/17304
2024-07-04 09:48:31 +03:00
Slavi Pantaleev
c72cf3a1da
Merge pull request #3392 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.110.0
2024-07-04 09:39:22 +03:00
renovate[bot]
2c4ac73685
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.110.0 2024-07-03 19:50:40 +00:00
Slavi Pantaleev
f4bcbd8ae7
Merge pull request #3391 from adam-kress/master
Upgrade Jitsi (v9457-5 -> v9584-0)
2024-07-03 07:11:28 +03:00
adam-kress
e02ea07511
Upgrade Jitsi (v9457-5 -> v9584-0) 2024-07-02 19:08:40 -04:00
Slavi Pantaleev
e000cbf0f4 Auto-configure synapse-admin to be restricted to a single homeserver (the one managed by the playbook) 2024-07-01 16:03:52 +03:00
Slavi Pantaleev
296199fb40
Merge pull request #3387 from spantaleev/renovate/ghcr.io-matrix-org-sliding-sync-0.x
chore(deps): update ghcr.io/matrix-org/sliding-sync docker tag to v0.99.19
2024-06-28 19:21:25 +03:00
renovate[bot]
d723ac67be
chore(deps): update ghcr.io/matrix-org/sliding-sync docker tag to v0.99.19 2024-06-28 16:18:15 +00:00
Slavi Pantaleev
fc91b2e22f
Merge pull request #3385 from derhagen/auto_join_mxid_localpart
Allow configuring synapse `auto_join_mxid_localpart`
2024-06-28 06:36:48 +03:00
Slavi Pantaleev
4aa3345db0
Simplify auto_join_mxid_localpart population 2024-06-27 21:35:56 +03:00
Slavi Pantaleev
7281cd2a25
Merge pull request #3386 from spantaleev/renovate/docker-7.x
chore(deps): update dependency docker to v7.3.0
2024-06-27 21:32:08 +03:00
renovate[bot]
8541aeceb5
chore(deps): update dependency docker to v7.3.0 2024-06-27 13:47:35 +00:00
hagene
ef90ee9495
Allow configuring synapse auto_join_mxid_localpart
`auto_join_mxid_localpart` defines the local part of the user id which is used to create auto-join rooms. The variable needs to be set to invite new users to any auto-join rooms which are set to invite-only.
2024-06-27 15:05:46 +02:00
Slavi Pantaleev
c9052647a3
Merge pull request #3383 from spantaleev/renovate/matrixdotorg-sygnal-0.x
chore(deps): update matrixdotorg/sygnal docker tag to v0.15.0
2024-06-26 21:57:36 +03:00
renovate[bot]
659df10799
chore(deps): update matrixdotorg/sygnal docker tag to v0.15.0 2024-06-26 16:20:10 +00:00
Slavi Pantaleev
498e67e2d8
Merge pull request #3382 from bfabio/patch-1
Fix typo in Sliding Sync Proxy docs
2024-06-26 11:01:47 +03:00
Fabio Bonelli
aac88f418d
Fix typo in Sliding Sync Proxy docs 2024-06-25 21:01:23 +02:00
Slavi Pantaleev
cf41aeb02f
Merge pull request #3381 from spantaleev/renovate/grafana-11.x
chore(deps): update dependency grafana to v11.1.0-0
2024-06-25 14:35:34 +03:00
renovate[bot]
dc2c4f4fc0
chore(deps): update dependency grafana to v11.1.0-0 2024-06-25 11:34:07 +00:00
Slavi Pantaleev
616cb3a91c Announce Hookshot webhooks serving at a {prefix}/webhook/:hookId path
Related to 4704a60718

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681
2024-06-25 11:31:19 +03:00
Slavi Pantaleev
4704a60718 Use a /webhook path for generic webhooks
By appending `/webhook` to the public URL (becoming `/hookshot/webhooks/webhook`)
and by only stripping the `/hookshot/webhooks` prefix,
we're effectively following what newer Hookshot versions advise
(see https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681).

This change appears to be backward-compatible (old webhook URLs like `/hookshot/webhooks/:hookId` still work),
until Hookshot behavior changes.
2024-06-25 11:16:30 +03:00
Slavi Pantaleev
aafea6d259 Fix typo in comment for matrix_hookshot_container_labels_appservice_enabled 2024-06-25 11:01:09 +03:00
Slavi Pantaleev
ea22acc899 Fix Hookshot URL path generation regression
Regression since 7891268873,
where I removed the `matrix_hookshot_urlprefix` prefix group
`group_vars/matrix_servers`, thinking the value in `roles/custom/matrix-bridge-hookshot/defaults/main.yml`
was the same.

The value in `defaults/main.yml` incorrectly included `matrix_hookshot_public_endpoint`
in `matrix_hookshot_urlprefix`, which was leading to double-`/hookshot`-prefixing.

We were previously saved by the `matrix_hookshot_urlprefix` override in `group_vars/matrix_servers`.

This fix brings the correct URL prefix value (the one without `matrix_hookshot_public_endpoint`)
to `defaults/main.yml`.
2024-06-25 10:55:08 +03:00
Slavi Pantaleev
e3cbc61804
Merge pull request #3376 from bfabio/maubot-user-creation
Make maubot automatically create its own user.
2024-06-22 14:48:42 +03:00
Slavi Pantaleev
639a4454c0 Add changelog entry for maubot user management 2024-06-22 14:48:30 +03:00
Slavi Pantaleev
5a40e99d11 Explicitly ask for matrix_bot_maubot_initial_password 2024-06-22 14:43:04 +03:00
Slavi Pantaleev
fb3745a7b2
Update maubot docs (explicit password, other clarification) 2024-06-22 14:40:35 +03:00
Slavi Pantaleev
adeba0a71b
Merge pull request #3378 from spantaleev/renovate/halfshot-matrix-hookshot-5.x
chore(deps): update halfshot/matrix-hookshot docker tag to v5.4.1
2024-06-22 08:15:33 +03:00
renovate[bot]
9c9b2a8d38
chore(deps): update halfshot/matrix-hookshot docker tag to v5.4.1 2024-06-21 19:14:12 +00:00
Slavi Pantaleev
6963d13054
Merge pull request #3377 from spantaleev/renovate/halfshot-matrix-hookshot-5.x
chore(deps): update halfshot/matrix-hookshot docker tag to v5.4.0
2024-06-21 18:11:39 +03:00
Slavi Pantaleev
d6aa98e57d Upgrade Coturn (4.6.2-r9 -> 4.6.2-r10) 2024-06-21 09:17:23 +03:00
renovate[bot]
d00410966f
chore(deps): update halfshot/matrix-hookshot docker tag to v5.4.0 2024-06-20 17:16:11 +00:00
Fabio Bonelli
a508d2a069 Make maubot automatically create its own user. 2024-06-19 13:58:10 +02:00
Slavi Pantaleev
2fd1c73c38
Merge pull request #3375 from spantaleev/renovate/prometheus-2.x
chore(deps): update dependency prometheus to v2.53.0-0
2024-06-19 13:59:48 +03:00
renovate[bot]
3140d56e15
chore(deps): update dependency prometheus to v2.53.0-0 2024-06-19 10:56:31 +00:00
Slavi Pantaleev
a62de5a951
Merge pull request #3374 from spantaleev/renovate/joseluisq-static-web-server-2.x
chore(deps): update joseluisq/static-web-server docker tag to v2.32.0
2024-06-19 11:27:18 +03:00
renovate[bot]
3b15a0100b
chore(deps): update joseluisq/static-web-server docker tag to v2.32.0 2024-06-19 08:26:15 +00:00
Slavi Pantaleev
6d3dff5a48
Merge pull request #3373 from spantaleev/renovate/vectorim-element-web-1.x
chore(deps): update vectorim/element-web docker tag to v1.11.69
2024-06-18 15:50:17 +03:00
renovate[bot]
145acb228e
chore(deps): update vectorim/element-web docker tag to v1.11.69 2024-06-18 12:48:02 +00:00
Slavi Pantaleev
09d9db5617 Add variables for controlling the native auto-accept-invites Synapse feature
Related to https://github.com/element-hq/synapse/pull/17147
2024-06-18 15:46:39 +03:00
Slavi Pantaleev
9af4b491fa Upgrade Synapse (v1.108.0 -> v1.109.0) 2024-06-18 15:19:22 +03:00
Slavi Pantaleev
450e96526c
Merge pull request #3372 from spantaleev/renovate/dock.mau.dev-mautrix-whatsapp-0.x
chore(deps): update dock.mau.dev/mautrix/whatsapp docker tag to v0.10.8
2024-06-17 10:20:26 +03:00
Slavi Pantaleev
42bc1d1e52
Merge pull request #3371 from spantaleev/renovate/dock.mau.dev-mautrix-signal-0.x
chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.6.2
2024-06-17 10:20:13 +03:00
Slavi Pantaleev
43abdb9ec4
Merge pull request #3370 from spantaleev/renovate/dock.mau.dev-mautrix-gmessages-0.x
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.2
2024-06-17 10:20:00 +03:00
renovate[bot]
846a90e791
chore(deps): update dock.mau.dev/mautrix/whatsapp docker tag to v0.10.8 2024-06-17 01:12:09 +00:00
renovate[bot]
9b9a8e67cf
chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.6.2 2024-06-16 21:59:34 +00:00
renovate[bot]
58a99502ab
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.2 2024-06-16 21:59:30 +00:00
Slavi Pantaleev
f84a53d801
Merge pull request #3367 from HarHarLinks/sliding-sync-metrics
sliding sync metrics support
2024-06-15 07:30:12 +03:00
HarHarLinks
cc70ece99b sliding sync metrics support 2024-06-14 23:48:31 +02:00
Slavi Pantaleev
75f5a1d880
Merge pull request #3365 from spantaleev/renovate/matrixconduit-matrix-conduit-0.x
chore(deps): update matrixconduit/matrix-conduit docker tag to v0.8.0
2024-06-12 23:01:33 +03:00
renovate[bot]
7f47ba4b3d
chore(deps): update matrixconduit/matrix-conduit docker tag to v0.8.0 2024-06-12 19:56:03 +00:00
Slavi Pantaleev
d298e73a62
Merge pull request #3363 from HarHarLinks/patch-16
Fix docs typo
2024-06-12 06:34:03 +03:00
Kim Brose
3a0cb01d6c
Fix docs typo 2024-06-11 19:25:28 +02:00
Slavi Pantaleev
222d0c4604 Upgrade Traefik (v2.11.2-1 -> v2.11.4-0) 2024-06-11 08:24:20 +03:00
Slavi Pantaleev
dc11d24dec
Merge pull request #3362 from jimeh/fix-goofys-systemd-service-template
fix(synapse/goofys): resolve Jinja2 syntax error in systemd service template
2024-06-11 08:19:08 +03:00
Jim Myhrberg
247daf962f
fix(synapse/goofys): resolve Jinja2 syntax error in systemd service template
Commit 4224741130 missed a endfor
statement in the goofys systemd service unit template. This adds it,
avoiding a Jinja2 syntax error when using goofys.
2024-06-10 22:14:29 +01:00
Slavi Pantaleev
42b00fdff4 Fix container image repository name for matrix-media-repo
Fixup for f97e849018

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3354
2024-06-06 09:01:17 +03:00
Slavi Pantaleev
4224741130 Remove a few remaining hardcoded docker.service references
Continuation of 9f2eff2ac7

Provoked by 7749048bf8
(https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3353)
2024-06-05 21:22:21 +03:00
Slavi Pantaleev
541dbd4851
Merge pull request #3353 from cksit/dsm_docker_service_name_fix
Change the hardcoded 'docker.service' to `devture_systemd_docker_base_docker_service_name` variable
2024-06-05 21:18:03 +03:00
CKSit
7749048bf8 Change the hardcoded 'docker.service' to variable name 2024-06-05 23:12:34 +08:00
Slavi Pantaleev
b357597a6f Upgrade Element (v1.11.67 -> v1.11.68) 2024-06-04 20:57:12 +03:00
Slavi Pantaleev
9f2eff2ac7 Respect devture_systemd_docker_base_docker_service_name
Related to 0241c71a4c

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3270#issuecomment-2143782962

With this change, it should be possible for people to adjust the Docker
dependency from `docker.service` to something else (e.g. `pkg-ContainerManager-dockerd.service`),
or to completely eliminate it by setting `devture_systemd_docker_base_docker_service_name` to an empty string.

This makes it easier for people to use the playbook against a Synology DSM server.
2024-06-04 13:14:34 +03:00
Slavi Pantaleev
f97e849018 Switch matrix-media-repo to Github Container Registry (supports multi-arch)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3349

`docker.io/turt2live/matrix-media-repo:v1.3.4` is amd64-only.

`ghcr.io/t2bot/matrix-media-repo:v1.3.4` is a multi-arch image which
works on arm64.
2024-06-04 10:48:39 +03:00
Slavi Pantaleev
8a01063057
Merge pull request #3348 from etkecc/patch-328
wechat: enable spaces by default
2024-06-04 08:55:29 +03:00
Aine
e33b43e4a6
wechat: enable spaces by default 2024-06-03 23:24:06 +03:00
Slavi Pantaleev
cc2521d594 Announce WeChat bridging support 2024-06-03 21:28:50 +03:00
Slavi Pantaleev
70fd20cef5 Add support for WeChat bridging
This is based on the PR (https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3241)
by Tobias Diez (https://github.com/tobiasdiez).

I've refactored some parts, made it more configurable, polished it up,
and it's integrated into the playbook now.

Both the WeChat bridge and WeChat agent appear to be working.
The WeChat bridge joins rooms and responds as expected.

That said, end-to-end testing (actually bridging to a WeChat account) has not been done yet.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/701

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3092

This is sponsored https://etke.cc/ work related to https://gitlab.com/etke.cc/ansible/-/issues/2

Squashed commit of the following:

commit fdd37f02472a0b83d61b4fac80650442f90e7629
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 21:05:53 2024 +0300

    Add documentation for WeChat bridge

commit 8426fc8b95bb160ea7f9659bd45bc59cf1326614
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:59:42 2024 +0300

    Rename directory for matrix_wechat_agent_container_src_files_path

commit da200df82bbc9153d307095dd90e4769c400ea1e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:58:26 2024 +0300

    Make WeChat listen_secret configurable and auto-configured via matrix_homeserver_generic_secret_key

commit 4022cb1355828ac16af7d9228cb1066962bb35f5
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:54:56 2024 +0300

    Refactor install.yml for WeChat a bit (using blocks, etc.)

commit d07a39b4c4f6b93d04204e13e384086d5a242d52
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:52:35 2024 +0300

    Rename WeChat Agent configuration file

    This makes it more clear that it belongs to the agent.
    Otherwise, `config.yaml` and `configure.yaml` make you wonder.

commit ccca72f8d1e602f7c42f4bd552193afa153c9b9d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:49:06 2024 +0300

    Move WeChat agent configuration to a template

commit a4047d94d8877b4095712dfc76ac3082a1edca28
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:47:17 2024 +0300

    Mount WeChat config as readonly and instruct bridge to not update it

commit bc0e89f345bf14bbdbfd574bb60d93918c2ac053
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 20:46:33 2024 +0300

    Sync WeChat config with upstream

    Brings up-to-date with:
    https://github.com/duo/matrix-wechat/commits/0.2.4/example-config.yaml

commit a46f5b9cbc8bf16042685a18c77d25a606bc8232
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 19:48:17 2024 +0300

    Rename some files

commit 3877679040cffc4ca6cccfa21a7335f8f796f06e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 19:47:10 2024 +0300

    Update WeChat logging config

    This brings it up-to-date with what mautrix-go uses.
    Otherwise, on startup we see:

    > Migrating legacy log config

    .. and it gets migrated to what we've done here.

commit e3e95ab234651867c7a975a08455549b31db4172
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 19:43:37 2024 +0300

    Make sure matrix-wechat-agent runs as 1000:1000

    It needs to write stuff to `/home/user/.vnc`.

    `/home/user` is owned by `user:group` (`1000:1000`), so it cannot run
    any other way.

    Previously, if the `matrix` user was uid=1000 by chance, it would work,
    but that's pure luck.

commit 4d5748ae9b84c81d6b48b0a41b790339d9ac4724
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 18:57:09 2024 +0300

    Pin wechat and wechat-agent versions

commit 40d40009f19ebceed4126146cbb510a2c95af671
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 18:53:58 2024 +0300

    docker_image -> container_image for WeChat bridge

commit cc33aff592541913070d13288d17b04ed6243176
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 18:00:25 2024 +0300

    docker_src -> container_src in WeChat bridge

commit 42e6ae9a6483c8ca6d53b8052058d41d90d93797
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Mon Jun 3 17:54:24 2024 +0300

    matrix_go_wechat_ -> matrix_wechat_

    The bridge is written in Go, but does not include Go anywhere in its
    name. As such, it's mostly useless to use `matrix_go_wechat` as the
    prefix.

commit d6662a69d1916d215d5184320c36d2ef73afd3e9
Author: Tobias Diez <code@tobiasdiez.de>
Date:   Mon Mar 25 10:55:16 2024 +0800

    Add wechat bridge
2024-06-03 21:28:50 +03:00
Slavi Pantaleev
16b4389c31
Merge pull request #3347 from spantaleev/renovate/etherpad-2.x
chore(deps): update dependency etherpad to v2.1.0-0
2024-06-03 15:37:02 +03:00
renovate[bot]
cdd8dfffee
chore(deps): update dependency etherpad to v2.1.0-0 2024-06-03 12:22:37 +00:00
Slavi Pantaleev
c014c41d82 Downgrade Prometheus (v2.52.1-0 -> v2.52.0-0)
Related to 2c40dfd9b8 (commitcomment-142588565)

It seems like there's no published container image with a 2.52.1 tag
and there's also no Prometheus 2.52.1 release yet.
2024-06-02 09:05:38 +03:00
Slavi Pantaleev
66a2584b0e
Merge pull request #3344 from spantaleev/renovate/matrixdotorg-sygnal-0.x
chore(deps): update matrixdotorg/sygnal docker tag to v0.14.3
2024-06-01 07:46:10 +03:00
renovate[bot]
5997658348
chore(deps): update matrixdotorg/sygnal docker tag to v0.14.3 2024-05-31 23:04:46 +00:00
Slavi Pantaleev
bc508e585f
Merge pull request #3291 from spantaleev/renovate/nginx-1.x
chore(deps): update nginx docker tag to v1.27.0
2024-05-30 23:49:53 +03:00
renovate[bot]
3d1ff4e489
chore(deps): update nginx docker tag to v1.27.0 2024-05-30 20:10:25 +00:00
Slavi Pantaleev
0659ae4b8e
Merge pull request #3342 from spantaleev/renovate/prometheus-2.x
chore(deps): update dependency prometheus to v2.52.1-0
2024-05-30 20:42:40 +03:00
renovate[bot]
2c40dfd9b8
chore(deps): update dependency prometheus to v2.52.1-0 2024-05-30 17:13:02 +00:00
Slavi Pantaleev
1b97d9f439
Merge pull request #3341 from igogold/master
Fix for 'enable_presence_by_hs_url' Element config option.
2024-05-30 13:06:08 +03:00
Igor Goldenberg
2cdf53fd25 Remove a newline symbol from empty value of 'enable_presence_by_hs_url' element/schildichat config option. 2024-05-29 16:04:42 +05:00
Slavi Pantaleev
8dda8207c6
Merge pull request #3339 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.108.0
2024-05-28 15:45:04 +03:00
renovate[bot]
ac864d713d
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.108.0 2024-05-28 12:12:34 +00:00
Slavi Pantaleev
b94ae91d0a Fix ansible-lint-reported errors 2024-05-28 10:52:17 +03:00
Slavi Pantaleev
3a4e58c34d Add migration task for Debiant apt repositories for Docker referencing /etc/apt/keyrings/docker.asc key
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3337
- https://github.com/geerlingguy/ansible-role-docker/pull/436
2024-05-28 10:38:50 +03:00
Slavi Pantaleev
187e65c3de
Merge pull request #3337 from spantaleev/renovate/docker-7.x
chore(deps): update dependency docker to v7.2.0
2024-05-28 08:20:34 +03:00
renovate[bot]
e14a5ba12c
chore(deps): update dependency docker to v7.2.0 2024-05-27 19:57:56 +00:00
Slavi Pantaleev
7891268873 Do not hardcode https:// in all remaining places, refer to matrix_static_files_scheme
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3333
2024-05-25 16:14:26 +03:00
Slavi Pantaleev
3bf488fb16 Upgrade Coturn (4.6.2-r5 -> 4.6.2-r9) 2024-05-24 20:18:56 +03:00
Slavi Pantaleev
5ced92ddc4 Upgrade sliding-sync (v0.99.17 -> v0.99.18) 2024-05-23 15:07:30 +03:00
Slavi Pantaleev
b9fbc84bd6
Merge pull request #3330 from spantaleev/renovate/vectorim-element-web-1.x
chore(deps): update vectorim/element-web docker tag to v1.11.67
2024-05-22 16:50:39 +03:00
renovate[bot]
887f3d5c64
chore(deps): update vectorim/element-web docker tag to v1.11.67 2024-05-22 12:48:00 +00:00
Slavi Pantaleev
8774937184
Merge pull request #3329 from spantaleev/renovate/matrixdotorg-sygnal-0.x
chore(deps): update matrixdotorg/sygnal docker tag to v0.14.2
2024-05-22 08:04:03 +03:00
Slavi Pantaleev
cd52deed5d
Merge pull request #3328 from spantaleev/renovate/prometheus_node_exporter-1.x
chore(deps): update dependency prometheus_node_exporter to v1.8.1-0
2024-05-22 08:03:35 +03:00
renovate[bot]
3af2624b2b
chore(deps): update matrixdotorg/sygnal docker tag to v0.14.2 2024-05-22 03:06:59 +00:00
renovate[bot]
9fd4da47e7
chore(deps): update dependency prometheus_node_exporter to v1.8.1-0 2024-05-22 03:06:54 +00:00
Slavi Pantaleev
116ccad708
Merge pull request #3327 from spantaleev/renovate/joseluisq-static-web-server-2.x
chore(deps): update joseluisq/static-web-server docker tag to v2.31.1
2024-05-21 08:41:43 +03:00
renovate[bot]
05f9339a54
chore(deps): update joseluisq/static-web-server docker tag to v2.31.1 2024-05-21 05:28:47 +00:00
Slavi Pantaleev
a50c1d347b
Merge pull request #3326 from spantaleev/renovate/joseluisq-static-web-server-2.x
chore(deps): update joseluisq/static-web-server docker tag to v2.31.0
2024-05-20 06:54:19 +03:00
renovate[bot]
7cd418f4a8
chore(deps): update joseluisq/static-web-server docker tag to v2.31.0 2024-05-19 23:18:23 +00:00
Slavi Pantaleev
2f1b63ebd5
Merge pull request #3322 from Aquilamason/master
Add missing configuration for synapse-auto-accept-invite role.
2024-05-17 08:05:36 +03:00
Slavi Pantaleev
ed1dd204ba
Merge pull request #3323 from spantaleev/renovate/dock.mau.dev-mautrix-signal-0.x
chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.6.1
2024-05-17 07:58:00 +03:00
Slavi Pantaleev
6e960753d7
Merge pull request #3321 from spantaleev/renovate/dock.mau.dev-mautrix-meta-0.x
chore(deps): update dock.mau.dev/mautrix/meta docker tag to v0.3.1
2024-05-17 07:43:56 +03:00
renovate[bot]
515eb41691
chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.6.1 2024-05-17 04:43:46 +00:00
Slavi Pantaleev
eed9da0e2d
Merge pull request #3320 from spantaleev/renovate/dock.mau.dev-mautrix-gmessages-0.x
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.1
2024-05-17 07:43:19 +03:00
aquila
ac40afefff Add missing configuration matrix_synapse_ext_synapse_auto_accept_invite_accept_invites_only_from_local_users to specifies whether only invites from local users will be auto accepted. 2024-05-17 11:08:12 +08:00
renovate[bot]
72803a89ce
chore(deps): update dock.mau.dev/mautrix/meta docker tag to v0.3.1 2024-05-16 21:33:50 +00:00
renovate[bot]
9fcc4df913
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.4.1 2024-05-16 21:33:47 +00:00
Slavi Pantaleev
d24dcb4d28 Upgrade Postgres (v16.1-6 -> v16.3-0) 2024-05-16 13:55:12 +03:00
Slavi Pantaleev
34930fd10a
Merge pull request #3317 from spantaleev/renovate/ghcr.io-element-hq-synapse-1.x
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.107.0
2024-05-14 20:40:21 +03:00
Slavi Pantaleev
cc76d7b87f
Merge pull request #3316 from bfabio/matrix-appservice-slack-puppeting
Add puppeting option to matrix-bridge-appservice-slack
2024-05-14 20:39:44 +03:00
Slavi Pantaleev
92e55b39e7
Use to_json in appservice-slack config.yaml.j2 2024-05-14 20:27:47 +03:00
renovate[bot]
83f5d73bf9
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.107.0 2024-05-14 17:25:29 +00:00
Fabio Bonelli
2bdc6db2eb Add puppeting option to matrix-bridge-appservice-slack
Fix #2720.
2024-05-14 16:39:16 +02:00
Slavi Pantaleev
f6f1de5a05
Merge pull request #3315 from spantaleev/renovate/grafana-11.x
chore(deps): update dependency grafana to v11
2024-05-14 17:21:27 +03:00
renovate[bot]
9fcf2b8486
chore(deps): update dependency grafana to v11 2024-05-14 14:03:49 +00:00
Slavi Pantaleev
cfd8d2543e
Merge pull request #3312 from spantaleev/renovate/prometheus-2.x
chore(deps): update dependency prometheus to v2.52.0-0
2024-05-11 07:43:26 +03:00
202 changed files with 7520 additions and 973 deletions

View File

@ -1,3 +1,187 @@
# 2024-08-17
## New appservice-double-puppet service for better double-puppeting
Mautrix bridges are undergoing large changes as announced in the [August 2024 releases & progress](https://mau.fi/blog/2024-08-mautrix-release/) blog post.
The playbook has already upgraded to the rewritten mautrix-slack ([v0.1.0](https://github.com/mautrix/slack/releases/tag/v0.1.0)) and mautrix-signal ([v0.7.0](https://github.com/mautrix/signal/releases/tag/v0.7.0)) bridges.
The newly rewritten bridges do not support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) anymore, which has prompted us to switch to the new & better [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new) for double-puppeting. The playbook automates this double-puppeting setup for you if you enable the new [Appservice Double Puppet](./docs/configuring-playbook-appservice-double-puppet.md) service.
All non-deprecated mautrix bridges in the playbook have been reworked to support double-puppeting via an Appservice. Most bridges still support double-puppeting via [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md), so the playbook supports it too. If only Shared Secret Auth is enabled, double-puppeting will be configured using that method (for the bridges that support it). That said, **Shared Secret Auth double-puppeting is being phased out and we recommend replacing it with the new Appservice method**.
We recommend **enabling double-puppeting via the new Appservice method** by adding the following configuration to your `vars.yml` file:
```yml
matrix_appservice_double_puppet_enabled: true
```
You can still **keep** [Shared Secret Auth](./docs/configuring-playbook-shared-secret-auth.md) enabled. Non-mautrix bridges and other services (e.g. [matrix-corporal](./docs/configuring-playbook-matrix-corporal.md)) may still require it.
When both double-puppeting methods are enabled, the playbook will automatically choose the new and better Appservice method for bridges that support it.
# 2024-08-15
## matrix-media-repo now configured for Authenticated Media
Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), our matrix-media-repo implementation now automatically [sets up signing keys](https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/) for Authenticated Media (as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)).
If you had never heard of Authenticated Media before, the [Sunsetting unauthenticated media](https://matrix.org/blog/2024/06/26/sunsetting-unauthenticated-media/) article on [matrix.org](https://matrix.org/) is a good introduction.
This feature is enabled for matrix-media-repo installations by default and will append an additional (matrix-media-repo-generated signing key) to your homeserver's (Synapse or Dendrite) signing key. See the [Signing keys](./docs/configuring-playbook-matrix-media-repo.md#signing-keys) and [Key backup and revoking](./docs/configuring-playbook-matrix-media-repo.md#key-backup-and-revoking) sections of the matrix-media-repo documentation for more details.
If you'd like to avoid this new feature, you can disable it by setting `matrix_media_repo_generate_signing_key: false` in your `vars.yml` configuration file.
# 2024-08-08
## (Backward Compatibility Break) matrix-corporal has been upgraded to v3
The playbook now installs [matrix-corporal](https://github.com/devture/matrix-corporal) v3.0.0, which brings support for **power-level management** (thanks to [this PR](https://github.com/devture/matrix-corporal/pull/32)).
This upgrade necessitates configuration policy changes as described in [matrix-corporal's changelog entry](https://github.com/devture/matrix-corporal/blob/5287cb81c82cd3b951c2a099b4697c3e0b384559/CHANGELOG.md#version-300-2024-08-08).
If you'd like to remain on the old (v2) version of matrix-corporal, you can do so by adding the following configuration to your `vars.yml` file:
```yml
matrix_corporal_version: 2.8.0
```
# 2024-07-25
## synapse-usage-exporter support
Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) - a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape.
To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](docs/configuring-playbook-synapse-usage-exporter.md) documentation page.
# 2024-07-06
## matrix-alertmanager-receiver support
For those wishing to more easily integrate [Prometheus](https://prometheus.io/)' alerting service ([Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)) with Matrix, the playbook can now set up [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver).
See [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](./docs/configuring-playbook-alertmanager-receiver.md) for more details.
## Traefik v3 and HTTP/3 are here now
**TLDR**: Traefik was migrated from v2 to v3. Minor changes were done to the playbook. Mostly everything else worked out of the box. Most people will not have to do any tweaks to their configuration. In addition, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is now auto-enabled for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints. If you have a firewall in front of your server and you wish to benefit from `HTTP3`, you will need to open the `443` and `8448` UDP ports in it.
### Traefik v3
The reverse-proxy that the playbook uses by default (Traefik) has recently been upgraded to v3 (see [this blog post](https://traefik.io/blog/announcing-traefik-proxy-v3-rc/) to learn about its new features). Version 3 includes some small breaking configuration changes requiring a [migration](https://doc.traefik.io/traefik/migration/v2-to-v3/).
We have **updated the playbook to Traefik v3** (make sure to run `just roles` / `make roles` to get it).
There were **only minor playbook changes required** to adapt to Traefik v3, and only to the Ansible role for [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) where we changed a few [`PathPrefix` instances to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp), because these instances were using a regular expression instead of a fixed path. For fixed-path values, `PathPrefix` is still the preferred matcher function to use.
**Most people using the playbook should not have to do any changes**.
If you're using the playbook's Traefik instance to reverse-proxy to some other services of your own (not managed by the playbook), you may wish to review their Traefik labels and make sure they're in line with the [Traefik v2 to v3 migration guide](https://doc.traefik.io/traefik/migration/v2-to-v3/).
If you've tweaked any of this playbook's `_path_prefix` variables and made them use a regular expression, you will now need to make additional adjustments. The playbook makes extensive use of `PathPrefix()` matchers in Traefik rules and `PathPrefix` does not support regular expressions anymore. To work around it, you may now need to override a whole `_traefik_rule` variable and switch it from [`PathPrefix` to `PathRegexp`](https://doc.traefik.io/traefik/routing/routers/#path-pathprefix-and-pathregexp).
If you're not using [matrix-media-repo](./docs/configuring-playbook-matrix-media-repo.md) (the only role we had to tweak to adapt it to Traefik v3), you **may potentially downgrade to Traefik v2** (if necessary) by adding `devture_traefik_verison: v2.11.4` to your configuration. People using `matrix-media-repo` cannot downgrade this way, because `matrix-media-repo` has been adjusted to use `PathRegexp` - a [routing matcher](https://doc.traefik.io/traefik/v2.11/routing/routers/#rule) that Traefik v2 does not understand.
### HTTP/3 is enabled by default
In Traefik v3, [HTTP/3](https://en.wikipedia.org/wiki/HTTP/3) support is no longer considered experimental now.
Due to this, **the playbook auto-enables HTTP3** for the `web-secure` (port 443) and `matrix-federation` (port `8448`) entrypoints.
HTTP3 uses the UDP protocol and **the playbook (together with Docker) will make sure that the appropriate ports** (`443` over UDP & `8448` over UDP) **are exposed and whitelisted in your server's firewall**. However, **if you have another firewall in front of your server** (as is the case for many cloud providers), **you will need to manually open these UDP ports**.
If you do not open the UDP ports correctly or there is some other issue, clients (browsers, mostly) will fall-back to [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2) or even [HTTP/1.1](https://en.wikipedia.org/wiki/HTTP).
Still, if HTTP/3 cannot function correctly in your setup, it's best to disable advertising support for it (and misleading clients into trying to use HTTP/3).
To **disable HTTP/3**, you can use the following configuration:
```yml
devture_traefik_config_entrypoint_web_secure_http3_enabled: false
# Disabling HTTP/3 for the web-secure entrypoint (above),
# automatically disables it for the Matrix Federation entrypoint as well,
# so you do not necessarily need the configuration line below.
#
# Feel free to only keep it around if you're keeping HTTP/3 enabled for web-secure (by removing the line above),
# and would only like to disable HTTP/3 for the Matrix Federation entrypoint.
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: false
```
If you are using [your own webserver](./docs/configuring-playbook-own-webserver.md) (in front of Traefik), port binding on UDP port `8448` by default due to HTTP/3 is either unnecessary or [may get in the way](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3402). If it does, you can disable it:
```yml
# Disable HTTP/3 for the federation entrypoint.
# If you'd like HTTP/3, consider configuring it for your other reverse-proxy.
#
# Disabling this also sets `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp` to an empty value.
# If you'd like to keep HTTP/3 enabled here (for whatever reason), you may wish to explicitly
# set `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp` to something like '127.0.0.1:8449'.
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: false
```
# 2024-07-01
## synapse-admin is now restricted to your homeserver's URL by default
A new feature introduced in synapse-admin [v0.10.0](https://github.com/Awesome-Technologies/synapse-admin/releases/tag/0.10.0) (released and supported by the playbook since a a few months ago) provides the ability to [restrict its usage to a specific homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) (or multiple homeservers).
The playbook has just started making use of this feature. **From now on, your synapse-admin instance will be restricted to the homeserver you're managing via the playbook**. When configured like this, the *Homeserver URL* field in synapse-admin's web UI changes from a text field to a dropdown having a single value (the URL of your homeserver). This makes usage simpler for most people, as they won't need to manually enter a *Homeserver URL* anymore.
If you'd like **to go back to the old unrestricted behavior**, use the following configuration:
```yml
# Use this configuration to allow synapse-admin to manage any homeserver instance.
matrix_synapse_admin_config_restrictBaseUrl: []
```
# 2024-06-25
## The URL-prefix for Hookshot generic webhooks has changed
Until now, generic Hookshot webhook URLs looked like this: `https://matrix.DOMAIN/hookshot/webhooks/:hookId`.
The `/hookshot/webhooks` common prefix gets stripped by Traefik automatically, so Hookshot only sees the part that comes after (`/:hookId`).
[A few years ago](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1681), Hookshot started to prefer to handle webhooks at a `/webhook/:hookId` path (instead of directly at `/:hookId`).
To avoid future problems, we've [reconfigured](https://github.com/spantaleev/matrix-docker-ansible-deploy/commit/4704a60718946fd469aeee7fc3ae8127c633bb6b) our Hookshot configuration to use webhook URLs that include `/webhook` in the URL suffix (e.g. `/hookshot/webhooks/webhook/:hookId`, instead of `/hookshot/webhooks/:hookId`). This means that when we strip the common prefi (`/hookshot/webhooks`), we'll end up sending `/webhook/:hookId` to Hookshot, just like recommended.
When generating new webhooks, you should start seeing the new URLs being used.
**For now**, **both** old URLs (`/hookshot/webhooks/:hookId`) and new URLs (`/hookshot/webhooks/webhook/:hookId`) **continue to work***, so your webhooks will not break just yet.
However, **we recommend that you update all your old webhook URLs** (configured in other systems) to include the new `/webhook` path component, so that future Hookshot changes (whenever they come) will not break your webhooks. You don't need to do anything on the Hookshot side - you merely need to reconfigure the remote systems that use your webhook URLs.
# 2024-06-22
## The maubot user is now managed by the playbook
To make things easier and to be consistent with other roles, the [maubot](./docs/configuring-playbook-bot-maubot.md) user (`bot.maubot` by default) is [now](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3376) automatically created be the playbook.
If you have an existing maubot installation, you will need to specify `matrix_bot_maubot_initial_password` in your `vars.yml` file to make the playbook not complain about it being undefined.
Since the bot is already registered in your installation, there's nothing for the playbook to do anyway. In case you don't remember the password you've registered your maubot user account with, you can specify any value for this variable.
If you've registered another username for the bot (other than the recommended default of `bot.maubot`), consider adjusting the `matrix_bot_maubot_login` variable (e.g. `matrix_bot_maubot_login: my.maubot.username`).
# 2024-06-03
## WeChat bridging support
Thanks to [Tobias Diez](https://github.com/tobiasdiez)'s [efforts](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3241), the playbook now supports bridging to [WeChat](https://www.wechat.com/) via the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge.
See our [Setting up WeChat bridging](docs/configuring-playbook-bridge-wechat.md) documentation page for getting started.
# 2024-03-26 # 2024-03-26
## (Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis ## (Backward Compatibility Break) The playbook now defaults to KeyDB, instead of Redis

View File

@ -13,13 +13,11 @@ We run all services in [Docker](https://www.docker.com/) containers (see [the co
[Installation](docs/README.md) (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md)). [Installation](docs/README.md) (upgrades) and some maintenance tasks are automated using [Ansible](https://www.ansible.com/) (see [our Ansible guide](docs/ansible.md)).
## Self-hosting or SaaS ## Self-hosting or Managed / SaaS
This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy. Still, running any service smoothly requires knowledge, time and effort. This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy. Still, running any service smoothly requires knowledge, time and effort.
If you like the [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also [get a managed Matrix server from etke.cc](https://etke.cc?utm_source=github&utm_medium=readme&utm_campaign=mdad) - a service built on top of this Ansible playbook, which can help you run a Matrix server with ease. If you like the [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also [get a managed Matrix server from etke.cc](https://etke.cc?utm_source=github&utm_medium=readme&utm_campaign=mdad) (both hosting and on-premises) - a service built on top of this Ansible playbook but with [additional components](https://etke.cc/help/extras/?utm_source=github&utm_medium=readme&utm_campaign=mdad) and [services](https://etke.cc/services/?utm_source=github&utm_medium=readme&utm_campaign=mdad) which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no "just set up my server once and be done with it" option.
If you like learning and experimentation, but would rather reduce future maintenance effort, you can even go for a hybrid approach - self-hosting manually using this Ansible playbook at first and then transferring server maintenance to etke.cc at a later time.
## Supported services ## Supported services
@ -157,6 +155,7 @@ Services that help you in administrating and monitoring your matrix installation
| Metrics and Graphs | x | Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI | [Link](docs/configuring-playbook-prometheus-grafana.md) | | Metrics and Graphs | x | Consists of the [Prometheus](https://prometheus.io) time-series database server, the Prometheus [node-exporter](https://prometheus.io/docs/guides/node-exporter/) host metrics exporter, and the [Grafana](https://grafana.com/) web UI | [Link](docs/configuring-playbook-prometheus-grafana.md) |
| [Borg](https://borgbackup.org) | x | Backups | [Link](docs/configuring-playbook-backup-borg.md) | | [Borg](https://borgbackup.org) | x | Backups | [Link](docs/configuring-playbook-backup-borg.md) |
| [Rageshake](https://github.com/matrix-org/rageshake) | x | Bug report server | [Link](docs/configuring-playbook-rageshake.md) | | [Rageshake](https://github.com/matrix-org/rageshake) | x | Bug report server | [Link](docs/configuring-playbook-rageshake.md) |
| [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) | x | Export the usage statistics of a Synapse homeserver to be scraped by Prometheus. | [Link](docs/configuring-playbook-synapse-usage-exporter.md) |
### Misc ### Misc

View File

@ -65,7 +65,7 @@ docker run -it --rm \
-w /work \ -w /work \
-v `pwd`:/work \ -v `pwd`:/work \
--entrypoint=/bin/sh \ --entrypoint=/bin/sh \
docker.io/devture/ansible:2.16.1-r0-0 docker.io/devture/ansible:2.17.0-r0-1
``` ```
Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container.
@ -86,7 +86,7 @@ docker run -it --rm \
-v `pwd`:/work \ -v `pwd`:/work \
-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \ -v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
--entrypoint=/bin/sh \ --entrypoint=/bin/sh \
docker.io/devture/ansible:2.16.1-r0-0 docker.io/devture/ansible:2.17.0-r0-1
``` ```
The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`). The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`).

View File

@ -0,0 +1,93 @@
# Setting up matrix-alertmanager-receiver (optional)
The playbook can install and configure the [matrix-alertmanager-receiver](https://github.com/metio/matrix-alertmanager-receiver) service for you. It's a [client](https://prometheus.io/docs/alerting/latest/clients/) for Prometheus' [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), allowing you to deliver alerts to Matrix rooms.
See the project's [documentation](https://github.com/metio/matrix-alertmanager-receiver) to learn more about what this component does and why it might be useful to you.
At the moment, **setting up this service's bot requires some manual actions** as described below in [Account and room preparation](#account-and-room-preparation).
This service is meant to be used with an external [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) instance. It's **not** meant to be integrated with the [Prometheus & Grafana stack](./configuring-playbook-prometheus-grafana.md) installed by this playbook, because the Alertmanager component is not installed by it.
## Configuration
```yml
matrix_alertmanager_receiver_enabled: true
# This exposes matrix-alertmanager-receiver on the `matrix.` domain.
# Adjust, if necessary.
matrix_alertmanager_receiver_hostname: "{{ matrix_server_fqn_matrix }}"
# This exposes matrix-alertmanager-receiver under a path prefix containing a random (secret) value.
# Adjust the `RANDOM_VALUE_HERE` part with a long and secure value.
matrix_alertmanager_receiver_path_prefix: /matrix-alertmanager-receiver-RANDOM_VALUE_HERE
# If you'd like to change the username for this bot, uncomment and adjust. Otherwise, remove.
# matrix_alertmanager_receiver_config_matrix_user_id_localpart: "bot.alertmanager.receiver"
# Specify the bot user's access token here.
# See the "Account and room preparation" section below.
matrix_alertmanager_receiver_config_matrix_access_token: ''
# Optionally, configure some mappings (URL-friendly room name -> actual Matrix room ID).
#
# If you don't configure mappings, you can still deliver alerts using URLs like this:
# https://matrix.DOMAIN/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!some-room-id:example.com
#
# If a mapping like the one below is configured, you can deliver alerts using friendlier URLs like this:
# https://matrix.DOMAIN/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name
matrix_alertmanager_receiver_config_matrix_room_mapping:
some-room-name: "!some-room-id:{{ matrix_domain }}"
```
See `roles/custom/matrix-alertmanager-receiver/defaults/main.yml` for additional configuration variables.
## Account and room preparation
The playbook can automatically create users, but it cannot automatically obtain access tokens, nor perform any of the other manual actions below.
`matrix-alertmanager-receiver` uses a bot (with a username specified in `matrix_alertmanager_receiver_config_matrix_user_id_localpart` - see above) for delivering messages. You need to **manually register this bot acccount and obtain an access token for it**.
1. [Register a new user](registering-users.md): `ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.alertmanager.receiver password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user`
2. [Obtain an access token](obtaining-access-tokens.md) for the bot's user account
3. Invite the bot to a room where you'd like to alerts to be delivered
4. Log in as the bot using any Matrix client of your choosing, accept the room invitation from the bot's account and log out
5. (Optionally) Adjust `matrix_alertmanager_receiver_config_matrix_room_mapping` to create a mapping between the new room and its id
Steps 1 and 2 above only need to be done once, while preparing your [configuration](#configuration).
Steps 3 and 4 need to be done for each new room you'd like the bot to deliver alerts to. Step 5 is optional and provides cleaner `/alert/` URLs.
## Installation
Now that you've [prepared the bot account and room](#account-and-room-preparation) and have [configured the playbook](#configuration), you can re-run the [installation](./installing.md) process (`just install-all`).
Then, you can proceed to [Usage](#usage).
## Usage
Configure your Prometheus Alertmanager with configuration like this:
```yml
receivers:
- name: matrix
webhook_configs:
- send_resolved: true
url: URL_HERE
route:
group_by:
- namespace
group_interval: 5m
group_wait: 30s
receiver: "matrix"
repeat_interval: 12h
routes:
- receiver: matrix
```
.. where `URL_HERE` looks like `https://matrix.DOMAIN/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/some-room-name` or `https://matrix.DOMAIN/matrix-alertmanager-receiver-RANDOM_VALUE_HERE/alert/!some-room-id:DOMAIN`.
This bot does **not** accept room invitations automatically (like many other bots do). To deliver messages to rooms, **the bot must be joined to all rooms manually** - see Step 5 of the [Account and room preparation](#account-and-room-preparation) section.

View File

@ -0,0 +1,15 @@
# Setting up Appservice Double Puppet (optional)
Appservice Double Puppet is a homeserver appservice through which bridges (and potentially other services) can impersonate any user on the homeserver.
This is useful for performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) via the [appservice method](https://docs.mau.fi/bridges/general/double-puppeting.html#appservice-method-new). The Appservice Double Puppet service is an implementation of this approach.
Previously, bridges supported performing [double-puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but this old and hacky solution has been superseded by this Appservice Double Puppet method.
To enable the Appservice Double Puppet service, adjust your `vars.yml` configuration like this and [re-run the playbook](./installing.md) (`just install-all`):
```yml
matrix_appservice_double_puppet_enabled: true
```
When enabled, double puppeting will automatically be enabled for all bridges that support double puppeting via the appservice method.

View File

@ -146,7 +146,10 @@ matrix_bot_draupnir_configuration_extension_yaml: |
Draupnir supports two methods to receive reports in the management room. Draupnir supports two methods to receive reports in the management room.
The first method intercepts the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. The first method intercepts the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver.
While this playbook uses reverse proxies, it does not yet implement this. If you are using traefik, this playbook can set this up for you:
```yaml
matrix_bot_draupnir_abuse_reporting_enabled: true
```
The other method polls an synapse admin API endpoint and is hence only available when using synapse and when the Draupnir user is an admin user (see step 1). The other method polls an synapse admin API endpoint and is hence only available when using synapse and when the Draupnir user is an admin user (see step 1).
To enable it, set `pollReports: true` in Draupnir's config: To enable it, set `pollReports: true` in Draupnir's config:

View File

@ -14,45 +14,42 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
```yaml ```yaml
matrix_bot_maubot_enabled: true matrix_bot_maubot_enabled: true
# Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bot_maubot_login: bot.maubot
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`
matrix_bot_maubot_initial_password: PASSWORD_FOR_THE_BOT
matrix_bot_maubot_admins: matrix_bot_maubot_admins:
- yourusername: securepassword - yourusername: securepassword
``` ```
You can add multiple admins. The admin accounts are not connected to any matrix ID and are only used to access the You can add multiple admins. The admin accounts are only used to access the maubot administration interface.
maubot administration interface.
## Installing ## Installing
After configuring the playbook, run the [installation](installing.md) command again: After configuring the playbook, run the [installation](installing.md) command again (`just install-all`):
``` **Notes**:
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
``` - if you change the bot password (`matrix_bot_maubot_initial_password` in your `vars.yml` file) subsequently,
the bot user's credentials on the homeserver won't be updated automatically.
If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it.
## Usage ## Usage
You can visit `matrix.<your-domain>/_matrix/maubot/` to manage your available plugins, clients and instances. You can visit `matrix.<your-domain>/_matrix/maubot/` to manage your available plugins, clients and instances.
You should start in the following order You should start in the following order
1. **Create one or more clients:** A client is a matrix account which the bot will use to message. 1. **Create one or more clients:** A client is a matrix account which the bot will use to message. By default, the playbook creates a `bot.maubot` account (as per the configuration above). You only need to [obtain an access token](#obtaining-an-access-token) for it
2. **Upload some Plugins:** Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source. 2. **Upload some Plugins:** Plugins can be obtained from [here](https://github.com/maubot/maubot#plugins) or any other source.
3. **Create an instance:** An instance is the actual bot. You have to specify a client which the bot instance will use 3. **Create an instance:** An instance is the actual bot. You have to specify a client which the bot instance will use
and the plugin (how the bot will behave) and the plugin (how the bot will behave)
To add a client you first need to create an account and obtain a valid access token. ## Obtaining an access token
## Registering the bot user This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`.
You **need to register the bot user manually** before setting up the bot. You can use the playbook to [register a new user](registering-users.md): Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation.
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.maubot password=PASSWORD_FOR_THE_BOT admin=yes' --tags=register-user
```
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
## Obtaining an admin access token
This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands you'll need to open the bot docker container with `docker exec -it matrix-bot-maubot sh`
Alternatively, use Element or curl to [obtain an access token](obtaining-access-tokens.md).

View File

@ -30,11 +30,13 @@ matrix_beeper_linkedin_configuration_extension_yaml: |
You may wish to look at `roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2` to find other things you would like to configure. You may wish to look at `roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2` to find other things you would like to configure.
## Set up Double Puppeting ## Set up Double Puppeting by enabling Appservice Double Puppet or Shared Secret Auth
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have to enable Shared Secred Auth. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
## Usage ## Usage

View File

@ -22,6 +22,8 @@ matrix_heisenbridge_owner: "@you:your-homeserver"
matrix_heisenbridge_identd_enabled: true matrix_heisenbridge_identd_enabled: true
``` ```
By default, Heisenbrdige would be exposed on the Matrix domain (`matrix.DOMAIN`, as specified in `matrix_server_fqn_matrix`) under the `/heisenbridge` path prefix. It would handle media requests there (see the [release notes for Heisenbridge v1.15.0](https://github.com/hifi/heisenbridge/releases/tag/v1.15.0)).
That's it! A registration file is automatically generated during the setup phase. That's it! A registration file is automatically generated during the setup phase.
Setting the owner is optional as the first local user to DM `@heisenbridge:your-homeserver` will be made the owner. Setting the owner is optional as the first local user to DM `@heisenbridge:your-homeserver` will be made the owner.

View File

@ -50,7 +50,8 @@ Unless indicated otherwise, the following endpoints are reachable on your `matri
| listener | default path | variable | used as | | listener | default path | variable | used as |
|---|---|---|---| |---|---|---|---|
| webhooks | `/hookshot/webhooks/` | `matrix_hookshot_webhook_endpoint` | generics, GitHub "Webhook URL", GitLab "URL", etc. | | - | `/hookshot/webhooks/` | `matrix_hookshot_webhook_endpoint` | Webhook-prefix, which affects all webhook-related URLs below |
| generic | `/hookshot/webhooks/webhook` | `matrix_hookshot_generic_endpoint` | Generic webhooks |
| github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" | | 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 |

View File

@ -44,11 +44,13 @@ Take a look at:
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
#### Method 1: automatically, by enabling Shared Secret Auth #### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
#### Method 2: manually, by asking each user to provide a working access token #### Method 2: manually, by asking each user to provide a working access token

View File

@ -14,11 +14,13 @@ matrix_mautrix_gmessages_enabled: true
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -16,11 +16,13 @@ matrix_mautrix_googlechat_enabled: true
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -66,11 +66,13 @@ You may wish to look at `roles/custom/matrix-bridge-mautrix-meta-instagram/templ
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -77,11 +77,13 @@ You may wish to look at `roles/custom/matrix-bridge-mautrix-meta-messenger/templ
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -56,9 +56,9 @@ You may wish to look at `roles/custom/matrix-bridge-mautrix-signal/templates/con
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.

View File

@ -47,9 +47,9 @@ Take a look at:
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
#### Method 1: automatically, by enabling Shared Secret Auth #### Method 1: automatically, by enabling Appservice Double Puppet
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.

View File

@ -16,11 +16,13 @@ matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -15,11 +15,13 @@ matrix_mautrix_twitter_enabled: true
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -28,11 +28,13 @@ Use `!wa unset-relay` to deactivate.
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it. If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth ### Method 1: automatically, by enabling Appservice Double Puppet or Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. The bridge will automatically perform Double Puppeting if you enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service or the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. Enabling [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
Enabling double puppeting by enabling the [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service works at the time of writing, but is deprecated and will stop working in the future.
### Method 2: manually, by asking each user to provide a working access token ### Method 2: manually, by asking each user to provide a working access token

View File

@ -0,0 +1,17 @@
# Setting up the WeChat Bridge (optional)
The playbook can install and configure the [matrix-wechat](https://github.com/duo/matrix-wechat) bridge for you (for bridging to the [WeChat](https://www.wechat.com/) network).
See the project page to learn what it does and why it might be useful to you.
To enable the bridge, use the following playbook configuration and re-run the playbook's [installation](./installing.md) procedure:
```yaml
matrix_wechat_enabled: true
```
## Usage
Once the bridge is installed, start a chat with `@wechatbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
Send `help` to the bot to see the available commands.

View File

@ -23,9 +23,9 @@ matrix_media_repo_enabled: true
# matrix_media_repo_metrics_enabled: true # matrix_media_repo_metrics_enabled: true
``` ```
The repo is pre-configured for integrating with the Postgres database, NGINX proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles). The repo is pre-configured for integrating with the Postgres database, Traefik proxy and [Prometheus/Grafana](configuring-playbook-prometheus-grafana.md) (if metrics enabled) from this playbook for all the available homeserver roles. When the media repo is enabled, other media store roles should be disabled (if using Synapse with other media store roles).
By default, the media-repo will use the local filesystem for data storage. Additional options include `s3` and `IPFS` (experimental). Access token caching is also enabled by default since the logout endpoints are proxied through the media repo. By default, the media-repo will use the local filesystem for data storage. You can alternatively use a `s3` cloud backend as well. Access token caching is also enabled by default since the logout endpoints are proxied through the media repo.
## Configuring the media-repo ## Configuring the media-repo
@ -89,6 +89,26 @@ matrix_media_repo_datastore_s3_opts_bucket_name: "your-media-bucket"
Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-media-repo/defaults/main.yml) Full list of configuration options with documentation can be found in [`roles/custom/matrix-media-repo/defaults/main.yml`](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/roles/custom/matrix-media-repo/defaults/main.yml)
## Signing Keys
Authenticated media endpoints ([MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)) requires MMR to have a configured signing key to authorize outbound federation requests. Additionally, the signing key must be merged with your homeserver's signing key file.
The playbook default is to generate a MMR signing key when invoking the setup role and merge it with your homeserver if you are using Synapse or Dendrite. This can be disabled if desired by setting the option in your inventory:
```yaml
matrix_media_repo_generate_signing_key: false
```
If you wish to manually generate the signing key and merge it with your homeserver's signing key file, see https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/ for more details.
**Note that if you uninstall MMR from the playbook, it will not remove the old MMR signing key from your homeserver's signing key file. You will have to remove it manually.**
### Key backup and revoking
Since your homeserver signing key file is modified by the playbook, a backup will be created in `HOMESERVER_DIR/config/DOMAIN.signing.key.backup`. If you need to remove/revoke old keys, you can restore from this backup or remove the MMR key id from your `DOMAIN.signing.key` file.
Additionally, its recommended after revoking a signing key to update your homeserver config file (`old_signing_keys` field for Synapse and `old_private_keys` for Dendrite). See your homeserver config file for further documentation on how to populate the field.
## Importing data from an existing media store ## Importing data from an existing media store
If you want to add this repo to an existing homeserver managed by the playbook, you will need to import existing media into MMR's database or you will lose access to older media while it is active. MMR versions up to `v1.3.3` only support importing from Synapse, but newer versions (at time of writing: only `latest`) also support importing from Dendrite. If you want to add this repo to an existing homeserver managed by the playbook, you will need to import existing media into MMR's database or you will lose access to older media while it is active. MMR versions up to `v1.3.3` only support importing from Synapse, but newer versions (at time of writing: only `latest`) also support importing from Dendrite.

View File

@ -96,19 +96,14 @@ You may wish to look at `roles/custom/matrix-bridge-mautrix-SERVICENAME/template
## Set up Double Puppeting ## Set up Double Puppeting
To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) To set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) enable the [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook.
please do so automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook by adding The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook by adding
```yaml ```yaml
matrix_synapse_ext_password_provider_shared_secret_auth_enabled: true matrix_appservice_double_puppet_enabled: true
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: YOUR_SHARED_SECRET_GOES_HERE
``` ```
You should generate a strong shared secret with a command like this: pwgen -s 64 1
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future. This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
## Controlling the logging level ## Controlling the logging level

View File

@ -171,6 +171,14 @@ devture_traefik_config_entrypoint_web_forwardedHeaders_insecure: true
# - adjusting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom` (below) - removing `insecure: true` and enabling/configuring `trustedIPs` # - adjusting `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom` (below) - removing `insecure: true` and enabling/configuring `trustedIPs`
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: '127.0.0.1:8449' matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: '127.0.0.1:8449'
# Disable HTTP/3 for the federation entrypoint.
# If you'd like HTTP/3, consider configuring it for your other reverse-proxy.
#
# Disabling this also sets `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp` to an empty value.
# If you'd like to keep HTTP/3 enabled here (for whatever reason), you may wish to explicitly
# set `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp` to something like '127.0.0.1:8449'.
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: false
# Depending on the value of `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port` above, # Depending on the value of `matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port` above,
# this may need to be reconfigured. See the comments above. # this may need to be reconfigured. See the comments above.
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom: matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom:

View File

@ -79,6 +79,8 @@ Name | Description
`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network) `prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network)
`prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.DOMAIN/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. `prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.DOMAIN/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above.
`matrix_prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network) `matrix_prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [NGINX Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network)
`matrix_sliding_sync_metrics_enabled`|Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network)
`matrix_sliding_sync_metrics_proxying_enabled`|Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.DOMAIN/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above.
`matrix_bridge_hookshot_metrics_enabled`|Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network) `matrix_bridge_hookshot_metrics_enabled`|Set this to `true` to make [Hookshot](configuring-playbook-bridge-hookshot.md) expose metrics (locally, on the container network)
`matrix_bridge_hookshot_metrics_proxying_enabled`|Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.DOMAIN/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. `matrix_bridge_hookshot_metrics_proxying_enabled`|Set this to `true` to expose the [Hookshot](configuring-playbook-bridge-hookshot.md) metrics on `https://matrix.DOMAIN/metrics/hookshot`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above.
`matrix_SERVICE_metrics_proxying_enabled`|Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role. `matrix_SERVICE_metrics_proxying_enabled`|Various other services/roles may provide similar `_metrics_enabled` and `_metrics_proxying_enabled` variables for exposing their metrics. Refer to each role for details. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above or `matrix_SERVICE_container_labels_metrics_middleware_basic_auth_enabled`/`matrix_SERVICE_container_labels_metrics_middleware_basic_auth_users` variables provided by each role.
@ -119,7 +121,8 @@ scrape_configs:
## More information ## More information
- [Understanding Synapse Performance Issues Through Grafana Graphs](https://github.com/element-hq/synapse/wiki/Understanding-Synapse-Performance-Issues-Through-Grafana-Graphs) at the Synapse Github Wiki - [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)
- [Understanding Synapse Performance Issues Through Grafana Graphs](https://element-hq.github.io/synapse/latest/usage/administration/understanding_synapse_through_grafana_graphs.html) at the Synapse Github Wiki
- [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)

View File

@ -23,7 +23,7 @@ If you'd like to run the Sliding Sync proxy on another hostname or path, use the
## Adjusting DNS records ## Adjusting DNS records
If you've changed the default hostame, **you may need to adjust your DNS** records. If you've changed the default hostname, **you may need to adjust your DNS** records.
## Adjusting the playbook configuration ## Adjusting the playbook configuration

View File

@ -98,3 +98,29 @@ aux_file_definitions:
certFile: /ssl/cert.pem certFile: /ssl/cert.pem
keyFile: /ssl/privkey.pem keyFile: /ssl/privkey.pem
``` ```
## Using 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:
- 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)
This is an example for how to edit the `vars.yml` file if you're using Cloudflare:
```yaml
devture_traefik_config_certificatesResolvers_acme_dnsChallenge_enabled: true
devture_traefik_config_certificatesResolvers_acme_dnsChallenge_provider: "cloudflare"
devture_traefik_config_certificatesResolvers_acme_dnsChallenge_delayBeforeCheck: 60
devture_traefik_config_certificatesResolvers_acme_dnsChallenge_resolvers:
- "1.1.1.1:53"
devture_traefik_environment_variables_additional_variables: |
CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted
LEGO_DISABLE_CNAME_SUPPORT=true
```
Make sure to change the value of "provider" to your particular DNS solution, and provide the appropriate environment variables. The full list of supported providers is available [here](https://doc.traefik.io/traefik/https/acme/#providers).
This example assumes you're using Cloudflare to manage your DNS zone. Note that it requires the use of two tokens: one for reading all zones (`CF_ZONE_API_TOKEN`) and another that must be able to edit the particular domain you're using (`CF_DNS_API_TOKEN`). For security, it's recommended that you create two fine-grained tokens for this purpose, but you might choose to use the same token for both.

View File

@ -20,14 +20,12 @@ matrix_synapse_admin_enabled: true
- for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true` - for [Synapse](./configuring-playbook-synapse.md) (our default homeserver implementation): `matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true`
- for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true` - for [Dendrite](./configuring-playbook-dendrite.md): `matrix_dendrite_container_labels_public_client_synapse_admin_api_enabled: true`
By default, synapse-admin installation will be [restricted to only work with one homeserver](https://github.com/Awesome-Technologies/synapse-admin/blob/e21e44362c879ac41f47c580b04210842b6ff3d7/README.md#restricting-available-homeserver) - the one managed by the playbook. To adjust these restrictions, tweak the `matrix_synapse_admin_config_restrictBaseUrl` variable.
## Installing ## Installing
After configuring the playbook, run the [installation](installing.md) command again: After configuring the playbook, run the [installation](installing.md) command again (`just install-all`).
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage ## Usage
@ -35,5 +33,3 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
After installation, Synapse Admin will be accessible at: `https://matrix.DOMAIN/synapse-admin/` After installation, Synapse Admin will be accessible at: `https://matrix.DOMAIN/synapse-admin/`
To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server. To use Synapse Admin, you need to have [registered at least one administrator account](registering-users.md) on your server.
The Homeserver URL to use on Synapse Admin's login page is: `https://matrix.DOMAIN`

View File

@ -5,7 +5,12 @@ The playbook can install and configure [synapse-auto-invite-accept](https://gith
See that project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite) to learn what it does and why it might be useful to you. See that project's [documentation](https://github.com/matrix-org/synapse-auto-accept-invite) to learn what it does and why it might be useful to you.
In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified. In short, it automatically accepts room invites. You can specify that only 1:1 room invites are auto-accepted. Defaults to false if not specified.
If you decide that you'd like to let this playbook install it for you, you need a configuration like this: **NOTE**: Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the same feature [has been merged](https://github.com/element-hq/synapse/pull/17147) into Synapse (see the [Native alternative](#native-alternative) section below). You'd better use the native feature, instead of the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module.
## Configuration
If you decide that you'd like to let this playbook install the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite module for you, you need a configuration like this:
```yaml ```yaml
matrix_synapse_ext_synapse_auto_accept_invite_enabled: true matrix_synapse_ext_synapse_auto_accept_invite_enabled: true
@ -13,12 +18,30 @@ matrix_synapse_ext_synapse_auto_accept_invite_enabled: true
matrix_synapse_ext_synapse_auto_accept_invite_accept_invites_only_direct_messages: true matrix_synapse_ext_synapse_auto_accept_invite_accept_invites_only_direct_messages: true
``` ```
## Synapse worker deployments ### Synapse worker deployments
In a [workerized Synapse deployment](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/c9a842147e09647c355799ca024d65a5de66b099/docs/configuring-playbook-synapse.md#load-balancing-with-workers) it is possible to run this module on a worker to reduce the load on the main process (Default is 'null'). For example add this to your configuration: In a [workerized Synapse deployment](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/c9a842147e09647c355799ca024d65a5de66b099/docs/configuring-playbook-synapse.md#load-balancing-with-workers) it is possible to run this module on a worker to reduce the load on the main process (Default is `null`). For example, add this to your configuration:
```yaml ```yaml
matrix_synapse_ext_synapse_auto_accept_invite_worker_to_run_on: 'matrix-synapse-worker-generic-0' matrix_synapse_ext_synapse_auto_accept_invite_worker_to_run_on: 'matrix-synapse-worker-generic-0'
``` ```
There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18). There might be an [issue with federation](https://github.com/matrix-org/synapse-auto-accept-invite/issues/18).
## Native alternative
Since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0), the functionality provided by the [synapse-auto-invite-accept](https://github.com/matrix-org/synapse-auto-accept-invite) 3rd party module [has been made](https://github.com/element-hq/synapse/pull/17147) part of Synapse.
Here's example configuration for using the **native** Synapse feature:
```yml
matrix_synapse_auto_accept_invites_enabled: true
# Default settings below. Uncomment and adjust if necessary.
# matrix_synapse_auto_accept_invites_only_for_direct_messages: false
# matrix_synapse_auto_accept_invites_only_from_local_users: false
# If workers are enabled, you may delegate usage to a specific worker.
# matrix_synapse_auto_accept_invites_worker_to_run_on: 'matrix-synapse-worker-generic-0'
```

View File

@ -0,0 +1,26 @@
# Setting up synapse-usage-exporter (optional)
[synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) allows you to export the usage statistics of a Synapse homeserver to this container service and for the collected metrics to later be scraped by Prometheus.
Synapse does not include usage statistics in its Prometheus metrics. They can be reported to an HTTP `PUT` endpoint 5 minutes after startup and from then on at a fixed interval of once every three hours. This role integrates a simple [Flask](https://flask.palletsprojects.com) project that offers an HTTP `PUT` endpoint and holds the most recent received record available to be scraped by Prometheus.
Enabling this service will automatically:
- install the synapse-usage-exporter service
- re-configure Synapse to push (via HTTP `PUT`) usage statistics information to synapse-usage-exporter
- re-configure [Prometheus](./configuring-playbook-prometheus-grafana.md) (if Prometheus is enabled), to periodically scrape metrics from synapse-usage-exporter
- add a new [Grafana](./configuring-playbook-prometheus-grafana.md) dashboard (if Grafana is enabled) containing Synapse usage statistics
## Quickstart
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file and [re-run the installation process](./installing.md) for the playbook:
```yaml
matrix_synapse_usage_exporter_enabled: true
# (Optional) Expose endpoint if you want to collect statistics from outside (from other homeservers).
# If enabled, synapse-usage-exporter will be exposed publicly at `matrix.DOMAIN/report-usage-stats/push`.
# When collecting usage statistics for Synapse running on the same host, you don't need to enable this.
# You can adjust the hostname and path via `matrix_synapse_usage_exporter_hostname` and `matrix_synapse_usage_exporter_path_prefix`.
# matrix_synapse_usage_exporter_proxying_enabled: true
```

View File

@ -161,4 +161,6 @@ Due to this, it's recommended to only store and maintain template files in your
This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse. This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse.
To enable Synapse metrics see [`configuring-playbook-prometheus-grafana.md`](./configuring-playbook-prometheus-grafana.md) To enable Synapse runtime metrics see: [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)
To enable Synapse usage metrics, see: [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)

View File

@ -42,6 +42,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) (optional) - [Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md) (optional)
- [Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md) (optional)
### Core service adjustments ### Core service adjustments
- Homeserver configuration: - Homeserver configuration:
@ -87,6 +89,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
### Authentication and user-related ### Authentication and user-related
- [Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) (optional)
- [Setting up an ma1sd Identity Server](configuring-playbook-ma1sd.md) (optional) - [Setting up an ma1sd Identity Server](configuring-playbook-ma1sd.md) (optional)
- [Setting up Synapse Admin](configuring-playbook-synapse-admin.md) (optional) - [Setting up Synapse Admin](configuring-playbook-synapse-admin.md) (optional)
@ -178,6 +182,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md) (optional) - [Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md) (optional)
- [Setting up WeChat bridging](configuring-playbook-bridge-wechat.md) (optional)
### Bots ### Bots
@ -222,3 +228,5 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up a Cactus Comments server](configuring-playbook-cactus-comments.md) - a federated comment system built on Matrix (optional) - [Setting up a Cactus Comments server](configuring-playbook-cactus-comments.md) - a federated comment system built on Matrix (optional)
- [Setting up the Rageshake bug report server](configuring-playbook-rageshake.md) (optional) - [Setting up the Rageshake bug report server](configuring-playbook-rageshake.md) (optional)
- [Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md) (optional)

View File

@ -342,7 +342,7 @@ As described in [How is the effective configuration determined?](#how-is-the-eff
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.DOMAIN/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.DOMAIN/vars.yml` file and nothing else inside the playbook (unless you're meaning to contribute new features).
**Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`). **Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`).
### I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it? ### I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?
@ -356,7 +356,7 @@ Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_con
Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable and an example for how use it. Check each role's `roles/*/*/defaults/main.yml` for the corresponding variable and an example for how use it.
**Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`). **Note**: some of the roles (`roles/galaxy/*`) live in separate repositories and are only installed after your run `just roles` (or `make roles`) or `just update` (which automatically does `git pull` and `just roles`).
## Installation ## Installation

View File

@ -2,7 +2,9 @@
If you've [configured your DNS](configuring-dns.md) and have [configured the playbook](configuring-playbook.md), you can start the installation procedure. If you've [configured your DNS](configuring-dns.md) and have [configured the playbook](configuring-playbook.md), you can start the installation procedure.
**Before installing** and each time you update the playbook in the future, you will need to update the Ansible roles in this playbook by running `just roles`. `just roles` is a shortcut (a `roles` target defined in [`justfile`](../justfile) and executed by the [`just`](https://github.com/casey/just) utility) which ultimately runs [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to download Ansible roles. If you don't have `just`, you can also manually run the `roles` commands seen in the `justfile`. **Before installing** and each time you update the playbook in the future, you will need to update the Ansible roles in this playbook by running `just roles`. `just roles` is a shortcut (a `roles` target defined in [`justfile`](../justfile) and executed by the [`just`](https://github.com/casey/just) utility) which ultimately runs [agru](https://gitlab.com/etke.cc/tools/agru) or [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) (depending on what is available in your system) to download Ansible roles. If you don't have `just`, you can also manually run the `roles` commands seen in the `justfile`.
There's another shortcut (`just update`) which updates the playbook (`git pull`) and updates roles (`just update`) at the same time.
## Playbook tags introduction ## Playbook tags introduction

View File

@ -1,6 +1,6 @@
> **Note**: This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`). > **Note**: This migration guide is applicable if you migrate from one server to another server having the same CPU architecture (e.g. both servers being `amd64`).
> >
> If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is not possible as it would move the raw PostgreSQL data between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore. > If you're trying to migrate between different architectures (e.g. `amd64` --> `arm64`), simply copying the complete `/matrix` directory is not possible as it would move the raw PostgreSQL data (`/matrix/postgres/data`) between different architectures. In this specific case, you can use the guide below as a reference, but you would also need to avoid syncing `/matrix/postgres/data` to the new host, and also dump the database on your current server and import it properly on the new server. See our [Backing up PostgreSQL](maintenance-postgres.md#backing-up-postgresql) docs for help with PostgreSQL backup/restore.
# Migrating to new server # Migrating to new server

View File

@ -111,7 +111,7 @@ You can manually influence some of the tuning variables . These parameters (vari
Most users should be fine with the automatically-done tuning. However, you may wish to: Most users should be fine with the automatically-done tuning. However, you may wish to:
- **adjust the automatically-deterimned tuning parameters manually**: change the values for the tuning variables defined in the Postgres role's [default configuration file](https://github.com/devture/com.devture.ansible.role.postgres/blob/main/defaults/main.yml) (see `devture_postgres_max_connections`, `devture_postgres_data_storage` etc). These variables are ultimately passed to Postgres via a `devture_postgres_postgres_process_extra_arguments_auto` variable - **adjust the automatically-determined tuning parameters manually**: change the values for the tuning variables defined in the Postgres role's [default configuration file](https://github.com/devture/com.devture.ansible.role.postgres/blob/main/defaults/main.yml) (see `devture_postgres_max_connections`, `devture_postgres_data_storage` etc). These variables are ultimately passed to Postgres via a `devture_postgres_postgres_process_extra_arguments_auto` variable
- **turn automatically-performed tuning off**: override it like this: `devture_postgres_postgres_process_extra_arguments_auto: []` - **turn automatically-performed tuning off**: override it like this: `devture_postgres_postgres_process_extra_arguments_auto: []`

View File

@ -6,12 +6,13 @@ If you want to be notified when new versions of Synapse are released, you should
To upgrade services: To upgrade services:
- update your playbook directory (`git pull`), so you'd obtain everything new we've done - update your playbook directory and all upstream Ansible roles (defined in the `requirements.yml` file) using:
- either: `just update`
- or: a combination of `git pull` and `just role` (or `make roles`)
- take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of - take a look at [the changelog](../CHANGELOG.md) to see if there have been any backward-incompatible changes that you need to take care of
- download the upstream Ansible roles used by the playbook by running `just roles` - re-run the [playbook setup](installing.md) and restart all services: `just install-all` or `just setup-all`
- re-run the [playbook setup](installing.md) and restart all services: `just setup-all`
**Note**: major version upgrades to the internal PostgreSQL database are not done automatically. To upgrade it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql). **Note**: major version upgrades to the internal PostgreSQL database are not done automatically. To upgrade it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql).

View File

@ -26,7 +26,7 @@ If your distro runs within an [LXC container](https://linuxcontainers.org/), you
- [`git`](https://git-scm.com/) is the recommended way to download the playbook to your computer. `git` may also be required on the server if you will be [self-building](self-building.md) components. - [`git`](https://git-scm.com/) is the recommended way to download the playbook to your computer. `git` may also be required on the server if you will be [self-building](self-building.md) components.
- [`just`](https://github.com/casey/just) for running `just roles`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually - [`just`](https://github.com/casey/just) for running `just roles`, `just update`, etc. (see [`justfile`](../justfile)), although you can also run these commands manually
- An HTTPS-capable web server at the base domain name (`<your-domain>`) 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 (`<your-domain>`) 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).
@ -35,12 +35,12 @@ If your distro runs within an [LXC container](https://linuxcontainers.org/), you
- Some TCP/UDP ports open. This playbook (actually [Docker itself](https://docs.docker.com/network/iptables/)) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports: - Some TCP/UDP ports open. This playbook (actually [Docker itself](https://docs.docker.com/network/iptables/)) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But **if your server is running behind another firewall**, you'd need to open these ports:
- `80/tcp`: HTTP webserver - `80/tcp`: HTTP webserver
- `443/tcp`: HTTPS webserver - `443/tcp` and `443/udp`: HTTPS webserver
- `3478/tcp`: TURN over TCP (used by Coturn) - `3478/tcp`: TURN over TCP (used by Coturn)
- `3478/udp`: TURN over UDP (used by Coturn) - `3478/udp`: TURN over UDP (used by Coturn)
- `5349/tcp`: TURN over TCP (used by Coturn) - `5349/tcp`: TURN over TCP (used by Coturn)
- `5349/udp`: TURN over UDP (used by Coturn) - `5349/udp`: TURN over UDP (used by Coturn)
- `8448/tcp`: Matrix Federation API HTTPS webserver. In some cases, this **may necessary even with federation disabled**. Integration Servers (like Dimension) and Identity Servers (like ma1sd) may need to access `openid` APIs on the federation port. - `8448/tcp` and `8448/udp`: Matrix Federation API HTTPS webserver. In some cases, this **may necessary even with federation disabled**. Integration Servers (like Dimension) and Identity Servers (like ma1sd) may need to access `openid` APIs on the federation port.
- 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

@ -1,6 +1,14 @@
server { server {
listen 443 ssl http2; # TODO: once per IP and port you should add `reuseport`, if you don't have that in any other nginx config file, add it here by uncommenting the lines below and commenting the one after with `quic` but without `reuseport`
listen [::]:443 ssl http2; #listen 443 quic reuseport;
listen 443 quic;
listen 443 ssl;
# TODO: if you replaced the line above for port 443 and IPv4, you probably want to do the same for port 443 IPv6 by switching the two lines below
#listen [::]:443 quic reuseport;
listen [::]:443 quic;
listen [::]:443 ssl;
http2 on;
http3 on;
# TODO: add/remove services and their subdomains if you use/don't use them # TODO: add/remove services and their subdomains if you use/don't use them
# this example is using hosting something on the base domain and an element web client, so example.com and element.example.com are listed in addition to matrix.example.com # this example is using hosting something on the base domain and an element web client, so example.com and element.example.com are listed in addition to matrix.example.com
@ -24,6 +32,9 @@ server {
# Nginx by default only allows file uploads up to 1M in size # Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 50M; client_max_body_size 50M;
# required for browsers to direct them to quic port
add_header Alt-Svc 'h3=":443"; ma=86400';
} }
# TODO: adapt the path to your ssl certificate for the domains listed on server_name # TODO: adapt the path to your ssl certificate for the domains listed on server_name
@ -37,8 +48,16 @@ server {
# settings for matrix federation # settings for matrix federation
server { server {
# For the federation port # For the federation port
listen 8448 ssl http2 default_server; # TODO: once per IP and port you should add `reuseport`, if you don't have that in any other nginx config file, add it here by uncommenting the lines below and commenting the one after with `quic` but without `reuseport`
listen [::]:8448 ssl http2 default_server; #listen 8448 quic reuseport;
listen 8448 quic;
listen 8448 ssl default_server;
# TODO: if you replaced the line above for port 8448 and IPv4, you probably want to do the same for port 8448 IPv6 by switching the two lines below
#listen [::]:8448 quic reuseport;
listen [::]:8448 quic;
listen [::]:8448 ssl default_server;
http2 on;
http3 on;
server_name matrix.example.com; server_name matrix.example.com;
@ -54,6 +73,9 @@ server {
# Nginx by default only allows file uploads up to 1M in size # Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 50M; client_max_body_size 50M;
# required for browsers to direct them to quic port
add_header Alt-Svc 'h3=":8448"; ma=86400';
} }
# TODO: adapt the path to your ssl certificate for the domains listed on server_name # TODO: adapt the path to your ssl certificate for the domains listed on server_name
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot

View File

@ -38,6 +38,9 @@ matrix_playbook_reverse_proxy_hostname: "{{ devture_traefik_identifier if devtur
# A separate Matrix Federation entrypoint is always enabled, unless the federation port matches one of the ports for existing (default) entrypoints # A separate Matrix Federation entrypoint is always enabled, unless the federation port matches one of the ports for existing (default) entrypoints
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled: "{{ matrix_federation_public_port not in [devture_traefik_config_entrypoint_web_port, devture_traefik_config_entrypoint_web_secure_port] }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled: "{{ matrix_federation_public_port not in [devture_traefik_config_entrypoint_web_port, devture_traefik_config_entrypoint_web_secure_port] }}"
# We only enable HTTP/3 on the federation entrypoint if the main web-secure entrypoint has it enabled.
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: "{{ devture_traefik_config_entrypoint_web_secure_http3_enabled }}"
# `devture_traefik_config_entrypoint_web_secure_enabled` is the variable we currently follow to determine if SSL is enabled or not. # `devture_traefik_config_entrypoint_web_secure_enabled` is the variable we currently follow to determine if SSL is enabled or not.
# `matrix_playbook_ssl_enabled` is merely an indicator if (when looked at it publicly), the server supports SSL or not, # `matrix_playbook_ssl_enabled` is merely an indicator if (when looked at it publicly), the server supports SSL or not,
# and affects how services configure their public URLs. # and affects how services configure their public URLs.
@ -81,6 +84,8 @@ matrix_homeserver_container_extra_arguments_auto: |
+ +
(['--mount type=bind,src=' + matrix_appservice_draupnir_for_all_config_path + '/draupnir-for-all-registration.yaml,dst=/matrix-appservice-draupnir-for-all-registration.yaml,ro'] if matrix_appservice_draupnir_for_all_enabled else []) (['--mount type=bind,src=' + matrix_appservice_draupnir_for_all_config_path + '/draupnir-for-all-registration.yaml,dst=/matrix-appservice-draupnir-for-all-registration.yaml,ro'] if matrix_appservice_draupnir_for_all_enabled else [])
+ +
(['--mount type=bind,src=' + matrix_appservice_double_puppet_config_path + '/registration.yaml,dst=/matrix-appservice-double-puppet-registration.yaml,ro'] if matrix_appservice_double_puppet_enabled else [])
+
(['--mount type=bind,src=' + matrix_appservice_irc_config_path + '/registration.yaml,dst=/matrix-appservice-irc-registration.yaml,ro'] if matrix_appservice_irc_enabled else []) (['--mount type=bind,src=' + matrix_appservice_irc_config_path + '/registration.yaml,dst=/matrix-appservice-irc-registration.yaml,ro'] if matrix_appservice_irc_enabled else [])
+ +
(['--mount type=bind,src=' + matrix_appservice_kakaotalk_config_path + '/registration.yaml,dst=/matrix-appservice-kakaotalk-registration.yaml,ro'] if matrix_appservice_kakaotalk_enabled else []) (['--mount type=bind,src=' + matrix_appservice_kakaotalk_config_path + '/registration.yaml,dst=/matrix-appservice-kakaotalk-registration.yaml,ro'] if matrix_appservice_kakaotalk_enabled else [])
@ -93,6 +98,8 @@ matrix_homeserver_container_extra_arguments_auto: |
+ +
(['--mount type=bind,src=' + matrix_go_skype_bridge_config_path + '/registration.yaml,dst=/matrix-go-skype-bridge-registration.yaml,ro'] if matrix_go_skype_bridge_enabled else []) (['--mount type=bind,src=' + matrix_go_skype_bridge_config_path + '/registration.yaml,dst=/matrix-go-skype-bridge-registration.yaml,ro'] if matrix_go_skype_bridge_enabled else [])
+ +
(['--mount type=bind,src=' + matrix_wechat_config_path + '/registration.yaml,dst=/matrix-wechat-registration.yaml,ro'] if matrix_wechat_enabled else [])
+
(['--mount type=bind,src=' + matrix_heisenbridge_base_path + '/registration.yaml,dst=/heisenbridge-registration.yaml,ro'] if matrix_heisenbridge_enabled else []) (['--mount type=bind,src=' + matrix_heisenbridge_base_path + '/registration.yaml,dst=/heisenbridge-registration.yaml,ro'] if matrix_heisenbridge_enabled else [])
+ +
(['--mount type=bind,src=' + matrix_hookshot_base_path + '/registration.yml,dst=/hookshot-registration.yml,ro'] if matrix_hookshot_enabled else []) (['--mount type=bind,src=' + matrix_hookshot_base_path + '/registration.yml,dst=/hookshot-registration.yml,ro'] if matrix_hookshot_enabled else [])
@ -150,6 +157,8 @@ matrix_homeserver_app_service_config_files_auto: |
+ +
(['/matrix-appservice-draupnir-for-all-registration.yaml'] if matrix_appservice_draupnir_for_all_enabled else []) (['/matrix-appservice-draupnir-for-all-registration.yaml'] if matrix_appservice_draupnir_for_all_enabled else [])
+ +
(['/matrix-appservice-double-puppet-registration.yaml'] if matrix_appservice_double_puppet_enabled else [])
+
(['/matrix-appservice-irc-registration.yaml'] if matrix_appservice_irc_enabled else []) (['/matrix-appservice-irc-registration.yaml'] if matrix_appservice_irc_enabled else [])
+ +
(['/matrix-appservice-kakaotalk-registration.yaml'] if matrix_appservice_kakaotalk_enabled else []) (['/matrix-appservice-kakaotalk-registration.yaml'] if matrix_appservice_kakaotalk_enabled else [])
@ -162,6 +171,8 @@ matrix_homeserver_app_service_config_files_auto: |
+ +
(['/matrix-go-skype-bridge-registration.yaml'] if matrix_go_skype_bridge_enabled else []) (['/matrix-go-skype-bridge-registration.yaml'] if matrix_go_skype_bridge_enabled else [])
+ +
(['/matrix-wechat-registration.yaml'] if matrix_wechat_enabled else [])
+
(['/heisenbridge-registration.yaml'] if matrix_heisenbridge_enabled else []) (['/heisenbridge-registration.yaml'] if matrix_heisenbridge_enabled else [])
+ +
(['/hookshot-registration.yml'] if matrix_hookshot_enabled else []) (['/hookshot-registration.yml'] if matrix_hookshot_enabled else [])
@ -260,6 +271,8 @@ devture_systemd_service_manager_services_list_auto: |
{{ {{
([{'name': (backup_borg_identifier + '.timer'), 'priority': 5000, 'groups': ['matrix', 'backup', 'borg']}] if backup_borg_enabled else []) ([{'name': (backup_borg_identifier + '.timer'), 'priority': 5000, 'groups': ['matrix', 'backup', 'borg']}] if backup_borg_enabled else [])
+ +
([{'name': 'matrix-alertmanager-receiver.service', 'priority': 2200, 'groups': ['matrix', 'alertmanager-receiver']}] if matrix_alertmanager_receiver_enabled else [])
+
([{'name': 'matrix-bot-buscarron.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'buscarron', 'bot-buscarron']}] if matrix_bot_buscarron_enabled else []) ([{'name': 'matrix-bot-buscarron.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'buscarron', 'bot-buscarron']}] if matrix_bot_buscarron_enabled else [])
+ +
([{'name': 'matrix-bot-go-neb.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'go-neb', 'bot-go-neb']}] if matrix_bot_go_neb_enabled else []) ([{'name': 'matrix-bot-go-neb.service', 'priority': 2200, 'groups': ['matrix', 'bots', 'go-neb', 'bot-go-neb']}] if matrix_bot_go_neb_enabled else [])
@ -298,6 +311,10 @@ devture_systemd_service_manager_services_list_auto: |
+ +
([{'name': 'matrix-go-skype-bridge.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'go-skype']}] if matrix_go_skype_bridge_enabled else []) ([{'name': 'matrix-go-skype-bridge.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'go-skype']}] if matrix_go_skype_bridge_enabled else [])
+ +
([{'name': 'matrix-wechat.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'wechat']}] if matrix_wechat_enabled else [])
+
([{'name': 'matrix-wechat-agent.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'wechat']}] if matrix_wechat_enabled else [])
+
([{'name': 'matrix-heisenbridge.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'heisenbridge']}] if matrix_heisenbridge_enabled else []) ([{'name': 'matrix-heisenbridge.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'heisenbridge']}] if matrix_heisenbridge_enabled else [])
+ +
([{'name': 'matrix-hookshot.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'hookshot', 'bridge-hookshot']}] if matrix_hookshot_enabled else []) ([{'name': 'matrix-hookshot.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'hookshot', 'bridge-hookshot']}] if matrix_hookshot_enabled else [])
@ -428,6 +445,8 @@ devture_systemd_service_manager_services_list_auto: |
+ +
([{'name': 'matrix-synapse-admin.service', 'priority': 4000, 'groups': ['matrix', 'synapse-admin']}] if matrix_synapse_admin_enabled else []) ([{'name': 'matrix-synapse-admin.service', 'priority': 4000, 'groups': ['matrix', 'synapse-admin']}] if matrix_synapse_admin_enabled else [])
+ +
([{'name': (matrix_synapse_usage_exporter_identifier + '.service'), 'priority': 4000, 'groups': ['matrix', 'synapse-usage-exporter']}] if matrix_synapse_usage_exporter_enabled else [])
+
([{'name': 'matrix-synapse-reverse-proxy-companion.service', 'priority': 1500, 'groups': ['matrix', 'homeservers', 'synapse', 'synapse-reverse-proxy-companion', 'reverse-proxies']}] if matrix_synapse_reverse_proxy_companion_enabled else []) ([{'name': 'matrix-synapse-reverse-proxy-companion.service', 'priority': 1500, 'groups': ['matrix', 'homeservers', 'synapse', 'synapse-reverse-proxy-companion', 'reverse-proxies']}] if matrix_synapse_reverse_proxy_companion_enabled else [])
+ +
([{'name': 'matrix-user-verification-service.service', 'priority': 800, 'groups': ['matrix', 'matrix-user-verification-service']}] if matrix_user_verification_service_enabled else []) ([{'name': 'matrix-user-verification-service.service', 'priority': 800, 'groups': ['matrix', 'matrix-user-verification-service']}] if matrix_user_verification_service_enabled else [])
@ -506,7 +525,7 @@ docker_daemon_options: "{{ matrix_playbook_docker_installation_daemon_options }}
# #
###################################################################### ######################################################################
matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}" matrix_identity_server_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}"
matrix_homeserver_systemd_services_list: |- matrix_homeserver_systemd_services_list: |-
{{ {{
@ -547,6 +566,54 @@ matrix_integration_manager_ui_url: "{{ matrix_dimension_integrations_ui_url if m
###################################################################### ######################################################################
######################################################################
#
# matrix-alertmanager-receiver
#
######################################################################
# We don't enable this by default.
matrix_alertmanager_receiver_enabled: false
matrix_alertmanager_receiver_container_image_self_build: "{{ matrix_architecture != 'amd64' }}"
matrix_alertmanager_receiver_container_network: "{{ matrix_addons_container_network }}"
matrix_alertmanager_receiver_container_additional_networks_auto: |-
{{
(
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
+
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_alertmanager_receiver_container_labels_traefik_enabled) else [])
) | unique
}}
matrix_alertmanager_receiver_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_alertmanager_receiver_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_alertmanager_receiver_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_alertmanager_receiver_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_alertmanager_receiver_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_alertmanager_receiver_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_alertmanager_receiver_systemd_required_services_list_auto: "{{ matrix_addons_homeserver_systemd_services_list }}"
matrix_alertmanager_receiver_config_matrix_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_alertmanager_receiver_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
matrix_alertmanager_receiver_metrics_proxying_enabled: "{{ matrix_alertmanager_receiver_config_http_metrics_enabled and matrix_metrics_exposure_enabled }}"
matrix_alertmanager_receiver_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
matrix_alertmanager_receiver_metrics_proxying_path: "{{ matrix_metrics_exposure_path_prefix }}/matrix-alertmanager-receiver"
######################################################################
#
# /matrix-alertmanager-receiver
#
######################################################################
###################################################################### ######################################################################
# #
# matrix-bridge-appservice-discord # matrix-bridge-appservice-discord
@ -835,7 +902,16 @@ matrix_beeper_linkedin_appservice_token: "{{ '%s' | format(matrix_homeserver_gen
matrix_beeper_linkedin_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_beeper_linkedin_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_beeper_linkedin_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'linked.hs.token', rounds=655555) | to_uuid }}" matrix_beeper_linkedin_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'linked.hs.token', rounds=655555) | to_uuid }}"
matrix_beeper_linkedin_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_beeper_linkedin_login_shared_secret: |-
{{
("as_token:" + matrix_appservice_double_puppet_registration_as_token)
if matrix_appservice_double_puppet_enabled
else (
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else ""
)
}}
matrix_beeper_linkedin_bridge_presence: "{{ matrix_synapse_presence_enabled if matrix_synapse_enabled else true }}" matrix_beeper_linkedin_bridge_presence: "{{ matrix_synapse_presence_enabled if matrix_synapse_enabled else true }}"
@ -932,7 +1008,18 @@ matrix_mautrix_discord_homeserver_address: "{{ matrix_addons_homeserver_client_a
matrix_mautrix_discord_homeserver_public_address: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_server_fqn_matrix }}" matrix_mautrix_discord_homeserver_public_address: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_server_fqn_matrix }}"
matrix_mautrix_discord_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maudisc.hs.tok', rounds=655555) | to_uuid }}" matrix_mautrix_discord_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'maudisc.hs.tok', rounds=655555) | to_uuid }}"
matrix_mautrix_discord_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_discord_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_discord_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_discord_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
# Postgres is the default, except if not using internal Postgres server # Postgres is the default, except if not using internal Postgres server
matrix_mautrix_discord_database_engine: "{{ 'postgres' if devture_postgres_enabled else 'sqlite' }}" matrix_mautrix_discord_database_engine: "{{ 'postgres' if devture_postgres_enabled else 'sqlite' }}"
@ -980,13 +1067,23 @@ matrix_mautrix_slack_appservice_token: "{{ '%s' | format(matrix_homeserver_gener
matrix_mautrix_slack_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_slack_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_slack_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mauslack.hs.tok', rounds=655555) | to_uuid }}" matrix_mautrix_slack_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mauslack.hs.tok', rounds=655555) | to_uuid }}"
matrix_mautrix_slack_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_slack_double_puppet_secrets_auto: |-
{{
{
matrix_mautrix_slack_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
}
if matrix_appservice_double_puppet_enabled
else {}
}}
# Postgres is the default, except if not using internal Postgres server # Postgres is the default, except if not using internal Postgres server
matrix_mautrix_slack_database_engine: "{{ 'postgres' if devture_postgres_enabled else 'sqlite' }}" matrix_mautrix_slack_database_engine: "{{ 'postgres' if devture_postgres_enabled else 'sqlite' }}"
matrix_mautrix_slack_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}" matrix_mautrix_slack_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
matrix_mautrix_slack_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mauslack.db', rounds=655555) | to_uuid }}" matrix_mautrix_slack_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mauslack.db', rounds=655555) | to_uuid }}"
matrix_mautrix_slack_provisioning_shared_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.slack.prov', rounds=655555) | to_uuid }}"
matrix_mautrix_slack_public_media_signing_key: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.slack.pmed', rounds=655555) | to_uuid }}"
###################################################################### ######################################################################
# #
# /matrix-bridge-mautrix-slack # /matrix-bridge-mautrix-slack
@ -1116,7 +1213,16 @@ matrix_mautrix_googlechat_appservice_token: "{{ '%s' | format(matrix_homeserver_
matrix_mautrix_googlechat_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_googlechat_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_googlechat_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'gc.hs.token', rounds=655555) | to_uuid }}" matrix_mautrix_googlechat_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'gc.hs.token', rounds=655555) | to_uuid }}"
matrix_mautrix_googlechat_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_googlechat_login_shared_secret: |-
{{
("as_token:" + matrix_appservice_double_puppet_registration_as_token)
if matrix_appservice_double_puppet_enabled
else (
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else ""
)
}}
matrix_mautrix_googlechat_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_googlechat_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1315,7 +1421,14 @@ matrix_mautrix_signal_homeserver_token: "{{ '%s' | format(matrix_homeserver_gene
matrix_mautrix_signal_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'si.as.token', rounds=655555) | to_uuid }}" matrix_mautrix_signal_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'si.as.token', rounds=655555) | to_uuid }}"
matrix_mautrix_signal_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_signal_double_puppet_secrets_auto: |-
{{
{
matrix_mautrix_signal_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
}
if matrix_appservice_double_puppet_enabled
else {}
}}
matrix_mautrix_signal_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_signal_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1327,6 +1440,9 @@ matrix_mautrix_signal_database_engine: "{{ 'postgres' if devture_postgres_enable
matrix_mautrix_signal_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}" matrix_mautrix_signal_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
matrix_mautrix_signal_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.signal.db', rounds=655555) | to_uuid }}" matrix_mautrix_signal_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.signal.db', rounds=655555) | to_uuid }}"
matrix_mautrix_signal_provisioning_shared_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.signal.prov', rounds=655555) | to_uuid }}"
matrix_mautrix_signal_public_media_signing_key: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.signal.pmed', rounds=655555) | to_uuid }}"
###################################################################### ######################################################################
# #
# /matrix-bridge-mautrix-signal # /matrix-bridge-mautrix-signal
@ -1379,7 +1495,18 @@ matrix_mautrix_meta_messenger_homeserver_address: "{{ matrix_addons_homeserver_c
matrix_mautrix_meta_messenger_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.meta.fb.hs', rounds=655555) | to_uuid }}" matrix_mautrix_meta_messenger_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.meta.fb.hs', rounds=655555) | to_uuid }}"
matrix_mautrix_meta_messenger_bridge_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_meta_messenger_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_meta_messenger_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
matrix_mautrix_meta_messenger_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_meta_messenger_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1446,7 +1573,18 @@ matrix_mautrix_meta_instagram_homeserver_address: "{{ matrix_addons_homeserver_c
matrix_mautrix_meta_instagram_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.meta.ig.hs', rounds=655555) | to_uuid }}" matrix_mautrix_meta_instagram_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.meta.ig.hs', rounds=655555) | to_uuid }}"
matrix_mautrix_meta_instagram_bridge_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_meta_instagram_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_meta_instagram_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
matrix_mautrix_meta_instagram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_meta_instagram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1520,7 +1658,18 @@ matrix_mautrix_telegram_homeserver_domain: "{{ matrix_domain }}"
matrix_mautrix_telegram_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_telegram_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_telegram_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'telegr.hs.token', rounds=655555) | to_uuid }}" matrix_mautrix_telegram_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'telegr.hs.token', rounds=655555) | to_uuid }}"
matrix_mautrix_telegram_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_telegram_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_telegram_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_telegram_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
matrix_mautrix_telegram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_telegram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1583,7 +1732,18 @@ matrix_mautrix_twitter_appservice_token: "{{ '%s' | format(matrix_homeserver_gen
matrix_mautrix_twitter_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_twitter_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_twitter_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'twt.hs.token', rounds=655555) | to_uuid }}" matrix_mautrix_twitter_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'twt.hs.token', rounds=655555) | to_uuid }}"
matrix_mautrix_twitter_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_twitter_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_twitter_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_twitter_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
matrix_mautrix_twitter_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_twitter_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1644,7 +1804,16 @@ matrix_mautrix_gmessages_appservice_token: "{{ '%s' | format(matrix_homeserver_g
matrix_mautrix_gmessages_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_gmessages_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_gmessages_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'gmessa.hs.token', rounds=655555) | to_uuid }}" matrix_mautrix_gmessages_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'gmessa.hs.token', rounds=655555) | to_uuid }}"
matrix_mautrix_gmessages_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_gmessages_login_shared_secret: |-
{{
("as_token:" + matrix_appservice_double_puppet_registration_as_token)
if matrix_appservice_double_puppet_enabled
else (
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else ""
)
}}
matrix_mautrix_gmessages_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_gmessages_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1713,6 +1882,57 @@ matrix_mautrix_wsproxy_syncproxy_database_password: "{{ '%s' | format(matrix_hom
# #
###################################################################### ######################################################################
######################################################################
#
# matrix-bridge-wechat
#
######################################################################
# We don't enable bridges by default.
matrix_wechat_enabled: false
matrix_wechat_systemd_required_services_list_auto: |
{{
matrix_addons_homeserver_systemd_services_list
+
([devture_postgres_identifier ~ '.service'] if (devture_postgres_enabled and matrix_wechat_database_hostname == devture_postgres_connection_hostname) else [])
}}
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_container_network: "{{ matrix_addons_container_network }}"
matrix_wechat_container_additional_networks_auto: |-
{{
(
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
+
([devture_postgres_container_network] if (devture_postgres_enabled and matrix_wechat_database_hostname == devture_postgres_connection_hostname and matrix_wechat_container_network != devture_postgres_container_network) else [])
) | unique
}}
matrix_wechat_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'wechat.as.token', rounds=655555) | to_uuid }}"
matrix_wechat_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_wechat_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'wechat.hs.token', rounds=655555) | to_uuid }}"
matrix_wechat_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}"
matrix_wechat_bridge_listen_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'wechat.lstn', rounds=655555) | to_uuid }}"
# Postgres is the default, except if not using internal Postgres server
matrix_wechat_database_engine: "{{ 'postgres' if devture_postgres_enabled else 'sqlite' }}"
matrix_wechat_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
matrix_wechat_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'gowechat.db', rounds=655555) | to_uuid }}"
######################################################################
#
# /matrix-bridge-wechat
#
######################################################################
###################################################################### ######################################################################
# #
# matrix-bridge-mautrix-whatsapp # matrix-bridge-mautrix-whatsapp
@ -1757,7 +1977,18 @@ matrix_mautrix_whatsapp_appservice_token: "{{ '%s' | format(matrix_homeserver_ge
matrix_mautrix_whatsapp_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" matrix_mautrix_whatsapp_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_whatsapp_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'whats.hs.token', rounds=655555) | to_uuid }}" matrix_mautrix_whatsapp_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'whats.hs.token', rounds=655555) | to_uuid }}"
matrix_mautrix_whatsapp_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" matrix_mautrix_whatsapp_bridge_login_shared_secret_map_auto: |-
{{
({
matrix_mautrix_whatsapp_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
})
if matrix_appservice_double_puppet_enabled
else (
{matrix_mautrix_whatsapp_homeserver_domain: matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret}
if matrix_synapse_ext_password_provider_shared_secret_auth_enabled
else {}
)
}}
matrix_mautrix_whatsapp_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" matrix_mautrix_whatsapp_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
@ -1820,6 +2051,8 @@ matrix_sms_bridge_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_
# We don't enable bridges by default. # We don't enable bridges by default.
matrix_heisenbridge_enabled: false matrix_heisenbridge_enabled: false
matrix_heisenbridge_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_heisenbridge_systemd_required_services_list_auto: | matrix_heisenbridge_systemd_required_services_list_auto: |
{{ {{
matrix_addons_homeserver_systemd_services_list matrix_addons_homeserver_systemd_services_list
@ -1829,9 +2062,18 @@ matrix_heisenbridge_container_network: "{{ matrix_addons_container_network }}"
matrix_heisenbridge_container_additional_networks_auto: |- matrix_heisenbridge_container_additional_networks_auto: |-
{{ {{
(
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
+
[matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_heisenbridge_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else []
) | unique
}} }}
matrix_heisenbridge_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_heisenbridge_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_heisenbridge_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_heisenbridge_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_heisenbridge_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'heisen.as.tok', rounds=655555) | to_uuid }}" matrix_heisenbridge_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'heisen.as.tok', rounds=655555) | to_uuid }}"
matrix_heisenbridge_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'heisen.hs.tok', rounds=655555) | to_uuid }}" matrix_heisenbridge_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'heisen.hs.tok', rounds=655555) | to_uuid }}"
@ -1913,8 +2155,8 @@ matrix_hookshot_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_p
matrix_hookshot_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}" matrix_hookshot_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_hookshot_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}" matrix_hookshot_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_hookshot_public_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_hookshot_public_hostname: "{{ matrix_server_fqn_matrix }}" matrix_hookshot_public_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_hookshot_urlprefix: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_server_fqn_matrix }}"
###################################################################### ######################################################################
# #
@ -2677,6 +2919,8 @@ matrix_bot_mjolnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_u
# We don't enable bots by default. # We don't enable bots by default.
matrix_bot_draupnir_enabled: false matrix_bot_draupnir_enabled: false
matrix_bot_draupnir_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8769') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
matrix_bot_draupnir_systemd_required_services_list_auto: | matrix_bot_draupnir_systemd_required_services_list_auto: |
{{ {{
matrix_addons_homeserver_systemd_services_list matrix_addons_homeserver_systemd_services_list
@ -2690,12 +2934,25 @@ matrix_bot_draupnir_container_network: "{{ matrix_addons_container_network }}"
matrix_bot_draupnir_container_additional_networks_auto: |- matrix_bot_draupnir_container_additional_networks_auto: |-
{{ {{
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) (
([] if matrix_addons_homeserver_container_network == '' else
[matrix_addons_homeserver_container_network])
+
([matrix_playbook_reverse_proxyable_services_additional_network] if
(matrix_playbook_reverse_proxyable_services_additional_network and matrix_bot_draupnir_container_labels_traefik_enabled) else [])
+
([matrix_pantalaimon_container_network] if (matrix_bot_draupnir_pantalaimon_use and matrix_pantalaimon_container_network != matrix_bot_draupnir_container_network) else [])
) | 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_homeserver_url: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}"
matrix_bot_draupnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}" matrix_bot_draupnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
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_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_bot_draupnir_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_bot_draupnir_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
###################################################################### ######################################################################
# #
# /matrix-bot-draupnir # /matrix-bot-draupnir
@ -2745,6 +3002,24 @@ matrix_appservice_draupnir_for_all_database_password: "{{ '%s' | format(matrix_h
###################################################################### ######################################################################
######################################################################
#
# matrix-appservice-double-puppet
#
######################################################################
matrix_appservice_double_puppet_enabled: false
matrix_appservice_double_puppet_registration_as_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'as.doub.pup', rounds=655555) | to_uuid }}"
matrix_appservice_double_puppet_registration_hs_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'hs.doub.pup', rounds=655555) | to_uuid }}"
######################################################################
#
# /matrix-appservice-double-puppet
#
######################################################################
###################################################################### ######################################################################
# #
# matrix-pantalaimon # matrix-pantalaimon
@ -2814,7 +3089,7 @@ backup_borg_location_exclude_patterns: |
backup_borg_systemd_required_services_list: | backup_borg_systemd_required_services_list: |
{{ {{
['docker.service'] [devture_systemd_docker_base_docker_service_name]
+ +
([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled else []) ([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled else [])
}} }}
@ -2923,6 +3198,8 @@ matrix_corporal_container_labels_traefik_docker_network: "{{ matrix_playbook_rev
matrix_corporal_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" matrix_corporal_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_corporal_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" matrix_corporal_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_corporal_matrix_homeserver_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_corporal_matrix_homeserver_api_endpoint: "{{ matrix_homeserver_container_url }}" matrix_corporal_matrix_homeserver_api_endpoint: "{{ matrix_homeserver_container_url }}"
matrix_corporal_matrix_auth_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}" matrix_corporal_matrix_auth_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
@ -3029,7 +3306,7 @@ matrix_coturn_container_additional_volumes: |
matrix_coturn_systemd_required_services_list: | matrix_coturn_systemd_required_services_list: |
{{ {{
['docker.service'] [devture_systemd_docker_base_docker_service_name]
+ +
([devture_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 devture_traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else []) ([devture_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 devture_traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else [])
}} }}
@ -3080,7 +3357,7 @@ matrix_dimension_container_labels_traefik_tls_certResolver: "{{ devture_traefik_
matrix_dimension_homeserver_clientServerUrl: "{{ matrix_addons_homeserver_client_api_url }}" matrix_dimension_homeserver_clientServerUrl: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_dimension_homeserver_federationUrl: "{{ matrix_homeserver_container_federation_url }}" matrix_dimension_homeserver_federationUrl: "{{ matrix_homeserver_container_federation_url }}"
matrix_dimension_homeserver_mediaUrl: "https://{{ matrix_server_fqn_matrix }}" matrix_dimension_homeserver_mediaUrl: "{{ ('https' if matrix_playbook_ssl_enabled else 'http') }}://{{ matrix_server_fqn_matrix }}"
# Dimension depends both on `matrix_addons_homeserver_systemd_services_list` and on the homeserver service, # Dimension depends both on `matrix_addons_homeserver_systemd_services_list` and on the homeserver service,
# because `matrix_dimension_homeserver_clientServerUrl` and `matrix_dimension_homeserver_federationUrl` are potentially # because `matrix_dimension_homeserver_clientServerUrl` and `matrix_dimension_homeserver_federationUrl` are potentially
@ -3147,7 +3424,7 @@ etherpad_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certReso
etherpad_systemd_required_services_list: | etherpad_systemd_required_services_list: |
{{ {{
['docker.service'] [devture_systemd_docker_base_docker_service_name]
+ +
([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled else []) ([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled else [])
}} }}
@ -3490,6 +3767,15 @@ matrix_media_repo_container_labels_traefik_tls_certResolver: "{{ devture_traefik
matrix_media_repo_container_labels_traefik_internal_media_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}" matrix_media_repo_container_labels_traefik_internal_media_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
matrix_media_repo_container_labels_traefik_internal_media_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}" matrix_media_repo_container_labels_traefik_internal_media_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
matrix_media_repo_container_labels_traefik_internal_matrix_client_media_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
matrix_media_repo_metrics_proxying_enabled: "{{ matrix_media_repo_metrics_enabled and matrix_metrics_exposure_enabled }}"
matrix_media_repo_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
matrix_media_repo_metrics_proxying_path: "{{ matrix_metrics_exposure_path_prefix }}/matrix-media-repo"
matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_media_repo_container_labels_traefik_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_media_repo_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}" matrix_media_repo_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
matrix_media_repo_database_username: matrix_media_repo matrix_media_repo_database_username: matrix_media_repo
matrix_media_repo_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mediarepo.db', rounds=655555) | to_uuid }}" matrix_media_repo_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mediarepo.db', rounds=655555) | to_uuid }}"
@ -3502,6 +3788,11 @@ matrix_media_repo_systemd_required_services_list_auto: |
([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled and matrix_media_repo_database_hostname == devture_postgres_connection_hostname else []) ([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled and matrix_media_repo_database_hostname == devture_postgres_connection_hostname else [])
}} }}
matrix_media_repo_generate_signing_key: "{{ matrix_homeserver_implementation == 'synapse' or matrix_homeserver_implementation == 'dendrite'}}"
matrix_media_repo_homeserver_signing_key: "{{ matrix_media_repo_synapse_signing_key if matrix_homeserver_implementation == 'synapse' else (matrix_media_repo_dendrite_signing_key if matrix_homeserver_implementation == 'dendrite' else '') }}"
matrix_media_repo_synapse_signing_key: "{{ matrix_synapse_config_dir_path }}/{{ matrix_server_fqn_matrix }}.signing.key"
matrix_media_repo_dendrite_signing_key: "{{ matrix_dendrite_config_dir_path }}/{{ matrix_server_fqn_matrix }}.signing.pem"
# Auto configured server setup by the playbook # Auto configured server setup by the playbook
matrix_media_repo_homeservers_auto: matrix_media_repo_homeservers_auto:
- # Keep the dash from this line. - # Keep the dash from this line.
@ -3523,6 +3814,11 @@ matrix_media_repo_homeservers_auto:
# to "matrix", most functionality requiring the admin API will not work. # to "matrix", most functionality requiring the admin API will not work.
adminApiKind: "{{ 'synapse' if matrix_homeserver_implementation == 'synapse' else ('dendrite' if matrix_homeserver_implementation == 'dendrite' else 'matrix') }}" adminApiKind: "{{ 'synapse' if matrix_homeserver_implementation == 'synapse' else ('dendrite' if matrix_homeserver_implementation == 'dendrite' else 'matrix') }}"
# The signing key to use for authorizing outbound federation requests. If not specified,
# requests will not be authorized. See https://docs.t2bot.io/matrix-media-repo/v1.3.5/installation/signing-key/
# for details.
signingKeyPath: "{{ '/config/' + matrix_media_repo_identifier + '.signing.key' if matrix_media_repo_generate_signing_key else '' }}"
matrix_media_repo_homeserver_federation_enabled: "{{ matrix_homeserver_federation_enabled }}" matrix_media_repo_homeserver_federation_enabled: "{{ matrix_homeserver_federation_enabled }}"
###################################################################### ######################################################################
@ -3692,6 +3988,12 @@ devture_postgres_managed_databases_auto: |
'password': matrix_go_skype_bridge_database_password, 'password': matrix_go_skype_bridge_database_password,
}] if (matrix_go_skype_bridge_enabled and matrix_go_skype_bridge_database_engine == 'postgres' and matrix_go_skype_bridge_database_hostname == devture_postgres_connection_hostname) else []) }] if (matrix_go_skype_bridge_enabled and matrix_go_skype_bridge_database_engine == 'postgres' and matrix_go_skype_bridge_database_hostname == devture_postgres_connection_hostname) else [])
+ +
([{
'name': matrix_wechat_database_name,
'username': matrix_wechat_database_username,
'password': matrix_wechat_database_password,
}] if (matrix_wechat_enabled and matrix_wechat_database_engine == 'postgres' and matrix_wechat_database_hostname == devture_postgres_connection_hostname) else [])
+
([{ ([{
'name': matrix_mautrix_facebook_database_name, 'name': matrix_mautrix_facebook_database_name,
'username': matrix_mautrix_facebook_database_username, 'username': matrix_mautrix_facebook_database_username,
@ -4019,6 +4321,8 @@ keydb_arch: |-
# If you wish to connect to your Matrix server by other means, you may wish to disable this. # If you wish to connect to your Matrix server by other means, you may wish to disable this.
matrix_client_element_enabled: true matrix_client_element_enabled: true
matrix_client_element_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_client_element_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_element_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_client_element_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_client_element_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
@ -4045,7 +4349,7 @@ matrix_client_element_self_check_validate_certificates: "{{ matrix_playbook_ssl_
matrix_client_element_registration_enabled: "{{ matrix_synapse_enable_registration }}" matrix_client_element_registration_enabled: "{{ matrix_synapse_enable_registration }}"
matrix_client_element_enable_presence_by_hs_url: | matrix_client_element_enable_presence_by_hs_url: |-
{{ {{
none none
if matrix_synapse_presence_enabled if matrix_synapse_presence_enabled
@ -4068,7 +4372,7 @@ matrix_client_element_jitsi_preferred_domain: "{{ matrix_server_fqn_jitsi if jit
matrix_client_hydrogen_enabled: false matrix_client_hydrogen_enabled: false
matrix_client_hydrogen_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_client_hydrogen_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_client_hydrogen_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8768') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_client_hydrogen_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8768') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
@ -4081,6 +4385,8 @@ matrix_client_hydrogen_container_labels_traefik_docker_network: "{{ matrix_playb
matrix_client_hydrogen_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" matrix_client_hydrogen_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_client_hydrogen_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" matrix_client_hydrogen_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_client_hydrogen_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_client_hydrogen_default_hs_url: "{{ matrix_homeserver_url }}" matrix_client_hydrogen_default_hs_url: "{{ matrix_homeserver_url }}"
matrix_client_hydrogen_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}" matrix_client_hydrogen_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}"
@ -4112,6 +4418,8 @@ matrix_client_cinny_container_labels_traefik_docker_network: "{{ matrix_playbook
matrix_client_cinny_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" matrix_client_cinny_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_client_cinny_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" matrix_client_cinny_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_client_cinny_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_client_cinny_default_hs_url: "{{ matrix_homeserver_url }}" matrix_client_cinny_default_hs_url: "{{ matrix_homeserver_url }}"
matrix_client_cinny_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}" matrix_client_cinny_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}"
@ -4130,6 +4438,8 @@ matrix_client_cinny_self_check_validate_certificates: "{{ matrix_playbook_ssl_en
matrix_client_schildichat_enabled: false matrix_client_schildichat_enabled: false
matrix_client_schildichat_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_client_schildichat_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_client_schildichat_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_client_schildichat_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}" matrix_client_schildichat_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8765') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
@ -4156,7 +4466,7 @@ matrix_client_schildichat_self_check_validate_certificates: "{{ matrix_playbook_
matrix_client_schildichat_registration_enabled: "{{ matrix_synapse_enable_registration }}" matrix_client_schildichat_registration_enabled: "{{ matrix_synapse_enable_registration }}"
matrix_client_schildichat_enable_presence_by_hs_url: | matrix_client_schildichat_enable_presence_by_hs_url: |-
{{ {{
none none
if matrix_synapse_presence_enabled if matrix_synapse_presence_enabled
@ -4319,6 +4629,10 @@ 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 }}"
# Enable Synapse statistics reporting when using synapse-usage-exporter
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 # /matrix-synapse
@ -4335,6 +4649,11 @@ matrix_synapse_ext_media_repo_enabled: "{{ matrix_media_repo_enabled }}"
# Not enabled by default, for now # Not enabled by default, for now
matrix_synapse_auto_compressor_enabled: false matrix_synapse_auto_compressor_enabled: false
matrix_synapse_auto_compressor_uid: "{{ matrix_user_uid }}"
matrix_synapse_auto_compressor_gid: "{{ matrix_user_gid }}"
matrix_synapse_auto_compressor_postgres_image: "{{ devture_postgres_container_image_to_use }}"
matrix_synapse_auto_compressor_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}" matrix_synapse_auto_compressor_container_image_self_build: "{{ matrix_architecture not in ['amd64'] }}"
matrix_synapse_auto_compressor_container_network: "{{ (devture_postgres_container_network if (devture_postgres_enabled and matrix_synapse_auto_compressor_database_hostname == matrix_synapse_database_host and matrix_synapse_database_host == devture_postgres_connection_hostname) else 'matrix-synapse-auto-compressor') }}" matrix_synapse_auto_compressor_container_network: "{{ (devture_postgres_container_network if (devture_postgres_enabled and matrix_synapse_auto_compressor_database_hostname == matrix_synapse_database_host and matrix_synapse_database_host == devture_postgres_connection_hostname) else 'matrix-synapse-auto-compressor') }}"
@ -4451,6 +4770,28 @@ matrix_synapse_admin_container_labels_traefik_tls_certResolver: "{{ devture_trae
# #
###################################################################### ######################################################################
######################################################################
#
# matrix-synapse-usage-exporter
#
######################################################################
matrix_synapse_usage_exporter_enabled: false
matrix_synapse_usage_exporter_container_network: "{{ matrix_monitoring_container_network }}"
matrix_synapse_usage_exporter_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}"
matrix_synapse_usage_exporter_container_labels_traefik_enabled: "{{ matrix_synapse_usage_exporter_proxying_enabled }}"
matrix_synapse_usage_exporter_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_synapse_usage_exporter_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_synapse_usage_exporter_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
######################################################################
#
# /matrix-synapse-usage-exporter
#
######################################################################
###################################################################### ######################################################################
# #
@ -4609,6 +4950,8 @@ prometheus_container_additional_networks_auto: |
([matrix_prometheus_nginxlog_exporter_container_network] if matrix_prometheus_services_connect_scraper_nginxlog_enabled and matrix_prometheus_nginxlog_exporter_container_network != prometheus_container_network else []) ([matrix_prometheus_nginxlog_exporter_container_network] if matrix_prometheus_services_connect_scraper_nginxlog_enabled and matrix_prometheus_nginxlog_exporter_container_network != prometheus_container_network else [])
+ +
([matrix_media_repo_container_network] if matrix_prometheus_services_connect_scraper_media_repo_enabled and matrix_media_repo_container_network != prometheus_container_network else []) ([matrix_media_repo_container_network] if matrix_prometheus_services_connect_scraper_media_repo_enabled and matrix_media_repo_container_network != prometheus_container_network else [])
+
([matrix_synapse_usage_exporter_container_network] if matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled and matrix_synapse_usage_exporter_container_network != prometheus_container_network else [])
) | unique ) | unique
}} }}
@ -4633,6 +4976,8 @@ prometheus_config_scrape_configs_auto: |
(matrix_prometheus_services_connect_scraper_nginxlog_scrape_configs if matrix_prometheus_services_connect_scraper_nginxlog_enabled else []) (matrix_prometheus_services_connect_scraper_nginxlog_scrape_configs if matrix_prometheus_services_connect_scraper_nginxlog_enabled else [])
+ +
(matrix_prometheus_services_connect_scraper_media_repo_scrape_configs if matrix_prometheus_services_connect_scraper_media_repo_enabled else []) (matrix_prometheus_services_connect_scraper_media_repo_scrape_configs if matrix_prometheus_services_connect_scraper_media_repo_enabled else [])
+
(matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_configs if matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled else [])
}} }}
###################################################################### ######################################################################
@ -4671,6 +5016,9 @@ matrix_prometheus_services_connect_scraper_nginxlog_static_configs_target: "{{ m
matrix_prometheus_services_connect_scraper_media_repo_enabled: "{{ matrix_media_repo_enabled and matrix_media_repo_metrics_enabled }}" matrix_prometheus_services_connect_scraper_media_repo_enabled: "{{ matrix_media_repo_enabled and matrix_media_repo_metrics_enabled }}"
matrix_prometheus_services_connect_scraper_media_repo_static_configs_target: "{{ matrix_media_repo_identifier }}:{{ matrix_media_repo_metrics_port }}" matrix_prometheus_services_connect_scraper_media_repo_static_configs_target: "{{ matrix_media_repo_identifier }}:{{ matrix_media_repo_metrics_port }}"
matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled: "{{ matrix_synapse_usage_exporter_enabled }}"
matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs_target: "{{ matrix_synapse_usage_exporter_identifier }}:{{ matrix_synapse_usage_exporter_container_port | string }}"
###################################################################### ######################################################################
# #
# /matrix-prometheus-services-connect # /matrix-prometheus-services-connect
@ -4720,6 +5068,9 @@ grafana_provisioning_datasources: |
'type': 'prometheus', 'type': 'prometheus',
'access': 'proxy', 'access': 'proxy',
'url': ('http://' + prometheus_identifier + ':9090'), 'url': ('http://' + prometheus_identifier + ':9090'),
'jsonData': {
'timeInterval': prometheus_config_global_scrape_interval,
}
}] if prometheus_enabled else []) }] if prometheus_enabled else [])
}} }}
@ -4734,6 +5085,8 @@ grafana_dashboard_download_urls: |
(matrix_prometheus_nginxlog_exporter_dashboard_urls if matrix_prometheus_nginxlog_exporter_enabled else []) (matrix_prometheus_nginxlog_exporter_dashboard_urls if matrix_prometheus_nginxlog_exporter_enabled else [])
+ +
(matrix_media_repo_dashboard_urls if matrix_media_repo_metrics_enabled else []) (matrix_media_repo_dashboard_urls if matrix_media_repo_metrics_enabled else [])
+
(matrix_synapse_usage_exporter_dashboard_urls if matrix_synapse_usage_exporter_enabled else [])
}} }}
grafana_provisioning_dashboard_template_files: | grafana_provisioning_dashboard_template_files: |
@ -4742,11 +5095,6 @@ grafana_provisioning_dashboard_template_files: |
'path': 'roles/custom/matrix-prometheus-nginxlog-exporter/templates/grafana/nginx-proxy.json', 'path': 'roles/custom/matrix-prometheus-nginxlog-exporter/templates/grafana/nginx-proxy.json',
'name': 'nginx-proxy.json', 'name': 'nginx-proxy.json',
}] if matrix_prometheus_nginxlog_exporter_enabled else []) }] if matrix_prometheus_nginxlog_exporter_enabled else [])
+
([{
'path': 'roles/custom/matrix-media-repo/templates/grafana/media-repo.json',
'name': 'media-repo.json',
}] if matrix_media_repo_metrics_enabled else [])
}} }}
grafana_default_home_dashboard_path: |- grafana_default_home_dashboard_path: |-
@ -4804,7 +5152,7 @@ matrix_registration_container_labels_traefik_docker_network: "{{ matrix_playbook
matrix_registration_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" matrix_registration_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_registration_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" matrix_registration_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_registration_riot_instance: "{{ ('https://' + matrix_server_fqn_element) if matrix_client_element_enabled else 'https://element.io/app/' }}" matrix_registration_riot_instance: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else 'https://element.io/app/' }}"
matrix_registration_shared_secret: |- matrix_registration_shared_secret: |-
{{ {{
@ -4866,6 +5214,9 @@ matrix_sliding_sync_container_labels_traefik_docker_network: "{{ matrix_playbook
matrix_sliding_sync_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" matrix_sliding_sync_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_sliding_sync_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" matrix_sliding_sync_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
matrix_sliding_sync_container_labels_public_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_sliding_sync_container_labels_public_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_sliding_sync_systemd_required_services_list_auto: | matrix_sliding_sync_systemd_required_services_list_auto: |
{{ {{
matrix_homeserver_systemd_services_list matrix_homeserver_systemd_services_list
@ -4879,7 +5230,13 @@ matrix_sliding_sync_environment_variable_syncv3_secret: "{{ '%s' | format(matrix
matrix_sliding_sync_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}" matrix_sliding_sync_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
matrix_sliding_sync_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ss.db', rounds=655555) | to_uuid }}" matrix_sliding_sync_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ss.db', rounds=655555) | to_uuid }}"
###################################################################### matrix_sliding_sync_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
matrix_sliding_sync_metrics_proxying_enabled: "{{ matrix_sliding_sync_metrics_enabled and matrix_metrics_exposure_enabled }}"
matrix_sliding_sync_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
matrix_sliding_sync_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/sliding-sync"
#####################################################################
# #
# /matrix-sliding-sync # /matrix-sliding-sync
# #
@ -5090,6 +5447,12 @@ matrix_user_creator_users_auto: |
'initial_password': matrix_bot_buscarron_password, 'initial_password': matrix_bot_buscarron_password,
'initial_type': 'bot', 'initial_type': 'bot',
}] if matrix_bot_buscarron_enabled else []) }] if matrix_bot_buscarron_enabled else [])
+
([{
'username': matrix_bot_maubot_login,
'initial_password': matrix_bot_maubot_initial_password,
'initial_type': 'bot',
}] if matrix_bot_maubot_enabled else [])
}} }}
###################################################################### ######################################################################
@ -5109,7 +5472,7 @@ matrix_user_verification_service_enabled: false
matrix_user_verification_service_systemd_required_services_list: | matrix_user_verification_service_systemd_required_services_list: |
{{ {{
['docker.service'] [devture_systemd_docker_base_docker_service_name]
+ +
(['matrix-' + matrix_homeserver_implementation + '.service']) (['matrix-' + matrix_homeserver_implementation + '.service'])
}} }}
@ -5171,17 +5534,19 @@ 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://{{ 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 }}"
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 '' }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc3575_proxy_url: "{{ matrix_homeserver_sliding_sync_url }}" matrix_static_files_file_matrix_client_property_org_matrix_msc3575_proxy_url: "{{ matrix_homeserver_sliding_sync_url }}"
matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: "{{ matrix_client_element_location_sharing_enabled }}" matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: "{{ matrix_client_element_location_sharing_enabled }}"
matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "https://{{ matrix_server_fqn_element }}/map_style.json" matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element }}/map_style.json"
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_self_check_hostname_matrix: "{{ matrix_server_fqn_matrix }}" matrix_static_files_self_check_hostname_matrix: "{{ matrix_server_fqn_matrix }}"
matrix_static_files_self_check_hostname_identity: "{{ matrix_domain }}" matrix_static_files_self_check_hostname_identity: "{{ matrix_domain }}"
@ -5248,7 +5613,7 @@ devture_traefik_container_additional_networks_auto: |
devture_traefik_systemd_required_services_list: | devture_traefik_systemd_required_services_list: |
{{ {{
(['docker.service']) ([devture_systemd_docker_base_docker_service_name])
+ +
([devture_container_socket_proxy_identifier + '.service'] if devture_container_socket_proxy_enabled else []) ([devture_container_socket_proxy_identifier + '.service'] if devture_container_socket_proxy_enabled else [])
}} }}

View File

@ -5,6 +5,7 @@ default:
# Pulls external Ansible roles # Pulls external Ansible roles
roles: roles:
#!/usr/bin/env sh #!/usr/bin/env sh
echo "[NOTE] This command just updates the roles, but if you want to update everything at once (playbook, roles, etc.) - use 'just update'"
if [ -x "$(command -v agru)" ]; then if [ -x "$(command -v agru)" ]; then
agru agru
else else
@ -12,9 +13,25 @@ roles:
ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force
fi fi
# Updates requirements.yml if there are any new tags available. Requires agru # Updates the playbook and installs the necessary Ansible roles pinned in requirements.yml. If a -u flag is passed, also updates the requirements.yml file with new role versions (if available)
update: update *flags: update-playbook-only
@agru -u #!/usr/bin/env sh
if [ -x "$(command -v agru)" ]; then
echo {{ if flags == "" { "Installing roles pinned in requirements.yml..." } else if flags == "-u" { "Updating roles and pinning new versions in requirements.yml..." } else { "Unknown flags passed" } }}
agru {{ flags }}
else
echo "[NOTE] You are using the standard ansible-galaxy tool to install roles, which is slow and lacks other features. We recommend installing the 'agru' tool to speed up the process: https://github.com/etkecc/agru#where-to-get"
echo "Installing roles..."
rm -rf roles/galaxy
ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force
fi
# Updates the playbook without installing/updating Ansible roles
update-playbook-only:
@echo "Updating playbook..."
@git stash -q
@git pull -q
@-git stash pop -q
# Runs ansible-lint against all roles in the playbook # Runs ansible-lint against all roles in the playbook
lint: lint:

View File

@ -3,35 +3,35 @@
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-aux.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-aux.git
version: v1.0.0-3 version: v1.0.0-3
name: auxiliary name: auxiliary
- src: git+https://gitlab.com/etke.cc/roles/backup_borg.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
version: v1.2.8-1.8.9-0 version: v1.2.8-1.8.13-0
name: backup_borg name: backup_borg
- src: git+https://github.com/devture/com.devture.ansible.role.container_socket_proxy.git - src: git+https://github.com/devture/com.devture.ansible.role.container_socket_proxy.git
version: v0.1.2-1 version: v0.2.0-0
name: container_socket_proxy name: container_socket_proxy
- src: git+https://github.com/geerlingguy/ansible-role-docker - src: git+https://github.com/geerlingguy/ansible-role-docker
version: 7.1.0 version: 7.3.0
name: docker name: docker
- src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git - src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git
version: 129c8590e106b83e6f4c259649a613c6279e937a version: 129c8590e106b83e6f4c259649a613c6279e937a
name: docker_sdk_for_python name: docker_sdk_for_python
- src: git+https://gitlab.com/etke.cc/roles/etherpad.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
version: v2.0.3-0 version: v2.2.2-0
name: etherpad name: etherpad
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
version: v4.97.1-r0-0-2 version: v4.98-r0-1-0
name: exim_relay name: exim_relay
- src: git+https://gitlab.com/etke.cc/roles/grafana.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git
version: v11.0.0-0 version: v11.1.4-0
name: grafana name: grafana
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
version: v9457-3 version: v9646-0
name: jitsi name: jitsi
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-keydb.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-keydb.git
version: v6.3.4-1 version: v6.3.4-2
name: keydb name: keydb
- src: git+https://gitlab.com/etke.cc/roles/ntfy.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
version: v2.10.0-0 version: v2.10.0-1
name: ntfy name: ntfy
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git - src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git
version: 201c939eed363de269a83ba29784fc3244846048 version: 201c939eed363de269a83ba29784fc3244846048
@ -43,25 +43,25 @@
version: ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16 version: ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16
name: playbook_state_preserver name: playbook_state_preserver
- src: git+https://github.com/devture/com.devture.ansible.role.postgres.git - src: git+https://github.com/devture/com.devture.ansible.role.postgres.git
version: v16.3-0 version: v16.3-2
name: postgres name: postgres
- src: git+https://github.com/devture/com.devture.ansible.role.postgres_backup.git - src: git+https://github.com/devture/com.devture.ansible.role.postgres_backup.git
version: 046004a8cb9946979b72ce81c2526c8033ea8067 version: 8c3585fb4857dbac026b2974bb6525289240effb
name: postgres_backup name: postgres_backup
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
version: v2.52.0-0 version: v2.54.0-0
name: prometheus name: prometheus
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
version: v1.8.0-0 version: v1.8.2-0
name: prometheus_node_exporter name: prometheus_node_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
version: v0.14.0-4 version: v0.14.0-5
name: prometheus_postgres_exporter name: prometheus_postgres_exporter
- src: git+https://gitlab.com/etke.cc/roles/redis.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-redis.git
version: v7.2.4-0 version: v7.2.5-0
name: redis name: redis
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git - src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
version: v1.1.0-0 version: v1.2.0-0
name: systemd_docker_base name: systemd_docker_base
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_service_manager.git - src: git+https://github.com/devture/com.devture.ansible.role.systemd_service_manager.git
version: v1.0.0-4 version: v1.0.0-4
@ -70,8 +70,8 @@
version: v1.0.0-0 version: v1.0.0-0
name: timesync name: timesync
- src: git+https://github.com/devture/com.devture.ansible.role.traefik.git - src: git+https://github.com/devture/com.devture.ansible.role.traefik.git
version: v2.11.2-0 version: v3.1.2-0
name: traefik name: traefik
- src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git - src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git
version: v2.8.3-1 version: v2.8.3-4
name: traefik_certs_dumper name: traefik_certs_dumper

View File

@ -0,0 +1,241 @@
---
# matrix-alertmanager-receiver is a service which receives webhook payloads from Prometheus' Alertmanager and forwards them to a Matrix room.
# Project source code URL: https://github.com/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_enabled: true
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_version: 2024.8.21
matrix_alertmanager_receiver_scheme: https
# The hostname at which matrix-alertmanager-receiver is served.
matrix_alertmanager_receiver_hostname: ''
# The path at which matrix-alertmanager-receiver is served.
# This value must either be `/` or not end with a slash (e.g. `/matrix-alertmanager-receiver`).
matrix_alertmanager_receiver_path_prefix: /
matrix_alertmanager_receiver_base_path: "{{ matrix_base_data_path }}/alertmanager-receiver"
matrix_alertmanager_receiver_config_path: "{{ matrix_alertmanager_receiver_base_path }}/config"
matrix_alertmanager_receiver_container_image_self_build: false
matrix_alertmanager_receiver_container_image_self_build_repo: https://github.com/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_container_image_self_build_repo_version: "{{ 'main' if matrix_alertmanager_receiver_version == 'main' else matrix_alertmanager_receiver_version }}"
matrix_alertmanager_receiver_container_src_path: "{{ matrix_alertmanager_receiver_base_path }}/container-src"
matrix_alertmanager_receiver_container_image: "{{ matrix_alertmanager_receiver_container_image_name_prefix }}metio/matrix-alertmanager-receiver:{{ matrix_alertmanager_receiver_container_image_tag }}"
matrix_alertmanager_receiver_container_image_name_prefix: "{{ 'localhost/' if matrix_alertmanager_receiver_container_image_self_build else matrix_alertmanager_receiver_container_image_registry_prefix }}"
matrix_alertmanager_receiver_container_image_tag: "{{ matrix_alertmanager_receiver_version }}"
matrix_alertmanager_receiver_container_image_force_pull: "{{ matrix_alertmanager_receiver_container_image.endswith(':main') }}"
matrix_alertmanager_receiver_container_image_registry_prefix: docker.io/
# The base container network. It will be auto-created by this role if it doesn't exist already.
matrix_alertmanager_receiver_container_network: ''
# A list of additional container networks that the container would be connected to.
# The role does not create these networks, so make sure they already exist.
matrix_alertmanager_receiver_container_additional_networks: "{{ matrix_alertmanager_receiver_container_additional_networks_default + matrix_alertmanager_receiver_container_additional_networks_auto + matrix_alertmanager_receiver_container_additional_networks_custom }}"
matrix_alertmanager_receiver_container_additional_networks_default: []
matrix_alertmanager_receiver_container_additional_networks_auto: []
matrix_alertmanager_receiver_container_additional_networks_custom: []
# Controls whether matrix-alertmanager-receiver metrics should be proxied (exposed) on `matrix.DOMAIN/metrics/matrix-alertmanager-receiver`
matrix_alertmanager_receiver_metrics_proxying_enabled: false
matrix_alertmanager_receiver_metrics_proxying_hostname: ''
matrix_alertmanager_receiver_metrics_proxying_path: /metrics/matrix-alertmanager-receiver
# matrix_alertmanager_receiver_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_alertmanager_receiver_container_labels_additional_labels`.
matrix_alertmanager_receiver_container_labels_traefik_enabled: true
matrix_alertmanager_receiver_container_labels_traefik_docker_network: "{{ matrix_alertmanager_receiver_container_network }}"
matrix_alertmanager_receiver_container_labels_traefik_hostname: "{{ matrix_alertmanager_receiver_hostname }}"
# The path prefix must either be `/` or not end with a slash (e.g. `/matrix-alertmanager-receiver`).
matrix_alertmanager_receiver_container_labels_traefik_path_prefix: "{{ matrix_alertmanager_receiver_path_prefix }}"
matrix_alertmanager_receiver_container_labels_traefik_rule: "Host(`{{ matrix_alertmanager_receiver_container_labels_traefik_hostname }}`){% if matrix_alertmanager_receiver_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_alertmanager_receiver_container_labels_traefik_path_prefix }}`){% endif %}"
matrix_alertmanager_receiver_container_labels_traefik_priority: 0
matrix_alertmanager_receiver_container_labels_traefik_entrypoints: web-secure
matrix_alertmanager_receiver_container_labels_traefik_tls: "{{ matrix_alertmanager_receiver_container_labels_traefik_entrypoints != 'web' }}"
matrix_alertmanager_receiver_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls whether labels will be added that expose metrics (see `matrix_alertmanager_receiver_metrics_proxying_enabled`) for matrix-alertmanager-receiver
matrix_alertmanager_receiver_container_labels_public_metrics_enabled: "{{ matrix_alertmanager_receiver_metrics_enabled and matrix_alertmanager_receiver_metrics_proxying_enabled }}"
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_path: "{{ matrix_alertmanager_receiver_metrics_proxying_path }}"
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_rule: "Host(`{{ matrix_alertmanager_receiver_metrics_proxying_hostname }}`) && Path(`{{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_path }}`)"
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_priority: 0
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_entrypoints: "{{ matrix_alertmanager_receiver_container_labels_traefik_entrypoints }}"
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_tls: "{{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_entrypoints != 'web' }}"
matrix_alertmanager_receiver_container_labels_public_metrics_traefik_tls_certResolver: "{{ matrix_alertmanager_receiver_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_alertmanager_receiver_container_labels_public_metrics_middleware_basic_auth_enabled: false
# See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users
matrix_alertmanager_receiver_container_labels_public_metrics_middleware_basic_auth_users: ''
# matrix_alertmanager_receiver_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_alertmanager_receiver_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_alertmanager_receiver_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container
matrix_alertmanager_receiver_container_extra_arguments: []
# Controls the `--log-level` argument passed to the container process.
# Valid values: error, warn, info, debug
matrix_alertmanager_receiver_container_process_argument_log_level: info
# A list of extra arguments to pass to the container process.
matrix_alertmanager_receiver_container_process_extra_arguments: []
# List of systemd services that matrix-alertmanager-receiver-proxy.service depends on
matrix_alertmanager_receiver_systemd_required_services_list: "{{ matrix_alertmanager_receiver_systemd_required_services_list_default + matrix_alertmanager_receiver_systemd_required_services_list_auto + matrix_alertmanager_receiver_systemd_required_services_list_custom }}"
matrix_alertmanager_receiver_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_alertmanager_receiver_systemd_required_services_list_auto: []
matrix_alertmanager_receiver_systemd_required_services_list_custom: []
# List of systemd services that matrix-alertmanager-receiver-proxy.service wants
matrix_alertmanager_receiver_systemd_wanted_services_list: []
# Controls the `http.port` configuration setting.
matrix_alertmanager_receiver_config_http_port: 12345
# Controls the `http.alerts-path-prefix` configuration setting.
matrix_alertmanager_receiver_config_http_alerts_path_prefix: /alerts
# Controls the `http.metrics-enabled` configuration setting.
matrix_alertmanager_receiver_config_http_metrics_enabled: false
# Controls the `http.metrics-path` configuration setting.
matrix_alertmanager_receiver_config_http_metrics_path: /metrics
# Controls the `matrix.homeserver-url` configuration setting.
matrix_alertmanager_receiver_config_matrix_homeserver_url: ''
# Controls the `matrix.user-id` configuration setting.
matrix_alertmanager_receiver_config_matrix_user_id: "@{{ matrix_alertmanager_receiver_config_matrix_user_id_localpart }}:{{ matrix_domain }}"
matrix_alertmanager_receiver_config_matrix_user_id_localpart: "bot.alertmanager.receiver"
# Controls the `matrix.access-token` configuration setting.
matrix_alertmanager_receiver_config_matrix_access_token: ''
# Controls the `matrix.room-mapping` configuration setting.
#
# Example:
# matrix_alertmanager_receiver_config_matrix_room:
# simple-name: "!qohfwef7qwerf:example.com"
# another-name: "!bf3zfio3wbanw:example.com"
matrix_alertmanager_receiver_config_matrix_room_mapping: {}
# Controls the `templating.external-url-mapping` configuration setting.
#
# The key is the original value taken from the Alertmanager payload
# The value is the mapped value which will be available as '.ExternalURL' in templates
#
# Example:
# matrix_alertmanager_receiver_config_templating_external_url_mapping:
# "http://alertmanager:9093": https://alertmanager.example.com
# "http://alertmanager:9094": https://another.alertmanager.example.com
matrix_alertmanager_receiver_config_templating_external_url_mapping: {}
# Controls the `templating.generator-url-mapping` configuration setting.
#
# The key is the original value taken from the Alertmanager payload
# The value is the mapped value which will be available as '.ExternalURL' in templates
#
# Example:
# matrix_alertmanager_receiver_config_templating_generator_url_mapping:
# "http://prometheus:8080": https://prometheus.example.com
# "http://prometheus:8081": https://another.prometheus.example.com
matrix_alertmanager_receiver_config_templating_generator_url_mapping: {}
# Controls the `templating.computed-values` configuration setting.
matrix_alertmanager_receiver_config_templating_computed_values: "{{ matrix_alertmanager_receiver_config_templating_computed_values_default + matrix_alertmanager_receiver_config_templating_computed_values_auto + matrix_alertmanager_receiver_config_templating_computed_values_custom }}"
matrix_alertmanager_receiver_config_templating_computed_values_default:
- values: # always set 'color' to 'yellow'
color: yellow
- values: # set 'color' to 'orange' when alert label 'severity' is 'warning'
color: orange
when-matching-labels:
severity: warning
- values: # set 'color' to 'red' when alert label 'severity' is 'critical'
color: red
when-matching-labels:
severity: critical
- values: # set 'color' to 'green' when alert status is 'resolved'
color: green
when-matching-status: resolved
matrix_alertmanager_receiver_config_templating_computed_values_auto: []
matrix_alertmanager_receiver_config_templating_computed_values_custom: []
# Controls the `templating.firing-template` configuration setting.
matrix_alertmanager_receiver_config_templating_firing_template: |-
{% raw %}
<p>
<strong><font color="{{ .ComputedValues.color }}">{{ .Alert.Status | ToUpper }}</font></strong>
{{ if .Alert.Labels.name }}
{{ .Alert.Labels.name }}
{{ else if .Alert.Labels.alertname }}
{{ .Alert.Labels.alertname }}
{{ end }}
>>
{{ if .Alert.Labels.severity }}
{{ .Alert.Labels.severity | ToUpper }}:
{{ end }}
{{ if .Alert.Annotations.description }}
{{ .Alert.Annotations.description }}
{{ else if .Alert.Annotations.summary }}
{{ .Alert.Annotations.summary }}
{{ end }}
>>
{{ if .Alert.Annotations.runbook_url }}
<a href="{{ .Alert.Annotations.runbook_url }}">Runbook</a> |
{{ end }}
{{ if .Alert.Annotations.dashboard }}
<a href="{{ .Alert.Annotations.dashboard }}">Dashboard</a> |
{{ end }}
<a href="{{ .SilenceURL }}">Silence</a>
</p>
{% endraw %}
# Controls the `templating.resolved-template` configuration setting.
matrix_alertmanager_receiver_config_templating_resolved_template: |-
{% raw %}
<strong><font color="{{ .ComputedValues.color }}">{{ .Alert.Status | ToUpper }}</font></strong>
{{ if .Alert.Labels.name }}
{{ .Alert.Labels.name }}
{{ else if .Alert.Labels.alertname }}
{{ .Alert.Labels.alertname }}
{{ end }}
{% endraw %}
# Default matrix-alertmanager-receiver configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
# For a more advanced customization, you can extend the default (see `matrix_alertmanager_receiver_configuration_extension_yaml`)
# or completely replace this variable with your own template.
matrix_alertmanager_receiver_configuration_yaml: "{{ lookup('template', 'templates/config.yml.j2') }}"
matrix_alertmanager_receiver_configuration_extension_yaml: |
# Your custom YAML configuration for matrix-alertmanager-receiver goes here.
# This configuration extends the default starting configuration (`matrix_alertmanager_receiver_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_alertmanager_receiver_configuration_yaml`.
#
# Example configuration extension follows:
#
# http:
# address: ''
matrix_alertmanager_receiver_configuration_extension: "{{ matrix_alertmanager_receiver_configuration_extension_yaml | from_yaml if matrix_alertmanager_receiver_configuration_extension_yaml | from_yaml is mapping else {} }}"
# Holds the final matrix-alertmanager-receiver configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_alertmanager_receiver_configuration_yaml`.
matrix_alertmanager_receiver_configuration: "{{ matrix_alertmanager_receiver_configuration_yaml | from_yaml | combine(matrix_alertmanager_receiver_configuration_extension, recursive=True) }}"

View File

@ -0,0 +1,80 @@
---
- name: Ensure matrix-alertmanager-receiver paths exist
ansible.builtin.file:
path: "{{ item.path }}"
state: directory
mode: 0750
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
with_items:
- path: "{{ matrix_alertmanager_receiver_base_path }}"
when: true
- path: "{{ matrix_alertmanager_receiver_config_path }}"
when: true
- path: "{{ matrix_alertmanager_receiver_container_src_path }}"
when: "{{ matrix_alertmanager_receiver_container_image_self_build }}"
when: item.when | bool
- name: Ensure matrix-alertmanager-receiver configuration installed
ansible.builtin.copy:
content: "{{ matrix_alertmanager_receiver_configuration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_alertmanager_receiver_config_path }}/config.yml"
mode: 0644
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
- name: Ensure matrix-alertmanager-receiver support files installed
ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2"
dest: "{{ matrix_alertmanager_receiver_base_path }}/{{ item }}"
mode: 0640
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
with_items:
- labels
- name: Ensure matrix-alertmanager-receiver container image is pulled
community.docker.docker_image:
name: "{{ matrix_alertmanager_receiver_container_image }}"
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
force_source: "{{ matrix_alertmanager_receiver_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_alertmanager_receiver_container_image_force_pull }}"
when: "not matrix_alertmanager_receiver_container_image_self_build | bool"
register: result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: result is not failed
- when: matrix_alertmanager_receiver_container_image_self_build | bool
block:
- name: Ensure matrix-alertmanager-receiver repository is present on self-build
ansible.builtin.git:
repo: "{{ matrix_alertmanager_receiver_container_image_self_build_repo }}"
version: "{{ matrix_alertmanager_receiver_container_image_self_build_repo_version }}"
dest: "{{ matrix_alertmanager_receiver_container_src_path }}"
force: "yes"
become: true
become_user: "{{ matrix_user_username }}"
register: matrix_alertmanager_receiver_git_pull_results
- name: Ensure matrix-alertmanager-receiver container image is built
ansible.builtin.command:
cmd: |-
{{ devture_systemd_docker_base_host_command_docker }} buildx build
--tag={{ matrix_alertmanager_receiver_container_image }}
--file={{ matrix_alertmanager_receiver_container_src_path }}/contrib/Dockerfile
{{ matrix_alertmanager_receiver_container_src_path }}
changed_when: true
- name: Ensure matrix-alertmanager-receiver container network is created
community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_alertmanager_receiver_container_network }}"
driver: bridge
- name: Ensure matrix-alertmanager-receiver.service installed
ansible.builtin.template:
src: "{{ role_path }}/templates/systemd/matrix-alertmanager-receiver.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-alertmanager-receiver.service"
mode: 0644

View File

@ -0,0 +1,20 @@
---
- tags:
- setup-all
- setup-alertmanager-receiver
- install-all
- install-alertmanager-receiver
block:
- when: matrix_alertmanager_receiver_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- when: matrix_alertmanager_receiver_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml"
- tags:
- setup-all
- setup-alertmanager-receiver
block:
- when: not matrix_alertmanager_receiver_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml"

View File

@ -0,0 +1,25 @@
---
- name: Check existence of matrix-alertmanager-receiver service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-alertmanager-receiver.service"
register: matrix_alertmanager_receiver_service_stat
- when: matrix_alertmanager_receiver_service_stat.stat.exists | bool
block:
- name: Ensure matrix-alertmanager-receiver is stopped
ansible.builtin.service:
name: matrix-alertmanager-receiver
state: stopped
enabled: false
daemon_reload: true
- name: Ensure matrix-alertmanager-receiver.service doesn't exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-alertmanager-receiver.service"
state: absent
- name: Ensure matrix-alertmanager-receiver paths don't exist
ansible.builtin.file:
path: "{{ matrix_alertmanager_receiver_base_path }}"
state: absent

View File

@ -0,0 +1,14 @@
---
- name: Fail if required matrix-alertmanager-receiver settings not defined
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
with_items:
- {'name': 'matrix_alertmanager_receiver_hostname', when: true}
- {'name': 'matrix_alertmanager_receiver_path_prefix', when: true}
- {'name': 'matrix_alertmanager_receiver_config_matrix_homeserver_url', when: true}
- {'name': 'matrix_alertmanager_receiver_config_matrix_access_token', when: true}
- {'name': 'matrix_alertmanager_receiver_container_network', when: true}
- {'name': 'matrix_alertmanager_receiver_metrics_proxying_hostname', when: "{{ matrix_alertmanager_receiver_metrics_proxying_enabled }}"}
- {'name': 'matrix_alertmanager_receiver_metrics_proxying_path_prefix', when: "{{ matrix_alertmanager_receiver_metrics_proxying_enabled }}"}

View File

@ -0,0 +1,37 @@
#jinja2: lstrip_blocks: "True"
# configuration of the HTTP server
http:
address: 0.0.0.0 # bind address for this service. Can be left unspecified to bind on all interfaces
port: {{ matrix_alertmanager_receiver_config_http_port | to_json }} # port used by this service
alerts-path-prefix: {{ matrix_alertmanager_receiver_config_http_alerts_path_prefix | to_json }} # URL path for the webhook receiver called by an Alertmanager. Defaults to /alerts
metrics-path: {{ matrix_alertmanager_receiver_config_http_metrics_path | to_json }} # URL path to collect metrics. Defaults to /metrics
metrics-enabled: {{ matrix_alertmanager_receiver_config_http_metrics_enabled | to_json }} # Whether to enable metrics or not. Defaults to false
# configuration for the Matrix connection
matrix:
homeserver-url: {{ matrix_alertmanager_receiver_config_matrix_homeserver_url | to_json }} # FQDN of the homeserver
user-id: {{ matrix_alertmanager_receiver_config_matrix_user_id | to_json }} # ID of the user used by this service
access-token: {{ matrix_alertmanager_receiver_config_matrix_access_token | to_json }} # Access token for the user ID
# define short names for Matrix room ID
room-mapping: {{ matrix_alertmanager_receiver_config_matrix_room_mapping | to_json }}
# configuration of the templating features
templating:
# mapping of ExternalURL values
# key is the original value taken from the Alertmanager payload
# value is the mapped value which will be available as '.ExternalURL' in templates
external-url-mapping: {{ matrix_alertmanager_receiver_config_templating_external_url_mapping | to_json }}
# mapping of GeneratorURL values
# key is the original value taken from the Alertmanager payload
# value is the mapped value which will be available as '.GeneratorURL' in templates
generator-url-mapping: {{ matrix_alertmanager_receiver_config_templating_generator_url_mapping | to_json }}
# computation of arbitrary values based on matching alert annotations, labels, or status
# values will be evaluated top to bottom, last entry wins
computed-values: {{ matrix_alertmanager_receiver_config_templating_computed_values | to_json }}
# template for alerts in status 'firing'
firing-template: {{ matrix_alertmanager_receiver_config_templating_firing_template | to_json }}
# template for alerts in status 'resolved', if not specified will use the firing-template
resolved-template: {{ matrix_alertmanager_receiver_config_templating_resolved_template | to_json }}

View File

@ -0,0 +1,69 @@
{% if matrix_alertmanager_receiver_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_alertmanager_receiver_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_alertmanager_receiver_container_labels_traefik_docker_network }}
{% endif %}
traefik.http.services.matrix-alertmanager-receiver.loadbalancer.server.port={{ matrix_alertmanager_receiver_config_http_port }}
{% set middlewares = [] %}
{% if matrix_alertmanager_receiver_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.matrix-alertmanager-receiver-slashless-redirect.redirectregex.regex=({{ matrix_alertmanager_receiver_container_labels_traefik_path_prefix | quote }})$
traefik.http.middlewares.matrix-alertmanager-receiver-slashless-redirect.redirectregex.replacement=${1}/
{% set middlewares = middlewares + ['matrix-alertmanager-receiver-slashless-redirect'] %}
{% endif %}
{% if matrix_alertmanager_receiver_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.matrix-alertmanager-receiver-strip-prefix.stripprefix.prefixes={{ matrix_alertmanager_receiver_container_labels_traefik_path_prefix }}
{% set middlewares = middlewares + ['matrix-alertmanager-receiver-strip-prefix'] %}
{% endif %}
traefik.http.routers.matrix-alertmanager-receiver.rule={{ matrix_alertmanager_receiver_container_labels_traefik_rule }}
{% if matrix_alertmanager_receiver_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.matrix-alertmanager-receiver.priority={{ matrix_alertmanager_receiver_container_labels_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-alertmanager-receiver.service=matrix-alertmanager-receiver
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-alertmanager-receiver.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-alertmanager-receiver.entrypoints={{ matrix_alertmanager_receiver_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-alertmanager-receiver.tls={{ matrix_alertmanager_receiver_container_labels_traefik_tls | to_json }}
{% if matrix_alertmanager_receiver_container_labels_traefik_tls %}
traefik.http.routers.matrix-alertmanager-receiver.tls.certResolver={{ matrix_alertmanager_receiver_container_labels_traefik_tls_certResolver }}
{% endif %}
{% if matrix_alertmanager_receiver_container_labels_public_metrics_enabled %}
{% set metrics_middlewares = [] %}
{% if matrix_alertmanager_receiver_container_labels_public_metrics_middleware_basic_auth_enabled %}
{% set metrics_middlewares = metrics_middlewares + ['matrix-alertmanager-receiver-metrics-basic-auth'] %}
traefik.http.middlewares.matrix-alertmanager-receiver-metrics-basic-auth.basicauth.users={{ matrix_alertmanager_receiver_container_labels_public_metrics_middleware_basic_auth_users }}
{% endif %}
{% set metrics_middlewares = metrics_middlewares + ['matrix-alertmanager-receiver-metrics-replacepath'] %}
traefik.http.middlewares.matrix-alertmanager-receiver-metrics-replacepath.replacepath.path={{ matrix_alertmanager_receiver_config_http_metrics_path }}
traefik.http.routers.matrix-alertmanager-receiver-metrics.rule={{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_rule }}
{% if metrics_middlewares | length > 0 %}
traefik.http.routers.matrix-alertmanager-receiver-metrics.middlewares={{ metrics_middlewares | join(',') }}
{% endif %}
{% if matrix_alertmanager_receiver_container_labels_public_metrics_traefik_priority | int > 0 %}
traefik.http.routers.matrix-alertmanager-receiver-metrics.priority={{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-alertmanager-receiver-metrics.service=matrix-alertmanager-receiver
traefik.http.routers.matrix-alertmanager-receiver-metrics.entrypoints={{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_entrypoints }}
traefik.http.routers.matrix-alertmanager-receiver-metrics.tls={{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_tls | to_json }}
{% if matrix_alertmanager_receiver_container_labels_public_metrics_traefik_tls %}
traefik.http.routers.matrix-alertmanager-receiver-metrics.tls.certResolver={{ matrix_alertmanager_receiver_container_labels_public_metrics_traefik_tls_certResolver }}
{% endif %}
{% endif %}
{% endif %}
{{ matrix_alertmanager_receiver_container_labels_additional_labels }}

View File

@ -0,0 +1,50 @@
#jinja2: lstrip_blocks: "True"
[Unit]
Description=matrix-alertmanager-receiver
{% for service in matrix_alertmanager_receiver_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
{% for service in matrix_alertmanager_receiver_systemd_wanted_services_list %}
Wants={{ service }}
{% endfor %}
DefaultDependencies=no
[Service]
Type=simple
Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}"
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true'
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-alertmanager-receiver 2>/dev/null || true'
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--rm \
--name=matrix-alertmanager-receiver \
--log-driver=none \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \
--read-only \
--network={{ matrix_alertmanager_receiver_container_network }} \
--mount type=bind,src={{ matrix_alertmanager_receiver_config_path }},dst=/config,ro \
--label-file={{ matrix_alertmanager_receiver_base_path }}/labels \
{% for arg in matrix_alertmanager_receiver_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_alertmanager_receiver_container_image }} \
--config-path=/config/config.yml {{ matrix_alertmanager_receiver_container_process_extra_arguments | join(' ') }} \
--log-level={{ matrix_alertmanager_receiver_container_process_argument_log_level }}
{% for network in matrix_alertmanager_receiver_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-alertmanager-receiver
{% endfor %}
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-alertmanager-receiver
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-alertmanager-receiver 2>/dev/null || true'
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-alertmanager-receiver 2>/dev/null || true'
Restart=always
RestartSec=30
SyslogIdentifier=matrix-alertmanager-receiver
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,40 @@
---
matrix_appservice_double_puppet_enabled: true
matrix_appservice_double_puppet_base_path: "{{ matrix_base_data_path }}/appservice-double-puppet"
matrix_appservice_double_puppet_config_path: "{{ matrix_appservice_double_puppet_base_path }}/config"
matrix_appservice_double_puppet_registration_id: double-puppet
matrix_appservice_double_puppet_registration_url: ~
matrix_appservice_double_puppet_registration_as_token: ''
matrix_appservice_double_puppet_registration_hs_token: ''
matrix_appservice_double_puppet_registration_sender_localpart: appservice-double-puppet
matrix_appservice_double_puppet_registration_namespace_user_regex: "{{ '@.*:' + (matrix_domain | regex_escape) }}"
# Default matrix-appservice-double-puppet registration configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
# For a more advanced customization, you can extend the default (see `matrix_appservice_double_puppet_registration_configuration_extension_yaml`)
# or completely replace this variable with your own template.
matrix_appservice_double_puppet_registration_configuration_yaml: "{{ lookup('template', 'templates/registration.yaml.j2') }}"
matrix_appservice_double_puppet_registration_configuration_extension_yaml: |
# Your custom YAML configuration for matrix-appservice-double-puppet goes here.
# This configuration extends the default starting configuration (`matrix_appservice_double_puppet_registration_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_appservice_double_puppet_registration_configuration_yaml`.
#
# Example configuration extension follows:
#
# rate_limited: true
matrix_appservice_double_puppet_registration_configuration_extension: "{{ matrix_appservice_double_puppet_registration_configuration_extension_yaml | from_yaml if matrix_appservice_double_puppet_registration_configuration_extension_yaml | from_yaml is mapping else {} }}"
# Holds the final matrix-appservice-double-puppet configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_appservice_double_puppet_registration_configuration_yaml`.
matrix_appservice_double_puppet_registration_configuration: "{{ matrix_appservice_double_puppet_registration_configuration_yaml | from_yaml | combine(matrix_appservice_double_puppet_registration_configuration_extension, recursive=True) }}"

View File

@ -0,0 +1,23 @@
---
- name: Ensure matrix-appservice-double-puppet paths exist
ansible.builtin.file:
path: "{{ item.path }}"
state: directory
mode: 0750
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
with_items:
- path: "{{ matrix_appservice_double_puppet_base_path }}"
when: true
- path: "{{ matrix_appservice_double_puppet_config_path }}"
when: true
when: item.when | bool
- name: Ensure matrix-appservice-double-puppet registration configuration installed
ansible.builtin.copy:
content: "{{ matrix_appservice_double_puppet_registration_configuration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_appservice_double_puppet_config_path }}/registration.yaml"
mode: 0644
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"

View File

@ -0,0 +1,20 @@
---
- tags:
- setup-all
- setup-appservice-double-puppet
- install-all
- install-appservice-double-puppet
block:
- when: matrix_appservice_double_puppet_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- when: matrix_appservice_double_puppet_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml"
- tags:
- setup-all
- setup-appservice-double-puppet
block:
- when: not matrix_appservice_double_puppet_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml"

View File

@ -0,0 +1,6 @@
---
- name: Ensure matrix-appservice-double-puppet paths don't exist
ansible.builtin.file:
path: "{{ matrix_appservice_double_puppet_base_path }}"
state: absent

View File

@ -0,0 +1,10 @@
---
- name: Fail if required matrix-appservice-double-puppet settings not defined
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
with_items:
- {'name': 'matrix_appservice_double_puppet_registration_as_token', when: true}
- {'name': 'matrix_appservice_double_puppet_registration_as_token', when: true}
- {'name': 'matrix_appservice_double_puppet_registration_sender_localpart', when: true}

View File

@ -0,0 +1,21 @@
# The ID doesn't really matter, put whatever you want.
id: {{ matrix_appservice_double_puppet_registration_id | to_json }}
# The URL is intentionally left empty (null), as the homeserver shouldn't
# push events anywhere for this extra appservice. If you use a
# non-spec-compliant server, you may need to put some fake URL here.
url: {{ matrix_appservice_double_puppet_registration_url | to_json }}
# Generate random strings for these three fields. Only the as_token really
# matters, hs_token is never used because there's no url, and the default
# user (sender_localpart) is never used either.
as_token: {{ matrix_appservice_double_puppet_registration_as_token | to_json }}
hs_token: {{ matrix_appservice_double_puppet_registration_hs_token | to_json }}
sender_localpart: {{ matrix_appservice_double_puppet_registration_sender_localpart | to_json}}
# Bridges don't like ratelimiting. This should only apply when using the
# as_token, normal user tokens will still be ratelimited.
rate_limited: false
namespaces:
users:
# Replace your\.domain with your server name (escape dots for regex)
- regex: {{ matrix_appservice_double_puppet_registration_namespace_user_regex | to_json }}
# This must be false so the appservice doesn't take over all users completely.
exclusive: false

View File

@ -30,7 +30,7 @@ matrix_appservice_draupnir_for_all_container_extra_arguments: []
# List of systemd services that matrix-bot-draupnir.service depends on # List of systemd services that matrix-bot-draupnir.service depends on
matrix_appservice_draupnir_for_all_systemd_required_services_list: "{{ matrix_appservice_draupnir_for_all_systemd_required_services_list_default + matrix_appservice_draupnir_for_all_systemd_required_services_list_auto + matrix_appservice_draupnir_for_all_systemd_required_services_list_custom }}" matrix_appservice_draupnir_for_all_systemd_required_services_list: "{{ matrix_appservice_draupnir_for_all_systemd_required_services_list_default + matrix_appservice_draupnir_for_all_systemd_required_services_list_auto + matrix_appservice_draupnir_for_all_systemd_required_services_list_custom }}"
matrix_appservice_draupnir_for_all_systemd_required_services_list_default: ['docker.service'] matrix_appservice_draupnir_for_all_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_appservice_draupnir_for_all_systemd_required_services_list_auto: [] matrix_appservice_draupnir_for_all_systemd_required_services_list_auto: []
matrix_appservice_draupnir_for_all_systemd_required_services_list_custom: [] matrix_appservice_draupnir_for_all_systemd_required_services_list_custom: []

View File

@ -154,7 +154,7 @@ matrix_host_command_chown: "/usr/bin/env chown"
matrix_host_command_fusermount: "/usr/bin/env fusermount" matrix_host_command_fusermount: "/usr/bin/env fusermount"
matrix_host_command_openssl: "/usr/bin/env openssl" matrix_host_command_openssl: "/usr/bin/env openssl"
matrix_homeserver_url: "https://{{ matrix_server_fqn_matrix }}" matrix_homeserver_url: "{{ ('https' if matrix_playbook_ssl_enabled else 'http') }}://{{ matrix_server_fqn_matrix }}"
# Specifies on which container network the homeserver is. # Specifies on which container network the homeserver is.
matrix_homeserver_container_network: "matrix-homeserver" matrix_homeserver_container_network: "matrix-homeserver"
@ -263,7 +263,16 @@ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_enabled: true
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_name: "{{ matrix_federation_traefik_entrypoint_name }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_name: "{{ matrix_federation_traefik_entrypoint_name }}"
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port: "{{ matrix_federation_public_port }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port: "{{ matrix_federation_public_port }}"
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: "{{ matrix_federation_public_port }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: "{{ matrix_federation_public_port }}"
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto | combine(matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom, recursive=True) }}" matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_advertisedPort if matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled else '' }}"
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config: "{{ (matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_default | combine (matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto)) | combine(matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom, recursive=True) }}"
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled: true
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_advertisedPort: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port }}" # noqa var-naming
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_default: |
{{
({'http3': {'advertisedPort': matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_advertisedPort | int}})
if matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_http3_enabled
else {}
}}
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto: {} matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_auto: {}
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom: {} matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom: {}
@ -271,6 +280,7 @@ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_definition:
name: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_name }}" name: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_name }}"
port: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port }}" port: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_port }}"
host_bind_port: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port }}" host_bind_port: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port }}"
host_bind_port_udp: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port_udp }}"
config: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config }}" config: "{{ matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config }}"
# Controls whether to enable an additional Traefik entrypoint for the purpose of serving the homeserver's Client-Server API internally. # Controls whether to enable an additional Traefik entrypoint for the purpose of serving the homeserver's Client-Server API internally.

View File

@ -5,8 +5,8 @@
matrix_bot_buscarron_enabled: true matrix_bot_buscarron_enabled: true
# renovate: datasource=docker depName=registry.gitlab.com/etke.cc/buscarron # renovate: datasource=docker depName=ghcr.io/etkecc/buscarron
matrix_bot_buscarron_version: v1.4.1 matrix_bot_buscarron_version: v1.4.3
# The hostname at which Buscarron is served. # The hostname at which Buscarron is served.
matrix_bot_buscarron_hostname: '' matrix_bot_buscarron_hostname: ''
@ -29,8 +29,8 @@ matrix_bot_buscarron_docker_repo: "https://gitlab.com/etke.cc/buscarron.git"
matrix_bot_buscarron_docker_repo_version: "{{ matrix_bot_buscarron_version }}" matrix_bot_buscarron_docker_repo_version: "{{ matrix_bot_buscarron_version }}"
matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src" matrix_bot_buscarron_docker_src_files_path: "{{ matrix_base_data_path }}/buscarron/docker-src"
matrix_bot_buscarron_docker_image: "{{ matrix_bot_buscarron_docker_image_name_prefix }}etke.cc/buscarron:{{ matrix_bot_buscarron_version }}" matrix_bot_buscarron_docker_image: "{{ matrix_bot_buscarron_docker_image_name_prefix }}etkecc/buscarron:{{ matrix_bot_buscarron_version }}"
matrix_bot_buscarron_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_buscarron_container_image_self_build else 'registry.gitlab.com/' }}" matrix_bot_buscarron_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_buscarron_container_image_self_build else 'ghcr.io/' }}"
matrix_bot_buscarron_docker_image_force_pull: "{{ matrix_bot_buscarron_docker_image.endswith(':latest') }}" matrix_bot_buscarron_docker_image_force_pull: "{{ matrix_bot_buscarron_docker_image.endswith(':latest') }}"
# The base container network. It will be auto-created by this role if it doesn't exist already. # The base container network. It will be auto-created by this role if it doesn't exist already.
@ -50,6 +50,17 @@ matrix_bot_buscarron_metrics_password: ''
# /metrics allowed ips # /metrics allowed ips
matrix_bot_buscarron_metrics_ips: [] matrix_bot_buscarron_metrics_ips: []
# healthchecks.io integration
matrix_bot_buscarron_hc_url: '' # default is https://hc-ping.com (healthchecks.io)
matrix_bot_buscarron_hc_uuid: '' # check UUID
# redmine integration
matrix_bot_buscarron_redmine_host: '' # e.g. https://redmine.example.com
matrix_bot_buscarron_redmine_apikey: ''
matrix_bot_buscarron_redmine_project: '' # project identifier (e.g., my-project)
matrix_bot_buscarron_redmine_trackerid: '' # task tracker ID (e.g., 1)
matrix_bot_buscarron_redmine_statusid: '' # task status ID (e.g., 1)
# matrix_bot_buscarron_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. # matrix_bot_buscarron_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details. # See `../templates/labels.j2` for details.
@ -88,7 +99,7 @@ matrix_bot_buscarron_container_extra_arguments: []
# List of systemd services that matrix-bot-buscarron.service depends on # List of systemd services that matrix-bot-buscarron.service depends on
matrix_bot_buscarron_systemd_required_services_list: "{{ matrix_bot_buscarron_systemd_required_services_list_default + matrix_bot_buscarron_systemd_required_services_list_auto + matrix_bot_buscarron_systemd_required_services_list_custom }}" matrix_bot_buscarron_systemd_required_services_list: "{{ matrix_bot_buscarron_systemd_required_services_list_default + matrix_bot_buscarron_systemd_required_services_list_auto + matrix_bot_buscarron_systemd_required_services_list_custom }}"
matrix_bot_buscarron_systemd_required_services_list_default: ['docker.service'] matrix_bot_buscarron_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_buscarron_systemd_required_services_list_auto: [] matrix_bot_buscarron_systemd_required_services_list_auto: []
matrix_bot_buscarron_systemd_required_services_list_custom: [] matrix_bot_buscarron_systemd_required_services_list_custom: []

View File

@ -5,6 +5,8 @@ BUSCARRON_DB_DSN={{ matrix_bot_buscarron_database_connection_string }}
BUSCARRON_DB_DIALECT={{ matrix_bot_buscarron_database_dialect }} BUSCARRON_DB_DIALECT={{ matrix_bot_buscarron_database_dialect }}
BUSCARRON_SPAMLIST={{ matrix_bot_buscarron_spamlist|join(" ") }} BUSCARRON_SPAMLIST={{ matrix_bot_buscarron_spamlist|join(" ") }}
BUSCARRON_SENTRY={{ matrix_bot_buscarron_sentry }} BUSCARRON_SENTRY={{ matrix_bot_buscarron_sentry }}
BUSCARRON_HC_URL={{ matrix_bot_buscarron_hc_url }}
BUSCARRON_HC_UUID={{ matrix_bot_buscarron_hc_uuid }}
BUSCARRON_LOGLEVEL={{ matrix_bot_buscarron_loglevel }} BUSCARRON_LOGLEVEL={{ matrix_bot_buscarron_loglevel }}
BUSCARRON_BAN_SIZE={{ matrix_bot_buscarron_ban_size }} BUSCARRON_BAN_SIZE={{ matrix_bot_buscarron_ban_size }}
BUSCARRON_BAN_LIST={{ matrix_bot_buscarron_ban_list|default('')|join(' ') }} BUSCARRON_BAN_LIST={{ matrix_bot_buscarron_ban_list|default('')|join(' ') }}
@ -16,6 +18,11 @@ BUSCARRON_SMTP_VALIDATION={{ matrix_bot_buscarron_smtp_validation }}
BUSCARRON_METRICS_LOGIN={{ matrix_bot_buscarron_metrics_login }} BUSCARRON_METRICS_LOGIN={{ matrix_bot_buscarron_metrics_login }}
BUSCARRON_METRICS_PASSWORD={{ matrix_bot_buscarron_metrics_password }} BUSCARRON_METRICS_PASSWORD={{ matrix_bot_buscarron_metrics_password }}
BUSCARRON_METRICS_IPS={{ matrix_bot_buscarron_metrics_ips|default([])|join(" ") }} BUSCARRON_METRICS_IPS={{ matrix_bot_buscarron_metrics_ips|default([])|join(" ") }}
BUSCARRON_REDMINE_HOST={{ matrix_bot_buscarron_redmine_host }}
BUSCARRON_REDMINE_APIKEY={{ matrix_bot_buscarron_redmine_apikey }}
BUSCARRON_REDMINE_PROJECT={{ matrix_bot_buscarron_redmine_project }}
BUSCARRON_REDMINE_TRACKERID={{ matrix_bot_buscarron_redmine_trackerid }}
BUSCARRON_REDMINE_STATUSID={{ matrix_bot_buscarron_redmine_statusid }}
{% set forms = [] %} {% set forms = [] %}
{% for form in matrix_bot_buscarron_forms -%}{{- forms.append(form.name) -}} {% for form in matrix_bot_buscarron_forms -%}{{- forms.append(form.name) -}}
BUSCARRON_{{ form.name|upper }}_ROOM={{ form.room|default('') }} BUSCARRON_{{ form.name|upper }}_ROOM={{ form.room|default('') }}

View File

@ -37,7 +37,7 @@ matrix_bot_chatgpt_container_extra_arguments: []
# List of systemd services that matrix-bot-chatgpt.service depends on # List of systemd services that matrix-bot-chatgpt.service depends on
matrix_bot_chatgpt_systemd_required_services_list: "{{ matrix_bot_chatgpt_systemd_required_services_list_default + matrix_bot_chatgpt_systemd_required_services_list_auto + matrix_bot_chatgpt_systemd_required_services_list_custom }}" matrix_bot_chatgpt_systemd_required_services_list: "{{ matrix_bot_chatgpt_systemd_required_services_list_default + matrix_bot_chatgpt_systemd_required_services_list_auto + matrix_bot_chatgpt_systemd_required_services_list_custom }}"
matrix_bot_chatgpt_systemd_required_services_list_default: ['docker.service'] matrix_bot_chatgpt_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_chatgpt_systemd_required_services_list_auto: [] matrix_bot_chatgpt_systemd_required_services_list_auto: []
matrix_bot_chatgpt_systemd_required_services_list_custom: [] matrix_bot_chatgpt_systemd_required_services_list_custom: []

View File

@ -19,18 +19,27 @@ matrix_bot_draupnir_config_path: "{{ matrix_bot_draupnir_base_path }}/config"
matrix_bot_draupnir_data_path: "{{ matrix_bot_draupnir_base_path }}/data" matrix_bot_draupnir_data_path: "{{ matrix_bot_draupnir_base_path }}/data"
matrix_bot_draupnir_docker_src_files_path: "{{ matrix_bot_draupnir_base_path }}/docker-src" matrix_bot_draupnir_docker_src_files_path: "{{ matrix_bot_draupnir_base_path }}/docker-src"
matrix_bot_draupnir_abuse_reporting_enabled: false
matrix_bot_draupnir_web_enabled: "{{ matrix_bot_draupnir_abuse_reporting_enabled }}"
matrix_bot_draupnir_display_reports: "{{ matrix_bot_draupnir_abuse_reporting_enabled }}"
matrix_bot_draupnir_container_network: "" matrix_bot_draupnir_container_network: ""
matrix_bot_draupnir_container_additional_networks: "{{ matrix_bot_draupnir_container_additional_networks_auto + matrix_bot_draupnir_container_additional_networks_custom }}" matrix_bot_draupnir_container_additional_networks: "{{ matrix_bot_draupnir_container_additional_networks_auto + matrix_bot_draupnir_container_additional_networks_custom }}"
matrix_bot_draupnir_container_additional_networks_auto: [] matrix_bot_draupnir_container_additional_networks_auto: []
matrix_bot_draupnir_container_additional_networks_custom: [] matrix_bot_draupnir_container_additional_networks_custom: []
# Controls whether the matrix-bot-draupnir container exposes its HTTP port (tcp/80 in the container).
#
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8766"), or empty string to not expose.
matrix_bot_draupnir_container_http_host_bind_port: ''
# A list of extra arguments to pass to the container # A list of extra arguments to pass to the container
matrix_bot_draupnir_container_extra_arguments: [] matrix_bot_draupnir_container_extra_arguments: []
# List of systemd services that matrix-bot-draupnir.service depends on # List of systemd services that matrix-bot-draupnir.service depends on
matrix_bot_draupnir_systemd_required_services_list: "{{ matrix_bot_draupnir_systemd_required_services_list_default + matrix_bot_draupnir_systemd_required_services_list_auto + matrix_bot_draupnir_systemd_required_services_list_custom }}" matrix_bot_draupnir_systemd_required_services_list: "{{ matrix_bot_draupnir_systemd_required_services_list_default + matrix_bot_draupnir_systemd_required_services_list_auto + matrix_bot_draupnir_systemd_required_services_list_custom }}"
matrix_bot_draupnir_systemd_required_services_list_default: ['docker.service'] matrix_bot_draupnir_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_draupnir_systemd_required_services_list_auto: [] matrix_bot_draupnir_systemd_required_services_list_auto: []
matrix_bot_draupnir_systemd_required_services_list_custom: [] matrix_bot_draupnir_systemd_required_services_list_custom: []
@ -96,3 +105,25 @@ matrix_bot_draupnir_configuration_extension: "{{ matrix_bot_draupnir_configurati
# Holds the final configuration (a combination of the default and its extension). # Holds the final configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_bot_draupnir_configuration_yaml`. # You most likely don't need to touch this variable. Instead, see `matrix_bot_draupnir_configuration_yaml`.
matrix_bot_draupnir_configuration: "{{ matrix_bot_draupnir_configuration_yaml | from_yaml | combine(matrix_bot_draupnir_configuration_extension, recursive=True) }}" matrix_bot_draupnir_configuration: "{{ matrix_bot_draupnir_configuration_yaml | from_yaml | combine(matrix_bot_draupnir_configuration_extension, recursive=True) }}"
# Controls whether labels will be added that redirect the /_matrix/client/../rooms/../report paths to draupnir
# Following these recommendations (https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md), by default, we don't.
# Regardless of whether this is enabled, it may or may not take effect due to the value of other variables.
# See `matrix_synapse_container_labels_traefik_enabled` or `matrix_synapse_container_labels_matrix_related_labels_enabled`
matrix_bot_draupnir_container_labels_traefik_enabled: false
matrix_bot_draupnir_container_labels_traefik_docker_network: "{{ matrix_draupnir_bot_container_network }}"
matrix_bot_draupnir_container_labels_traefik_hostname: "{{ matrix_synapse_container_labels_traefik_hostname }}"
matrix_bot_draupnir_container_labels_traefik_path_regexp: "^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/"
matrix_bot_draupnir_container_labels_traefik_rule: "Host(`{{ matrix_bot_draupnir_container_labels_traefik_hostname }}`) && PathRegexp(`{{ matrix_bot_draupnir_container_labels_traefik_path_regexp }}`)"
matrix_bot_draupnir_container_labels_traefik_priority: 0
matrix_bot_draupnir_container_labels_traefik_entrypoints: "{{ matrix_synapse_container_labels_traefik_entrypoints }}"
matrix_bot_draupnir_container_labels_traefik_tls: "{{ matrix_bot_draupnir_container_labels_traefik_entrypoints != 'web' }}"
matrix_bot_draupnir_container_labels_traefik_tls_certResolver: "{{ matrix_synapse_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# matrix_bot_draupnir_container_labels_traefik_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_bot_draupnir_container_labels_traefik_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_bot_draupnir_container_labels_traefik_labels_additional_labels: ''

View File

@ -17,6 +17,17 @@
- {path: "{{ matrix_bot_draupnir_docker_src_files_path }}", when: "{{ matrix_bot_draupnir_container_image_self_build }}"} - {path: "{{ matrix_bot_draupnir_docker_src_files_path }}", when: "{{ matrix_bot_draupnir_container_image_self_build }}"}
when: "item.when | bool" when: "item.when | bool"
- name: Ensure matrix-bot-draupnir support files installed
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
mode: 0644
with_items:
- src: "{{ role_path }}/templates/labels.j2"
dest: "{{ matrix_bot_draupnir_base_path }}/labels"
- name: Ensure draupnir Docker image is pulled - name: Ensure draupnir Docker image is pulled
community.docker.docker_image: community.docker.docker_image:
name: "{{ matrix_bot_draupnir_docker_image }}" name: "{{ matrix_bot_draupnir_docker_image }}"

View File

@ -0,0 +1,53 @@
{% if matrix_bot_draupnir_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_bot_draupnir_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_bot_draupnir_container_labels_traefik_docker_network }}
{% endif %}
traefik.http.services.matrix-bot-draupnir.loadbalancer.server.port=8080
############################################################
# #
# Abuse Reports (/_matrix/client/../rooms/../report) #
# #
############################################################
{% set middlewares = [] %}
traefik.http.middlewares.matrix-bot-draupnir-redirect.replacepathregex.regex=^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$
traefik.http.middlewares.matrix-bot-draupnir-redirect.replacepathregex.replacement=/api/1/report/$2/$3
{% set middlewares = middlewares + ['matrix-bot-draupnir-redirect'] %}
traefik.http.middlewares.matrix-bot-draupnir-cors.headers.accesscontrolalloworiginlist=*
traefik.http.middlewares.matrix-bot-draupnir-cors.headers.accesscontrolallowheaders=Content-Type,Authorization
traefik.http.middlewares.matrix-bot-draupnir-cors.headers.accesscontrolallowmethods=POST,OPTIONS
{% set middlewares = middlewares + ['matrix-bot-draupnir-cors'] %}
traefik.http.routers.matrix-bot-draupnir.rule={{ matrix_bot_draupnir_container_labels_traefik_rule }}
{% if matrix_bot_draupnir_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.matrix-bot-draupnir.priority={{ matrix_bot_draupnir_container_labels_traefik_priority }}
{% endif %}
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-bot-draupnir.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-bot-draupnir.service=matrix-bot-draupnir
traefik.http.routers.matrix-bot-draupnir.entrypoints={{ matrix_bot_draupnir_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-bot-draupnir.tls={{ matrix_bot_draupnir_container_labels_traefik_tls | to_json }}
{% if matrix_bot_draupnir_container_labels_traefik_tls %}
traefik.http.routers.matrix-bot-draupnir.tls.certResolver={{ matrix_bot_draupnir_container_labels_traefik_tls_certResolver }}
{% endif %}
############################################################
# #
# /Abuse Reports (/_matrix/client/../rooms/../report) #
# #
############################################################
{% endif %}
{{ matrix_bot_draupnir_container_labels_traefik_labels_additional_labels }}

View File

@ -227,32 +227,29 @@ health:
# Defaults to 418. # Defaults to 418.
unhealthyStatus: 418 unhealthyStatus: 418
{% if matrix_bot_draupnir_web_enabled %}
# Options for exposing web APIs. # Options for exposing web APIs.
#web: web:
# # Whether to enable web APIs. # Whether to enable web APIs.
# enabled: false enabled: true
#
# # The port to expose the webserver on. Defaults to 8080. # The port to expose the webserver on. Defaults to 8080.
# port: 8080 port: 8080
#
# # The address to listen for requests on. Defaults to only the current # The address to listen for requests on. Defaults to only the current
# # computer. # computer.
# address: localhost address: 0.0.0.0
#
# # Alternative setting to open to the entire web. Be careful, # A web API designed to intercept Matrix API
# # as this will increase your security perimeter: # POST /_matrix/client/r0/rooms/{roomId}/report/{eventId}
# # # and display readable abuse reports in the moderation room.
# # address: "0.0.0.0" #
# # If you wish to take advantage of this feature, you will need
# # A web API designed to intercept Matrix API # to configure a reverse proxy, see e.g. test/nginx.conf
# # POST /_matrix/client/r0/rooms/{roomId}/report/{eventId} abuseReporting:
# # and display readable abuse reports in the moderation room. # Whether to enable this feature.
# # enabled: {{ matrix_bot_draupnir_abuse_reporting_enabled | to_json }}
# # If you wish to take advantage of this feature, you will need {% endif %}
# # to configure a reverse proxy, see e.g. test/nginx.conf
# abuseReporting:
# # Whether to enable this feature.
# enabled: false
# Whether or not to actively poll synapse for abuse reports, to be used # Whether or not to actively poll synapse for abuse reports, to be used
# instead of intercepting client calls to synapse's abuse endpoint, when that # instead of intercepting client calls to synapse's abuse endpoint, when that
@ -261,4 +258,4 @@ pollReports: false
# Whether or not new reports, received either by webapi or polling, # Whether or not new reports, received either by webapi or polling,
# should be printed to our managementRoom. # should be printed to our managementRoom.
displayReports: false displayReports: {{ matrix_bot_draupnir_display_reports | to_json }}

View File

@ -24,6 +24,10 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--cap-drop=ALL \ --cap-drop=ALL \
--read-only \ --read-only \
--network={{ matrix_bot_draupnir_container_network }} \ --network={{ matrix_bot_draupnir_container_network }} \
{% if matrix_bot_draupnir_container_http_host_bind_port %}
-p {{ matrix_bot_draupnir_container_http_host_bind_port }}:8080 \
{% endif %}
--label-file={{ matrix_bot_draupnir_base_path }}/labels \
--mount type=bind,src={{ matrix_bot_draupnir_config_path }},dst=/data/config,ro \ --mount type=bind,src={{ matrix_bot_draupnir_config_path }},dst=/data/config,ro \
--mount type=bind,src={{ matrix_bot_draupnir_data_path }},dst=/data \ --mount type=bind,src={{ matrix_bot_draupnir_data_path }},dst=/data \
{% for arg in matrix_bot_draupnir_container_extra_arguments %} {% for arg in matrix_bot_draupnir_container_extra_arguments %}

View File

@ -87,7 +87,7 @@ matrix_bot_go_neb_container_extra_arguments: []
# List of systemd services that matrix-bot-go-neb.service depends on # List of systemd services that matrix-bot-go-neb.service depends on
matrix_bot_go_neb_systemd_required_services_list: "{{ matrix_bot_go_neb_systemd_required_services_list_default + matrix_bot_go_neb_systemd_required_services_list_auto + matrix_bot_go_neb_systemd_required_services_list_custom }}" matrix_bot_go_neb_systemd_required_services_list: "{{ matrix_bot_go_neb_systemd_required_services_list_default + matrix_bot_go_neb_systemd_required_services_list_auto + matrix_bot_go_neb_systemd_required_services_list_custom }}"
matrix_bot_go_neb_systemd_required_services_list_default: ['docker.service'] matrix_bot_go_neb_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_go_neb_systemd_required_services_list_auto: [] matrix_bot_go_neb_systemd_required_services_list_auto: []
matrix_bot_go_neb_systemd_required_services_list_custom: [] matrix_bot_go_neb_systemd_required_services_list_custom: []

View File

@ -20,10 +20,10 @@ matrix_bot_honoroit_docker_repo: "https://gitlab.com/etke.cc/honoroit.git"
matrix_bot_honoroit_docker_repo_version: "{{ matrix_bot_honoroit_version }}" matrix_bot_honoroit_docker_repo_version: "{{ matrix_bot_honoroit_version }}"
matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src" matrix_bot_honoroit_docker_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
# renovate: datasource=docker depName=registry.gitlab.com/etke.cc/honoroit # renovate: datasource=docker depName=ghcr.io/etkecc/honoroit
matrix_bot_honoroit_version: v0.9.21 matrix_bot_honoroit_version: v0.9.25
matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}etke.cc/honoroit:{{ matrix_bot_honoroit_version }}" matrix_bot_honoroit_docker_image: "{{ matrix_bot_honoroit_docker_image_name_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}"
matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'registry.gitlab.com/' }}" matrix_bot_honoroit_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else 'ghcr.io/' }}"
matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}" matrix_bot_honoroit_docker_image_force_pull: "{{ matrix_bot_honoroit_docker_image.endswith(':latest') }}"
matrix_bot_honoroit_base_path: "{{ matrix_base_data_path }}/honoroit" matrix_bot_honoroit_base_path: "{{ matrix_base_data_path }}/honoroit"
@ -39,15 +39,6 @@ matrix_bot_honoroit_container_network: ""
# Use this to expose this container to another reverse proxy, which runs in a different container network. # Use this to expose this container to another reverse proxy, which runs in a different container network.
matrix_bot_honoroit_container_additional_networks: [] matrix_bot_honoroit_container_additional_networks: []
# enable basic auth for metrics
matrix_bot_honoroit_basicauth_enabled: false
# temporary file name on the host that runs ansible
matrix_bot_honoroit_basicauth_file: "/tmp/matrix_bot_honoroit_htpasswd"
# username
matrix_bot_honoroit_basicauth_user: ''
# password
matrix_bot_honoroit_basicauth_password: ''
# matrix_bot_honoroit_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. # matrix_bot_honoroit_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details. # See `../templates/labels.j2` for details.
# #
@ -84,7 +75,7 @@ matrix_bot_honoroit_container_extra_arguments: []
# List of systemd services that matrix-bot-honoroit.service depends on # List of systemd services that matrix-bot-honoroit.service depends on
matrix_bot_honoroit_systemd_required_services_list: "{{ matrix_bot_honoroit_systemd_required_services_list_default + matrix_bot_honoroit_systemd_required_services_list_auto + matrix_bot_honoroit_systemd_required_services_list_custom }}" matrix_bot_honoroit_systemd_required_services_list: "{{ matrix_bot_honoroit_systemd_required_services_list_default + matrix_bot_honoroit_systemd_required_services_list_auto + matrix_bot_honoroit_systemd_required_services_list_custom }}"
matrix_bot_honoroit_systemd_required_services_list_default: ['docker.service'] matrix_bot_honoroit_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_honoroit_systemd_required_services_list_auto: [] matrix_bot_honoroit_systemd_required_services_list_auto: []
matrix_bot_honoroit_systemd_required_services_list_custom: [] matrix_bot_honoroit_systemd_required_services_list_custom: []
@ -149,8 +140,26 @@ matrix_bot_honoroit_sentry: ''
# Log level # Log level
matrix_bot_honoroit_loglevel: '' matrix_bot_honoroit_loglevel: ''
# Disable encryption # /metrics basic auth login
matrix_bot_honoroit_noencryption: false matrix_bot_honoroit_auth_metrics_login: ''
# /metrics basic auth password
matrix_bot_honoroit_auth_metrics_password: ''
# /metrics basic auth allowed IPs
matrix_bot_honoroit_auth_metrics_ips: []
# Optional healthchecks.io integration
matrix_bot_honoroit_healthchecks_url: 'https://hc-ping.com'
matrix_bot_honoroit_healthchecks_uuid: ''
matrix_bot_honoroit_healthchecks_duration: 60 # in seconds
# Optional Redmine integration
matrix_bot_honoroit_redmine_host: '' # e.g. https://redmine.example.com
matrix_bot_honoroit_redmine_apikey: ''
matrix_bot_honoroit_redmine_project: '' # project identifier (e.g. 'myproject')
matrix_bot_honoroit_redmine_tracker_id: '' # tracker id (e.g. 1)
matrix_bot_honoroit_redmine_new_status_id: '' # new status id (e.g. 1)
matrix_bot_honoroit_redmine_in_progress_status_id: '' # in progress status id (e.g. 2)
matrix_bot_honoroit_redmine_done_status_id: '' # done status id (e.g. 3)
# A list of whitelisted users allowed to use/invite honoroit # A list of whitelisted users allowed to use/invite honoroit
# If not defined, everyone is allowed. # If not defined, everyone is allowed.

View File

@ -40,21 +40,6 @@
- {path: "{{ matrix_bot_honoroit_docker_src_files_path }}", when: true} - {path: "{{ matrix_bot_honoroit_docker_src_files_path }}", when: true}
when: "item.when | bool" when: "item.when | bool"
- name: Determine basicauth filename
ansible.builtin.set_fact:
matrix_bot_honoroit_basicauth_file_tmp: "{{ matrix_bot_honoroit_basicauth_file }}_{{ inventory_hostname }}"
when: matrix_bot_honoroit_basicauth_enabled | bool
- name: Generate basic auth file
community.general.htpasswd:
path: "{{ matrix_bot_honoroit_basicauth_file }}"
name: "{{ matrix_bot_honoroit_basicauth_user }}"
password: "{{ matrix_bot_honoroit_basicauth_password }}"
mode: 0640
become: false
delegate_to: 127.0.0.1
when: matrix_bot_honoroit_basicauth_enabled | bool
- name: Ensure honoroit support files installed - name: Ensure honoroit support files installed
ansible.builtin.template: ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2" src: "{{ role_path }}/templates/{{ item }}.j2"
@ -66,14 +51,6 @@
- env - env
- labels - labels
- name: Ensure temporary basic auth file is removed
ansible.builtin.file:
path: "{{ matrix_bot_honoroit_basicauth_file }}"
state: absent
become: false
delegate_to: 127.0.0.1
when: matrix_bot_honoroit_basicauth_enabled | bool
- name: Ensure honoroit image is pulled - name: Ensure honoroit image is pulled
community.docker.docker_image: community.docker.docker_image:
name: "{{ matrix_bot_honoroit_docker_image }}" name: "{{ matrix_bot_honoroit_docker_image }}"

View File

@ -5,10 +5,22 @@ HONOROIT_ROOMID={{ matrix_bot_honoroit_roomid }}
HONOROIT_DB_DSN={{ matrix_bot_honoroit_database_connection_string }} HONOROIT_DB_DSN={{ matrix_bot_honoroit_database_connection_string }}
HONOROIT_DB_DIALECT={{ matrix_bot_honoroit_database_dialect }} HONOROIT_DB_DIALECT={{ matrix_bot_honoroit_database_dialect }}
HONOROIT_PREFIX={{ matrix_bot_honoroit_prefix }} HONOROIT_PREFIX={{ matrix_bot_honoroit_prefix }}
HONOROIT_SENTRY={{ matrix_bot_honoroit_sentry }} HONOROIT_AUTH_METRICS_LOGIN={{ matrix_bot_honoroit_auth_metrics_login }}
HONOROIT_AUTH_METRICS_PASSWORD={{ matrix_bot_honoroit_auth_metrics_password }}
HONOROIT_AUTH_METRICS_IPS={{ matrix_bot_honoroit_auth_metrics_ips | default([]) | join(' ') }}
HONOROIT_REDMINE_HOST={{ matrix_bot_honoroit_redmine_host }}
HONOROIT_REDMINE_APIKEY={{ matrix_bot_honoroit_redmine_apikey }}
HONOROIT_REDMINE_PROJECT={{ matrix_bot_honoroit_redmine_project }}
HONOROIT_REDMINE_TRACKERID={{ matrix_bot_honoroit_redmine_tracker_id }}
HONOROIT_REDMINE_NEWSTATUSID={{ matrix_bot_honoroit_redmine_new_status_id }}
HONOROIT_REDMINE_INPROGRESSSTATUSID={{ matrix_bot_honoroit_redmine_in_progress_status_id }}
HONOROIT_REDMINE_DONESTATUSID={{ matrix_bot_honoroit_redmine_done_status_id }}
HONOROIT_MONITORING_SENTRY_DSN={{ matrix_bot_honoroit_sentry }}
HONOROIT_MONITORING_HEALTHCHECKS_URL={{ matrix_bot_honoroit_healthchecks_url }}
HONOROIT_MONITORING_HEALTHCHECKS_UUID={{ matrix_bot_honoroit_healthchecks_uuid }}
HONOROIT_MONITORING_HEALTHCHECKS_DURATION={{ matrix_bot_honoroit_healthchecks_duration }}
HONOROIT_LOGLEVEL={{ matrix_bot_honoroit_loglevel }} HONOROIT_LOGLEVEL={{ matrix_bot_honoroit_loglevel }}
HONOROIT_CACHESIZE={{ matrix_bot_honoroit_cachesize }} HONOROIT_CACHESIZE={{ matrix_bot_honoroit_cachesize }}
HONOROIT_NOENCRYPTION={{ matrix_bot_honoroit_noencryption }}
HONOROIT_IGNORENOTHREAD={{ matrix_bot_honoroit_ignorenothread }} HONOROIT_IGNORENOTHREAD={{ matrix_bot_honoroit_ignorenothread }}
HONOROIT_IGNOREDROOMS={{ matrix_bot_honoroit_ignoredrooms | join(' ') }} HONOROIT_IGNOREDROOMS={{ matrix_bot_honoroit_ignoredrooms | join(' ') }}
HONOROIT_ALLOWEDUSERS={{ matrix_bot_honoroit_allowedusers | join(' ') }} HONOROIT_ALLOWEDUSERS={{ matrix_bot_honoroit_allowedusers | join(' ') }}

View File

@ -28,11 +28,6 @@ traefik.http.middlewares.matrix-bot-honoroit-add-headers.headers.customresponseh
{% set middlewares = middlewares + ['matrix-bot-honoroit-add-headers'] %} {% set middlewares = middlewares + ['matrix-bot-honoroit-add-headers'] %}
{% endif %} {% endif %}
{% if matrix_bot_honoroit_basicauth_enabled %}
traefik.http.middlewares.matrix-bot-honoroit-auth.basicauth.users={{ lookup('ansible.builtin.file', matrix_bot_honoroit_basicauth_file) }}
{% set middlewares_metrics = middlewares + ['matrix-bot-honoroit-auth'] %}
{% endif %}
{% if middlewares_metrics | length > 0 %} {% if middlewares_metrics | length > 0 %}
traefik.http.routers.matrix-bot-honoroit-metrics.rule={{ matrix_bot_honoroit_container_labels_traefik_metrics_rule }} traefik.http.routers.matrix-bot-honoroit-metrics.rule={{ matrix_bot_honoroit_container_labels_traefik_metrics_rule }}
{% if matrix_bot_honoroit_container_labels_traefik_priority | int > 0 %} {% if matrix_bot_honoroit_container_labels_traefik_priority | int > 0 %}

View File

@ -19,8 +19,8 @@ matrix_bot_matrix_registration_bot_base_path: "{{ matrix_base_data_path }}/matri
matrix_bot_matrix_registration_bot_config_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/config" matrix_bot_matrix_registration_bot_config_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/config"
matrix_bot_matrix_registration_bot_data_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/data" matrix_bot_matrix_registration_bot_data_path: "{{ matrix_bot_matrix_registration_bot_base_path }}/data"
matrix_bot_matrix_registration_bot_bot_server: "https://{{ matrix_server_fqn_matrix }}" matrix_bot_matrix_registration_bot_bot_server: "{{ matrix_homeserver_url }}"
matrix_bot_matrix_registration_bot_api_base_url: "https://{{ matrix_server_fqn_matrix }}" matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_url }}"
# The bot's password (can also be used to login via a client like element) # The bot's password (can also be used to login via a client like element)
@ -45,7 +45,7 @@ matrix_bot_matrix_registration_bot_container_extra_arguments: []
# List of systemd services that matrix-bot-matrix-registration-bot.service depends on # List of systemd services that matrix-bot-matrix-registration-bot.service depends on
matrix_bot_matrix_registration_bot_systemd_required_services_list: "{{ matrix_bot_matrix_registration_bot_systemd_required_services_list_default + matrix_bot_matrix_registration_bot_systemd_required_services_list_auto + matrix_bot_matrix_registration_bot_systemd_required_services_list_custom }}" matrix_bot_matrix_registration_bot_systemd_required_services_list: "{{ matrix_bot_matrix_registration_bot_systemd_required_services_list_default + matrix_bot_matrix_registration_bot_systemd_required_services_list_auto + matrix_bot_matrix_registration_bot_systemd_required_services_list_custom }}"
matrix_bot_matrix_registration_bot_systemd_required_services_list_default: ['docker.service'] matrix_bot_matrix_registration_bot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_matrix_registration_bot_systemd_required_services_list_auto: [] matrix_bot_matrix_registration_bot_systemd_required_services_list_auto: []
matrix_bot_matrix_registration_bot_systemd_required_services_list_custom: [] matrix_bot_matrix_registration_bot_systemd_required_services_list_custom: []

View File

@ -33,7 +33,7 @@ matrix_bot_matrix_reminder_bot_container_additional_networks_custom: []
# List of systemd services that matrix-bot-matrix-reminder-bot.service depends on # List of systemd services that matrix-bot-matrix-reminder-bot.service depends on
matrix_bot_matrix_reminder_bot_systemd_required_services_list: "{{ matrix_bot_matrix_reminder_bot_systemd_required_services_list_default + matrix_bot_matrix_reminder_bot_systemd_required_services_list_auto + matrix_bot_matrix_reminder_bot_systemd_required_services_list_custom }}" matrix_bot_matrix_reminder_bot_systemd_required_services_list: "{{ matrix_bot_matrix_reminder_bot_systemd_required_services_list_default + matrix_bot_matrix_reminder_bot_systemd_required_services_list_auto + matrix_bot_matrix_reminder_bot_systemd_required_services_list_custom }}"
matrix_bot_matrix_reminder_bot_systemd_required_services_list_default: ['docker.service'] matrix_bot_matrix_reminder_bot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_matrix_reminder_bot_systemd_required_services_list_auto: [] matrix_bot_matrix_reminder_bot_systemd_required_services_list_auto: []
matrix_bot_matrix_reminder_bot_systemd_required_services_list_custom: [] matrix_bot_matrix_reminder_bot_systemd_required_services_list_custom: []

View File

@ -5,6 +5,12 @@
matrix_bot_maubot_enabled: true matrix_bot_maubot_enabled: true
matrix_bot_maubot_login: bot.maubot
# This is just initial password and it will not manage subsequent password changes.
# Use a tool like synapse-admin if you need to change it.
matrix_bot_maubot_initial_password: ''
matrix_bot_maubot_scheme: https matrix_bot_maubot_scheme: https
matrix_bot_maubot_hostname: '' matrix_bot_maubot_hostname: ''
matrix_bot_maubot_path_prefix: /_matrix/maubot matrix_bot_maubot_path_prefix: /_matrix/maubot
@ -114,7 +120,7 @@ matrix_bot_maubot_container_extra_arguments: []
# List of systemd services that matrix-bot-maubot.service depends on # List of systemd services that matrix-bot-maubot.service depends on
matrix_bot_maubot_systemd_required_services_list: "{{ matrix_bot_maubot_systemd_required_services_list_default + matrix_bot_maubot_systemd_required_services_list_auto + matrix_bot_maubot_systemd_required_services_list_custom }}" matrix_bot_maubot_systemd_required_services_list: "{{ matrix_bot_maubot_systemd_required_services_list_default + matrix_bot_maubot_systemd_required_services_list_auto + matrix_bot_maubot_systemd_required_services_list_custom }}"
matrix_bot_maubot_systemd_required_services_list_default: ['docker.service'] matrix_bot_maubot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_maubot_systemd_required_services_list_auto: [] matrix_bot_maubot_systemd_required_services_list_auto: []
matrix_bot_maubot_systemd_required_services_list_custom: [] matrix_bot_maubot_systemd_required_services_list_custom: []

View File

@ -25,3 +25,4 @@
- {'name': 'matrix_bot_maubot_container_network', when: true} - {'name': 'matrix_bot_maubot_container_network', when: true}
- {'name': 'matrix_bot_maubot_homeserver_name', when: true} - {'name': 'matrix_bot_maubot_homeserver_name', when: true}
- {'name': 'matrix_bot_maubot_homeserver_url', when: true} - {'name': 'matrix_bot_maubot_homeserver_url', when: true}
- {'name': 'matrix_bot_maubot_initial_password', when: true}

View File

@ -30,7 +30,7 @@ matrix_bot_mjolnir_container_extra_arguments: []
# List of systemd services that matrix-bot-mjolnir.service depends on # List of systemd services that matrix-bot-mjolnir.service depends on
matrix_bot_mjolnir_systemd_required_services_list: "{{ matrix_bot_mjolnir_systemd_required_services_list_default + matrix_bot_mjolnir_systemd_required_services_list_auto + matrix_bot_mjolnir_systemd_required_services_list_custom }}" matrix_bot_mjolnir_systemd_required_services_list: "{{ matrix_bot_mjolnir_systemd_required_services_list_default + matrix_bot_mjolnir_systemd_required_services_list_auto + matrix_bot_mjolnir_systemd_required_services_list_custom }}"
matrix_bot_mjolnir_systemd_required_services_list_default: ['docker.service'] matrix_bot_mjolnir_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_mjolnir_systemd_required_services_list_auto: [] matrix_bot_mjolnir_systemd_required_services_list_auto: []
matrix_bot_mjolnir_systemd_required_services_list_custom: [] matrix_bot_mjolnir_systemd_required_services_list_custom: []

View File

@ -1,18 +1,18 @@
--- ---
# postmoogle is an email to matrix bot # postmoogle is an email to matrix bot
# Project source code URL: https://gitlab.com/etke.cc/postmoogle # Project source code URL: https://github.com/etkecc/postmoogle
matrix_bot_postmoogle_enabled: true matrix_bot_postmoogle_enabled: true
matrix_bot_postmoogle_container_image_self_build: false matrix_bot_postmoogle_container_image_self_build: false
matrix_bot_postmoogle_docker_repo: "https://gitlab.com/etke.cc/postmoogle.git" matrix_bot_postmoogle_docker_repo: "https://github.com/etkecc/postmoogle.git"
matrix_bot_postmoogle_docker_repo_version: "{{ 'main' if matrix_bot_postmoogle_version == 'latest' else matrix_bot_postmoogle_version }}" matrix_bot_postmoogle_docker_repo_version: "{{ 'main' if matrix_bot_postmoogle_version == 'latest' else matrix_bot_postmoogle_version }}"
matrix_bot_postmoogle_docker_src_files_path: "{{ matrix_base_data_path }}/postmoogle/docker-src" matrix_bot_postmoogle_docker_src_files_path: "{{ matrix_base_data_path }}/postmoogle/docker-src"
# renovate: datasource=docker depName=registry.gitlab.com/etke.cc/postmoogle # renovate: datasource=docker depName=ghcr.io/etkecc/postmoogle
matrix_bot_postmoogle_version: v0.9.18 matrix_bot_postmoogle_version: v0.9.21
matrix_bot_postmoogle_docker_image: "{{ matrix_bot_postmoogle_docker_image_name_prefix }}etke.cc/postmoogle:{{ matrix_bot_postmoogle_version }}" matrix_bot_postmoogle_docker_image: "{{ matrix_bot_postmoogle_docker_image_name_prefix }}etkecc/postmoogle:{{ matrix_bot_postmoogle_version }}"
matrix_bot_postmoogle_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_postmoogle_container_image_self_build else 'registry.gitlab.com/' }}" matrix_bot_postmoogle_docker_image_name_prefix: "{{ 'localhost/' if matrix_bot_postmoogle_container_image_self_build else 'ghcr.io/' }}"
matrix_bot_postmoogle_docker_image_force_pull: "{{ matrix_bot_postmoogle_docker_image.endswith(':latest') }}" matrix_bot_postmoogle_docker_image_force_pull: "{{ matrix_bot_postmoogle_docker_image.endswith(':latest') }}"
matrix_bot_postmoogle_base_path: "{{ matrix_base_data_path }}/postmoogle" matrix_bot_postmoogle_base_path: "{{ matrix_base_data_path }}/postmoogle"
@ -30,7 +30,7 @@ matrix_bot_postmoogle_container_extra_arguments: []
# List of systemd services that matrix-bot-postmoogle.service depends on # List of systemd services that matrix-bot-postmoogle.service depends on
matrix_bot_postmoogle_systemd_required_services_list: "{{ matrix_bot_postmoogle_systemd_required_services_list_default + matrix_bot_postmoogle_systemd_required_services_list_auto + matrix_bot_postmoogle_systemd_required_services_list_custom }}" matrix_bot_postmoogle_systemd_required_services_list: "{{ matrix_bot_postmoogle_systemd_required_services_list_default + matrix_bot_postmoogle_systemd_required_services_list_auto + matrix_bot_postmoogle_systemd_required_services_list_custom }}"
matrix_bot_postmoogle_systemd_required_services_list_default: ['docker.service'] matrix_bot_postmoogle_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bot_postmoogle_systemd_required_services_list_auto: [] matrix_bot_postmoogle_systemd_required_services_list_auto: []
matrix_bot_postmoogle_systemd_required_services_list_custom: [] matrix_bot_postmoogle_systemd_required_services_list_custom: []

View File

@ -40,7 +40,7 @@ matrix_appservice_discord_container_extra_arguments: []
# List of systemd services that matrix-appservice-discord.service depends on. # List of systemd services that matrix-appservice-discord.service depends on.
matrix_appservice_discord_systemd_required_services_list: "{{ matrix_appservice_discord_systemd_required_services_list_default + matrix_appservice_discord_systemd_required_services_list_auto + matrix_appservice_discord_systemd_required_services_list_custom }}" matrix_appservice_discord_systemd_required_services_list: "{{ matrix_appservice_discord_systemd_required_services_list_default + matrix_appservice_discord_systemd_required_services_list_auto + matrix_appservice_discord_systemd_required_services_list_custom }}"
matrix_appservice_discord_systemd_required_services_list_default: ['docker.service'] matrix_appservice_discord_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_appservice_discord_systemd_required_services_list_auto: [] matrix_appservice_discord_systemd_required_services_list_auto: []
matrix_appservice_discord_systemd_required_services_list_custom: [] matrix_appservice_discord_systemd_required_services_list_custom: []

View File

@ -23,7 +23,7 @@ matrix_appservice_irc_config_path: "{{ matrix_appservice_irc_base_path }}/config
matrix_appservice_irc_data_path: "{{ matrix_appservice_irc_base_path }}/data" matrix_appservice_irc_data_path: "{{ matrix_appservice_irc_base_path }}/data"
matrix_appservice_irc_homeserver_url: "" matrix_appservice_irc_homeserver_url: ""
matrix_appservice_irc_homeserver_media_url: 'https://{{ matrix_server_fqn_matrix }}' matrix_appservice_irc_homeserver_media_url: '{{ matrix_homeserver_url }}'
matrix_appservice_irc_homeserver_domain: '{{ matrix_domain }}' matrix_appservice_irc_homeserver_domain: '{{ matrix_domain }}'
matrix_appservice_irc_homeserver_enablePresence: true # noqa var-naming matrix_appservice_irc_homeserver_enablePresence: true # noqa var-naming
matrix_appservice_irc_appservice_address: 'http://matrix-appservice-irc:9999' matrix_appservice_irc_appservice_address: 'http://matrix-appservice-irc:9999'
@ -382,7 +382,7 @@ matrix_appservice_irc_container_extra_arguments: []
# List of systemd services that matrix-appservice-irc.service depends on. # List of systemd services that matrix-appservice-irc.service depends on.
matrix_appservice_irc_systemd_required_services_list: "{{ matrix_appservice_irc_systemd_required_services_list_default + matrix_appservice_irc_systemd_required_services_list_auto + matrix_appservice_irc_systemd_required_services_list_custom }}" matrix_appservice_irc_systemd_required_services_list: "{{ matrix_appservice_irc_systemd_required_services_list_default + matrix_appservice_irc_systemd_required_services_list_auto + matrix_appservice_irc_systemd_required_services_list_custom }}"
matrix_appservice_irc_systemd_required_services_list_default: ['docker.service'] matrix_appservice_irc_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_appservice_irc_systemd_required_services_list_auto: [] matrix_appservice_irc_systemd_required_services_list_auto: []
matrix_appservice_irc_systemd_required_services_list_custom: [] matrix_appservice_irc_systemd_required_services_list_custom: []

View File

@ -55,7 +55,12 @@ matrix_appservice_kakaotalk_container_extra_arguments: []
# List of systemd services that matrix-appservice-kakaotalk.service depends on. # List of systemd services that matrix-appservice-kakaotalk.service depends on.
matrix_appservice_kakaotalk_systemd_required_services_list: "{{ matrix_appservice_kakaotalk_systemd_required_services_list_default + matrix_appservice_kakaotalk_systemd_required_services_list_auto + matrix_appservice_kakaotalk_systemd_required_services_list_custom }}" matrix_appservice_kakaotalk_systemd_required_services_list: "{{ matrix_appservice_kakaotalk_systemd_required_services_list_default + matrix_appservice_kakaotalk_systemd_required_services_list_auto + matrix_appservice_kakaotalk_systemd_required_services_list_custom }}"
matrix_appservice_kakaotalk_systemd_required_services_list_default: ['docker.service', 'matrix-appservice-kakaotalk-node.service'] matrix_appservice_kakaotalk_systemd_required_services_list_default: |-
{{
([devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [])
+
['matrix-appservice-kakaotalk-node.service']
}}
matrix_appservice_kakaotalk_systemd_required_services_list_auto: [] matrix_appservice_kakaotalk_systemd_required_services_list_auto: []
matrix_appservice_kakaotalk_systemd_required_services_list_custom: [] matrix_appservice_kakaotalk_systemd_required_services_list_custom: []
@ -72,7 +77,7 @@ matrix_appservice_kakaotalk_container_additional_networks_custom: []
matrix_appservice_kakaotalk_node_container_extra_arguments: [] matrix_appservice_kakaotalk_node_container_extra_arguments: []
# List of systemd services that matrix-appservice-kakaotalk-node.service depends on. # List of systemd services that matrix-appservice-kakaotalk-node.service depends on.
matrix_appservice_kakaotalk_node_systemd_required_services_list: ['docker.service'] matrix_appservice_kakaotalk_node_systemd_required_services_list: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
# List of systemd services that matrix-appservice-kakaotalk-node.service wants # List of systemd services that matrix-appservice-kakaotalk-node.service wants
matrix_appservice_kakaotalk_node_systemd_wanted_services_list: [] matrix_appservice_kakaotalk_node_systemd_wanted_services_list: []

View File

@ -81,7 +81,7 @@ matrix_appservice_slack_container_extra_arguments: []
# List of systemd services that matrix-appservice-slack.service depends on. # List of systemd services that matrix-appservice-slack.service depends on.
matrix_appservice_slack_systemd_required_services_list: "{{ matrix_appservice_slack_systemd_required_services_list_default + matrix_appservice_slack_systemd_required_services_list_auto + matrix_appservice_slack_systemd_required_services_list_custom }}" matrix_appservice_slack_systemd_required_services_list: "{{ matrix_appservice_slack_systemd_required_services_list_default + matrix_appservice_slack_systemd_required_services_list_auto + matrix_appservice_slack_systemd_required_services_list_custom }}"
matrix_appservice_slack_systemd_required_services_list_default: ['docker.service'] matrix_appservice_slack_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_appservice_slack_systemd_required_services_list_auto: [] matrix_appservice_slack_systemd_required_services_list_auto: []
matrix_appservice_slack_systemd_required_services_list_custom: [] matrix_appservice_slack_systemd_required_services_list_custom: []

View File

@ -77,7 +77,7 @@ matrix_appservice_webhooks_container_extra_arguments: []
# List of systemd services that matrix-appservice-webhooks.service depends on. # List of systemd services that matrix-appservice-webhooks.service depends on.
matrix_appservice_webhooks_systemd_required_services_list: "{{ matrix_appservice_webhooks_systemd_required_services_list_default + matrix_appservice_webhooks_systemd_required_services_list_auto + matrix_appservice_webhooks_systemd_required_services_list_custom }}" matrix_appservice_webhooks_systemd_required_services_list: "{{ matrix_appservice_webhooks_systemd_required_services_list_default + matrix_appservice_webhooks_systemd_required_services_list_auto + matrix_appservice_webhooks_systemd_required_services_list_custom }}"
matrix_appservice_webhooks_systemd_required_services_list_default: ['docker.service'] matrix_appservice_webhooks_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_appservice_webhooks_systemd_required_services_list_auto: [] matrix_appservice_webhooks_systemd_required_services_list_auto: []
matrix_appservice_webhooks_systemd_required_services_list_custom: [] matrix_appservice_webhooks_systemd_required_services_list_custom: []

View File

@ -49,7 +49,7 @@ matrix_beeper_linkedin_container_extra_arguments: []
# List of systemd services that matrix-beeper-linkedin.service depends on. # List of systemd services that matrix-beeper-linkedin.service depends on.
matrix_beeper_linkedin_systemd_required_services_list: "{{ matrix_beeper_linkedin_systemd_required_services_list_default + matrix_beeper_linkedin_systemd_required_services_list_auto + matrix_beeper_linkedin_systemd_required_services_list_custom }}" matrix_beeper_linkedin_systemd_required_services_list: "{{ matrix_beeper_linkedin_systemd_required_services_list_default + matrix_beeper_linkedin_systemd_required_services_list_auto + matrix_beeper_linkedin_systemd_required_services_list_custom }}"
matrix_beeper_linkedin_systemd_required_services_list_default: ['docker.service'] matrix_beeper_linkedin_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_beeper_linkedin_systemd_required_services_list_auto: [] matrix_beeper_linkedin_systemd_required_services_list_auto: []
matrix_beeper_linkedin_systemd_required_services_list_custom: [] matrix_beeper_linkedin_systemd_required_services_list_custom: []
@ -88,7 +88,7 @@ matrix_beeper_linkedin_appservice_database_uri: "{{
}}" }}"
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). # Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth) or Appservice Double Puppet.
matrix_beeper_linkedin_login_shared_secret: '' matrix_beeper_linkedin_login_shared_secret: ''
# Specifies the default log level for all bridge loggers. # Specifies the default log level for all bridge loggers.

View File

@ -34,7 +34,7 @@ matrix_go_skype_bridge_container_extra_arguments: []
# List of systemd services that matrix-go-skype-bridge.service depends on. # List of systemd services that matrix-go-skype-bridge.service depends on.
matrix_go_skype_bridge_systemd_required_services_list: "{{ matrix_go_skype_bridge_systemd_required_services_list_default + matrix_go_skype_bridge_systemd_required_services_list_auto + matrix_go_skype_bridge_systemd_required_services_list_custom }}" matrix_go_skype_bridge_systemd_required_services_list: "{{ matrix_go_skype_bridge_systemd_required_services_list_default + matrix_go_skype_bridge_systemd_required_services_list_auto + matrix_go_skype_bridge_systemd_required_services_list_custom }}"
matrix_go_skype_bridge_systemd_required_services_list_default: ['docker.service'] matrix_go_skype_bridge_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_go_skype_bridge_systemd_required_services_list_auto: [] matrix_go_skype_bridge_systemd_required_services_list_auto: []
matrix_go_skype_bridge_systemd_required_services_list_custom: [] matrix_go_skype_bridge_systemd_required_services_list_custom: []

View File

@ -4,8 +4,12 @@
matrix_heisenbridge_enabled: true matrix_heisenbridge_enabled: true
matrix_heisenbridge_scheme: https
matrix_heisenbridge_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_heisenbridge_path_prefix: "/heisenbridge"
# renovate: datasource=docker depName=hif1/heisenbridge # renovate: datasource=docker depName=hif1/heisenbridge
matrix_heisenbridge_version: 1.14.6 matrix_heisenbridge_version: 1.15.0
matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}" matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}"
matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}" matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}"
@ -27,12 +31,43 @@ matrix_heisenbridge_container_additional_networks_custom: []
# We use a small value here, because this container does not seem to handle the SIGTERM signal. # We use a small value here, because this container does not seem to handle the SIGTERM signal.
matrix_heisenbridge_container_stop_grace_time_seconds: 1 matrix_heisenbridge_container_stop_grace_time_seconds: 1
# matrix_heisenbridge_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_heisenbridge_container_labels_additional_labels`.
matrix_heisenbridge_container_labels_traefik_enabled: true
matrix_heisenbridge_container_labels_traefik_docker_network: "{{ matrix_heisenbridge_container_network }}"
matrix_heisenbridge_container_labels_traefik_hostname: "{{ matrix_heisenbridge_hostname }}"
matrix_heisenbridge_container_labels_traefik_path_prefix: "{{ matrix_heisenbridge_path_prefix }}"
matrix_heisenbridge_container_labels_traefik_entrypoints: web-secure
matrix_heisenbridge_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls if the media router is enabled
matrix_heisenbridge_container_labels_traefik_media_enabled: true
matrix_heisenbridge_container_labels_traefik_media_hostname: "{{ matrix_heisenbridge_container_labels_traefik_hostname }}"
# The path prefix must either be `/` or not end with a slash (e.g. `/heisenbridge`).
matrix_heisenbridge_container_labels_traefik_media_path_prefix: "{{ '/_heisenbridge/media' if matrix_heisenbridge_container_labels_traefik_path_prefix == '/' else (matrix_heisenbridge_container_labels_traefik_path_prefix + '/_heisenbridge/media') }}"
matrix_heisenbridge_container_labels_traefik_media_rule: "Host(`{{ matrix_heisenbridge_container_labels_traefik_media_hostname }}`){% if matrix_heisenbridge_container_labels_traefik_media_path_prefix != '/' %} && PathPrefix(`{{ matrix_heisenbridge_container_labels_traefik_media_path_prefix }}`){% endif %}"
matrix_heisenbridge_container_labels_traefik_media_priority: 0
matrix_heisenbridge_container_labels_traefik_media_entrypoints: "{{ matrix_heisenbridge_container_labels_traefik_entrypoints }}"
matrix_heisenbridge_container_labels_traefik_media_tls: "{{ matrix_heisenbridge_container_labels_traefik_media_entrypoints != 'web' }}"
matrix_heisenbridge_container_labels_traefik_media_tls_certResolver: "{{ matrix_heisenbridge_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# matrix_heisenbridge_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_heisenbridge_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_heisenbridge_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container # A list of extra arguments to pass to the container
matrix_heisenbridge_container_extra_arguments: [] matrix_heisenbridge_container_extra_arguments: []
# List of systemd services that service depends on. # List of systemd services that service depends on.
matrix_heisenbridge_systemd_required_services_list: "{{ matrix_heisenbridge_systemd_required_services_list_default + matrix_heisenbridge_systemd_required_services_list_auto + matrix_heisenbridge_systemd_required_services_list_custom }}" matrix_heisenbridge_systemd_required_services_list: "{{ matrix_heisenbridge_systemd_required_services_list_default + matrix_heisenbridge_systemd_required_services_list_auto + matrix_heisenbridge_systemd_required_services_list_custom }}"
matrix_heisenbridge_systemd_required_services_list_default: ['docker.service'] matrix_heisenbridge_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_heisenbridge_systemd_required_services_list_auto: [] matrix_heisenbridge_systemd_required_services_list_auto: []
matrix_heisenbridge_systemd_required_services_list_custom: [] matrix_heisenbridge_systemd_required_services_list_custom: []
@ -44,11 +79,20 @@ matrix_heisenbridge_homeserver_url: ""
matrix_heisenbridge_appservice_token: '' matrix_heisenbridge_appservice_token: ''
matrix_heisenbridge_homeserver_token: '' matrix_heisenbridge_homeserver_token: ''
matrix_heisenbridge_config_media_url: "{{ matrix_homeserver_url }}" # In light of Synapse sunsetting unauthenticated media, we'd like to move to Heisenbridge's media proxy,
# announced here: https://github.com/hifi/heisenbridge/releases/tag/v1.15.0
#
# It seems like the media proxy is not working as expected, so we're disabling it for now and falling back to our old media URL (pointing Heisenbridge to the homeserver URL).
# Right now, Heisenbridge is still generating URLs like `{media_url}/_matrix/media/v3/download/DOMAIN/FILE_ID/FILE_NAME`,
# so pointing `media_url` to the homeserver is a good fit.
# matrix_heisenbridge_config_media_url: "{{ matrix_heisenbridge_scheme }}://{{ matrix_heisenbridge_hostname }}{{ matrix_heisenbridge_path_prefix }}"
matrix_heisenbridge_config_media_url: "{{ matrix_heisenbridge_scheme }}://{{ matrix_heisenbridge_hostname }}"
matrix_heisenbridge_config_media_key: "{{ matrix_heisenbridge_homeserver_token }}"
matrix_heisenbridge_config_displayname: "Heisenbridge" matrix_heisenbridge_config_displayname: "Heisenbridge"
matrix_heisenbridge_registration_yaml_heisenbridge: matrix_heisenbridge_registration_yaml_heisenbridge:
media_url: "{{ matrix_heisenbridge_config_media_url }}" media_url: "{{ matrix_heisenbridge_config_media_url }}"
media_key: "{{ matrix_heisenbridge_config_media_key }}"
displayname: "{{ matrix_heisenbridge_config_displayname }}" displayname: "{{ matrix_heisenbridge_config_displayname }}"
# Default registration file consumed by both the homeserver and Heisenbridge. # Default registration file consumed by both the homeserver and Heisenbridge.

View File

@ -29,6 +29,16 @@
owner: "{{ matrix_user_username }}" owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}" group: "{{ matrix_user_groupname }}"
- name: Ensure heisenbridge support files installed
ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2"
dest: "{{ matrix_heisenbridge_base_path }}/{{ item }}"
mode: 0640
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
with_items:
- labels
- name: Ensure heisenbridge container network is created - name: Ensure heisenbridge container network is created
community.general.docker_network: community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"

View File

@ -0,0 +1,52 @@
{% if matrix_heisenbridge_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_heisenbridge_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_heisenbridge_container_labels_traefik_docker_network }}
{% endif %}
traefik.http.services.matrix-heisenbridge.loadbalancer.server.port=9898
{% set middlewares = [] %}
{% if matrix_heisenbridge_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.matrix-heisenbridge-strip-prefix.stripprefix.prefixes={{ matrix_heisenbridge_container_labels_traefik_path_prefix }}
{% set middlewares = middlewares + ['matrix-heisenbridge-strip-prefix'] %}
{% endif %}
{% if matrix_heisenbridge_container_labels_traefik_media_enabled %}
##########################################################################
# #
# Media #
# #
##########################################################################
traefik.http.routers.matrix-heisenbridge-media.rule={{ matrix_heisenbridge_container_labels_traefik_media_rule }}
{% if matrix_heisenbridge_container_labels_traefik_media_priority | int > 0 %}
traefik.http.routers.matrix-heisenbridge-media.priority={{ matrix_heisenbridge_container_labels_traefik_media_priority }}
{% endif %}
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-heisenbridge-media.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-heisenbridge-media.service=matrix-heisenbridge
traefik.http.routers.matrix-heisenbridge-media.entrypoints={{ matrix_heisenbridge_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-heisenbridge-media.tls={{ matrix_heisenbridge_container_labels_traefik_media_tls | to_json }}
{% if matrix_heisenbridge_container_labels_traefik_media_entrypoints %}
traefik.http.routers.matrix-heisenbridge-media.tls.certResolver={{ matrix_heisenbridge_container_labels_traefik_media_tls_certResolver }}
{% endif %}
##########################################################################
# #
# /Media #
# #
##########################################################################
{% endif %}
{% endif %}
{{ matrix_heisenbridge_container_labels_additional_labels }}

View File

@ -27,6 +27,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
-p 113:13113 \ -p 113:13113 \
{% endif %} {% endif %}
--mount type=bind,src={{ matrix_heisenbridge_base_path }},dst=/config \ --mount type=bind,src={{ matrix_heisenbridge_base_path }},dst=/config \
--label-file={{ matrix_heisenbridge_base_path }}/labels \
{% for arg in matrix_heisenbridge_container_extra_arguments %} {% for arg in matrix_heisenbridge_container_extra_arguments %}
{{ arg }} \ {{ arg }} \
{% endfor %} {% endfor %}

View File

@ -17,7 +17,7 @@ matrix_hookshot_container_additional_networks_auto: []
matrix_hookshot_container_additional_networks_custom: [] matrix_hookshot_container_additional_networks_custom: []
# renovate: datasource=docker depName=halfshot/matrix-hookshot # renovate: datasource=docker depName=halfshot/matrix-hookshot
matrix_hookshot_version: 5.3.0 matrix_hookshot_version: 5.4.1
matrix_hookshot_docker_image: "{{ matrix_hookshot_docker_image_name_prefix }}halfshot/matrix-hookshot:{{ matrix_hookshot_version }}" matrix_hookshot_docker_image: "{{ matrix_hookshot_docker_image_name_prefix }}halfshot/matrix-hookshot:{{ matrix_hookshot_version }}"
matrix_hookshot_docker_image_name_prefix: "{{ 'localhost/' if matrix_hookshot_container_image_self_build else matrix_container_global_registry_prefix }}" matrix_hookshot_docker_image_name_prefix: "{{ 'localhost/' if matrix_hookshot_container_image_self_build else matrix_container_global_registry_prefix }}"
@ -30,10 +30,15 @@ matrix_hookshot_docker_src_files_path: "{{ matrix_hookshot_base_path }}/docker-s
matrix_hookshot_homeserver_address: "" matrix_hookshot_homeserver_address: ""
matrix_hookshot_container_url: 'matrix-hookshot' matrix_hookshot_container_url: 'matrix-hookshot'
matrix_hookshot_public_scheme: https
matrix_hookshot_public_hostname: "{{ matrix_server_fqn_matrix }}" matrix_hookshot_public_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_hookshot_public_endpoint: /hookshot matrix_hookshot_public_endpoint: /hookshot
matrix_hookshot_urlprefix: "https://{{ matrix_hookshot_public_hostname }}{{ matrix_hookshot_public_endpoint }}" # This is the base URL prefix shared among all endpoints.
#
# It intentionally does not include the path prefix (`matrix_hookshot_public_endpoint`),
# because of how it's used - it's concatenated with paths that already use matrix_hookshot_public_endpoint` within them.
matrix_hookshot_urlprefix: "{{ matrix_hookshot_public_scheme }}://{{ matrix_hookshot_public_hostname }}"
# There is no need to edit ports. use matrix_hookshot_container_http_host_bind_ports below to expose ports instead. # There is no need to edit ports. use matrix_hookshot_container_http_host_bind_ports below to expose ports instead.
matrix_hookshot_appservice_port: 9993 matrix_hookshot_appservice_port: 9993
@ -120,6 +125,7 @@ matrix_hookshot_gitlab_instances:
# This will be the "Secret token" you have to enter into all GitLab instances for authentication # This will be the "Secret token" you have to enter into all GitLab instances for authentication
matrix_hookshot_gitlab_webhook_secret: '' matrix_hookshot_gitlab_webhook_secret: ''
matrix_hookshot_gitlab_webhook_publicUrl: "{{ matrix_hookshot_urlprefix }}{{ matrix_hookshot_webhook_endpoint }}" # noqa var-naming
matrix_hookshot_figma_enabled: false matrix_hookshot_figma_enabled: false
@ -149,7 +155,7 @@ matrix_hookshot_jira_oauth_redirect_uri: "{{ matrix_hookshot_urlprefix }}{{ matr
matrix_hookshot_generic_enabled: true matrix_hookshot_generic_enabled: true
matrix_hookshot_generic_enableHttpGet: false # noqa var-naming matrix_hookshot_generic_enableHttpGet: false # noqa var-naming
# Default value of matrix_hookshot_generic_endpoint: "/hookshot/webhooks" # Default value of matrix_hookshot_generic_endpoint: "/hookshot/webhooks"
matrix_hookshot_generic_endpoint: "{{ matrix_hookshot_webhook_endpoint }}" matrix_hookshot_generic_endpoint: "{{ matrix_hookshot_webhook_endpoint }}/webhook"
# urlprefix gets updated with protocol & port in group_vars/matrix_servers # urlprefix gets updated with protocol & port in group_vars/matrix_servers
matrix_hookshot_generic_urlPrefix: "{{ matrix_hookshot_urlprefix }}{{ matrix_hookshot_generic_endpoint }}" # noqa var-naming matrix_hookshot_generic_urlPrefix: "{{ matrix_hookshot_urlprefix }}{{ matrix_hookshot_generic_endpoint }}" # noqa var-naming
# If you're also using matrix-appservice-webhooks, take care that these prefixes don't overlap # If you're also using matrix-appservice-webhooks, take care that these prefixes don't overlap
@ -248,7 +254,7 @@ matrix_hookshot_container_labels_webhooks_traefik_entrypoints: "{{ matrix_hooksh
matrix_hookshot_container_labels_webhooks_traefik_tls: "{{ matrix_hookshot_container_labels_webhooks_traefik_entrypoints != 'web' }}" matrix_hookshot_container_labels_webhooks_traefik_tls: "{{ matrix_hookshot_container_labels_webhooks_traefik_entrypoints != 'web' }}"
matrix_hookshot_container_labels_webhooks_traefik_tls_certResolver: "{{ matrix_hookshot_container_labels_traefik_tls_certResolver }}" # noqa var-naming matrix_hookshot_container_labels_webhooks_traefik_tls_certResolver: "{{ matrix_hookshot_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# Controls whether labels will be added that expose Hookshot's generic endpoint # Controls whether labels will be added that expose Hookshot's appservice endpoint
matrix_hookshot_container_labels_appservice_enabled: true matrix_hookshot_container_labels_appservice_enabled: true
matrix_hookshot_container_labels_appservice_traefik_rule: "Host(`{{ matrix_hookshot_appservice_hostname }}`) && PathPrefix(`{{ matrix_hookshot_appservice_endpoint }}`)" matrix_hookshot_container_labels_appservice_traefik_rule: "Host(`{{ matrix_hookshot_appservice_hostname }}`) && PathPrefix(`{{ matrix_hookshot_appservice_endpoint }}`)"
matrix_hookshot_container_labels_appservice_traefik_priority: 0 matrix_hookshot_container_labels_appservice_traefik_priority: 0
@ -294,7 +300,7 @@ matrix_hookshot_container_labels_additional_labels: ''
# List of systemd services that service depends on. # List of systemd services that service depends on.
matrix_hookshot_systemd_required_services_list: "{{ matrix_hookshot_systemd_required_services_list_default + matrix_hookshot_systemd_required_services_list_auto + matrix_hookshot_systemd_required_services_list_custom }}" matrix_hookshot_systemd_required_services_list: "{{ matrix_hookshot_systemd_required_services_list_default + matrix_hookshot_systemd_required_services_list_auto + matrix_hookshot_systemd_required_services_list_custom }}"
matrix_hookshot_systemd_required_services_list_default: ['docker.service'] matrix_hookshot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_hookshot_systemd_required_services_list_auto: [] matrix_hookshot_systemd_required_services_list_auto: []
matrix_hookshot_systemd_required_services_list_custom: [] matrix_hookshot_systemd_required_services_list_custom: []

View File

@ -47,6 +47,7 @@ gitlab:
instances: {{ matrix_hookshot_gitlab_instances | to_json }} instances: {{ matrix_hookshot_gitlab_instances | to_json }}
webhook: webhook:
secret: {{ matrix_hookshot_gitlab_webhook_secret | to_json }} secret: {{ matrix_hookshot_gitlab_webhook_secret | to_json }}
publicUrl: {{ matrix_hookshot_gitlab_webhook_publicUrl | to_json }}
{% endif %} {% endif %}
{% if matrix_hookshot_figma_enabled %} {% if matrix_hookshot_figma_enabled %}
figma: figma:

View File

@ -9,7 +9,7 @@ matrix_mautrix_discord_container_image_self_build_repo: "https://mau.dev/mautrix
matrix_mautrix_discord_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_discord_version == 'latest' else matrix_mautrix_discord_version }}" matrix_mautrix_discord_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_discord_version == 'latest' else matrix_mautrix_discord_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/discord # renovate: datasource=docker depName=dock.mau.dev/mautrix/discord
matrix_mautrix_discord_version: v0.6.5 matrix_mautrix_discord_version: v0.7.0
# See: https://mau.dev/mautrix/discord/container_registry # See: https://mau.dev/mautrix/discord/container_registry
matrix_mautrix_discord_docker_image: "{{ matrix_mautrix_discord_docker_image_name_prefix }}mautrix/discord:{{ matrix_mautrix_discord_version }}" matrix_mautrix_discord_docker_image: "{{ matrix_mautrix_discord_docker_image_name_prefix }}mautrix/discord:{{ matrix_mautrix_discord_version }}"
@ -45,7 +45,7 @@ matrix_mautrix_discord_container_extra_arguments: []
# List of systemd services that matrix-mautrix-discord.service depends on. # List of systemd services that matrix-mautrix-discord.service depends on.
matrix_mautrix_discord_systemd_required_services_list: "{{ matrix_mautrix_discord_systemd_required_services_list_default + matrix_mautrix_discord_systemd_required_services_list_auto + matrix_mautrix_discord_systemd_required_services_list_custom }}" matrix_mautrix_discord_systemd_required_services_list: "{{ matrix_mautrix_discord_systemd_required_services_list_default + matrix_mautrix_discord_systemd_required_services_list_auto + matrix_mautrix_discord_systemd_required_services_list_custom }}"
matrix_mautrix_discord_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_discord_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_discord_systemd_required_services_list_auto: [] matrix_mautrix_discord_systemd_required_services_list_auto: []
matrix_mautrix_discord_systemd_required_services_list_custom: [] matrix_mautrix_discord_systemd_required_services_list_custom: []
@ -100,10 +100,9 @@ matrix_mautrix_discord_appservice_database_uri: "{{
}[matrix_mautrix_discord_database_engine] }[matrix_mautrix_discord_database_engine]
}}" }}"
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). matrix_mautrix_discord_bridge_login_shared_secret_map: "{{ matrix_mautrix_discord_bridge_login_shared_secret_map_auto | combine(matrix_mautrix_discord_bridge_login_shared_secret_map_custom) }}"
matrix_mautrix_discord_login_shared_secret: '' matrix_mautrix_discord_bridge_login_shared_secret_map_auto: {}
matrix_mautrix_discord_bridge_login_shared_secret_map: matrix_mautrix_discord_bridge_login_shared_secret_map_custom: {}
"{{ {matrix_mautrix_discord_homeserver_domain: matrix_mautrix_discord_login_shared_secret} if matrix_mautrix_discord_login_shared_secret else {} }}"
# Servers to always allow double puppeting from # Servers to always allow double puppeting from
matrix_mautrix_discord_bridge_double_puppet_server_map: matrix_mautrix_discord_bridge_double_puppet_server_map:

View File

@ -12,3 +12,12 @@
- {'name': 'matrix_mautrix_discord_homeserver_public_address', when: true} - {'name': 'matrix_mautrix_discord_homeserver_public_address', when: true}
- {'name': 'matrix_mautrix_discord_container_network', when: true} - {'name': 'matrix_mautrix_discord_container_network', when: true}
- {'name': 'matrix_mautrix_discord_database_hostname', when: "{{ matrix_mautrix_discord_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_discord_database_hostname', when: "{{ matrix_mautrix_discord_database_engine == 'postgres' }}"}
- name: (Deprecation) Catch and report renamed settings
ansible.builtin.fail:
msg: >-
Your configuration contains a variable, which now has a different name.
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
when: "item.old in vars"
with_items:
- {'old': 'matrix_mautrix_discord_login_shared_secret', 'new': '<removed>'}

View File

@ -80,7 +80,7 @@ matrix_mautrix_facebook_container_extra_arguments: []
# List of systemd services that matrix-mautrix-facebook.service depends on. # List of systemd services that matrix-mautrix-facebook.service depends on.
matrix_mautrix_facebook_systemd_required_services_list: "{{ matrix_mautrix_facebook_systemd_required_services_list_default + matrix_mautrix_facebook_systemd_required_services_list_auto + matrix_mautrix_facebook_systemd_required_services_list_custom }}" matrix_mautrix_facebook_systemd_required_services_list: "{{ matrix_mautrix_facebook_systemd_required_services_list_default + matrix_mautrix_facebook_systemd_required_services_list_auto + matrix_mautrix_facebook_systemd_required_services_list_custom }}"
matrix_mautrix_facebook_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_facebook_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_facebook_systemd_required_services_list_auto: [] matrix_mautrix_facebook_systemd_required_services_list_auto: []
matrix_mautrix_facebook_systemd_required_services_list_custom: [] matrix_mautrix_facebook_systemd_required_services_list_custom: []

View File

@ -9,7 +9,7 @@ matrix_mautrix_gmessages_container_image_self_build_repo: "https://github.com/ma
matrix_mautrix_gmessages_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_gmessages_version == 'latest' else matrix_mautrix_gmessages_version }}" matrix_mautrix_gmessages_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_gmessages_version == 'latest' else matrix_mautrix_gmessages_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/gmessages # renovate: datasource=docker depName=dock.mau.dev/mautrix/gmessages
matrix_mautrix_gmessages_version: v0.4.1 matrix_mautrix_gmessages_version: v0.4.3
# See: https://mau.dev/mautrix/gmessages/container_registry # See: https://mau.dev/mautrix/gmessages/container_registry
matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_name_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}" matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_name_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}"
@ -67,7 +67,7 @@ matrix_mautrix_gmessages_container_extra_arguments: []
# List of systemd services that matrix-mautrix-gmessages.service depends on. # List of systemd services that matrix-mautrix-gmessages.service depends on.
matrix_mautrix_gmessages_systemd_required_services_list: "{{ matrix_mautrix_gmessages_systemd_required_services_list_default + matrix_mautrix_gmessages_systemd_required_services_list_auto + matrix_mautrix_gmessages_systemd_required_services_list_custom }}" matrix_mautrix_gmessages_systemd_required_services_list: "{{ matrix_mautrix_gmessages_systemd_required_services_list_default + matrix_mautrix_gmessages_systemd_required_services_list_auto + matrix_mautrix_gmessages_systemd_required_services_list_custom }}"
matrix_mautrix_gmessages_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_gmessages_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_gmessages_systemd_required_services_list_auto: [] matrix_mautrix_gmessages_systemd_required_services_list_auto: []
matrix_mautrix_gmessages_systemd_required_services_list_custom: [] matrix_mautrix_gmessages_systemd_required_services_list_custom: []
@ -132,7 +132,7 @@ matrix_mautrix_gmessages_appservice_database_uri: "{{
}[matrix_mautrix_gmessages_database_engine] }[matrix_mautrix_gmessages_database_engine]
}}" }}"
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). # Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth) or Appservice Double Puppet.
matrix_mautrix_gmessages_login_shared_secret: '' matrix_mautrix_gmessages_login_shared_secret: ''
matrix_mautrix_gmessages_bridge_login_shared_secret_map: matrix_mautrix_gmessages_bridge_login_shared_secret_map:
"{{ {matrix_mautrix_gmessages_homeserver_domain: matrix_mautrix_gmessages_login_shared_secret} if matrix_mautrix_gmessages_login_shared_secret else {} }}" "{{ {matrix_mautrix_gmessages_homeserver_domain: matrix_mautrix_gmessages_login_shared_secret} if matrix_mautrix_gmessages_login_shared_secret else {} }}"

View File

@ -9,7 +9,7 @@ matrix_mautrix_googlechat_container_image_self_build_repo: "https://github.com/m
matrix_mautrix_googlechat_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_googlechat_version == 'latest' else matrix_mautrix_googlechat_version }}" matrix_mautrix_googlechat_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_googlechat_version == 'latest' else matrix_mautrix_googlechat_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/googlechat # renovate: datasource=docker depName=dock.mau.dev/mautrix/googlechat
matrix_mautrix_googlechat_version: v0.5.1 matrix_mautrix_googlechat_version: v0.5.2
# See: https://mau.dev/mautrix/googlechat/container_registry # See: https://mau.dev/mautrix/googlechat/container_registry
matrix_mautrix_googlechat_docker_image: "{{ matrix_mautrix_googlechat_docker_image_name_prefix }}mautrix/googlechat:{{ matrix_mautrix_googlechat_version }}" matrix_mautrix_googlechat_docker_image: "{{ matrix_mautrix_googlechat_docker_image_name_prefix }}mautrix/googlechat:{{ matrix_mautrix_googlechat_version }}"
matrix_mautrix_googlechat_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_googlechat_container_image_self_build else 'dock.mau.dev/' }}" matrix_mautrix_googlechat_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_googlechat_container_image_self_build else 'dock.mau.dev/' }}"
@ -83,7 +83,7 @@ matrix_mautrix_googlechat_container_extra_arguments: []
# List of systemd services that matrix-mautrix-googlechat.service depends on. # List of systemd services that matrix-mautrix-googlechat.service depends on.
matrix_mautrix_googlechat_systemd_required_services_list: "{{ matrix_mautrix_googlechat_systemd_required_services_list_default + matrix_mautrix_googlechat_systemd_required_services_list_auto + matrix_mautrix_googlechat_systemd_required_services_list_custom }}" matrix_mautrix_googlechat_systemd_required_services_list: "{{ matrix_mautrix_googlechat_systemd_required_services_list_default + matrix_mautrix_googlechat_systemd_required_services_list_auto + matrix_mautrix_googlechat_systemd_required_services_list_custom }}"
matrix_mautrix_googlechat_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_googlechat_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_googlechat_systemd_required_services_list_auto: [] matrix_mautrix_googlechat_systemd_required_services_list_auto: []
matrix_mautrix_googlechat_systemd_required_services_list_custom: [] matrix_mautrix_googlechat_systemd_required_services_list_custom: []
@ -141,7 +141,7 @@ matrix_mautrix_googlechat_appservice_database: "{{
}}" }}"
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). # Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth) or Appservice Double Puppet.
matrix_mautrix_googlechat_login_shared_secret: '' matrix_mautrix_googlechat_login_shared_secret: ''
matrix_mautrix_googlechat_appservice_bot_username: googlechatbot matrix_mautrix_googlechat_appservice_bot_username: googlechatbot

View File

@ -89,7 +89,7 @@ matrix_mautrix_hangouts_container_extra_arguments: []
# List of systemd services that matrix-mautrix-hangouts.service depends on. # List of systemd services that matrix-mautrix-hangouts.service depends on.
matrix_mautrix_hangouts_systemd_required_services_list: "{{ matrix_mautrix_hangouts_systemd_required_services_list_default + matrix_mautrix_hangouts_systemd_required_services_list_auto + matrix_mautrix_hangouts_systemd_required_services_list_custom }}" matrix_mautrix_hangouts_systemd_required_services_list: "{{ matrix_mautrix_hangouts_systemd_required_services_list_default + matrix_mautrix_hangouts_systemd_required_services_list_auto + matrix_mautrix_hangouts_systemd_required_services_list_custom }}"
matrix_mautrix_hangouts_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_hangouts_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_hangouts_systemd_required_services_list_auto: [] matrix_mautrix_hangouts_systemd_required_services_list_auto: []
matrix_mautrix_hangouts_systemd_required_services_list_custom: [] matrix_mautrix_hangouts_systemd_required_services_list_custom: []

View File

@ -72,7 +72,7 @@ matrix_mautrix_instagram_container_extra_arguments: []
# List of systemd services that matrix-mautrix-instagram.service depends on. # List of systemd services that matrix-mautrix-instagram.service depends on.
matrix_mautrix_instagram_systemd_required_services_list: "{{ matrix_mautrix_instagram_systemd_required_services_list_default + matrix_mautrix_instagram_systemd_required_services_list_auto + matrix_mautrix_instagram_systemd_required_services_list_custom }}" matrix_mautrix_instagram_systemd_required_services_list: "{{ matrix_mautrix_instagram_systemd_required_services_list_default + matrix_mautrix_instagram_systemd_required_services_list_auto + matrix_mautrix_instagram_systemd_required_services_list_custom }}"
matrix_mautrix_instagram_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_instagram_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_instagram_systemd_required_services_list_auto: [] matrix_mautrix_instagram_systemd_required_services_list_auto: []
matrix_mautrix_instagram_systemd_required_services_list_custom: [] matrix_mautrix_instagram_systemd_required_services_list_custom: []

View File

@ -13,7 +13,7 @@ matrix_mautrix_meta_instagram_enabled: true
matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram
# renovate: datasource=docker depName=dock.mau.dev/mautrix/meta # renovate: datasource=docker depName=dock.mau.dev/mautrix/meta
matrix_mautrix_meta_instagram_version: v0.3.1 matrix_mautrix_meta_instagram_version: v0.3.2
matrix_mautrix_meta_instagram_base_path: "{{ matrix_base_data_path }}/mautrix-meta-instagram" matrix_mautrix_meta_instagram_base_path: "{{ matrix_base_data_path }}/mautrix-meta-instagram"
matrix_mautrix_meta_instagram_config_path: "{{ matrix_mautrix_meta_instagram_base_path }}/config" matrix_mautrix_meta_instagram_config_path: "{{ matrix_mautrix_meta_instagram_base_path }}/config"
@ -69,7 +69,7 @@ matrix_mautrix_meta_instagram_container_extra_arguments: []
# List of systemd services that the systemd service depends on. # List of systemd services that the systemd service depends on.
matrix_mautrix_meta_instagram_systemd_required_services_list: "{{ matrix_mautrix_meta_instagram_systemd_required_services_list_default + matrix_mautrix_meta_instagram_systemd_required_services_list_auto + matrix_mautrix_meta_instagram_systemd_required_services_list_custom }}" matrix_mautrix_meta_instagram_systemd_required_services_list: "{{ matrix_mautrix_meta_instagram_systemd_required_services_list_default + matrix_mautrix_meta_instagram_systemd_required_services_list_auto + matrix_mautrix_meta_instagram_systemd_required_services_list_custom }}"
matrix_mautrix_meta_instagram_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_meta_instagram_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_meta_instagram_systemd_required_services_list_auto: [] matrix_mautrix_meta_instagram_systemd_required_services_list_auto: []
matrix_mautrix_meta_instagram_systemd_required_services_list_custom: [] matrix_mautrix_meta_instagram_systemd_required_services_list_custom: []
@ -214,10 +214,9 @@ matrix_mautrix_meta_instagram_bridge_encryption_allow_key_sharing: "{{ matrix_ma
matrix_mautrix_meta_instagram_bridge_encryption_appservice: false matrix_mautrix_meta_instagram_bridge_encryption_appservice: false
matrix_mautrix_meta_instagram_bridge_encryption_require: false matrix_mautrix_meta_instagram_bridge_encryption_require: false
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). matrix_mautrix_meta_instagram_bridge_login_shared_secret_map: "{{ matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_auto | combine(matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_custom) }}"
matrix_mautrix_meta_instagram_bridge_login_shared_secret: '' matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_auto: {}
matrix_mautrix_meta_instagram_bridge_login_shared_secret_map_custom: {}
matrix_mautrix_meta_instagram_bridge_login_shared_secret_map: "{{ {matrix_mautrix_meta_instagram_homeserver_domain: matrix_mautrix_meta_instagram_bridge_login_shared_secret} if matrix_mautrix_meta_instagram_bridge_login_shared_secret else {} }}"
matrix_mautrix_meta_instagram_bridge_permissions: "{{ matrix_mautrix_meta_instagram_bridge_permissions_default | combine(matrix_mautrix_meta_instagram_bridge_permissions_custom) }}" matrix_mautrix_meta_instagram_bridge_permissions: "{{ matrix_mautrix_meta_instagram_bridge_permissions_default | combine(matrix_mautrix_meta_instagram_bridge_permissions_custom) }}"

View File

@ -14,3 +14,12 @@
- {'name': 'matrix_mautrix_meta_instagram_homeserver_address', when: true} - {'name': 'matrix_mautrix_meta_instagram_homeserver_address', when: true}
- {'name': 'matrix_mautrix_meta_instagram_database_hostname', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_meta_instagram_database_hostname', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"}
- {'name': 'matrix_mautrix_meta_instagram_database_password', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"} - {'name': 'matrix_mautrix_meta_instagram_database_password', when: "{{ matrix_mautrix_meta_instagram_database_engine == 'postgres' }}"}
- name: (Deprecation) Catch and report renamed settings
ansible.builtin.fail:
msg: >-
Your configuration contains a variable, which now has a different name.
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
when: "item.old in vars"
with_items:
- {'old': 'matrix_mautrix_meta_instagram_bridge_login_shared_secret', 'new': '<removed>'}

View File

@ -13,7 +13,7 @@ matrix_mautrix_meta_messenger_enabled: true
matrix_mautrix_meta_messenger_identifier: matrix-mautrix-meta-messenger matrix_mautrix_meta_messenger_identifier: matrix-mautrix-meta-messenger
# renovate: datasource=docker depName=dock.mau.dev/mautrix/meta # renovate: datasource=docker depName=dock.mau.dev/mautrix/meta
matrix_mautrix_meta_messenger_version: v0.3.1 matrix_mautrix_meta_messenger_version: v0.3.2
matrix_mautrix_meta_messenger_base_path: "{{ matrix_base_data_path }}/mautrix-meta-messenger" matrix_mautrix_meta_messenger_base_path: "{{ matrix_base_data_path }}/mautrix-meta-messenger"
matrix_mautrix_meta_messenger_config_path: "{{ matrix_mautrix_meta_messenger_base_path }}/config" matrix_mautrix_meta_messenger_config_path: "{{ matrix_mautrix_meta_messenger_base_path }}/config"
@ -69,7 +69,7 @@ matrix_mautrix_meta_messenger_container_extra_arguments: []
# List of systemd services that the systemd service depends on. # List of systemd services that the systemd service depends on.
matrix_mautrix_meta_messenger_systemd_required_services_list: "{{ matrix_mautrix_meta_messenger_systemd_required_services_list_default + matrix_mautrix_meta_messenger_systemd_required_services_list_auto + matrix_mautrix_meta_messenger_systemd_required_services_list_custom }}" matrix_mautrix_meta_messenger_systemd_required_services_list: "{{ matrix_mautrix_meta_messenger_systemd_required_services_list_default + matrix_mautrix_meta_messenger_systemd_required_services_list_auto + matrix_mautrix_meta_messenger_systemd_required_services_list_custom }}"
matrix_mautrix_meta_messenger_systemd_required_services_list_default: ['docker.service'] matrix_mautrix_meta_messenger_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_meta_messenger_systemd_required_services_list_auto: [] matrix_mautrix_meta_messenger_systemd_required_services_list_auto: []
matrix_mautrix_meta_messenger_systemd_required_services_list_custom: [] matrix_mautrix_meta_messenger_systemd_required_services_list_custom: []
@ -214,10 +214,9 @@ matrix_mautrix_meta_messenger_bridge_encryption_allow_key_sharing: "{{ matrix_ma
matrix_mautrix_meta_messenger_bridge_encryption_appservice: false matrix_mautrix_meta_messenger_bridge_encryption_appservice: false
matrix_mautrix_meta_messenger_bridge_encryption_require: false matrix_mautrix_meta_messenger_bridge_encryption_require: false
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). matrix_mautrix_meta_messenger_bridge_login_shared_secret_map: "{{ matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_auto | combine(matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_custom) }}"
matrix_mautrix_meta_messenger_bridge_login_shared_secret: '' matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_auto: {}
matrix_mautrix_meta_messenger_bridge_login_shared_secret_map_custom: {}
matrix_mautrix_meta_messenger_bridge_login_shared_secret_map: "{{ {matrix_mautrix_meta_messenger_homeserver_domain: matrix_mautrix_meta_messenger_bridge_login_shared_secret} if matrix_mautrix_meta_messenger_bridge_login_shared_secret else {} }}"
matrix_mautrix_meta_messenger_bridge_permissions: "{{ matrix_mautrix_meta_messenger_bridge_permissions_default | combine(matrix_mautrix_meta_messenger_bridge_permissions_custom) }}" matrix_mautrix_meta_messenger_bridge_permissions: "{{ matrix_mautrix_meta_messenger_bridge_permissions_default | combine(matrix_mautrix_meta_messenger_bridge_permissions_custom) }}"

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