Compare commits

...

1685 Commits

Author SHA1 Message Date
teutat3s a323cba3c2
Merge branch 'master' into pub.solar 2023-11-10 17:47:17 +01:00
Slavi Pantaleev 8f19d9bbef
Merge pull request #2987 from spantaleev/renovate/frenck-action-yamllint-1.x
Update frenck/action-yamllint action to v1.4.2
2023-11-09 21:34:59 +02:00
Slavi Pantaleev 64f7ae6de8
Merge pull request #2988 from spantaleev/renovate/ghcr.io-matrix-org-sliding-sync-0.x
Update ghcr.io/matrix-org/sliding-sync Docker tag to v0.99.12
2023-11-09 21:34:12 +02:00
renovate[bot] e6be3709f0
Update ghcr.io/matrix-org/sliding-sync Docker tag to v0.99.12 2023-11-09 19:00:31 +00:00
renovate[bot] a0e649286d
Update frenck/action-yamllint action to v1.4.2 2023-11-09 19:00:27 +00:00
Kuba Orlik d74efc1310
Remove mention of Android Element X being less feature complete than the iOS version (#2982)
* Remove mention of Android Element X being less feature complete than iOS version

Quoting upstream:

> Element X Android and Element X iOS apps are in a similar state.
> 
> https://github.com/vector-im/element-x-android/issues/911

* Update configuring-playbook-sliding-sync-proxy.md
2023-11-09 15:08:32 +02:00
Slavi Pantaleev b77a438169 Upgrade Traefik (v2.10.5-0 -> v2.10.5-1) 2023-11-09 13:39:21 +02:00
T. Küchel 81ee0749c8
Update matrix-domain.conf.j2 - trying to fix issue #2954 (#2985)
* Update matrix-domain.conf.j2

exchanged "^~" with "~" as a pattern matching in the location part.
I am very sure, that it only works using "~". I am not quite sure though, if this is the right way to do it, because "~" is probably more expensive than "^~"

the rewrite has to be behind the definition of the $backend. Otherwise nginx will fail to work. This is probably because "break" goes directly to the proxy_pass which uses $backend.

* Update matrix-domain.conf.j2

also change the order of "set $backend" and "rewrite" here in the 3pid registration section

* Update matrix-domain.conf.j2 - repeat v3_to_r0 rewrite in else-statement

as you said: repeat it for the else-case, where the ma1sd might be running on sans_container.

* Update matrix-domain.conf.j2 - corrected wrong variable

atrix_nginx_proxy_proxy_matrix_3pid_registration_v3_to_r0_redirect_enabled
is the right variable to check (twice) in the corresponding branch.

* matrix-domain.conf.j2 - fix-2954: change all whitespaces to tabs as you do it

---------

Co-authored-by: Tobias Küchel <t.kuechel@humboldt-ka.de>
2023-11-09 09:00:25 +02:00
Slavi Pantaleev a88a4c2b82 Use regex-enabled location blocks when matching with regex
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2986
2023-11-08 16:30:02 +02:00
Slavi Pantaleev ad230555e9 Try to fix /_matrix/client/v3 for ma1sd via URL rewriting to (/_matrix/client/r0)
Hopefully fixes: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2954

Untested.

Patch inspired by: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2954#issuecomment-1795029963
2023-11-08 11:31:18 +02:00
Slavi Pantaleev 16dc4e6a1b
Merge pull request #2984 from Chikage0o0/master
add self-build for matrix_user_verification
2023-11-08 10:53:09 +02:00
Chikage 7d668a488e add self-build for matrix_user_verification
Currently v3.0.0 tested with no issues.
So remove matrix_user_verification_service_docker_image from groups_vars.

/.npm must be writable or an error will be reported.
2023-11-08 04:35:24 +09:00
Slavi Pantaleev 9fde401b1c
Merge pull request #2983 from spantaleev/renovate/vectorim-element-web-1.x
Update vectorim/element-web Docker tag to v1.11.48
2023-11-07 19:09:37 +02:00
renovate[bot] 8d87b5c951
Update vectorim/element-web Docker tag to v1.11.48 2023-11-07 16:06:34 +00:00
Slavi Pantaleev c435ecf40a
Merge pull request #2981 from kuba-orlik/patch-2
Remove mention of the need for manual compilation of Element X for custom homeserver
2023-11-06 10:16:47 +02:00
Kuba Orlik b0a2211c13
Update configuring-playbook-sliding-sync-proxy.md 2023-11-06 09:13:10 +01:00
Slavi Pantaleev 59eafd80c7
Merge pull request #2980 from kuba-orlik/patch-1
Fix mention of two ways of setting up LinkedIn double puppeting, when there's only one
2023-11-06 10:05:40 +02:00
Kuba Orlik 7436fd435b
Update configuring-playbook-bridge-beeper-linkedin.md 2023-11-06 08:51:50 +01:00
Slavi Pantaleev ebe7e3b6e0 Forward /_matrix/client/v3 to identity server (not just /_matrix/client/r0)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2954
2023-11-06 09:33:11 +02:00
Slavi Pantaleev ebcafc6518 Upgrade postgres-backup
The new version supports v16.

Related to: https://github.com/devture/com.devture.ansible.role.postgres_backup/pull/3
2023-11-02 18:10:50 +02:00
Slavi Pantaleev 4ff9b0d6a5 Upgrade Heisenbridge (1.14.5 -> 1.14.6) 2023-11-01 09:31:42 +02:00
Slavi Pantaleev 7211c57d38
Merge pull request #2978 from etkecc/patch-315
Update synapse 1.95.0 -> 1.95.1
2023-10-31 17:32:17 +02:00
Aine 090737773f
Update synapse 1.95.0 -> 1.95.1 2023-10-31 17:25:34 +02:00
Slavi Pantaleev bf8694bc0a
Merge pull request #2977 from etkecc/patch-314
Update cinny 3.1.0 -> 3.2.0
2023-10-31 13:53:16 +02:00
Aine 9df69e017b
Update cinny 3.1.0 -> 3.2.0 2023-10-31 13:09:18 +02:00
Slavi Pantaleev 670ae6f602 Upgrade Jitsi (v8960-2 -> v8960-3) and pass jitsi_user_username explicitly
It would work even without explicitly passing `jitsi_user_username` as
auto-detection logic will run. Passing it explicitly spares the Jitsi
role some work.

Related to:

- https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/pull/2
- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2974#issuecomment-1784256903
2023-10-31 08:33:36 +02:00
Slavi Pantaleev 590a75365a
Merge pull request #2976 from thiras/master
Fix matrix-user-verification-service service file
2023-10-31 07:44:18 +02:00
Ant Somers a53ae8a2fc
Fix matrix-user-verification-service file
Related to #2375, #2975, and #2847
2023-10-30 19:49:58 +03:00
Slavi Pantaleev 49f749655d
Merge pull request #2973 from bertybuttface/patch-1
Update ChatGPT Bot
2023-10-27 21:13:35 +03:00
bertybuttface eaa9a52eeb
Update main.yml 2023-10-27 19:06:59 +01:00
Slavi Pantaleev 3901f1f22e
Merge pull request #2972 from spantaleev/renovate/ajbura-cinny-3.x
Update ajbura/cinny Docker tag to v3.1.0
2023-10-27 18:57:15 +03:00
renovate[bot] 65de453988
Update ajbura/cinny Docker tag to v3.1.0 2023-10-27 15:36:35 +00:00
Slavi Pantaleev bac9c5d1d5
Merge pull request #2970 from etkecc/patch-313
Update borgmatic 1.8.3 -> 1.8.4
2023-10-27 11:53:34 +03:00
Aine 09b013adfa
Update borgmatic 1.8.3 -> 1.8.4 2023-10-27 10:11:20 +03:00
Slavi Pantaleev 8444a9ab54
Merge pull request #2969 from etkecc/fix-jitsi-auth
fix jitsi auth (w/ auth; w/o auth), closes #2589
2023-10-26 23:09:31 +03:00
Aine ffc2aef0b2
fix jitsi auth (w/ auth; w/o auth), closes #2589 2023-10-26 22:34:08 +03:00
Slavi Pantaleev 1cd91c496b
Merge pull request #2968 from spantaleev/renovate/linuxserver-ddclient-3.x
Update linuxserver/ddclient Docker tag to v3.11.1
2023-10-26 08:51:30 +03:00
renovate[bot] 338af8151b
Update linuxserver/ddclient Docker tag to v3.11.1 2023-10-25 21:44:12 +00:00
Slavi Pantaleev 33d271efdd Upgrade Dendrite (v0.13.3 -> v0.13.4) 2023-10-25 15:28:52 +03:00
Slavi Pantaleev c540de8cb3
Merge pull request #2966 from spantaleev/renovate/nginx-1.x
Update nginx Docker tag to v1.25.3
2023-10-25 08:58:20 +03:00
renovate[bot] 7c12c508d7
Update nginx Docker tag to v1.25.3 2023-10-25 03:59:15 +00:00
Slavi Pantaleev 0b401bfd0b
Merge pull request #2965 from etkecc/patch-312
Update grafana 10.1.5 -> 10.2.0
2023-10-24 19:10:29 +03:00
Slavi Pantaleev 9032170e8c Upgrade Synapse (v1.94.0 -> v1.95.0) 2023-10-24 19:09:34 +03:00
Aine 90c3e7595e
Update grafana 10.1.5 -> 10.2.0 2023-10-24 18:49:20 +03:00
Slavi Pantaleev d46c02cd6f Upgrade Element (v1.11.46 -> v1.11.47) 2023-10-24 18:25:02 +03:00
Slavi Pantaleev 2d1bd8bf87
Merge pull request #2964 from Mikaela/gitattributes
Add .gitattributes with checking out with lf line endings
2023-10-24 08:04:32 +03:00
Aminda Suomalainen 6b86bed4f9
add .gitattributes with checking out with lf line endings 2023-10-23 19:09:30 +03:00
Slavi Pantaleev 0393bd6356 Update Matrix Room Search indexing statistics again
Fixup for f49e3f1e02.

It appears that many servers are incredibly slow, so the value was
misreported and more are online than previously estimated.
2023-10-23 13:58:40 +03:00
Slavi Pantaleev 3588cf610e Upgrade ddclient (v3.10.0-ls136 -> v3.11.0-ls137)
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2961
2023-10-23 13:57:21 +03:00
Slavi Pantaleev c6f1dfa724 Switch Renovate versioning for matrix-dynamic-dns to semver
Related to e87f5c11d7
2023-10-23 13:54:59 +03:00
Slavi Pantaleev 03f5344c37 Improve changelog entry wording to mention the room directory
Hopefully, this makes it clearer that it's not just "public rooms"
that will now be exposed,
but rather "public rooms which are also published to the room directory".
2023-10-23 12:34:55 +03:00
Slavi Pantaleev f49e3f1e02 Update Matrix Room Search indexing statistics
This brings the values up-to-date as of the latest indexing run done
today. Due to a bug, the previous values were somewhat off.
The new numbers are different and actually demonstrate that the situation is
much worse than initially imagined.
2023-10-23 12:18:08 +03:00
Slavi Pantaleev 01c31dd849 Enable `allow_public_rooms_over_federation` by default for Synapse 2023-10-23 12:11:04 +03:00
Slavi Pantaleev bf53286a5e
Merge pull request #2960 from mcnesium/extend-apache-config-example
Update apache example for support discovery
2023-10-21 18:56:52 +03:00
Slavi Pantaleev e4e5cdbf9c
Merge pull request #2958 from spantaleev/renovate/ajbura-cinny-3.x
Update ajbura/cinny Docker tag to v3
2023-10-21 18:56:00 +03:00
teutat3s a8d362c8b4
Merge branch 'master' into pub.solar 2023-10-21 17:36:00 +02:00
mcnesium 4948f82141
Map /.well-known/matrix/support for support discovery 2023-10-21 15:58:11 +02:00
renovate[bot] 5345125e49
Update ajbura/cinny Docker tag to v3 2023-10-21 13:21:26 +00:00
Slavi Pantaleev 4d93ce752b Upgrade Postgres (v16.0-7 -> v16.0-8) 2023-10-21 08:23:52 +03:00
Slavi Pantaleev 7d2970fd0f
Merge pull request #2956 from etkecc/patch-311
Update MSC1929 integration
2023-10-19 23:19:13 +03:00
Aine 1eb78c97c0
Update MSC1929 integration 2023-10-19 20:39:38 +03:00
Slavi Pantaleev e87f5c11d7 Attempt to make Renovate work for docker.io/devture/exim-relay
It seems like with the default versioning detection strategy (`docker`),
the version is detected up to the hyphen:

> Renovate tries to follow the most common conventions that are used to tag Docker images.
> In particular, Renovate treats the text after the first hyphen as a type of platform/compatibility indicator.

Perhaps with `semver` would be more appropriate for this image.

More details in: https://docs.renovatebot.com/modules/versioning/
2023-10-19 18:59:21 +03:00
Slavi Pantaleev 7d6c80b265
Merge pull request #2955 from spantaleev/renovate/devture-matrix-corporal-2.x
Update devture/matrix-corporal Docker tag to v2.6.0
2023-10-19 18:34:51 +03:00
renovate[bot] 6192e81001
Update devture/matrix-corporal Docker tag to v2.6.0 2023-10-19 15:30:41 +00:00
Slavi Pantaleev a78eb99da1 Upgrade Ansible version on docs/ansible.md (2.13.6-r0-3 -> 2.14.5-r0-0) 2023-10-19 14:21:31 +03:00
Slavi Pantaleev 4a3f132cef Upgrade exim-relay (4.96-r1-0 -> 4.96.2-r0-0) 2023-10-19 12:43:48 +03:00
Slavi Pantaleev b8a92d7778 Upgrade Postgres (v16.0-6 -> v16.0-7)
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2953
2023-10-19 09:17:36 +03:00
Slavi Pantaleev 29b62f77a5 Upgrade Postgres (v16.0-5 -> v16.0-6) - adds auto-tuning 2023-10-18 08:24:52 +03:00
Slavi Pantaleev 5ba6630206
Merge pull request #2950 from etkecc/patch-310
Fix matrix_synapse_oidc_providers parsing
2023-10-17 17:21:56 +03:00
Aine b2dd4bd1a4
Fix matrix_synapse_oidc_providers parsing 2023-10-17 12:09:30 +03:00
Slavi Pantaleev 64e365d738
Merge pull request #2947 from spantaleev/renovate/matrixdotorg-matrix-user-verification-service-3.x
Update matrixdotorg/matrix-user-verification-service Docker tag to v3
2023-10-17 09:32:03 +03:00
renovate[bot] 4dc9a67b2a
Update matrixdotorg/matrix-user-verification-service Docker tag to v3 2023-10-17 06:30:16 +00:00
Slavi Pantaleev a0de26845d
Merge pull request #2945 from spantaleev/renovate/ghcr.io-matrix-org-rageshake-1.x
Update ghcr.io/matrix-org/rageshake Docker tag to v1.11.0
2023-10-17 09:24:29 +03:00
Slavi Pantaleev b909b7f3b8
Merge pull request #2944 from spantaleev/renovate/folivonet-matrix-sms-bridge-0.x
Update folivonet/matrix-sms-bridge Docker tag to v0.5.8
2023-10-17 09:23:47 +03:00
renovate[bot] d985f115d2
Update ghcr.io/matrix-org/rageshake Docker tag to v1.11.0 2023-10-17 06:21:45 +00:00
renovate[bot] 974d66cffe
Update folivonet/matrix-sms-bridge Docker tag to v0.5.8 2023-10-17 06:21:41 +00:00
Slavi Pantaleev 24da40cf17
Merge pull request #2933 from meenzen/renovate-config
Configure renovate to automatically open pull requests for docker image updates
2023-10-16 18:22:01 +03:00
Slavi Pantaleev f6f5360574
Make fileMatch more specific
Hopefully, this makes it run faster and prevents potential false-positives.

Although.. a false-positive is unlikely anyway.
2023-10-16 18:20:09 +03:00
Slavi Pantaleev ec3b204541
Merge branch 'master' into renovate-config 2023-10-16 18:15:53 +03:00
Slavi Pantaleev e58a95159b
Merge pull request #2941 from etkecc/patch-307
Update borgmatic 1.8.2 -> 1.8.3
2023-10-16 17:53:36 +03:00
Slavi Pantaleev 35d86bef1b
Merge pull request #2939 from etkecc/patch-305
Update mautrix-discord 0.6.2 -> 0.6.3
2023-10-16 16:10:57 +03:00
Slavi Pantaleev 89e2abec01
Merge pull request #2940 from etkecc/patch-306
Update mautrix-gmessages 0.2.0 -> 0.2.1
2023-10-16 16:10:41 +03:00
Slavi Pantaleev a2febe6760
Merge pull request #2942 from etkecc/patch-308
Update prometheus 2.47.1 -> 2.47.2
2023-10-16 16:10:05 +03:00
Slavi Pantaleev 7bb227cec6
Merge pull request #2943 from etkecc/patch-309
Update mautrix-whatsapp 0.10.2 -> 0.10.3
2023-10-16 16:09:50 +03:00
Aine 8ca935fca9
Update mautrix-whatsapp 0.10.2 -> 0.10.3 2023-10-16 15:44:43 +03:00
Aine fca22ae922
Update prometheus 2.47.1 -> 2.47.2 2023-10-16 14:52:14 +03:00
Aine 5e91025c3b
Update borgmatic 1.8.2 -> 1.8.3 2023-10-16 14:48:55 +03:00
Aine 153a582e98
Update mautrix-gmessages 0.2.0 -> 0.2.1 2023-10-16 14:46:18 +03:00
Aine 7ba5dee782
Update mautrix-discord 0.6.2 -> 0.6.3 2023-10-16 14:45:15 +03:00
Slavi Pantaleev 1643192be9
Merge pull request #2938 from etkecc/migrate-prometheus-exporters
migrate prometheus exporter roles
2023-10-15 23:52:59 +03:00
Aine 968bf38a29
migrate prometheus exporter roles 2023-10-15 23:13:01 +03:00
Slavi Pantaleev 551547b8f2
Merge pull request #2937 from etkecc/patch-304
update grafana 10.1.4 -> 10.1.5
2023-10-12 19:26:08 +03:00
Aine 3b2cb1cbc2
update grafana 10.1.4 -> 10.1.5 2023-10-12 18:54:16 +03:00
Slavi Pantaleev 4e46fb3cce Upgrade Traefik (v2.10.4-1 -> v2.10.5-0) 2023-10-12 01:09:42 +03:00
Slavi Pantaleev f46de5aa4f
Merge pull request #2936 from nerdoc/patch-1
Update Admin-API link
2023-10-11 22:31:26 +03:00
Slavi Pantaleev af899a6558
Update Synapse Admin APIs link 2023-10-11 22:31:07 +03:00
Christian González 495a890e1c
Update Admin-API link
the old one is deprecated (says the page at the link target), and refers to this new one.
2023-10-11 21:24:29 +02:00
Slavi Pantaleev c301c06a53 Add support for injecting additional environment-variables into sliding-sync 2023-10-11 20:39:02 +03:00
Slavi Pantaleev 2441cf3ab1 Upgrade sliding-sync (v0.99.10 -> v0.99.11) 2023-10-11 20:39:02 +03:00
Slavi Pantaleev d666c5fda9
Merge pull request #2935 from throny/patch-4
Warning Borg users before upgrading to Postgres 16
2023-10-11 12:29:34 +03:00
throny 7e54417fca
Update maintenance-postgres.md
no postgres 16 support with borg, 15 works.
2023-10-11 11:26:42 +02:00
Slavi Pantaleev 954634b580 Make ansible-lint happy 2023-10-11 11:12:28 +03:00
Slavi Pantaleev 3edeb01f3a
Merge pull request #2934 from slikie/master
Update synapse v1.93.0 -> v1.94.0
2023-10-10 15:32:34 +03:00
slikie 37195d49dc
Update main.yml 2023-10-10 19:26:37 +08:00
Slavi Pantaleev 15763e5418 Upgrade Element (v1.11.45 -> v1.11.46) 2023-10-10 12:14:25 +03:00
Slavi Pantaleev dc9ff4e01b Add support for external-IP-address-autodetection to Coturn 2023-10-10 11:10:21 +03:00
Slavi Pantaleev ccbff150cd Upgrade ddclient (v3.10.0-ls135 -> v3.10.0-ls136) 2023-10-10 10:19:34 +03:00
Julian Foad 3e43b9d1c7 client-hydrogen: remove unrelated change (docker push) 2023-10-09 13:28:50 +01:00
Julian Foad 408aec7d5b client-hydrogen: fix self-build
Self-build now requires the new docker buildx/buildkit, so switch
from the ansible docker module to running a docker build command,
like elsewhere.
2023-10-09 11:06:54 +01:00
teutat3s 417ae3c290
Merge branch 'master' into pub.solar 2023-10-08 13:20:53 +02:00
Samuel Meenzen cfefc36477
fix: correct vector-im image name for renovate 2023-10-06 14:38:21 +02:00
Samuel Meenzen c846ed199b
Annotate version numbers with renovate metadata 2023-10-06 14:14:03 +02:00
Samuel Meenzen 3d6af4e54b
fix: also support extracting _tag variables 2023-10-06 14:10:56 +02:00
Samuel Meenzen e647fbd661
Configure Renovate
This adds a custom regex manager so dependencies in yml files can be found.
2023-10-06 12:52:39 +02:00
Slavi Pantaleev 11b032f3ad Pass media_url and displayname to Heisenbridge - do not make it guess
Without explicitly passing the `media_url` configuration,
Heisenbridge would try to guess it. It works most of the time,
but some people are experiencing trouble with it.

There's no need for wasteful work and for potential unreliability,
so we now configure the `media_url` explicitly.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2932
2023-10-06 08:39:13 +03:00
Slavi Pantaleev c8e0f35c94 Upgrade Coturn (4.6.2-r4 -> 4.6.2-r5) 2023-10-05 17:00:59 +03:00
Slavi Pantaleev dbf5c1cd41
Merge pull request #2931 from etkecc/patch-303
Update prometheus 2.47.0 -> 2.47.1
2023-10-04 16:23:20 +03:00
Aine 5ec9349810
Update prometheus 2.47.0 -> 2.47.1 2023-10-04 16:19:09 +03:00
Slavi Pantaleev 36ef8d2cb7
Merge pull request #2930 from HarHarLinks/patch-15
Document how to enable Draupnir report polling
2023-10-03 21:23:39 +03:00
Kim Brose 69a885c5c4
Fix section link 2023-10-03 17:43:39 +02:00
Kim Brose 86422d7342
Document how to enable Draupnir report polling 2023-10-03 17:41:35 +02:00
Slavi Pantaleev 4f38c9e49c
Merge pull request #2928 from HarHarLinks/patch-14
Fix link in Draupnir docs
2023-10-03 17:38:14 +03:00
Slavi Pantaleev 21ef495c2e Upgrade mautrix-googlechat (v0.5.0 -> v0.5.1) 2023-10-03 17:37:54 +03:00
Kim Brose 3d6fd501de
Fix link in Draupnir docs 2023-10-03 15:59:01 +02:00
Slavi Pantaleev 593b3157b9 Fix systemd service Wants for mjolnir and draupnir
Patch contributed by JulianF.
2023-10-03 15:05:30 +03:00
Slavi Pantaleev 3a32fe71fb Upgrade ddclient (v3.10.0-ls131 -> v3.10.0-ls135) 2023-10-03 11:06:09 +03:00
Slavi Pantaleev a573619330
Merge pull request #2927 from etkecc/patch-301
Update borg 1.2.5 -> 1.2.6
2023-10-02 21:05:00 +03:00
Slavi Pantaleev b43d941c6e
Merge pull request #2926 from etkecc/add-synapse-oidc-vars
add matrix_synapse_oidc_enabled and matrix_synapse_oidc_providers vars
2023-10-02 19:32:17 +03:00
Slavi Pantaleev c0e56ac1c4
Make OIDC providers if check safer 2023-10-02 19:32:09 +03:00
Aine e3149afe0b
Update borg 1.2.5 -> 1.2.6 2023-10-02 19:31:34 +03:00
Slavi Pantaleev 793fba5440
Merge pull request #2925 from etkecc/add-tags
add `ensure-users-created` tag alongside with `ensure-matrix-users-created`
2023-10-02 19:30:32 +03:00
Aine 9167a7734e
add matrix_synapse_oidc_enabled and matrix_synapse_oidc_providers vars 2023-10-02 18:40:15 +03:00
Aine 54babc5de0
add `ensure-users-created` tag alongside with `ensure-matrix-users-created` 2023-10-02 18:33:21 +03:00
Slavi Pantaleev 0a4cff56fb Make sliding-sync communicate with the homeserver over the container network
Seems like we don't necessarily need to use a public URL for `SYNCV3_SERVER`.

This possibly helps setups that were having trouble when `SYNCV3_SERVER`
was a public URL (e.g. `https://matrix.DOMAIN`), as described in:
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2912
2023-10-02 07:41:57 +03:00
Slavi Pantaleev 5d6ad42751 Make sure mautrix-wsproxy paths are created
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2923
2023-10-02 07:37:30 +03:00
Slavi Pantaleev a40cb963a9 Do not install docker compose plugin
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2924

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2922
2023-10-02 07:02:45 +03:00
Slavi Pantaleev f988f02e02 Upgrade maubot (v0.4.1 -> v0.4.2) 2023-10-01 10:42:37 +03:00
Slavi Pantaleev ed8f8350c6
Merge pull request #2922 from etkecc/patch-300
Update docker role (sic!)
2023-09-30 06:51:40 +03:00
Slavi Pantaleev 8c76d26788
Merge pull request #2921 from etkecc/patch-299
Update grafana v10.1.2 -> v10.1.4
2023-09-30 06:49:39 +03:00
Aine 515e827391
Update docker role (sic!) 2023-09-30 00:51:44 +03:00
Aine a5d7f1bb25
Update grafana v10.1.2 -> v10.1.4 2023-09-30 00:48:38 +03:00
Slavi Pantaleev 366902f30a Upgrade Element (v1.11.44 -> v1.11.45) 2023-09-29 14:03:54 +03:00
Slavi Pantaleev d51a67a01a Fix self-building for matrix-registration-bot
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2919
2023-09-29 10:11:41 +03:00
Slavi Pantaleev d03fb65280
Merge pull request #2920 from etkecc/patch-298
Update postmoogle 0.9.15 -> 0.9.16
2023-09-28 23:03:02 +03:00
Aine 1769910c5d
Update postmoogle 0.9.15 -> 0.9.16 2023-09-28 22:40:28 +03:00
Slavi Pantaleev 71deacfe55 Upgrade Dendrite (v0.13.2 -> v0.13.3) 2023-09-28 13:55:34 +03:00
Slavi Pantaleev 217ddad2de Add support for configuring forgotten_room_retention_period
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2918

Related to https://github.com/matrix-org/synapse/pull/15488
2023-09-28 12:54:52 +03:00
Slavi Pantaleev af39de9154 Fix matrix-ldap-registration-proxy service stopping when uninstalling 2023-09-27 16:22:24 +03:00
Slavi Pantaleev 860a144283 Revert "Upgrade backup-borg (v1.2.5-1.8.2-1 -> v1.2.5-1.8.2-2)"
This reverts commit fd6daf3d24.

Looks like v1.2.5-1.8.2-2 supposedly offers Postgres v16 support,
but does not work well with it and will need additional work.
2023-09-27 14:14:50 +03:00
Slavi Pantaleev fd6daf3d24 Upgrade backup-borg (v1.2.5-1.8.2-1 -> v1.2.5-1.8.2-2) 2023-09-27 14:09:02 +03:00
Slavi Pantaleev e53b4424f1 Upgrade Synapse (v1.92.3 -> v1.93.0) 2023-09-26 20:16:29 +03:00
Slavi Pantaleev e18c33df20
Merge pull request #2917 from etkecc/patch-297
Update hookshot 4.5.0 -> 4.5.1
2023-09-26 19:54:11 +03:00
Aine 676c380477
Update hookshot 4.5.0 -> 4.5.1 2023-09-26 18:45:32 +03:00
Slavi Pantaleev 8c4234d52a Add note about ANALYZE after Postgres database importing 2023-09-26 17:52:01 +03:00
Slavi Pantaleev 363c0254e7 Upgrade Postgres (v16.0-2 -> v16.0-5) 2023-09-26 17:52:01 +03:00
Slavi Pantaleev b4335bbc97
Merge pull request #2916 from etkecc/patch-296
Update element 1.11.43 -> 1.11.44
2023-09-26 16:51:00 +03:00
Aine 421e5f7792
Update element 1.11.43 -> 1.11.44 2023-09-26 16:49:08 +03:00
Slavi Pantaleev e17b89da37
Merge pull request #2915 from etkecc/patch-295
Update hookshot 4.4.1 -> 4.5.0
2023-09-26 15:55:41 +03:00
Aine 250a7845e9
Update hookshot 4.4.1 -> 4.5.0 2023-09-26 15:35:42 +03:00
Slavi Pantaleev cad5394b0c
Merge pull request #2914 from etkecc/patch-294
Update etherpad 1.9.2 -> 1.9.3
2023-09-26 12:33:38 +03:00
Aine 8f269a1c20
Update etherpad 1.9.2 -> 1.9.3 2023-09-26 12:00:28 +03:00
Slavi Pantaleev dc595bf10e
Merge pull request #2911 from mcnesium/patch-1
fix link to configuring-playbook-matrix-media-repo.md
2023-09-23 13:09:40 +03:00
mcnesium 642924514f
fix link to configuring-playbook-matrix-media-repo.md 2023-09-23 11:18:53 +02:00
Slavi Pantaleev cb7ad41051
Merge pull request #2910 from etkecc/postmoogle-0915
update postmoogle 0.9.14 -> 0.9.15
2023-09-22 20:32:43 +03:00
Aine 777d5ebd3b
update postmoogle 0.9.14 -> 0.9.15 2023-09-22 20:10:51 +03:00
Slavi Pantaleev 82e3b6c988 Upgrade Jitsi (v8960-0 -> v8960-1) 2023-09-22 13:05:14 +03:00
teutat3s b5d6388a09
Merge branch 'master' into pub.solar 2023-09-20 14:49:50 +02:00
Slavi Pantaleev 7257c846f3
Merge pull request #2907 from FSG-Cat/Mjolnir_Draupnir_Doc_Fix
Fix Draupnir and Mjolnir Docs bugs
2023-09-20 15:46:33 +03:00
Catalan Lover c689845f55
Fix Draupnir and Mjolnir Docs bugs
Rate limit docs had a issue due to the wrong request type by accident. This was not noticed due to both bots can work with rate limits. Synapse Admin links where also bugged but now fixed.
2023-09-20 14:41:50 +02:00
Slavi Pantaleev 0e96d7f57a Upgrade prometheus-postgres-exporter (v0.13.2-0 -> v0.14.0-0) 2023-09-20 09:50:41 +03:00
Slavi Pantaleev 2587980e6d Fix beeper-linkedin self-building when version is set to latest
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2905#issuecomment-1726892215
2023-09-20 09:39:05 +03:00
Slavi Pantaleev 3799180563
Merge pull request #2905 from etkecc/patch-293
Update beeper-linkedin 0.5.4 -> latest (security fix)
2023-09-19 22:39:50 +03:00
Slavi Pantaleev d6c4e92314
Merge pull request #2904 from etkecc/patch-292
Update mautrix-twitter 0.1.6 -> 0.1.7
2023-09-19 22:39:31 +03:00
Slavi Pantaleev fe8af7aa70
Merge pull request #2903 from etkecc/patch-291
Update mautrix-whatsapp 0.10.1 -> 0.10.2
2023-09-19 22:39:11 +03:00
Slavi Pantaleev e31df65e4a
Merge pull request #2902 from etkecc/patch-290
Update mautrix-instagram 0.3.0 -> 0.3.1
2023-09-19 22:39:01 +03:00
Slavi Pantaleev 17e377f01a
Merge pull request #2901 from etkecc/patch-289
Update mautrix-facebook 0.5.0 -> 0.5.1
2023-09-19 22:38:44 +03:00
Slavi Pantaleev 70dcbd3552
Merge pull request #2900 from etkecc/patch-288
Update telegram 0.14.1 -> 0.14.2
2023-09-19 22:38:23 +03:00
Aine c611f85acb
Update beeper-linkedin 0.5.4 -> latest 2023-09-19 22:22:27 +03:00
Aine 1ea4d3f13d
Update mautrix-twitter 0.1.6 -> 0.1.7 2023-09-19 22:03:12 +03:00
Aine d6c68f2701
Update mautrix-whatsapp 0.10.1 -> 0.10.2 2023-09-19 22:02:11 +03:00
Aine 0ca8d993e1
Update mautrix-instagram 0.3.0 -> 0.3.1 2023-09-19 22:00:40 +03:00
Aine 98858c3ec5
Update mautrix-facebook 0.5.0 -> 0.5.1 2023-09-19 21:59:49 +03:00
Aine d2630ccf98
Update telegram 0.14.1 -> 0.14.2 2023-09-19 21:58:50 +03:00
Slavi Pantaleev 2eabcb19ee
Merge pull request #2898 from etkecc/patch-287
Update grafana 10.1.1 -> 10.1.2
2023-09-19 11:42:23 +03:00
Aine f2d9e0d33d
Update grafana 10.1.1 -> 10.1.2 2023-09-19 11:19:05 +03:00
Slavi Pantaleev 8028a7c831 Upgrade Jitsi (v8922-1 -> v8960-0) 2023-09-19 10:01:10 +03:00
Slavi Pantaleev 7586cecedf Upgrade Synapse (v1.92.2 -> v1.92.3) 2023-09-18 18:00:15 +03:00
Slavi Pantaleev c54a3532e0
Merge pull request #2896 from etkecc/patch-285
Make borgmatic container tmp dir size configurable
2023-09-18 11:07:03 +03:00
Aine eefc12acc2
Make borgmatic container tmp dir size configurable 2023-09-18 10:57:05 +03:00
teutat3s b2626a5a0c
Merge branch 'master' into pub.solar 2023-09-16 20:18:04 +02:00
Slavi Pantaleev 56c7c1a4bc Upgrade mautrix-whatsapp (0.10.0 -> 0.10.1) 2023-09-16 19:51:28 +03:00
Slavi Pantaleev f7d0d4631c Upgrade mautrix-gmessages (v0.1.0 -> v0.2.0) 2023-09-16 19:51:00 +03:00
Slavi Pantaleev be94568524 Upgrade mautrix-discord (0.6.1 -> 0.6.2) 2023-09-16 19:50:36 +03:00
Slavi Pantaleev 5bc6ca2af5 Switch from devture_postgres_systemd_services_to_stop_for_maintenance_list to devture_postgres_systemd_services_to_stop_for_maintenance_list_auto
Only available since v16.0-2 of the Postgres role.
2023-09-16 11:41:07 +03:00
Slavi Pantaleev de2bd4f5ea Upgrade Postgres (v16.0-1 -> v16.0-2) 2023-09-16 11:40:48 +03:00
Slavi Pantaleev bff851c858 Properly stop all services when doing Postgres maintenance, not just the homeserver 2023-09-16 11:39:39 +03:00
Slavi Pantaleev e033520ce2 Make Synapse worker systemd service files depend on matrix-synapse.service
Many of these do depend on the Synapse master process (`matrix-synapse.service`),
so it makes sense to do it.

Furthermore, we're doing it so that one can stop the `matrix-synapse.service`
service and have systemd cascade this into stopping all the workers as well.

This is useful for easily stopping all of Synapse, so that Postgres
upgrades (`--tags=upgrade-postgres`) can happen cleanly.
Postgres upgrades currently stop `devture_postgres_systemd_services_to_stop_for_maintenance_list` which
includes Synapse, but stopping just the master process and leaving workers running is not safe enough and sometimes leads to errors like:

> ERROR:  insert or update on table "event_forward_extremities" violates foreign key constraint "event_forward_extremities_event_id"

With this dependency in place, stopping `matrix-synapse.service` will stop all Synapse processes.
2023-09-16 11:37:24 +03:00
Slavi Pantaleev a0f9b1b051 Fix Schildichat config cleanup for matrix-nginx-proxy 2023-09-16 10:27:50 +03:00
Slavi Pantaleev 2376c920d8 Upgrade Postgres (v16.0-0 -> v16.0-1) 2023-09-16 10:08:33 +03:00
Slavi Pantaleev d38bfe93e9 Upgrade Postgres (v15.4-1 -> v16.0-0) 2023-09-16 10:06:30 +03:00
Slavi Pantaleev 2e2acd7ba1
Merge pull request #2893 from array-in-a-matrix/patch-24
Update matrix-appservice-discord
2023-09-15 18:27:10 +03:00
Array in a Matrix 581274dabb
Update matrix-appservice-discord 2023-09-15 11:08:15 -04:00
Slavi Pantaleev 7002e4e4af
Merge pull request #2892 from etkecc/patch-284
Update synapse 1.92.1 -> 1.92.2 (security fix)
2023-09-15 16:18:42 +03:00
Aine f0e2e97aa4
Update synapse 1.92.1 -> 1.92.2 (security fix) 2023-09-15 16:10:33 +03:00
Slavi Pantaleev c6c78a65ef
Merge pull request #2891 from etkecc/patch-283
Update element 1.11.42 -> 1.11.43
2023-09-15 15:34:48 +03:00
Aine 781166e819
Update element 1.11.42 -> 1.11.43 2023-09-15 15:27:17 +03:00
Slavi Pantaleev e0594c7115
Merge pull request #2888 from etkecc/patch-281
Update Element 1.11.41 -> 1.11.42
2023-09-13 16:11:28 +03:00
Aine 915a5009ac
Update Element 1.11.41 -> 1.11.42 2023-09-13 15:43:07 +03:00
Slavi Pantaleev 70622ca7e6
Merge pull request #2885 from etkecc/patch-280
Update jitsi v8922-0 -> v8922-1
2023-09-12 20:08:39 +03:00
Aine 020bfbd3a4
Update jitsi v8922-0 -> v8922-1 2023-09-12 19:46:54 +03:00
Slavi Pantaleev ca9ebcd5f2 Upgrade Element (v1.11.40 -> v1.11.41) 2023-09-12 19:35:56 +03:00
Slavi Pantaleev ef90142720 Handle /notifications endpoint via workers
Related to https://github.com/matrix-org/synapse/pull/16265
2023-09-12 18:32:32 +03:00
Slavi Pantaleev 963e97214b Upgrade Synapse (v1.91.2 -> v1.92.1) 2023-09-12 18:32:32 +03:00
Slavi Pantaleev bb78b81cd4
Merge pull request #2884 from FSG-Cat/Draupnir-1-85-1
Update Draupnir from 1.85.0 to 1.85.1
2023-09-12 17:03:10 +03:00
Catalan Lover c7c1acc3f3
Update Draupnir from 1.85.0 to 1.85.1 2023-09-12 15:42:31 +02:00
Slavi Pantaleev 1c847c5144 Upgrade Postgres (v15.4-0 -> v15.4-1) 2023-09-12 12:35:42 +03:00
Slavi Pantaleev 636aed0916 Upgrade Postgres (minor versions upgrade) 2023-09-12 12:18:58 +03:00
Slavi Pantaleev fe9b72e6f9
Merge pull request #2883 from xangelix/fix-mautrix-gmessages-branch
Fix mautrix-gmessages branch
2023-09-10 08:01:10 +03:00
Cody Wyatt Neiman d210b3b48f
Fix mautrix-gmessages branch 2023-09-09 19:07:34 -04:00
Slavi Pantaleev 611f859e5e
Merge pull request #2880 from FSG-Cat/Draupnir-1-85-0
Update Draupnir from 1.84.0 to 1.85.0
2023-09-07 21:02:38 +03:00
Catalan Lover a9ece0c55a
Remove trailing spaces making linter unhappy 2023-09-07 19:36:49 +02:00
Catalan Lover 2f6829e6d7
Replace links to Gnuxie/Draupnir with the-draupnir-project/Draupnir
Draupnir moved its repo on github from the namespace of its maintainer Gnuxie to a newly created Github Organisation the-draupnir-project and this commit reflects this.
2023-09-07 19:33:25 +02:00
Catalan Lover 7ee720f138
Update Draupnir from 1.84.0 to 1.85.0 and update default configuration 2023-09-07 19:19:11 +02:00
Catalan Lover 6f7cdd2f71
Change Draupnir Repo to New Repo
Draupnir changed home from Gnuxie/Draupnir to the-draupnir-project/Draupnir and this commit reflects this.
2023-09-07 19:08:33 +02:00
Slavi Pantaleev bf6cf40628
Merge pull request #2879 from etkecc/patch-279
Update sliding-sync 0.99.9 -> 0.99.10
2023-09-07 16:29:54 +03:00
Aine faef601f0d
Update sliding-sync 0.99.9 -> 0.99.10 2023-09-07 16:29:07 +03:00
Slavi Pantaleev 0ab8ccfdb1
Merge pull request #2877 from etkecc/patch-277
Update sliding-sync 0.99.8 -> 0.99.9
2023-09-06 22:59:56 +03:00
Slavi Pantaleev 89d4fa529a
Merge pull request #2878 from etkecc/patch-278
Update synapse 1.91.1 -> 1.91.2
2023-09-06 22:59:42 +03:00
Aine 6f9dee867c
Update synapse 1.91.1 -> 1.91.2 2023-09-06 20:41:29 +03:00
Aine d0f602b5e9
Update sliding-sync 0.99.8 -> 0.99.9 2023-09-06 20:40:50 +03:00
Slavi Pantaleev 7254e4e0ce
Merge pull request #2876 from etkecc/patch-276
enable etherpad framing by default - it's meant to be embedded
2023-09-06 15:07:10 +03:00
Aine b5be7672c5
enable etherpad framing by default - it's meant to be embedded 2023-09-06 14:21:42 +03:00
Slavi Pantaleev 71f4b24514
Merge pull request #2875 from etkecc/patch-275
Update prometheus 2.45.0 -> 2.47.0
2023-09-06 14:20:13 +03:00
Aine d72b74071d
Update prometheus 2.45.0 -> 2.47.0 2023-09-06 13:32:49 +03:00
Slavi Pantaleev 9b4828a5dc
Merge pull request #2873 from saces/synatainer
update defaults for new tools container
2023-09-06 09:05:27 +03:00
saces 2000e61d31 force pull booth on :stable and :latest 2023-09-05 23:26:30 +02:00
saces 2c25648051 change image tag to version
Signed-off-by: saces <saces@c-base.org>
2023-09-05 22:35:01 +02:00
saces c260309625 update defaults for new tools container
Signed-off-by: saces <saces@c-base.org>
2023-09-05 20:29:28 +02:00
teutat3s 12102e0a14
Merge branch 'master' into pub.solar 2023-09-05 11:48:48 +02:00
Slavi Pantaleev 8a6f413e5f
Merge pull request #2870 from spantaleev/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-04 21:29:10 +03:00
dependabot[bot] f5b6d3337b
Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 16:05:31 +00:00
Slavi Pantaleev 2b2ea4cf09
Merge pull request #2869 from etkecc/patch-273
Update jitsi v8615 -> v8922
2023-09-04 18:12:01 +03:00
Aine 34937061a2
Update jitsi v8615 -> v8922 2023-09-04 18:11:22 +03:00
Slavi Pantaleev a524d35bb7
Merge pull request #2868 from etkecc/patch-272
Update synapse 1.91.0 -> 1.91.1
2023-09-04 18:09:46 +03:00
Aine ea7a55b7dd
Update synapse 1.91.0 -> 1.91.1 2023-09-04 18:07:17 +03:00
teutat3s 1412d52947
Merge branch 'master' into pub.solar 2023-09-04 14:45:20 +02:00
Slavi Pantaleev f4829d6988 Upgrade Hydrogen (v0.4.0 -> v0.4.1) 2023-09-04 15:23:21 +03:00
Slavi Pantaleev 5edf25efe4
Merge pull request #2865 from etkecc/patch-271
Update honoroit 0.9.18 -> 0.9.19
2023-09-01 19:30:47 +03:00
Aine ccaae4d5b7
Update honoroit 0.9.18 -> 0.9.19 2023-09-01 18:38:42 +03:00
Slavi Pantaleev a39445204e
Merge pull request #2863 from etkecc/patch-269
Update grafana 10.1.0 -> 10.1.1
2023-09-01 14:54:26 +03:00
Slavi Pantaleev 9943166e34
Merge pull request #2864 from etkecc/patch-270
Update sliding-sync 0.99.7 -> 0.99.8
2023-09-01 14:54:06 +03:00
Aine 5d61a73fac
Update sliding-sync 0.99.7 -> 0.99.8 2023-09-01 13:47:18 +03:00
Aine b8b166f594
Update grafana 10.1.0 -> 10.1.1 2023-09-01 13:46:18 +03:00
Slavi Pantaleev 35294046b4
Do not enable SchildiChat by default
Related to #2851 

Fixes #2861
2023-09-01 12:02:57 +03:00
Slavi Pantaleev 4541ba1b4c
Merge pull request #2858 from array-in-a-matrix/patch-23
Improved README descriptions
2023-09-01 09:37:31 +03:00
Slavi Pantaleev 4f47b65c5c
Merge pull request #2859 from etkecc/patch-268
Update borg v1.2.4 -> v1.2.5
2023-09-01 09:36:58 +03:00
Aine efd7f4b3b8
Update borg v1.2.4 -> v1.2.5 2023-08-31 23:20:13 +03:00
Array in a Matrix 7322e3bfb5
Improve bridge descriptions 2023-08-31 14:59:38 -04:00
Array in a Matrix 8b9143a1e5
Add more descriptive description 2023-08-31 14:49:06 -04:00
Slavi Pantaleev e6659983f2
Merge pull request #2857 from array-in-a-matrix/patch-22
Added SchildiChat DNS record
2023-08-31 21:00:44 +03:00
Array in a Matrix e943a691f9
Added SchildiChat DNS record 2023-08-31 13:59:24 -04:00
Slavi Pantaleev b0e8b4ee12
Merge pull request #2854 from etkecc/patch-267
make synapse even more quiet
2023-08-31 19:44:08 +03:00
Aine 12f316405b
make synapse even more quiet 2023-08-31 19:32:57 +03:00
Slavi Pantaleev 96ee825459
Merge pull request #2852 from etkecc/patch-266
fix schildichat link in readme
2023-08-31 13:43:02 +03:00
Slavi Pantaleev 99822c77fa Announce SchildiChat
Related to: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2851
2023-08-31 13:42:40 +03:00
Aine b70081b4e9
fix schildichat link in readme 2023-08-31 13:34:42 +03:00
Slavi Pantaleev 054583dfc3
Merge pull request #2851 from etkecc/add-client-schildichat
add SchildiChat client
2023-08-31 13:18:49 +03:00
Aine f370107344
cleanup schildichat a bit 2023-08-31 11:22:09 +03:00
Aine b657117beb
schildichat fixes 2023-08-30 23:03:33 +03:00
Aine 86655db995
add SchildiChat client 2023-08-30 19:23:52 +03:00
teutat3s cb91cb81b7
Merge branch 'master' into pub.solar 2023-08-30 18:07:39 +02:00
Slavi Pantaleev f19ea93ac8
Merge pull request #2850 from slikie/synapse-bump
Update synapse 1.90.0 -> 1.91.0
2023-08-30 17:57:34 +03:00
slikie 4acaeac7aa
Update synapse 1.90.0 -> 1.91.0 2023-08-30 22:31:15 +08:00
Slavi Pantaleev b0fb3814a5 Make Synapse quieter by default
Hopefully fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2849

Related to:
- https://github.com/matrix-org/synapse/issues/16101
- https://github.com/matrix-org/synapse/issues/16208
2023-08-30 12:53:20 +03:00
Slavi Pantaleev abdb4375db Add matrix_synapse_additional_loggers_auto and matrix_synapse_additional_loggers_custom 2023-08-30 12:53:20 +03:00
Slavi Pantaleev 44ee716f54
Merge pull request #2848 from chagai95/patch-1
Add a small tip to maintenance-migrating.md
2023-08-30 11:10:10 +03:00
chagai95 8ba1e771b9
Add a small tip to maintenance-migrating.md 2023-08-30 10:00:32 +02:00
Slavi Pantaleev 17124a0548 Upgrade Element (v1.11.39 -> v1.11.40) 2023-08-29 15:12:10 +03:00
Slavi Pantaleev cc7244c14d Fix Synapse sub-component (worker, S3, ..) uninstallation
matrix-synapse/tasks/setup_uninstall.yml would previously not run unless
Synapse was completely disabled.
2023-08-29 14:53:28 +03:00
Slavi Pantaleev ba1cce1316 Add Project source code URL comment to matrix-sliding-sync role 2023-08-29 07:04:55 +03:00
Slavi Pantaleev d207edb304 Deprecate matrix_synapse_spam_checker in favor of matrix_synapse_modules 2023-08-26 20:09:37 +03:00
Slavi Pantaleev e03ec11fcf Switch mjolnir-antispam from using spam_checker to modules
`spam_checker` has been deprecated for quite a while.
While it still probably works and while newer versions of
mjolnir-antispam still use it, we should switch to the new API.
2023-08-26 20:07:40 +03:00
Slavi Pantaleev 4e08ad98b6 Upgrade mjolnir-antispam (1.4.0 -> v1.6.4) 2023-08-26 20:05:03 +03:00
Slavi Pantaleev af636a1bb0 Upgrade ntfy (v2.7.0-0 -> v2.7.0-2) and switch it to a non-privileged port
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2846
2023-08-26 08:21:15 +03:00
Slavi Pantaleev 767b86edca
Merge pull request #2845 from davidmehren/upgrade-sliding-sync
Upgrade sliding-sync (v0.99.5 -> v0.99.7)
2023-08-25 20:00:56 +03:00
David Mehren 04d9183904
Upgrade sliding-sync (v0.99.5 -> v0.99.7) 2023-08-25 18:43:57 +02:00
blotree 0c88408bb7
Update docs for older appservice bridges to enable legacy authorization (#2841)
* Update docs for older appservice bridges to enable legacy authorization

* Update docs/configuring-playbook-bridge-appservice-discord.md

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

* Update docs/configuring-playbook-bridge-appservice-webhooks.md

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

* further fix formatting

---------

Co-authored-by: blotree <teruyo@touhou-project.com>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-08-25 15:53:28 +03:00
Slavi Pantaleev 4873b18000 Do not assume the jitsi_jvb_servers group is defined in everyone's inventory
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2842
2023-08-25 15:50:10 +03:00
Slavi Pantaleev a036987ba4 Do not define devture_traefik_provider_configuration_extension_yaml in group_vars/matrix_servers
`devture_traefik_provider_configuration_extension_yaml` should not be
set automatically by the playbook. It's a variable to be used by users.

Moreover, setting for for everyone (not just people who have additional JVBs)
means that for most people the following error will be produced:

> 'dict object' has no attribute 'jitsi_jvb_servers'

.. as detailed in https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2844

Fixes a regression introduced in: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2842
2023-08-25 15:44:51 +03:00
Slavi Pantaleev b7a0db2d7c Upgrade Grafana (v10.0.3-0 -> v10.1.0-0) 2023-08-25 11:57:52 +03:00
Slavi Pantaleev a4e642e3f4 Mark matrix_nginx_proxy_proxy_jitsi_additional_jvbs as deprecated
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2842
2023-08-25 10:22:25 +03:00
Slavi Pantaleev bd830053ef
Merge pull request #2842 from aptiko/issue2721-traefik-additional-jvb
Proxy additional JVBs through traefik (fixes #2721)
2023-08-25 10:19:44 +03:00
Antonis Christofides 242e0ee829 Proxy additional JVBs through traefik (fixes #2721)
Traefik wasn't proxying /colibri-ws/jvb-X/ to additional jvbs. This
fixes it.

This contribution is provided by GRNET S.A. (grnet.gr).
2023-08-24 18:07:50 +03:00
Antonis Christofides 0d8b66abd7 Simplify additional JVB configuration
The variable matrix_nginx_proxy_proxy_jitsi_additional_jvbs isn't
needed, as this information is already in the inventory.

This contribution is provided by GRNET S.A. (grnet.gr).
2023-08-24 18:07:50 +03:00
Slavi Pantaleev 5fc254ef11 Upgrade Dendrite (v0.13.1 -> v0.13.2) 2023-08-23 19:54:37 +03:00
Slavi Pantaleev ef6f7f1ab9 Add DNS section to wsproxy docs
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2261
2023-08-23 15:17:03 +03:00
Slavi Pantaleev 9f90510d53 Announce mautrix-wsproxy support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2261
2023-08-23 15:13:38 +03:00
Johan Swetzén 4299d4ebd5
wsproxy for Android SMS (#2261)
* Inital work, copeid from mautrix-amp PR

* Some fixes leftover code copeid over from whatsapp

* Got it to run and register

* Fixed service issue with docker image

* I now realize I need 2 roles wsproxy and imessage

* Got someting working, still rough

* Closer to working but still not working

* reverting ports

* Update main.yml

* Add matrix-nginx-proxy config for mautrix-wsproxy

* Changed

* Add back file

* fix for error hopefully

* Changed the the way nginx was recieved

* basically did not add anything ugh

* Added some arguments

* just trying stuff now

* Ugh i messed up port number

* Changed docs

* Change dns config

* changed generic secret key

* Testing new nginx proxy

* test

* Fix linting errors

* Add mautrix syncproxy to wsproxy for Android SMS

* WIP

* Move wsproxy to custom

* Squashed commit of the following:

commit 943189a9aa
Merge: 4a229d68 f5a09f30
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sun Nov 13 08:54:32 2022 +0200

    Merge pull request #2259 from throny/patch-3

    warn users about upgrading to pg15 when using borg

commit 4a229d6870
Merge: 9b326e08 c68def08
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sun Nov 13 08:53:13 2022 +0200

    Merge pull request #2260 from etkecc/patch-117

    Update ntfy 1.28.0 -> 1.29.0

commit f5a09f30b7
Author: throny <m.throne12@gmail.com>
Date:   Sat Nov 12 23:48:57 2022 +0100

    Update maintenance-postgres.md

commit b12cdbd99d
Author: throny <m.throne12@gmail.com>
Date:   Sat Nov 12 23:40:46 2022 +0100

    Update maintenance-postgres.md

commit c68def0809
Author: Aine <97398200+etkecc@users.noreply.github.com>
Date:   Sat Nov 12 22:01:31 2022 +0000

    Update ntfy 1.28.0 -> 1.29.0

commit adbc09f152
Author: throny <m.throne12@gmail.com>
Date:   Sat Nov 12 11:20:43 2022 +0100

    warn users about upgrading to pg15 when using borg

* Fix linting errors

* Cleanup after merge

* Correct outdated variable names

* Enable both Android and iMessage with wsproxy

* Restructure wsproxy service defs and nginx config

* Fix linter errors

* Apply suggestions from code review

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

* Fix comments for documentation, volumes and ports

* Correct mount syntax

* Complete network and traefik support for wsproxy

* Remove wsproxy data_path

* Fix wsproxy service definitions

* Actually include syncproxy service

* Remove wsproxy PathPrefix, it needs a subdomain

There's no setting in the iMessage bridge that allows a path.
Also don't bind port by default, wsproxy has no TLS.
Syncproxy should never expose a port, it's only internal.

---------

Co-authored-by: hanthor <jreilly112@gmail.com>
Co-authored-by: Miguel Alatzar <miguel@natrx.io>
Co-authored-by: Shreyas Ajjarapu <github.tzarina@aleeas.com>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-08-23 15:05:32 +03:00
Slavi Pantaleev 6427397486 Do not hardcode sslmode=disable to Postgres connection strings - make it configurable
This is backward-compatible with what we had before. We're not changing
the SSL mode - just making it configurable.

Most components are defaulting to `sslmode=disable`, while some
(`matrix-bot-matrix-reminder-bot` and others) do not specify an `sslmode` at all.

We're making sslmode configurable, because certain external Postgres
servers may be configured to require SSL encryption.
In such cases `sslmode=disable` does not work and needs to be changed to
`sslmode=require` or something else (`verify-ca`, `verify-full`, etc).
2023-08-22 19:40:50 +03:00
Slavi Pantaleev 21dbabb734
Merge pull request #2838 from etkecc/master-5
Update borgmatic 1.7.15 -> 1.8.2
2023-08-22 13:53:49 +03:00
Aine 454cd83670
Update borgmatic 1.7.15 -> 1.8.2 2023-08-22 09:59:25 +03:00
Slavi Pantaleev 76fb5693d2
Merge pull request #2837 from FSG-Cat/Draupnir-1-84-0
Update Draupnir from 1.83.0 to 1.84.0
2023-08-21 16:22:00 +03:00
Catalan Lover a9518e721a
Add Arm64 as valid prebuilt container architecture for Draupnir 2023-08-21 15:10:57 +02:00
Catalan Lover e127e6f464
Update Draupnir from 1.83.0 to 1.84.0 2023-08-21 14:46:25 +02:00
Slavi Pantaleev e7b403d870
Merge pull request #2832 from etkecc/master-4
Update redis 7.0.12 -> 7.2.0
2023-08-18 09:03:21 +03:00
Aine b7076719c7
Update redis 7.0.12 -> 7.2.0 2023-08-18 08:50:06 +03:00
Slavi Pantaleev f18d90704f
Merge pull request #2831 from etkecc/master
update etherpad (1.9.0 -> 1.9.2); update ntfy (2.6.2 -> 2.7.0)
2023-08-18 08:32:12 +03:00
Aine 221dd613f0
update etherpad (1.9.0 -> 1.9.2); update ntfy (2.6.2 -> 2.7.0) 2023-08-18 01:41:30 +03:00
Slavi Pantaleev c9a549b1f5 Upgrade mautrix-discord (0.6.0 -> 0.6.1) 2023-08-17 10:39:49 +03:00
Slavi Pantaleev 33e56f44ca Upgrade mautrix-whatsapp (0.9.0 -> 0.10.0) 2023-08-17 10:39:49 +03:00
Slavi Pantaleev afd3e1bd9d Pin mautrix-gmessages to v0.1.0
Related to https://github.com/mautrix/gmessages/releases/tag/v0.1.0
2023-08-17 10:39:42 +03:00
Slavi Pantaleev c63a540d43
Merge pull request #2830 from etkecc/master
update docker role; update prometheus node exporter (1.6.0 -> 1.6.1)
2023-08-16 10:31:31 +03:00
Aine 5da7b911f7
update docker role; update prometheus node exporter (1.6.0 -> 1.6.1) 2023-08-16 10:23:07 +03:00
Slavi Pantaleev 2253176ec7
Merge pull request #2829 from etkecc/master
update nginx 1.25.1 -> 1.25.2
2023-08-16 10:15:03 +03:00
Slavi Pantaleev 80109e7a5d
Merge pull request #2828 from etkecc/master-3
Update redis 7.0.10 -> 7.0.12
2023-08-16 10:14:39 +03:00
Aine 4fb0a0222e
Update redis 7.0.10 -> 7.0.12 2023-08-16 10:10:39 +03:00
Aine e7e81f7828
update nginx 1.25.1 -> 1.25.2 2023-08-16 10:09:30 +03:00
Slavi Pantaleev 4574ebbd31 Add notes about Dimension being unmaintained
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806
2023-08-16 09:17:37 +03:00
Slavi Pantaleev 8903b1e341 Upgrade Heisenbridge (1.14.4 -> 1.14.5) 2023-08-16 07:10:07 +03:00
Slavi Pantaleev bdc2337fbf
Merge pull request #2826 from etkecc/master-2
Update Element 1.11.38 -> 1.11.39
2023-08-15 21:35:59 +03:00
Aine f55d5be6c3
Update Element 1.11.38 -> 1.11.39 2023-08-15 20:59:54 +03:00
Slavi Pantaleev ec255936f7
Merge pull request #2824 from slikie/synapse-bump
Update synapse 1.89.0 -> 1.90.0
2023-08-15 19:58:46 +03:00
slikie 68562173e7
bump synapse to v1.90.0 2023-08-15 22:37:35 +08:00
Slavi Pantaleev 75d4b53484 Upgrade ddclient (v3.10.0-ls126 -> v3.10.0-ls131) 2023-08-15 11:17:41 +03:00
Slavi Pantaleev aad6300f6f
Merge pull request #2821 from meenzen/master-1
Advertise sliding-sync support when using conduit
2023-08-14 08:37:58 +03:00
Samuel Meenzen e01a6f2972 fix: `recursive loop detected in template string` error 2023-08-11 08:46:03 +00:00
Samuel Meenzen 28b736fc9d docs: conduit sliding sync support 2023-08-11 08:30:22 +00:00
Samuel Meenzen 837cca4ee1 Move sliding sync url logic out of matrix-client.j2 2023-08-11 08:13:49 +00:00
Samuel Meenzen 9faa65f059
Advertise sliding-sync support when using conduit
Starting from version `0.6.0` conduit natively supports some sync v3 (sliding-sync) features.

https://gitlab.com/famedly/conduit/-/releases/v0.6.0
https://gitlab.com/famedly/conduit/-/merge_requests/501
2023-08-10 22:07:33 +02:00
Slavi Pantaleev b225d47ddb
Merge pull request #2820 from meenzen/conduit-update
Update conduit 0.5.0 -> 0.6.0
2023-08-10 21:54:11 +03:00
Samuel Meenzen 62a086d3e2
Update conduit 0.5.0 -> 0.6.0 2023-08-10 20:30:11 +02:00
Slavi Pantaleev ae12ab5c24 Rename variable (matrix_client_element_jitsi_preferredDomain -> matrix_client_element_jitsi_preferredDomain) 2023-08-10 15:57:29 +03:00
Slavi Pantaleev e9c0e90147 element-web camelCase renaming (branding.welcomeBackgroundUrl -> branding.welcome_background_url) 2023-08-10 15:56:38 +03:00
Slavi Pantaleev 1918519e07 element-web camelCase renaming (branding.authHeaderLogoUrl -> branding.auth_header_logo_url) 2023-08-10 15:55:44 +03:00
Slavi Pantaleev e7c5eff924 element-web camelCase renaming (branding.authFooterLinks -> branding.auth_footer_links) 2023-08-10 15:54:48 +03:00
Slavi Pantaleev 38c9aa9369 element-web camelCase renaming (settingDefault -> setting_defaults) 2023-08-10 15:53:02 +03:00
Slavi Pantaleev c4f716624b element-web camelCase renaming (embeddedPages -> embedded_pages) 2023-08-10 15:50:27 +03:00
Slavi Pantaleev d4e48a3a67 element-web camelCase renaming (welcomeUserId -> welcome_user_id) 2023-08-10 15:50:09 +03:00
Slavi Pantaleev bb90a59bbb element-web camelCase renaming (roomDirectory -> room_directory) 2023-08-10 15:49:48 +03:00
Slavi Pantaleev c800af1bb6 element-web camelCase renaming (permalinkPrefix -> permalink_prefix) 2023-08-10 15:48:22 +03:00
Slavi Pantaleev 809316b16e element-web camelCase renaming (showLabsSettings -> show_labs_settings) 2023-08-10 15:47:29 +03:00
Slavi Pantaleev ccebbc07ca Upgrade Traefik (v2.10.4-0 -> v2.10.4-1) 2023-08-06 12:13:56 +03:00
Slavi Pantaleev d2065ba965
Merge pull request #2817 from davidmehren/upgrade-sliding-sync
Upgrade sliding-sync (v0.99.4 -> v0.99.5)
2023-08-05 14:44:27 +03:00
Slavi Pantaleev f206615602
Merge pull request #2816 from etkecc/master-1
Update borg role v1.2.4-1.7.15-1 -> v1.2.4-1.7.15-2
2023-08-05 14:44:13 +03:00
Aine 1dfe7a3da8
Update backup-borg role 2023-08-05 14:09:35 +03:00
David Mehren b9b68c7110
Upgrade sliding-sync (v0.99.4 -> v0.99.5) 2023-08-05 12:48:11 +02:00
Slavi Pantaleev 4b61aca11e Upgrade Prometheus (v2.45.0-0 -> v2.45.0-1) 2023-08-05 09:01:33 +03:00
Aine 4dfaeed4a1
Update borg role v1.2.4-1.7.15-1 -> v1.2.4-1.7.15-2 2023-08-05 00:23:10 +03:00
Slavi Pantaleev 14675684cd
Merge pull request #2814 from krassle/master
Upgrade Element 1.11.37 -> 1.11.38
2023-08-04 17:56:00 +03:00
Slavi Pantaleev 6d9a990657 Partially revert (preferredDomain -> preferred_domain) renaming
Partially reverts 0a6b934a44.

`preferred_domain` is only used by Element and does not apply to the
`/.well-known/matrix/client` file.
2023-08-04 17:51:12 +03:00
krassle 90e3987525
Upgrade Element 1.11.37 -> 1.11.38 2023-08-04 16:10:23 +02:00
Slavi Pantaleev 0b47bff1e3
Merge pull request #2812 from etkecc/patch-265
Update honoroit 0.9.17 -> 0.9.18
2023-08-02 23:24:23 +03:00
Aine 9d08d8e32e
Update honoroit 0.9.17 -> 0.9.18 2023-08-02 21:53:00 +03:00
Slavi Pantaleev 9a584fa970
Merge pull request #2811 from etkecc/patch-264
Update element 1.11.36 -> 1.11.37
2023-08-01 20:17:42 +03:00
Aine 1b9a20bc2e
Update element 1.11.36 -> 1.11.37 2023-08-01 20:11:51 +03:00
Slavi Pantaleev 2f2ef710ec
Merge pull request #2808 from adam-kress/ak-patch-1
Update synapse 1.88.0 -> 1.89.0
2023-08-01 16:18:56 +03:00
Slavi Pantaleev dacb7e14ad
Merge pull request #2809 from moan0s/master
docs: Remove mention of access token
2023-08-01 16:18:14 +03:00
Julian-Samuel Gebühr 2bd9d2a142 docs: Remove mention of access token 2023-08-01 14:48:56 +02:00
adam-kress df406dbfd8
Update synapse 1.88.0 -> 1.89.0 2023-08-01 08:12:35 -04:00
Slavi Pantaleev 2a56fe09c3 Upgrade Hookshot (4.4.0 -> 4.4.1)
Related to: https://matrix.org/blog/2023/07/bridges-security-updates/
2023-07-31 18:41:52 +03:00
Slavi Pantaleev bfe89df323 Upgrade appservice-irc (0.38.0 -> 1.0.1)
Related to: https://matrix.org/blog/2023/07/bridges-security-updates/
2023-07-31 18:41:47 +03:00
Slavi Pantaleev e7bc6b3729 Upgrade appservice-slack (2.0.2 -> 2.1.2)
Related to https://matrix.org/blog/2023/07/bridges-security-updates/
2023-07-31 18:41:37 +03:00
Slavi Pantaleev 8eac642a2d Upgrade Heisenbridge (1.14.3 -> 1.14.4) 2023-07-30 22:41:45 +03:00
Slavi Pantaleev cf63ce52e6
Merge pull request #2805 from wuast94/patch-1
Add system promt variable to docs
2023-07-30 05:55:32 +03:00
wuast94 4a1ed92671
Add system promt variable to docs
Added the system promt variable and added a bit information for beginners
2023-07-30 04:50:05 +02:00
Slavi Pantaleev 06e2ab94fd Add missing space
Related to: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2375#issuecomment-1656064975
2023-07-28 20:53:44 +03:00
Slavi Pantaleev f3445c124c Fix Traefik support for matrix-user-verification-service
Related to: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2375#issuecomment-1655758296
2023-07-28 17:26:27 +03:00
Slavi Pantaleev 0a6b934a44 Rename Element configuration key (preferredDomain -> preferred_domain)
Related to: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2375#issuecomment-1655758296
2023-07-28 17:26:27 +03:00
Slavi Pantaleev 7d1eb7e729
Merge pull request #2804 from ThellraAK/master
Create and set default for chatgpt prompt
2023-07-28 10:15:43 +03:00
System user; root 621578399f Adding variable for messing with the prompt and setting the default to the example 2023-07-27 23:00:59 -08:00
Slavi Pantaleev 92ea048080 Add some missing install-all/install-synapse tags to Synapse role 2023-07-28 08:40:49 +03:00
Slavi Pantaleev f5d5a9a995
Merge pull request #2803 from apexive/main
make smtp tls configurable / optional
2023-07-27 12:29:24 +03:00
Alexis Yushin ba1d665bd9 make smtp tls configurable / optional 2023-07-27 11:26:15 +02:00
Slavi Pantaleev 08b433a8f7 Upgrade Grafana (v10.0.2-1 -> v10.0.3-0) 2023-07-26 19:50:18 +03:00
Slavi Pantaleev ae2f67e15f Make maubot communicate with the homeserver via the container network
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2791
2023-07-26 15:27:58 +03:00
Slavi Pantaleev cc4bef5cac
Merge pull request #2800 from wuast94/patch-1
Fix Variable Registration bot
2023-07-26 15:25:59 +03:00
Slavi Pantaleev 507f4de9a4
Merge pull request #2801 from greentore/patch-1
Update Element logo location
2023-07-25 22:22:01 +03:00
greentore 52ed1f7a0b
Update Element logo location 2023-07-25 19:26:20 +02:00
Slavi Pantaleev 9703d1d1e5 Upgrade Traefik (v2.10.3-0 -> v2.10.4-0) 2023-07-25 17:28:30 +03:00
wuast94 02de889656
Fix Variable Registration bot
variable need to be named:
matrix_bot_matrix_registration_bot_bot_password

and not:
matrix_bot_matrix_registration_bot_password

Dont know if it need fixed in every rule or just change the docs
2023-07-25 12:35:51 +02:00
Slavi Pantaleev 122cda6f10
Merge pull request #2799 from ThellraAK/gmessages-logging2
Gmessage bridge: Remove file logging, and add existing log level variable to config
2023-07-25 11:48:29 +03:00
ThellraAK 6666d23079 Remove file logging, and add existing log level variable to config 2023-07-25 00:04:02 -08:00
Julian-Samuel Gebühr 14f7eed932
Update matrix-registration-bot, improve authentication config (#2723)
* Adjust to new mrb docker versioning

* Stabilze authentication

* fix lint

* Move & document mrb password usage

* Add clean cache role

* Document clean cache

* Fix lint

* Update CHANGELOG.md

* Automate access tokens

* Improve changelog

* Make use of mrb's function to fetch API tokens

* Adjust changelog

* Use ansible.builtin.file to clear directory

* Fix typo

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-07-24 13:57:06 +03:00
Slavi Pantaleev 856a328e96 Upgrade prometheus-postgres-exporter (v0.13.1-0 -> v0.13.2-0) 2023-07-24 08:44:33 +03:00
Slavi Pantaleev a41f2aa615
Merge pull request #2796 from ThellraAK/ThellraAK-patch-2-gmessages
Shortening the salt
2023-07-21 16:51:45 +03:00
ThellraAK 2153c310f7
Update matrix_servers 2023-07-21 05:49:52 -08:00
ThellraAK eea143e6eb
Shortened gmessages salt
The salts need to be shorter than 16 chars
2023-07-21 05:47:51 -08:00
Slavi Pantaleev 0a81083e7d Announce mautrix-gmessages support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2794
2023-07-21 14:37:05 +03:00
Shreyas Ajjarapu 5ea6aa3e50
Added Google Messager Bridge (#2794)
* intial commit

* changed

* Reorderd

* merge old changes

* added changes to matrix_servers

* Remove duplicate discord

* Update main.yml

* added google message to configuring-playbook.md

* Changed docs to add new changes

* Changed bug?

* Removed problem j2 values

* Rename a service files

* change how password hash string

* Changed port number

* Change how the local part works

* Revert "Merge pull request #8 from shreyasajj/wsproxy"

This reverts commit bb1b8fc67ca39f63ca77e70077be99cb2b32c4de, reversing
changes made to cce6ba5f9d74f89172488afc8b1ef124031de8c1.

---------

Co-authored-by: Shreyas Ajjarapu <github.tzarina@aleeas.com>
2023-07-21 14:33:52 +03:00
Slavi Pantaleev 2aa5096f29
Merge pull request #2795 from etkecc/global-bridges-relay-switch
add global bridges relay mode switch
2023-07-21 14:19:29 +03:00
Aine a5cb6272d8
add global bridges relay mode switch 2023-07-21 13:22:05 +03:00
teutat3s 1867fe7f10
Merge branch 'master' into pub.solar 2023-07-20 00:05:38 +02:00
Slavi Pantaleev 1e56364a02
Merge pull request #2790 from etkecc/patch-263
Update element 1.11.35 -> 1.11.36
2023-07-18 23:55:40 +03:00
Aine 330dfd4eaf
Update element 1.11.35 -> 1.11.36 2023-07-18 22:38:37 +03:00
Slavi Pantaleev 64396419ba Upgrade synapse-s3-storage-provider (1.2.0 -> 1.2.1) 2023-07-18 20:40:44 +03:00
Slavi Pantaleev 2fad66a371 Upgrade Synapse (v1.87.0 -> v1.88.0) 2023-07-18 20:04:51 +03:00
Slavi Pantaleev 60c34d701a Use prebuilt container images for matrix-sliding-sync on ARM64
As mentioned in https://github.com/matrix-org/sliding-sync/issues/31#issuecomment-1640321110
images are available for arm64 already.
2023-07-18 18:16:11 +03:00
Slavi Pantaleev 68556400ba Announce matrix-media-repo
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2783
2023-07-17 22:38:44 +03:00
Slavi Pantaleev b340252dfe
Merge pull request #2788 from shreyasajj/master
Update whatsapp version
2023-07-17 19:32:59 +03:00
Shreyas Ajjarapu 1df533d351
Update main.yml 2023-07-17 11:20:11 -05:00
Slavi Pantaleev 6d50a008bf
Merge pull request #2783 from Michael-Hollister/feature/add-matrix-media-repo
Added matrix-media-repo role
2023-07-17 08:13:16 +03:00
Slavi Pantaleev 95bfa4e87e
Put matrix-media-repo.service in the matrix-media-repo group
Making the group match the Ansible task tags allows people to do `just install-service matrix-media-repo` and have that trigger both `--tags=matrix-media-repo` and also restart just that single group (`matrix-media-repo`).
2023-07-17 08:11:23 +03:00
Slavi Pantaleev 5fb1020ada
Use full name of matrix-media-repo for Ansible tags (*-media-repo -> *-matrix-media-repo) 2023-07-17 08:09:31 +03:00
Slavi Pantaleev bc0b73dd70
Improve if condition for including Postgres in matrix_media_repo_systemd_required_services_list 2023-07-17 08:07:49 +03:00
Slavi Pantaleev de59c596e1
Merge pull request #2786 from etkecc/patch-262
Update mautrix-discord 0.5.0 -> 0.6.0
2023-07-16 15:02:46 +03:00
Aine ccc99d6c73
Update mautrix-discord 0.5.0 -> 0.6.0 2023-07-16 14:12:11 +03:00
Slavi Pantaleev 47f02e2ab0
Merge pull request #2785 from davidmehren/upgrade_sliding_sync
Upgrade sliding-sync (v0.99.3 -> v0.99.4)
2023-07-16 10:23:21 +03:00
David Mehren 4e4f107daa
Upgrade sliding-sync (v0.99.3 -> v0.99.4) 2023-07-16 09:21:30 +02:00
teutat3s 7bf52dda93
Update element v1.11.35 -> v1.11.36-rc.2 2023-07-15 16:29:15 +02:00
teutat3s 21e9ba9653
Merge branch 'master' into pub.solar 2023-07-15 15:27:08 +02:00
Slavi Pantaleev 3e93613a3f Upgrade Heisenbridge (1.14.2 -> 1.14.3) 2023-07-14 09:49:30 +03:00
Michael Hollister 63ee8e5bb9 Replaced csApi config with proxy container url 2023-07-14 01:31:35 -05:00
Michael Hollister c8b6b6e034 Added additioanl documentation to rendered config and added to_json filters 2023-07-14 00:20:07 -05:00
Michael Hollister 73edde3992 Replaced additional hardcoded service names with identifer variable 2023-07-13 23:12:24 -05:00
Michael Hollister 28fa644c30 Removed redeclration of matrix_media_repo_identifier 2023-07-13 21:19:07 -05:00
Michael Hollister d120b0c153 Updated code to use identifier variable 2023-07-13 21:16:07 -05:00
Michael Hollister c043463ee1 Fixed conflicting default values for enabling media-repo 2023-07-13 15:19:12 -05:00
Michael Hollister ecb24dcaab Changed volume mounting and directory structure 2023-07-13 15:02:21 -05:00
Michael Hollister b9f5aa0344 Removed exposing ports by default 2023-07-13 13:23:34 -05:00
Michael Hollister 6365118067 Removed additional logging to filesystem by default 2023-07-13 12:23:48 -05:00
Michael Hollister d565c1607b
Replaced hard coded string with identifier variable
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-07-13 11:06:59 -05:00
Michael Hollister facaeb5abe
Document purpose of media_repo variable
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-07-13 11:03:36 -05:00
Slavi Pantaleev 3f2b14f630 Upgrade backup-borg (v1.2.4-1.7.15-0 -> v1.2.4-1.7.15-1) 2023-07-13 12:32:51 +03:00
Slavi Pantaleev 4ee26fab2f Upgrade postgres_backup 2023-07-13 12:29:15 +03:00
Slavi Pantaleev 3e631fc298
Merge pull request #2784 from QEDeD/master
Explain the option of manually defining your public IP in the documentation for Coturn
2023-07-12 20:36:36 +03:00
QEDeD b7c0690542
Explicitly refer users to the relevant roles file
Explicitly refer users to the relevant roles file so people know where to find the additional configuration options.
2023-07-12 18:25:20 +02:00
QEDeD 76d2507999
Merge branch 'spantaleev:master' into master 2023-07-12 18:11:09 +02:00
QEDeD 036c823a06
Explain the option of manually defining your public IP in the documentation for Coturn
I was very surprised by the fact that a rather important configuration for coturn was "hidden" in the Hosts file, but not mentioned here. 

Therefore my suggestion is to explicitly mention it here, as I believe that is that natural for people to look.
2023-07-12 18:10:47 +02:00
Michael Hollister 78bd1dbd1b Added matrix-media-repo role 2023-07-12 01:09:27 -05:00
Slavi Pantaleev 54412c361d Disable var-naming[no-role-prefix] ansible-lint rule 2023-07-12 08:18:50 +03:00
Slavi Pantaleev 28e3c5266b
Merge pull request #2782 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.17.0
Bump ansible-community/ansible-lint-action from 6.16.0 to 6.17.0
2023-07-12 08:11:20 +03:00
Slavi Pantaleev 9d76e73913 Upgrade Jitsi (v8615-0 -> v8615-2) 2023-07-12 08:05:45 +03:00
Slavi Pantaleev 68c9652947 Upgrade Grafana (v10.0.2-0 -> v10.0.2-1) 2023-07-12 08:05:40 +03:00
dependabot[bot] 3037bf3a56
Bump ansible-community/ansible-lint-action from 6.16.0 to 6.17.0
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.16.0...v6.17.0)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-11 16:16:59 +00:00
Slavi Pantaleev c09c1265e8 Stop using deprecated worker settings (worker_replication_host, worker_replication_http_port)
Related to:
- e4f545c452
- 2481b7dfa4

We've prepared for this by adding the `main` process to the `instance_map` a long time ago,
in 49cb8b7b11.
2023-07-11 17:20:21 +03:00
Slavi Pantaleev db47c6f1e3 Upgrade Grafana (v10.0.1-1 -> v10.0.2-0) 2023-07-11 14:43:44 +03:00
Slavi Pantaleev eb85a70cfb
Merge pull request #2779 from davidmehren/upgrade_sliding_sync
Upgrade sliding-sync (v0.99.1 -> v0.99.3)
2023-07-09 16:56:31 +03:00
David Mehren 3fc217ded2
Upgrade sliding-sync (v0.99.1 -> v0.99.3) 2023-07-09 15:46:45 +02:00
Slavi Pantaleev d02f6b8b93 Force-build customized container image for Synapse when its Dockerfile changes 2023-07-06 20:18:18 +03:00
Slavi Pantaleev 9c77486e59 Upgrade Dendrite (v0.13.0 -> v0.13.1) 2023-07-06 11:38:07 +03:00
Slavi Pantaleev c0f89ec252 Upgrade Grafana (v10.0.1-0 -> v10.0.1-1) 2023-07-06 11:14:22 +03:00
Slavi Pantaleev 8668b0d772 Do not handle ^/_matrix/client/unstable/org.matrix.msc2716/rooms/.*/batch_send$ from workers anymore
Related to 0f02f0b4da
2023-07-04 22:14:37 +03:00
Slavi Pantaleev 13fb286dbe Upgrade Synapse (v1.86.0 -> v1.87.0) 2023-07-04 22:13:05 +03:00
Slavi Pantaleev 2d941f2e7b Upgrade Element (v1.11.34 -> v1.11.35) 2023-07-04 17:38:49 +03:00
Slavi Pantaleev ce0eb973b0 Upgrade Coturn (4.6.2-r3 -> 4.6.2-r4) 2023-07-04 16:47:35 +03:00
Slavi Pantaleev 36c55bcb33 Upgrade ddclient (v3.10.0-ls125 -> v3.10.0-ls26) 2023-07-04 14:14:33 +03:00
Slavi Pantaleev f7e04df514
Merge pull request #2776 from Tawkie/fix-mismatched-linkedin-appservice-id
fix(linkedin): mismatched appservice id
2023-07-02 10:56:29 +03:00
Paul ALNET 462d48814a fix(linkedin): mismatched appservice id
Updated to match value in
`roles/custom/matrix-bridge-beeper-linkedin/templates/config.yaml.j2`.
2023-07-02 09:23:52 +02:00
teutat3s 92b02b9660
Merge branch 'master' into pub.solar 2023-07-01 15:36:26 +02:00
Slavi Pantaleev ce2fc1ab1b
Merge pull request #2774 from chuckwagoncomputing/note-become-flag
Add note for -K flag to Ansible
2023-07-01 09:40:45 +03:00
Slavi Pantaleev 321a3a93ab
Update hosts 2023-07-01 09:39:19 +03:00
Slavi Pantaleev 8f93853845 Upgrade ntfy (v2.6.1-0 -> v2.6.2-0) 2023-07-01 09:32:30 +03:00
David Holdeman d9bbe08771
add note 2023-06-30 22:06:36 -05:00
Slavi Pantaleev 0db4ca74fa Upgrade Dendrite (0.12.0 -> 0.13.0)
Untested.
2023-06-30 11:49:46 +03:00
Slavi Pantaleev 83cc29d2d4
Merge pull request #2772 from etkecc/patch-261
Update hookshot 4.3.0 -> 4.4.0
2023-06-29 10:02:38 +03:00
Slavi Pantaleev 4a34efbe97 Upgrade ntfy (v2.6.0-0 -> v2.6.1-0) 2023-06-29 09:57:03 +03:00
Slavi Pantaleev 00ccff6e82
Merge pull request #2771 from etkecc/patch-260
Update ntfy 2.5.0 -> 2.6.0
2023-06-28 23:00:55 +03:00
Aine 47b643f870
Update hookshot 4.3.0 -> 4.4.0 2023-06-28 21:55:31 +03:00
Aine 19b83360d0
Update ntfy 2.5.0 -> 2.6.0 2023-06-28 21:54:06 +03:00
Slavi Pantaleev 4e535ae1a5
Merge pull request #2770 from etkecc/patch-259
Update prometheus postgres exporter 0.13.0 -> 0.13.1
2023-06-28 13:15:36 +03:00
Aine b7d79a95fa
Update prometheus postgres exporter 0.13.0 -> 0.13.1 2023-06-28 13:04:37 +03:00
Slavi Pantaleev d5fa6feeef Upgrade ddclient (v3.10.0-ls124 -> v3.10.0-ls25) 2023-06-27 10:36:47 +03:00
Slavi Pantaleev 7b10e7d4e0 Upgrade mautrix-telegram (0.14.0 -> 0.14.1) 2023-06-26 17:35:55 +03:00
Slavi Pantaleev 4dda00dbc6
Merge pull request #2763 from etkecc/patch-258
Update borgmatic 1.7.14 -> 1.7.15
2023-06-25 12:21:46 +03:00
Slavi Pantaleev 0f1b6c10b6
Merge pull request #2762 from etkecc/patch-257
Update prometheus 2.44.0 -> 2.45.0
2023-06-25 10:37:44 +03:00
Aine 9142f4d2ee
Update borgmatic 1.7.14 -> 1.7.15 2023-06-25 10:35:53 +03:00
Aine 5b968f47d2
Update prometheus 2.44.0 -> 2.45.0 2023-06-25 10:35:14 +03:00
Slavi Pantaleev df75866d2b
Merge pull request #2761 from thedanbob/update-synapse-companion
Update synapse reverse proxy companion
2023-06-24 10:19:30 +03:00
Slavi Pantaleev 8e64463114
Merge pull request #2760 from thedanbob/update-prom-pg-exporter
Update prometheus_postgres_exporter
2023-06-24 10:18:49 +03:00
Dan Arnfield 05faf1f73f Update synapse reverse proxy companion 2023-06-23 18:05:47 -05:00
Dan Arnfield fa2a81fc5e Update prometheus_postgres_exporter 2023-06-23 18:02:56 -05:00
Slavi Pantaleev fdb3c000a3
Merge pull request #2757 from etkecc/patch-256
Update prometheus postgres exporter 0.12.0 -> 0.13.0
2023-06-22 21:36:39 +03:00
Slavi Pantaleev f1cc7612ae
Merge pull request #2756 from etkecc/patch-255
Update grafana 9.5.3 -> 10.0.1
2023-06-22 21:36:09 +03:00
Aine 38c8bd858a
Update grafana 10.0.0 -> 10.0.1 2023-06-22 21:22:30 +03:00
Aine 5e1c7c6cf1
Update prometheus postgres exporter 0.12.0 -> 0.13.0 2023-06-22 21:17:18 +03:00
Aine a6e60378d9
Update grafana 9.5.3 -> 10.0.0 2023-06-22 21:16:39 +03:00
Slavi Pantaleev 3d321142d6
Merge pull request #2754 from etkecc/patch-254
Update hydrogen 0.3.8 -> 0.4.0
2023-06-21 17:44:16 +03:00
Aine b035ef1fa3
Update hydrogen 0.3.8 -> 0.4.0 2023-06-21 17:37:29 +03:00
Slavi Pantaleev d53a968ca4
Merge pull request #2750 from sidewinder94/docs-howto-srv-delegation-traefik
Add documentation to detail the steps needed to federate using SRV delegation
2023-06-21 09:57:21 +03:00
Slavi Pantaleev eef0fd69bf
Fix some typos, add more links 2023-06-21 09:56:16 +03:00
Slavi Pantaleev 72cfd96e11
Merge pull request #2753 from etkecc/patch-253
Update synapse 1.85.2 -> 1.86.0
2023-06-21 09:06:27 +03:00
Slavi Pantaleev 77547ab58a
Merge pull request #2752 from etkecc/patch-252
Update etherpad 1.8.18 -> 1.9.0
2023-06-21 09:05:51 +03:00
Slavi Pantaleev a60a7d2705 Upgrade Traefik (v2.10.1-2 -> v2.10.3-0) 2023-06-21 09:05:11 +03:00
Slavi Pantaleev 54d59724e8
Merge pull request #2751 from etkecc/patch-251
Update element v1.11.33 -> v1.11.34
2023-06-20 22:09:50 +03:00
Aine 2da4d81ff6
Update synapse 1.85.2 -> 1.86.0 2023-06-20 21:14:23 +03:00
Aine ce7a3fa6d7
Update etherpad 1.8.18 -> 1.9.0 2023-06-20 21:12:39 +03:00
Aine eece91d7e2
Update element v1.11.33 -> v1.11.34 2023-06-20 20:56:39 +03:00
Antoine-Ali ZARROUK 9ab50ac8de Fix inter-doc links 2023-06-20 16:32:50 +02:00
Antoine-Ali Zarrouk a94ebe7424 Add documentation to detail the steps needed to federate using SRV delegation 2023-06-20 15:14:42 +02:00
Slavi Pantaleev 55bc915414
Merge pull request #2749 from 2goobers/master
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2629
2023-06-20 12:14:25 +03:00
Kevin Kengen 2ca1b6f164 modified: roles/custom/matrix-bridge-mautrix-instagram/templates/config.yaml.j2 2023-06-20 21:09:19 +12:00
Slavi Pantaleev c720d7bb1a Upgrade ddclient (v3.10.0-ls123 -> v3.10.0-ls24) 2023-06-20 10:55:05 +03:00
Slavi Pantaleev 0174840296 Upgrade Hookshot (4.2.0 -> 4.3.0) 2023-06-19 18:02:36 +03:00
Slavi Pantaleev 704a9abd9b Fix file path in comment
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2746
2023-06-18 08:54:55 +03:00
Slavi Pantaleev e2f7d5f74e
Merge pull request #2746 from aptiko/fix-additional-jvb
Fix errors when installing additional JVB
2023-06-18 08:51:03 +03:00
Slavi Pantaleev 8c0119d7d8
Fix typo 2023-06-18 08:50:55 +03:00
Antonis Christofides cfc845b45e Ensure docker is installed on additional JVBs (fixes #2706)
This contribution is provided by GRNET S.A. (grnet.gr).
2023-06-17 15:04:35 +03:00
Antonis Christofides 2191136369 Enable jitsi_jvb service on additional JVB (fixes #2708)
This contribution is provided by GRNET S.A. (grnet.gr).
2023-06-17 15:04:35 +03:00
Antonis Christofides 6ce94ba33f Fix additional JVB broken after move to external Jitsi role (fixes #2733)
This contribution is provided by GRNET S.A. (grnet.gr).
2023-06-17 15:04:35 +03:00
Antonis Christofides 71ed745be6 Documentation typo 2023-06-17 15:04:35 +03:00
Antonis Christofides 91fdd25e14 Move playbooks to root directory (fixes #2513)
Some time ago a "playbooks" subdirectory had been created and setup.yml
had been moved there (as matrix.yml), together with the new
jitsi_jvb.yml. However, jitsi_jvb.yml wouldn't work at all, unless a
symbolic link to it was created from the root directory. A symbolic link
setup.yml for playbooks/matrix.yml had already been created and
committed.

This seems to indicate that the developers thought they should place all
playbooks in a subdirectory, but when this didn't work, they linked to
one of them, leaving the other one inoperative.  We fix this by moving
the playbooks to the root directory. This works, and the pollution of
the root directory is not too bad since it's only two playbooks.

We also change the mode of setup.yml to 644 (it had inexplicably changed
to 755 in 9735a2f600).

This contribution is provided by GRNET S.A. (grnet.gr).
2023-06-17 15:04:33 +03:00
Slavi Pantaleev 16233354cb
Merge pull request #2744 from etkecc/patch-250
Update mautrix-googlechat 0.4.0 -> 0.5.0
2023-06-16 16:22:03 +03:00
Slavi Pantaleev 9691edecd0
Merge pull request #2743 from etkecc/patch-249
Update nginx 1.25.1
2023-06-16 16:21:47 +03:00
Slavi Pantaleev cfceca1dea
Merge pull request #2742 from etkecc/patch-248
Update coturn 4.6.1-r3 -> 4.6.2-r3
2023-06-16 16:21:34 +03:00
Slavi Pantaleev 8c18aeae93
Merge pull request #2741 from etkecc/patch-247
Update mautrix-whatsapp 0.8.5 -> 0.8.6
2023-06-16 16:21:22 +03:00
Slavi Pantaleev 41635d53ff
Merge pull request #2740 from etkecc/patch-246
Update mautrix-discord 0.4.0 -> 0.5.0
2023-06-16 16:21:09 +03:00
Aine 71e9b04fbe
Update mautrix-googlechat 0.4.0 -> 0.5.0 2023-06-16 16:18:34 +03:00
Aine 9315ba571d
Update nginx 1.25.1 2023-06-16 16:15:02 +03:00
Aine df07b8fb7d
Update coturn 4.6.1-r3 -> 4.6.2-r3 2023-06-16 16:13:15 +03:00
Aine 245a86f439
Update mautrix-whatsapp 0.8.5 -> 0.8.6 2023-06-16 16:12:03 +03:00
Aine bbe11f2612
Update mautrix-discord 0.4.0 -> 0.5.0 2023-06-16 16:11:06 +03:00
Slavi Pantaleev c0152c09c1
Merge pull request #2736 from Tupsi/master
Update configuring-playbook-synapse-s3-storage-provider.md
2023-06-16 09:13:52 +03:00
Slavi Pantaleev 76db158729
Adjust S3 docs section to not be so Wasabi-specific 2023-06-16 09:11:53 +03:00
Slavi Pantaleev b76f6fd3b9
Merge pull request #2739 from SapuSeven/master
Fix installing 'aux'-role on NTFS
2023-06-15 23:37:45 +03:00
SapuSeven bfd8ee3977
Fix installing 'aux'-role on NTFS - Fixes #2738 2023-06-15 22:34:38 +02:00
Tupsi 6a2d90006b
Update configuring-playbook-synapse-s3-storage-provider.md
added syntax to upload to wasabi (needs --endpoint param)
2023-06-14 15:22:38 +02:00
Slavi Pantaleev 008a36603c
Merge pull request #2735 from cbackas/master
Support EC2 instance metadata for S3 storage provider
2023-06-14 10:07:50 +03:00
Slavi Pantaleev ba3534903a
Make S3 authentication options clearer 2023-06-14 09:27:40 +03:00
teutat3s 7327fbec43
Merge branch 'master' into pub.solar 2023-06-13 23:51:13 +02:00
cbackas d9f8ac0f8b add thing to docs 2023-06-13 14:55:07 -05:00
Zac f026c7cee1
Apply suggestions from code review
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-06-13 14:48:44 -05:00
cbackas f6d260dc00 this is better 2023-06-13 11:58:19 -05:00
cbackas 0e701bbece add var to make the creds optional 2023-06-13 11:08:14 -05:00
Zac ceda4c41cc
remove the offending lines 2023-06-13 10:22:37 -05:00
Slavi Pantaleev 17a0f89775 Upgrade Traefik (v2.10.1-1 -> v2.10.1-2) 2023-06-12 07:16:53 +03:00
Slavi Pantaleev 85f38421e3 Fix matrix-synapse-ldap3 docs link in README
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2734
2023-06-11 21:28:22 +03:00
Slavi Pantaleev f4a61d9d59
Merge pull request #2732 from etkecc/patch-245
Update element 1.11.32 -> 1.11.33
2023-06-11 09:03:14 +03:00
Aine 9709a83a4a
Update element 1.11.32 -> 1.11.33 2023-06-11 08:37:54 +03:00
Slavi Pantaleev 7a97aa20e9
Merge pull request #2730 from etkecc/patch-244
Update synapse 1.85.1 -> 1.85.2
2023-06-08 20:05:49 +03:00
Aine 55fcbca681
Update synapse 1.85.1 -> 1.85.2 2023-06-08 18:59:31 +03:00
Slavi Pantaleev ba868ba6c6 Upgrade Synapse (v1.85.0 -> v1.85.1) 2023-06-07 16:50:54 +03:00
Slavi Pantaleev 672b45648f Upgrade matrix-synapse-shared-secret-auth (2.0.2 -> 2.0.3) 2023-06-07 14:20:52 +03:00
Slavi Pantaleev f320110e90 Enable com.devture.shared_secret_auth login type for matrix-synapse-shared-secret-auth by default
Now that Element v1.11.32 is out and https://github.com/vector-im/element-web/issues/19605 is fixed
(by https://github.com/matrix-org/matrix-react-sdk/pull/10975), we don't
need to force-disable this login type.
2023-06-07 14:12:38 +03:00
Slavi Pantaleev 5ca24d6943
Merge pull request #2724 from etkecc/patch-240
Update hookshot 4.0.0 (4.1.0?) -> 4.2.0
2023-06-07 07:21:51 +03:00
Slavi Pantaleev e5fa91018e
Merge pull request #2725 from etkecc/patch-241
Update grafana 9.5.2 -> 9.5.3
2023-06-07 07:21:23 +03:00
Slavi Pantaleev b67f4ddb9f
Merge pull request #2726 from etkecc/patch-242
Update borgmatic 1.7.13 -> 1.7.14
2023-06-07 07:20:40 +03:00
Slavi Pantaleev b20d8e5649
Merge pull request #2727 from etkecc/patch-243
Update element 1.11.31 -> 1.11.32
2023-06-07 07:19:45 +03:00
Aine 3a458308a5
Update element 1.11.31 -> 1.11.32 2023-06-06 23:55:37 +03:00
Aine aab55d5b5c
Update borgmatic 1.7.13 -> 1.7.14 2023-06-06 23:53:18 +03:00
Aine 63473482ba
Update grafana 9.5.2 -> 9.5.3 2023-06-06 23:50:38 +03:00
Aine 0ce0a62eb7
Update hookshot 4.0.0 (4.1.0?) -> 4.2.0 2023-06-06 23:48:08 +03:00
Slavi Pantaleev 69cece9fa3 Upgrade Synapse (v1.84.1 -> v1.85.0) 2023-06-06 13:51:25 +03:00
Slavi Pantaleev b96792ecf9 Upgrade ddclient (v3.10.0-ls111 -> v3.10.0-ls123) 2023-06-06 10:46:08 +03:00
Slavi Pantaleev ddbbd42718
Merge pull request #2722 from lukababu/user-search-ability
Create hooks for user search ability
2023-06-03 08:46:48 +03:00
Luke D Iremadze 5c0279f0c9
Update roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-06-02 23:39:55 -06:00
Luke D Iremadze 2f4428bf5b
Update roles/custom/matrix-synapse/templates/synapse/homeserver.yaml.j2
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-06-02 23:39:17 -06:00
Luke D Iremadze 130c278a3c
Update roles/custom/matrix-synapse/defaults/main.yml
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-06-02 23:38:57 -06:00
Luke D Iremadze 1f0da9f744 Create hooks for user search ability 2023-06-02 12:50:46 -06:00
Slavi Pantaleev a300ffeb8a
Merge pull request #2719 from mochman/master
Fix for hookshot validation failure
2023-06-02 13:39:53 +03:00
Luke Moch e4498f9568 Fix for hookshot validation failure 2023-06-02 06:23:30 -04:00
Slavi Pantaleev 37165ef202 Upgrade Traefik (v2.10.1-0 -> v2.10.1-1) 2023-06-02 10:44:31 +03:00
Slavi Pantaleev 6a04c5dd22
Merge pull request #2717 from etkecc/patch-239
Update chatgpt 3.1.0 -> 3.1.2
2023-06-01 11:26:50 +03:00
Slavi Pantaleev 4eb9b08c19
Merge pull request #2716 from etkecc/patch-238
Update mautrix-instagram 0.2.3 -> 0.3.0
2023-06-01 11:26:29 +03:00
Aine 0a3e93e47c
Update chatgpt 3.1.0 -> 3.1.2 2023-06-01 08:22:35 +00:00
Aine 3f89e61915
Update mautrix-instagram 0.2.3 -> 0.3.0 2023-06-01 08:21:16 +00:00
Slavi Pantaleev 0e37e6be91
Merge pull request #2715 from etkecc/patch-237
Update mautrix-facebook 0.4.1 -> 0.5.0
2023-06-01 11:19:46 +03:00
Aine 4acb54f796
Update mautrix-facebook 0.4.1 -> 0.5.0 2023-06-01 08:18:49 +00:00
Slavi Pantaleev e0436b3d48
Merge pull request #2712 from sergiodj/fix-hydrogen-prefix-path
Fix prefix path when loading Hydrogen's theme-element.json
2023-06-01 10:02:22 +03:00
Slavi Pantaleev a61405217c
Merge pull request #2714 from FSG-Cat/Hookshot-4-1-0
Revert "Revert "Update hookshot 4.0.0 -> 4.1.0""
2023-06-01 09:55:12 +03:00
Slavi Pantaleev 53fb7d007c
Merge pull request #2713 from FSG-Cat/Draupnir-1-83-0
Update Draupnir to 1.83.0 from 1.82.0
2023-06-01 08:16:57 +03:00
Catalan Lover 795ce3e21d
Update Draupnir to 1.83.0 from 1.82.0 2023-06-01 02:14:55 +02:00
Slavi Pantaleev e53c6c8020
Revert "Revert "Update hookshot 4.0.0 -> 4.1.0""
This reverts commit f98f803b44.

As the docker image has been released for this version we can now upgrade to this version
2023-06-01 02:13:27 +02:00
Sergio Durigan Junior dca6db15da Fix prefix path when loading Hydrogen's theme-element.json
This is needed when using a prefix path that doesn't end with a slash.

Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net>
2023-05-31 12:24:27 -04:00
Slavi Pantaleev 8d66b3ba01
Merge pull request #2711 from anytimesoon/chatgpt-bot-docs-update
Document how to use chatgpt-bot in encrypted rooms
2023-05-30 22:04:09 +03:00
Slavi Pantaleev 16aa89a9e8
Merge pull request #2710 from lukababu/add-more-ports
Update prerequisites.md
2023-05-30 09:09:31 +03:00
Slavi Pantaleev 127b60a1ce
Fixing typos and rewording 2023-05-30 09:09:24 +03:00
anytimesoon d3f85c5c7c
Update configuring-playbook-bot-chatgpt.md
added an extra step to creating the chatgpt bot so it can read encrypted messages
2023-05-29 19:05:05 +02:00
teutat3s 03ef77fb07
Merge branch 'master' into pub.solar 2023-05-29 13:36:01 +02:00
Luke D Iremadze 67bcf4bc8a Updates to the Postmoogle documentation 2023-05-29 04:03:31 -06:00
Luke D Iremadze 90d25bccd2 Update prerequisites.md
These ports need to be open in order to receive emails to the Postmoogle bridge
2023-05-29 03:10:07 -06:00
Slavi Pantaleev cfedf675ee Upgrade Traefik (v2.9.10-2 -> v2.10.1-0) 2023-05-28 21:27:03 +03:00
Slavi Pantaleev 5b152a55f5
Merge pull request #2709 from etkecc/patch-236
update prometheus-node-exporter 1.5.0 -> 1.6.0
2023-05-27 19:15:18 +03:00
Aine 788fa0e766
update prometheus-node-exporter 1.5.0 -> 1.6.0 2023-05-27 15:59:54 +00:00
Slavi Pantaleev b3984fea91
Merge pull request #2703 from etkecc/patch-234
update mautrix-telegram 0.13.0 -> 0.14.0
2023-05-26 22:32:17 +03:00
Slavi Pantaleev 3c81bda184
Merge pull request #2704 from etkecc/patch-235
Update synapse 1.84.0 -> 1.84.1
2023-05-26 22:32:04 +03:00
Aine c36fd8cfc2
Update synapse 1.84.0 -> 1.84.1 2023-05-26 19:29:26 +00:00
Aine b9d9a41ea6
update mautrix-telegram 0.13.0 -> 0.14.0 2023-05-26 19:28:27 +00:00
Slavi Pantaleev f98f803b44 Revert "Update hookshot 4.0.0 -> 4.1.0"
This reverts commit 428f7a1f75.

Looks like it won't become a tagged image until a "release" is posted.
2023-05-26 10:17:20 +03:00
Slavi Pantaleev f31ba3acdf
Merge pull request #2702 from Kuchenmampfer/master
add updated Caddyfile example
2023-05-26 09:59:15 +03:00
tammes 981805002d add example Caddyfile for fronting Traefik, mark the old one as deprecated and update READMEs 2023-05-25 22:45:09 +02:00
Slavi Pantaleev 8a88a85a06
Merge pull request #2701 from FSG-Cat/Draupnir-1-82-0
Update Draupnir from 1.80.1 to 1.82.0
2023-05-25 09:16:12 +03:00
Slavi Pantaleev c55371e305 Add changelog entry for the forget_rooms_on_leave default change for Synapse
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2700
2023-05-25 09:14:09 +03:00
Catalan Lover 4b30c4d812
Update Draupnir from 1.80.1 to 1.82.0 2023-05-25 00:52:28 +02:00
Slavi Pantaleev 196e13f8c8
Merge pull request #2699 from etkecc/patch-233
Update hookshot 4.0.0 -> 4.1.0
2023-05-24 23:23:56 +03:00
Aine 428f7a1f75
Update hookshot 4.0.0 -> 4.1.0 2023-05-24 20:20:37 +00:00
Slavi Pantaleev 389c29a088
Merge pull request #2698 from etkecc/synapse-1840
update synapse 1.83.0 -> 1.84.0; set forget_rooms_on_leave = true
2023-05-23 18:22:23 +03:00
Aine 9350eeb9fb
update synapse 1.83.0 -> 1.84.0; set forget_rooms_on_leave = true 2023-05-23 17:33:23 +03:00
Slavi Pantaleev cfbb818806
Merge pull request #2697 from etkecc/patch-232
Update mautrix-twitter 0.1.5 -> 0.1.6
2023-05-22 21:04:35 +03:00
Aine 86abe0680a
Update mautrix-twitter 0.1.5 -> 0.1.6 2023-05-22 18:01:02 +00:00
Slavi Pantaleev 49d7d4792d
Merge pull request #2696 from spantaleev/dependabot/github_actions/frenck/action-yamllint-1.4.1
Bump frenck/action-yamllint from 1.4.0 to 1.4.1
2023-05-22 20:49:55 +03:00
dependabot[bot] 014f5def55
Bump frenck/action-yamllint from 1.4.0 to 1.4.1
Bumps [frenck/action-yamllint](https://github.com/frenck/action-yamllint) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/frenck/action-yamllint/releases)
- [Commits](https://github.com/frenck/action-yamllint/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: frenck/action-yamllint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 17:00:26 +00:00
Slavi Pantaleev b5d5e49235 Move Honoroit metrics from /honoroit/metrics to /metrics/honoroit
This restores consistency with other services.

Related to 8f903fa621
2023-05-19 19:33:22 +03:00
Slavi Pantaleev b71375fac7 Disable healthcheck for Synapse workers which serve no web traffic
This was mostly affecting the stream writer (events) worker, which was
being reported as unhealthy. It wasn't causing any issues, but it just
looked odd and was confusing people.

As an alternative to hitting the regular `/health` healthcheck route (on
the "client" API which this stream writer does not expose),
we may have went for hitting some "replication" API endpoint instead.

This is more complicated and likely unnecessary.
2023-05-19 18:29:02 +03:00
Slavi Pantaleev c9930f2f41
Merge pull request #2693 from etkecc/patch-231
update ntfy 2.4.0 -> 2.5.0
2023-05-19 00:03:06 +03:00
Aine d475a4906d
update ntfy 2.4.0 -> 2.5.0 2023-05-18 20:51:15 +00:00
Slavi Pantaleev aa44a277f6 Fix service name for Honoroit metrics 2023-05-18 10:13:06 +03:00
Slavi Pantaleev 018e620ee8 Default matrix_bot_honoroit_path_prefix to /honoroit to avoid conflicts with Matrix Client-Server API 2023-05-18 10:10:47 +03:00
Slavi Pantaleev 2083b10f1a Fix syntax error 2023-05-18 10:09:07 +03:00
Slavi Pantaleev 8f903fa621 Make Honoroit respect matrix_bot_honoroit_path_prefix when building the metrics path 2023-05-18 10:03:40 +03:00
Slavi Pantaleev 88c7cf21f7 Make Honoroit not try to capture all matrix.DOMAIN traffic
It only serves a metrics endpoint, so it shouldn't try to capture
anything else.
2023-05-18 10:03:02 +03:00
Slavi Pantaleev 9d77950cd8 Adjust bot group names, so that they match the install/setup tags
Previously `just install-service buscarron` would not fully work,
because:

- the systemd services were indeed tagged with `buscarron`

- however, the actual installation tasks are not
  `install-buscarron`/`setup-buscarron`, but rather
  `install-bot-buscarron`/`setup-bot-buscarron`

Services are now tagged with the `bot-` prefix to match the tags.
2023-05-18 09:43:19 +03:00
Slavi Pantaleev 2456ffc183
Merge pull request #2691 from etkecc/patch-230
fix prometheus postgres exporter role name
2023-05-17 21:31:36 +03:00
Aine c8dbb437b9
fix prometheus postgres exporter role name 2023-05-17 18:29:22 +00:00
Slavi Pantaleev cd116d3bc6
Merge pull request #2689 from moan0s/postgres-exporter
Move postgres-exporter repo
2023-05-17 21:21:17 +03:00
Slavi Pantaleev 017a795105 Upgrade aux (v1.0.0-0 -> v1.0.0-1) 2023-05-17 21:19:47 +03:00
Slavi Pantaleev eb44bc48a8
Merge pull request #2690 from etkecc/patch-229
Update mautrix-signal 0.4.2 -> 0.4.3
2023-05-17 18:05:52 +03:00
Aine dc4b4d87d2
Update mautrix-signal 0.4.2 -> 0.4.3 2023-05-17 14:55:47 +00:00
Julian-Samuel Gebühr 98d8723694 Move postgres-exporter repo 2023-05-17 14:58:22 +02:00
Slavi Pantaleev 6be8d5a00d
Merge pull request #2687 from etkecc/patch-228
update borgmatic 1.7.12 -> 1.7.13
2023-05-17 07:45:38 +03:00
Slavi Pantaleev 1c8978fca7
Merge pull request #2686 from etkecc/patch-227
update mautrix-discord 0.3.0 -> 0.4.0
2023-05-17 07:45:08 +03:00
Slavi Pantaleev e8d89687a4
Merge pull request #2685 from etkecc/patch-226
update mautrix-whatsapp 0.8.4 -> 0.8.5
2023-05-17 07:44:24 +03:00
Aine e435c6bb55
update borgmatic 1.7.12 -> 1.7.13 2023-05-16 19:48:09 +00:00
Aine 3b28e29b8e
update mautrix-discord 0.3.0 -> 0.4.0 2023-05-16 19:47:10 +00:00
Aine c8aecef881
update mautrix-whatsapp 0.8.4 -> 0.8.5 2023-05-16 19:46:06 +00:00
Slavi Pantaleev eaf467faa5
Merge pull request #2684 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.16.0
Bump ansible-community/ansible-lint-action from 6.15.0 to 6.16.0
2023-05-16 21:01:29 +03:00
dependabot[bot] 5e1027960b
Bump ansible-community/ansible-lint-action from 6.15.0 to 6.16.0
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.15.0...v6.16.0)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-16 16:59:08 +00:00
Slavi Pantaleev 319afc66c1 Fix YAML indentation 2023-05-16 15:29:57 +03:00
Slavi Pantaleev 8fbe99ac2a Do not add main/master Synapse process to instance_map if workers are not in use
This is meant to keep the configuration tidy for non-worker setups.

Related to 49cb8b7b11
2023-05-15 07:37:25 +03:00
Slavi Pantaleev 49cb8b7b11 Add Synapse main/master process to instance map
Related to https://github.com/matrix-org/synapse/pull/15491

This doesn't hurt to be done early on, while still on Synapse v1.83.0.

We'll be able to remove the `worker_replication_*` settings later,
when Synapse v1.84.0 gets released and starts making use of the new
`main` instance in the instance map instead of looking at the
`worker_replication_*` settings.
2023-05-15 07:33:26 +03:00
Slavi Pantaleev 62c92578b5 Upgrade Postgres (minor versions upgrade) 2023-05-15 06:57:56 +03:00
Slavi Pantaleev 747b0e2250
Merge pull request #2680 from etkecc/patch-225
Update prometheus v2.43.0 -> 2.44.0
2023-05-15 06:40:21 +03:00
Aine 25a4af1d3b
Update prometheus v2.43.0 -> 2.44.0 2023-05-14 22:20:29 +00:00
teutat3s eba1ac8bd8
Merge branch 'master' into pub.solar 2023-05-13 15:32:08 +02:00
teutat3s 8c53cb6f4f
Add .direnv to gitignore, remove flake.lock 2023-05-13 15:30:40 +02:00
Slavi Pantaleev 73209a0554 Update aux role documentation, removing old matrix-aux references 2023-05-12 07:01:04 +03:00
Slavi Pantaleev f2825382f9
Merge pull request #2678 from FSG-Cat/Rate_Limits_via_Admin_API_Synapse
Rework Draupnir and Mjolnir Setup Guides to NOT mention DB access.
2023-05-11 20:09:46 +03:00
Catalan Lover 6b3ae35ef5
Fix Typo 2023-05-11 19:07:35 +02:00
Catalan Lover 18ab8dfdff
Remove manual Database Access steps and replace with Admin API Guide 2023-05-11 18:54:43 +02:00
Slavi Pantaleev a6a32f24f7 Add changed_when to Dendrite self-building task to make ansible-lint happy
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2674
2023-05-11 11:23:09 +03:00
Slavi Pantaleev 1649065a4d Fix yamllint-reported errors in matrix-dendrite
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2674
2023-05-11 09:54:22 +03:00
Slavi Pantaleev 1b9a29fba6 Upgrade Grafana (v9.5.1-0 -> v9.5.2-0) 2023-05-11 09:42:19 +03:00
Slavi Pantaleev f102d75e13 Upgrade backup-borg (v1.2.4-1.7.12-1 -> v1.2.4-1.7.12-2) 2023-05-11 09:42:13 +03:00
Slavi Pantaleev cb2124974e
Merge pull request #2674 from ibeckermayer/dendrite-self-build
Adds a self build option for dendrite
2023-05-10 22:27:20 +03:00
Isaiah Becker-Mayer d448cade3a Moves matrix_dendrite_container_image_self_build
to a conditional block, similar to synapse. Also adds the
DOCKER_BUILDKIT=1 explicitly to ensure buildkit is used.
2023-05-10 09:50:35 -07:00
Slavi Pantaleev 7d4beaee63
Merge pull request #2677 from etkecc/patch-224
Update element v1.11.30 -> v1.11.31
2023-05-10 17:23:01 +03:00
Aine 20a04a0261
Update element v1.11.30 -> v1.11.31 2023-05-10 13:54:51 +00:00
Slavi Pantaleev a0d94a7024
Merge pull request #2676 from darsh12/patch-1
Update matrix chatgpt bot  (v3.0.0 -> v3.1.0)
2023-05-10 09:16:20 +03:00
darsh12 8c0def5dfe
Update main.yml
update matrix_bot_chatgpt_version to 3.1.0
2023-05-09 14:20:27 -07:00
Slavi Pantaleev c1462c6277 Upgrade Synapse (v1.82.0 -> v1.83.0) 2023-05-09 21:00:09 +03:00
Isaiah Becker-Mayer 2bd94a52bb Adds self build option for dendrite 2023-05-07 17:07:37 -07:00
teutat3s e011d82a5b
Update flake* files and gitignore 2023-05-04 17:42:32 +02:00
teutat3s 6bb19f7db0
Merge branch 'master' into pub.solar 2023-05-04 17:38:39 +02:00
teutat3s 859734cd31
Remove *.nix files 2023-05-04 17:38:30 +02:00
Slavi Pantaleev 99f6982287
Merge pull request #2671 from etkecc/patch-223
nginx: fix base domain configuration to allow serving custom content
2023-05-03 23:08:23 +03:00
Aine ed5cf04306
nginx: fix base domain configuration to allow serving custom content 2023-05-03 19:27:57 +00:00
Slavi Pantaleev fb6ed0ba1c
Merge pull request #2670 from etkecc/patch-222
Update jitsi stable-8319 -> stable-8615
2023-05-02 14:08:06 +03:00
Aine 76d50a85fb
Update jitsi stable-8319 -> stable-8615 2023-05-02 11:02:52 +00:00
Slavi Pantaleev 8ef23a655d Restore --tags=import-synapse-sqlite-db support
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2669

Removed in 04b9483f0d (2022-11-28) when switching from matrix-postgres to
the devture-postgres external Ansible role.
More details: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role

The `import_synapse_sqlite_db.yml` file and documentation has been adapted somewhat compared to before, so that:

- it doesn't try to start Postgres automatically. You need to handle
  this part manually
- it doesn't rely on the integrated Postgres and may potentially work
  with external Postgres instances just the same
- it doesn't wipe out the whole database anymore. By default, we assume
  it's empty anyway and there's no need for such things. If it's not,
  then it's also probably dangerous to be so destructive.

This is all completely untested, but will hopefully work.
2023-05-02 13:34:42 +03:00
Slavi Pantaleev 1e1ab70965 Make use of matrix_synapse_container_network in the matrix-synapse role
It's the same as `matrix_docker_network` for now, so this practically
doesn't change anything.
2023-05-02 13:22:31 +03:00
Slavi Pantaleev 25895f6253
Merge pull request #2668 from yousefamar/patch-1
Update signald version
2023-05-01 16:40:09 +03:00
Yousef Amar 39ae66602c
Update signald version
0.23.1 no longer syncs groups properly, the solution is to use 0.23.2, which works as expected
2023-05-01 14:25:17 +01:00
Slavi Pantaleev 42a99968f2
Merge pull request #2667 from thomwiggers/patch-10
Update IRC appservice to 0.38.0
2023-05-01 15:35:29 +03:00
Thom Wiggers 4dae3f0fab
Update IRC appservice to 0.38.0
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.38.0
2023-05-01 14:30:27 +02:00
Slavi Pantaleev d4676f2c7c Upgrade com.devture.ansible.role.timesync to pinned tag (v1.0.0-0) 2023-04-29 08:21:02 +03:00
Slavi Pantaleev 3dcee1d5c4
Merge pull request #2662 from etkecc/patch-221
Update hookshot 3.2.0 -> 4.0.0
2023-04-27 18:39:56 +03:00
Slavi Pantaleev a4e6f91ebb Upgrade com.devture.ansible.role.systemd_service_manager (v1.0.0-0 -> v1.0.0-1) 2023-04-27 17:55:51 +03:00
Slavi Pantaleev f0e5a00802 Upgrade backup-borg (v1.2.4-1.7.12-0 -> v1.2.4-1.7.12-1) 2023-04-27 17:55:39 +03:00
Aine 34ffeb5f2f
Update hookshot 3.2.0 -> 4.0.0 2023-04-27 14:11:31 +00:00
Slavi Pantaleev a073b86682
Merge pull request #2661 from SimonBiggs/patch-1
Update configuring-playbook.md
2023-04-27 08:12:16 +03:00
Slavi Pantaleev 67cffdfce6
Update configuring-playbook.md 2023-04-27 08:12:09 +03:00
Simon Biggs d2dbd88a38
Update configuring-playbook.md 2023-04-27 15:02:45 +10:00
Slavi Pantaleev c2d7f33b58
Merge pull request #2659 from etkecc/patch-220
update grafana (9.4.7 -> 9.5.1); update ntfy (2.3.1 -> 2.4.0)
2023-04-27 07:16:54 +03:00
Aine b74ddf1c6b
update grafana (2.4.7 -> 2.5.1); update ntfy (2.3.1 -> 2.4.0) 2023-04-26 21:35:04 +00:00
Slavi Pantaleev 2d051679c0 Ensure instance_map.port is numeric
Fixup related to https://github.com/matrix-org/synapse/pull/15431
2023-04-25 15:26:30 +03:00
Slavi Pantaleev c8215c98e7 Load `/capabilities` endpoint on workers
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2656
- e4a25d022c
2023-04-25 15:16:03 +03:00
Slavi Pantaleev 905f0214cd Load `/directory/room/{roomAlias}` endpoint on workers
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2656
- 4af0aec54d
2023-04-25 15:15:13 +03:00
Slavi Pantaleev d645a95468
Merge pull request #2655 from etkecc/patch-218
Update element v1.11.29 -> v1.11.30
2023-04-25 15:14:03 +03:00
Slavi Pantaleev 7b9f64f458
Merge pull request #2656 from etkecc/patch-219
Update synapse 1.81.0 -> 1.82.0
2023-04-25 15:13:43 +03:00
Aine 1762fc18f3
Update synapse 1.81.0 -> 1.82.0 2023-04-25 12:04:23 +00:00
Aine 4abd46de42
Update element v1.11.29 -> v1.11.30 2023-04-25 12:03:29 +00:00
Slavi Pantaleev 15884b64c8 Fix ansible-lint-reported errors
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2654
2023-04-21 15:22:03 +03:00
Slavi Pantaleev 5489f8d832
Merge pull request #2654 from etkecc/honoroit-buscarron-protected-metrics
buscarron and honoroit - add basic auth for metrics
2023-04-21 15:16:22 +03:00
Aine f0be907971
create honoroit docker network 2023-04-21 12:48:50 +03:00
Aine c20d74af79
buscarron and honoroit - add basic auth for metrics 2023-04-21 12:45:32 +03:00
spatterlight beb40134b7
Add support for backup LDAP servers (#2650)
* Update homeserver.yaml.j2

* Update configuring-playbook-ldap-auth.md

* Update homeserver.yaml.j2
2023-04-19 08:52:03 +03:00
Slavi Pantaleev c62896b97e Upgrade Traefik (v2.9.10-1 -> v2.9.10-2) 2023-04-18 10:59:02 +03:00
Slavi Pantaleev 66930c9d75 Upgrade systemd_docker_base, container_socket_proxy, Traefik
These roles now obey
`devture_systemd_docker_base_container_image_pull_method` and `devture_systemd_docker_base_container_network_creation_method`
and can work on systems which don't have the Docker SDK for Python
installed by avoiding the various Ansible Docker modules and using raw
`docker` commands for pulling images and creating networks.
2023-04-18 10:41:55 +03:00
Slavi Pantaleev fc7dd54fc4
Merge pull request #2649 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.15.0
Bump ansible-community/ansible-lint-action from 6.14.4 to 6.15.0
2023-04-17 20:14:22 +03:00
dependabot[bot] 917167915b
Bump ansible-community/ansible-lint-action from 6.14.4 to 6.15.0
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.14.4 to 6.15.0.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.14.4...v6.15.0)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 17:00:42 +00:00
Slavi Pantaleev 458ab58786
Merge pull request #2648 from jalemann/master
fix: add missing word
2023-04-17 11:18:59 +03:00
Jost Alemann c46f79358f
fix: add missing word 2023-04-17 10:09:24 +02:00
Slavi Pantaleev dbfc054304
Merge pull request #2646 from Naalunth/nix-flake
Added a nix flake
2023-04-17 09:15:52 +03:00
Slavi Pantaleev a5429ab69d
Merge pull request #2644 from kanlas-net/master
Fix recaptcha vars ansible-vault compatibility
2023-04-17 09:15:43 +03:00
Slavi Pantaleev 72e28e8172
Merge pull request #2647 from etkecc/patch-217
Update mautrix-discord 0.2.0 -> 0.3.0
2023-04-17 08:37:20 +03:00
Aine f5f158f221
Update mautrix-discord 0.2.0 -> 0.3.0 2023-04-16 22:22:30 +00:00
Lilith Schier e323ab31d5 Added a nix flake 2023-04-16 19:04:35 +00:00
Slavi Pantaleev 54d2bf534e
Merge pull request #2645 from etkecc/patch-216
Update mautrix-whatsapp 0.8.3 -> 0.8.4
2023-04-16 20:24:02 +03:00
Aine bf564e8bda
Update mautrix-whatsapp 0.8.3 -> 0.8.4 2023-04-16 16:58:06 +00:00
Kanlas 9c75a1e20d
Fix recaptcha vars ansible-vault compatibility 2023-04-16 18:52:12 +03:00
Slavi Pantaleev 0adb0fdce7
Merge pull request #2641 from etkecc/patch-215
Update borgmatic 1.7.11 -> 1.7.12
2023-04-14 10:49:18 +03:00
Aine 2f11bf39c3
Update borgmatic 1.7.11 -> 1.7.12 2023-04-14 06:05:24 +00:00
teutat3s 8e959cf895
Merge branch 'master' into pub.solar 2023-04-13 15:49:16 +02:00
Slavi Pantaleev 3b817c1ad6
Merge pull request #2639 from spatterIight/patch-1
Update configuring-playbook-synapse.md
2023-04-12 18:49:02 +03:00
spatterlight 3d60ce4960
Update configuring-playbook-synapse.md
This change adds a section that lets the reader know that it is possible to enable synapse metrics and references the relevant documentation.

It aims to be short and concise, leaving the specifics to the referenced documentation, while still giving the reader a good idea of what it is and what it is for.
2023-04-12 15:32:27 +00:00
Slavi Pantaleev caffe04c5d
Merge pull request #2637 from mgoerens/remove_warning
Removing warning that no longer applies
2023-04-12 14:34:11 +03:00
mgoerens 591aa077a2 Removing warning that no longer applies
Similar to:
362954aeab

This warning was added because of:
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090

The problem has since been fixed by:
e9e84341a9

This current patch was provoked by:
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2352
2023-04-12 12:14:53 +02:00
Slavi Pantaleev b5af0bff31
Merge pull request #2635 from etkecc/patch-214
Update element 1.11.28 -> 1.11.29
2023-04-11 22:18:52 +03:00
Aine fe2df30998
Update element 1.11.28 -> 1.11.29 2023-04-11 18:29:36 +00:00
Slavi Pantaleev 024d9ed3f3 Upgrade Synapse (v1.80.0 -> v1.81.0) 2023-04-11 17:18:58 +03:00
Slavi Pantaleev 4546410f6a Restore matrix-nginx-proxy connectivity to the Jitsi container network
Regression since 1d00d15482
2023-04-10 15:15:32 +03:00
Slavi Pantaleev 2649d9d8bb Fix lint-reported errors 2023-04-08 08:10:22 +03:00
Slavi Pantaleev 9736202294
Merge pull request #2632 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.14.4
Bump ansible-community/ansible-lint-action from 6.11.0 to 6.14.4
2023-04-08 08:06:18 +03:00
Slavi Pantaleev 8cd16517e2
Merge pull request #2631 from shreyasajj/master
Updating maubot to the latest version 0.4.0 -> 0.4.1
2023-04-07 21:08:21 +03:00
dependabot[bot] 717d4417b9
Bump ansible-community/ansible-lint-action from 6.11.0 to 6.14.4
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.11.0 to 6.14.4.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.11.0...v6.14.4)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-07 16:59:03 +00:00
Shreyas Ajjarapu 418dd953ad
Updating maubot to the latest version 2023-04-07 11:44:17 -05:00
Slavi Pantaleev 45c92ba7db Upgrade Traefik (2.9.9 -> 2.9.10) 2023-04-07 08:09:57 +03:00
Aine 7399496d33
one var to control encryption across all bridges (#2629)
* one var to control encryption across all bridges

* move var to matrix-base
2023-04-05 14:59:48 +03:00
Slavi Pantaleev 6132c444da
Merge pull request #2628 from etkecc/patch-213
add borgmatic cli
2023-04-05 07:08:06 +03:00
Aine 8f43385f16
add borgmatic cli 2023-04-04 21:05:02 +00:00
Slavi Pantaleev c4b4b851cb
Merge pull request #2627 from etkecc/patch-212
Update hookshot 3.1.1 -> 3.2.0
2023-04-04 23:12:43 +03:00
Aine ec721a2b24
Update hookshot 3.1.1 -> 3.2.0 2023-04-04 19:44:24 +00:00
Slavi Pantaleev 5c14c6e9dd
Merge pull request #2626 from etkecc/patch-211
Update borgmatic 1.7.10 -> 1.7.11
2023-04-04 16:03:40 +03:00
Aine df5df0b386
Update borgmatic 1.7.10 -> 1.7.11 2023-04-04 11:24:14 +00:00
Slavi Pantaleev 704958f914
Merge pull request #2625 from thomwiggers/patch-9
Update Matrix IRC appservice to 0.37.1
2023-04-04 13:00:38 +03:00
Thom Wiggers 3c600899fb
Update Matrix IRC appservice to 0.37.1
https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.37.1
2023-04-04 11:39:50 +02:00
Slavi Pantaleev 58e5a24f66
Merge pull request #2624 from Kab1r/fix/traefik-duplicate-entrypoint
fix(traefik): Ignore federation endpoint if entrypoint with port already exists
2023-04-04 07:30:24 +03:00
Kabir Kwatra fdab05fa0a
fix(traefik): only include federation endpoint if port is new 2023-04-04 02:31:49 +00:00
Slavi Pantaleev 7b876cfc97 Upgrade Element (v1.11.27 -> v1.11.28) 2023-04-03 15:36:16 +03:00
Slavi Pantaleev fa63785109 Upgrade Coturn (4.6.1-r2 -> 4.6.1-r3) 2023-04-03 15:34:19 +03:00
Slavi Pantaleev e9d48ee9ca Fix typos
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2621
2023-04-03 12:02:06 +03:00
Slavi Pantaleev 6b9004a30b
Merge pull request #2621 from sgtbradley/patch-1
Fix CHANGELOG.md typo
2023-04-03 12:01:22 +03:00
Joshua 5a44e06e00
Remedy Typo 2023-04-03 18:34:54 +10:00
Slavi Pantaleev 812b395aa9 Remove various systemd services from matrix-nginx-proxy Wanted list when not proxied via nginx
If Traefik is used, these are not Wanted services.
2023-04-03 08:59:43 +03:00
Slavi Pantaleev 1d00d15482 Switch to exported Jitsi role 2023-04-03 08:53:46 +03:00
Slavi Pantaleev 2135f93c20 Remove jitsi-generate-passwords.sh script
The playbook auto-generates these passwords, so there's no need
to ask people to do it manually.
2023-04-02 09:22:21 +03:00
Slavi Pantaleev 9efd5229ad Remove time from "just run" command
People who need to time things should do it themselves, explicitly.
Forcing `time` on people is a little rude.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2618
2023-04-01 06:34:59 +03:00
Slavi Pantaleev 6538b707fe Auto-sort roles in requirements.yml with agru 2023-03-31 17:09:07 +03:00
Slavi Pantaleev 0af0b93964
Merge pull request #2617 from etkecc/patch-210
Update ntfy 2.3.0 -> 2.3.1
2023-03-31 14:10:51 +03:00
Slavi Pantaleev ae578dbf78
Merge pull request #2616 from etkecc/patch-209
Update element v1.11.26 -> v1.11.27
2023-03-31 14:10:34 +03:00
Aine f68038c1db
Update ntfy 2.3.0 -> 2.3.1 2023-03-31 11:05:41 +00:00
Aine d6eef6fd04
Update element v1.11.26 -> v1.11.27 2023-03-31 11:05:03 +00:00
Slavi Pantaleev 755a4074a9
Merge pull request #2615 from etkecc/patch-208
fix typo
2023-03-30 10:48:01 +03:00
Aine 39c8817aaa
fix typo 2023-03-30 07:46:41 +00:00
Slavi Pantaleev 16a3fe3c36
Merge pull request #2614 from etkecc/patch-207
ntfy v2.2.0 -> v2.3.0
2023-03-30 10:45:10 +03:00
Aine cc40984b03
Update requirements.yml 2023-03-30 07:44:14 +00:00
Aeris One 44aa0dce7b
Add ability to disable password auth (#2612)
* Add ability to disable password auth

* Allow disabling password authentication
2023-03-29 21:11:22 +03:00
Slavi Pantaleev f1a0a43226
Merge pull request #2611 from etkecc/patch-206
Update cinny 2.2.5 -> 2.2.6
2023-03-29 14:21:21 +03:00
Aine 9e2b0a3be2
Update cinny 2.2.5 -> 2.2.6 2023-03-29 11:20:23 +00:00
teutat3s 321c19a290
Merge branch 'master' into pub.solar 2023-03-29 11:51:02 +02:00
Slavi Pantaleev a3e952a0b8
Merge pull request #2610 from etkecc/patch-205
Update cinny 2.2.4 -> 2.2.5
2023-03-29 10:57:59 +03:00
Aine 8a9d76b990
Update cinny 2.2.4 -> 2.2.5 2023-03-29 07:57:08 +00:00
Slavi Pantaleev 755a32f09c
Merge pull request #2608 from etkecc/patch-204
Update hookshot 3.1.0 -> 3.1.1
2023-03-28 18:10:32 +03:00
Aine 45c37188b1
Update hookshot 3.1.0 -> 3.1.1 2023-03-28 15:05:26 +00:00
Slavi Pantaleev 76197df3bc Add some additional groups to client systemd services
This allows for doing `just install-service client-element` to get only
Element rebuilt and restarted.
2023-03-28 16:57:50 +03:00
Slavi Pantaleev 3023bc0601 Upgrade Element (v1.11.25 -> v1.11.26) 2023-03-28 16:56:31 +03:00
Slavi Pantaleev 1fff42d930 Switch Synapse to being pulled from ghcr.io, not docker.io
Related to:

- https://github.com/matrix-org/synapse/pull/15281
- https://github.com/matrix-org/synapse/pull/15282
2023-03-28 16:26:20 +03:00
Slavi Pantaleev 32fb27c16c Whitelist 2 more APIs for Synapse workers
Related to:

- e55269e14f
- 3d70cc393f
- 4fc85e5a92
2023-03-28 16:23:25 +03:00
Slavi Pantaleev e55269e14f Upgrade Synapse (v1.79.0 -> v1.80.0) 2023-03-28 16:23:06 +03:00
Slavi Pantaleev 1abd76101a Add matrix_synapse_docker_image_registry_prefix 2023-03-28 16:10:55 +03:00
Slavi Pantaleev 556cbf8131
Merge pull request #2607 from etkecc/patch-203
Update hookshot 3.0.1 -> 3.1.0
2023-03-28 14:37:37 +03:00
Aine 09188314dd
Update hookshot 3.0.1 -> 3.1.0 2023-03-28 11:11:12 +00:00
Slavi Pantaleev 82a484c62f Upgrade Grafana (v9.4.7-0 -> v9.4.7-1) 2023-03-28 12:24:37 +03:00
Slavi Pantaleev f66e049a91
Merge pull request #2606 from etkecc/patch-202
Update borgmatic 1.7.9 -> 1.7.10
2023-03-28 12:02:56 +03:00
Aine 3d3212725e
Update borgmatic 1.7.9 -> 1.7.10 2023-03-28 08:01:39 +00:00
Slavi Pantaleev 9a137a63ac Add justfile to .editorconfig 2023-03-28 10:55:43 +03:00
Slavi Pantaleev d25e7744d9 Always restart services one by one when doing install-service
This way, something like `just install-service postgres` will
definitely do a `restart` and not a `stop` + `start` (which may leave
dependant services stopped).

This has potentially been addressed by
7acb5f4b85
as well.
2023-03-28 10:55:11 +03:00
Slavi Pantaleev 6732901c70 Upgrade com.devture.ansible.role.systemd_service_manager 2023-03-28 10:54:47 +03:00
Slavi Pantaleev 413049feea Remove shell configuration for better compatibility
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2604
2023-03-26 14:12:29 +03:00
teutat3s 54ae00cb05
Merge branch 'master' into pub.solar 2023-03-26 12:11:09 +02:00
Slavi Pantaleev ba166cd258
Merge pull request #2603 from etkecc/agru
safely integrate agru, format justfile, format requirements.yml
2023-03-25 18:26:20 +02:00
Aine 34a03cf732
safely integrate agru, format justfile, format requirements.yml 2023-03-25 17:47:13 +02:00
Slavi Pantaleev e60febc9ca Use git for fetching the geerlingguy.docker role
With this change, all dependency roles are downloaded
using the same mechanism (git), which makes life simpler for tools like
https://gitlab.com/etke.cc/int/agru
2023-03-25 08:56:12 +02:00
Slavi Pantaleev 0ebad3d904
Merge pull request #2601 from etkecc/patch-201
Update borg 1.2.3 -> 1.2.4
2023-03-24 11:02:16 +02:00
Aine e04894de7c
Update borg 1.2.3 -> 1.2.4 2023-03-24 07:54:06 +00:00
Slavi Pantaleev d725424f39
Merge pull request #2600 from etkecc/fix-honoroit-networks
fix honoroit networks
2023-03-23 20:19:50 +02:00
Aine 6d5cf9cbcd
fix honoroit networks 2023-03-23 20:17:11 +02:00
Slavi Pantaleev 87567b3d0b
Merge pull request #2599 from etkecc/honoroit-networks
honoroit - add proper networking configuration and traefik labels
2023-03-23 19:42:34 +02:00
Aine 15ce377235
honoroit - add matrix_bot_honoroit_hostname into group vars 2023-03-23 19:09:34 +02:00
Aine 0b18f03195
honoroit - add proper networking configuration and traefik labels 2023-03-23 19:06:16 +02:00
Slavi Pantaleev 6b3ab052f6 Upgrade prometheus_node_exporter (v1.5.0-6 -> v1.5.0-7) 2023-03-23 11:02:27 +02:00
Slavi Pantaleev 7f8bc79947
Merge pull request #2597 from etkecc/patch-200
Update grafana v9.4.3 -> v9.4.7
2023-03-22 19:01:21 +02:00
Aine 1a23016570
Update grafana v9.4.3 -> v9.4.7 2023-03-22 16:54:39 +00:00
Slavi Pantaleev 7be8943b64 Pin matrix-rageshake to 1.9.0
Related to:

- https://github.com/matrix-org/rageshake/issues/69
- https://github.com/matrix-org/rageshake/pull/70
2023-03-22 17:53:57 +02:00
Slavi Pantaleev a086688867
Merge pull request #2596 from Zocker1999NET/patch-2
Describe disabled ntfy web app in documentation & changelog
2023-03-22 11:28:40 +02:00
Slavi Pantaleev a54d8f82a0
Update configuring-playbook-ntfy.md 2023-03-22 11:28:34 +02:00
Felix Stupp e29af490c0
CHANGELOG: Add disabled ntfy web app
See #2529
2023-03-22 09:21:29 +00:00
Felix Stupp 87b74e6c3e
ntfy doc: Describe web app & how to enable it
See #2529
2023-03-22 09:14:36 +00:00
Slavi Pantaleev 69b2df629b Enable some recommended Coturn options in an effort to lower DDoS amplification factor
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2592
2023-03-22 08:04:47 +02:00
Slavi Pantaleev c222391e77 Upgrade Traefik (v2.9.8-2 -> v2.9.9-0) 2023-03-22 07:46:53 +02:00
Slavi Pantaleev 7a7c75c6a4 Upgrade prometheus_postgres_exporter (v0.11.1-2 -> v0.12.0-0) 2023-03-22 07:43:54 +02:00
Slavi Pantaleev 4a009480ae
Merge pull request #2593 from etkecc/patch-197
Update prometheus v2.42.0 -> v2.43.0
2023-03-21 20:14:43 +02:00
Slavi Pantaleev 01c565fc76
Merge pull request #2594 from etkecc/patch-198
Update hookshot 3.0.0 -> 3.0.1
2023-03-21 20:14:28 +02:00
Slavi Pantaleev 6ef8a30dc4
Merge pull request #2595 from etkecc/patch-199
Update redis 7.0.9 -> 7.0.10
2023-03-21 20:14:15 +02:00
Aine 045542be76
Update redis 7.0.9 -> 7.0.10 2023-03-21 18:03:53 +00:00
Aine 38fc864745
Update hookshot 3.0.0 -> 3.0.1 2023-03-21 18:00:38 +00:00
Aine 5c0cc0168c
Update prometheus v2.42.0 -> v2.43.0 2023-03-21 17:59:58 +00:00
Slavi Pantaleev 14b8efcad2 Replace matrix-prometheus with an external Prometheus role 2023-03-21 07:38:12 +02:00
Slavi Pantaleev d351213486 Upgrade prometheus_node_exporter (v1.5.0-4 -> v1.5.0-6) 2023-03-21 07:29:21 +02:00
Slavi Pantaleev 01db1ae9b7 Mention passlib
It's not strictly required yet, but certain versions of Ansible display warnings
if passlib is missing. The non-passlib crypto usage is deprecated, so
passlib will become a requirement in newer Ansible versions. It's only a
matter of time.
2023-03-20 18:44:20 +02:00
Slavi Pantaleev a1a37700b9 Update one more devture/ansible reference 2023-03-20 18:40:01 +02:00
Slavi Pantaleev a542a2ff41 Upgrade devture/ansible (2.13.6-r0-2 -> 2.13.6-r0-3) 2023-03-20 17:59:08 +02:00
Slavi Pantaleev 21c2bbb11f Add matrix_prometheus_nginxlog_exporter_container_network 2023-03-20 17:04:23 +02:00
Slavi Pantaleev ade312e6f6 Add matrix_hookshot_container_network 2023-03-20 17:03:19 +02:00
Slavi Pantaleev 1b6a85e485 Do not consider prometheus-exporters as part of the prometheus group
This makes us rebuild/restart exporters when running `just install-service prometheus`,
which we don't like.
2023-03-20 15:09:04 +02:00
Slavi Pantaleev abf96569e0 Add extra_args support to install-service justfile command
It's now possible to do: `just install-service prometheus -l host.example.com`
2023-03-20 15:05:19 +02:00
Slavi Pantaleev d974c0c166 Make yamllint happy 2023-03-20 11:09:59 +02:00
Slavi Pantaleev 220d80ac3a Move matrix-aux outside of this playbook 2023-03-20 11:06:27 +02:00
Slavi Pantaleev be3a733b69
Merge pull request #2588 from ctwelve/patch-1
Update sliding sync doc for external DB users
2023-03-20 09:21:13 +02:00
Justin Croonenberghs 39f53e81d0
Update sliding sync doc for external DB users
* fixes #2586
2023-03-19 13:42:41 -05:00
Slavi Pantaleev e726c97edc
Merge pull request #2584 from Kab1r/fix/sliding-sync-sync-url
fix(sliding-sync): Use external syncv3 server URL
2023-03-19 08:15:09 +02:00
Slavi Pantaleev 3e84e354a8 Add "install-service" justfile command
It should be noted that this cannot be used for the initial install
of services which require a database or have other dependencies.
Those would typically need to invoke the playbook with
`--tags=install-postgres,install-SERVICE`, etc.

The purpose of this shortcut is to easily rebuild and restart
a single serice subsequently. For those cases, often times there's no need to
reinitialize the database and other components and simply running a
single component's tasks is enough.
2023-03-19 08:12:37 +02:00
Slavi Pantaleev 2c233492db
Merge pull request #2585 from etkecc/patch-196
update ntfy 2.1.2 -> 2.2.0
2023-03-18 23:18:24 +02:00
Aine b01e7b1ae5
update ntfy 2.1.2 -> 2.2.0 2023-03-18 19:29:20 +00:00
Kabir Kwatra 8202acf742
fix(sliding-sync): use external syncv3 server url 2023-03-18 10:17:29 +00:00
Slavi Pantaleev 4198d04ec8
Merge pull request #2582 from etkecc/prometheus-node-exporter-changes
migrate prometheus-node-exporter's var
2023-03-18 10:51:53 +02:00
Aine 88dc5e0de0
migrate prometheus-node-exporter's var 2023-03-18 10:26:29 +02:00
Slavi Pantaleev 8f0bef347a
Merge pull request #2581 from array-in-a-matrix/master
add database for Dendrite's relay API - fixes #2571
2023-03-18 10:12:38 +02:00
Array in a Matrix dd1712d457
fix typo
i was sleepy lol
2023-03-18 03:43:12 -04:00
array-in-a-matrix f1c0321a8c add relay api database for dendrite 2023-03-18 03:22:30 -04:00
Slavi Pantaleev 554915bd74
Merge pull request #2579 from etkecc/patch-195
Update hookshot 2.7.0 -> 3.0.0
2023-03-17 23:52:22 +02:00
Slavi Pantaleev 01cf29ecf4
Merge pull request #2578 from etkecc/patch-194
Update mautrix-whatsapp 0.8.2 -> 0.8.3
2023-03-17 23:51:47 +02:00
Slavi Pantaleev 00c00cf69b
Merge pull request #2577 from etkecc/patch-193
Update mautrix-discord 0.1.1 -> 0.2.0
2023-03-17 23:51:17 +02:00
Aine 7ef804f62f
Update hookshot 2.7.0 -> 3.0.0
Warning! Potentially breaking change: https://github.com/matrix-org/matrix-hookshot/releases/tag/3.0.0
2023-03-17 20:05:38 +00:00
Aine e6552a9c3b
Update mautrix-whatsapp 0.8.2 -> 0.8.3 2023-03-17 20:03:17 +00:00
Aine 281bad125d
Update mautrix-discord 0.1.1 -> 0.2.0 2023-03-17 20:01:57 +00:00
Slavi Pantaleev 56b0706863 Fix default database name
For backward-compatibility reasons, this playbook uses `matrix` as its
main and default database.
2023-03-17 08:27:52 +02:00
Slavi Pantaleev eae9565cde
Merge pull request #2575 from etkecc/patch-192
Update borgmatic 1.7.8 -> 1.7.9
2023-03-17 07:58:03 +02:00
Aine ff6e7f0ac5
Update borgmatic 1.7.8 -> 1.7.9 2023-03-16 21:03:55 +00:00
Slavi Pantaleev ee4bac1988 Upgrade matrix-corporal (2.5.1 -> 2.5.2) 2023-03-16 18:29:11 +02:00
Slavi Pantaleev d6975e4ab8 Upgrade com.devture.ansible.role.postgres 2023-03-16 14:57:40 +02:00
Slavi Pantaleev 2b49ae79ca Use just for Postgres maintenance command examples 2023-03-16 11:23:22 +02:00
Slavi Pantaleev 636142c4e0 matrix-bot-chatgpt role refactoring 2023-03-16 10:21:53 +02:00
Slavi Pantaleev a55c6b1b5a Remove non-functional variable matrix_bot_chatgpt_loglevel
It wasn't used at all. It doesn't seem like there's a way to control
the log level, judging by:
- 8f9eea4114/.env.example
- 8f9eea4114/src/env.ts
2023-03-16 10:21:53 +02:00
Slavi Pantaleev 9afc46de72 Update matrix_bot_chatgpt_matrix_blacklist/matrix_bot_chatgpt_matrix_whitelist comment 2023-03-16 10:21:53 +02:00
Slavi Pantaleev cc890297f8
Merge pull request #2573 from etkecc/patch-191
Update element 1.11.24 -> 1.11.25
2023-03-15 22:12:42 +02:00
Aine eaa3be2825
Update element 1.11.24 -> 1.11.25 2023-03-15 20:07:51 +00:00
Slavi Pantaleev 99cc5e4b2f Fix file name typo 2023-03-15 14:14:35 +02:00
teutat3s 369d909210
Merge branch 'master' into pub.solar 2023-03-15 10:18:13 +01:00
Slavi Pantaleev 4bd1b6bb50
Merge pull request #2570 from array-in-a-matrix/patch-20
fix typo in dendrite dynamic thumbnail var
2023-03-14 20:23:03 +02:00
Array in a Matrix a63860ac75
fix typo 2023-03-14 14:10:16 -04:00
Slavi Pantaleev fab6c03609 Allow some new endpoints to work on workers
Related to:

- 682d31c702
- ecbe0ddbe7
- f4fc83ac75

.. and https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2569
2023-03-14 19:21:43 +02:00
Slavi Pantaleev 40c094f486
Merge pull request #2569 from FSG-Cat/patch-1
Upgrade Synapse from 1.78.0 to 1.79.0
2023-03-14 19:18:27 +02:00
Catalan Lover 5cd3a6188e
Upgrade Synapse from 1.78.0 to 1.79.0 2023-03-14 17:39:41 +01:00
Slavi Pantaleev 4c1db32ef9 Rename some Dendrite variables to improve consistency 2023-03-14 08:52:15 +02:00
Slavi Pantaleev fd2f497ac0 Fix variable names
Related to:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2565
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2566
2023-03-14 08:47:01 +02:00
Slavi Pantaleev 75cc50d2ab
Merge pull request #2567 from array-in-a-matrix/patch-18
Update dendrite to v0.12.0
2023-03-14 08:43:18 +02:00
Slavi Pantaleev 38cb0a7c85
Merge pull request #2565 from array-in-a-matrix/master
add dynamic thumbnails var for Dendrite
2023-03-14 08:43:01 +02:00
Slavi Pantaleev bef13fe495
Merge branch 'master' into master 2023-03-14 08:42:55 +02:00
Slavi Pantaleev c747891cfe
Merge pull request #2566 from array-in-a-matrix/search
add full text search for dendrite
2023-03-14 08:41:28 +02:00
Array in a Matrix 4f0f6bd995
Update dendrite.yaml.j2 2023-03-13 16:21:18 -04:00
Array in a Matrix c93eb1dbf7
Update dendrite.yaml.j2 2023-03-13 16:19:49 -04:00
Array in a Matrix d0aa5a1f6a
Update main.yml 2023-03-13 16:11:16 -04:00
array-in-a-matrix 734848a27b added full text search for dendrite 2023-03-13 15:54:07 -04:00
array-in-a-matrix 40f067148d added dynamic thumbnails var 2023-03-13 15:28:58 -04:00
Slavi Pantaleev cf7f9701b7 urlencode matrix_synapse_auto_compressor_database_username/matrix_synapse_auto_compressor_database_password 2023-03-13 11:59:14 +02:00
Slavi Pantaleev e5c5a9b02b
Merge pull request #2561 from etkecc/synapse-auto-compressor
add synapse_auto_compressor
2023-03-12 10:55:20 +02:00
Slavi Pantaleev d3a0ef22b6 Announce matrix-synapse-auto-compressor 2023-03-12 10:55:08 +02:00
Slavi Pantaleev bb89d7b3fb Fix self-building for matrix-synapse-auto-compressor 2023-03-12 10:39:19 +02:00
Slavi Pantaleev 7422337c26 Add missing matrix-synapse-auto-compressor.timer in systemd service list 2023-03-12 10:18:33 +02:00
Slavi Pantaleev 328d0d8a5f Move synapse-auto-compressor Postgres argument to an environment variable
This provides an additional security benefit. The password won't leak in
the process list anymore.
2023-03-12 10:18:33 +02:00
Slavi Pantaleev 26d5719df4 Make matrix-synapse-auto-compressor live in its own container network
It will, additionally, be connected to the devture-postgres network, if
devture-postgres is enabled.
2023-03-12 10:18:33 +02:00
Slavi Pantaleev 0f2e568b30 Add validation tasks to matrix-synapse-auto-compressor 2023-03-12 10:18:33 +02:00
Slavi Pantaleev ca69fce648 Add missing group vars for matrix-synapse-auto-compressor 2023-03-12 10:18:33 +02:00
Slavi Pantaleev b28d779c6c Add matrix-synapse-auto-compressor section in group_vars/matrix_servers 2023-03-12 09:48:46 +02:00
Slavi Pantaleev 43ae0b2943 Minor rewording 2023-03-12 09:44:43 +02:00
Aine bf3677a9b5
add synapse_auto_compressor 2023-03-10 23:48:43 +02:00
Slavi Pantaleev 1bdd3e2503
Merge pull request #2560 from etkecc/patch-190
update prometheus-node-exporter 1.5.0-2 -> 1.5.0-3
2023-03-10 22:27:10 +02:00
Aine 122a834a7f
update prometheus-node-exporter 1.5.0-2 -> 1.5.0-3 2023-03-10 20:23:13 +00:00
teutat3s 14394db66c
Merge branch 'master' into pub.solar 2023-03-09 11:58:54 +01:00
Slavi Pantaleev 70af9a4481 Upgrade Traefik (v2.9.8-1 -> v2.9.8-2) - not using unprivileged ports anymore 2023-03-09 08:56:58 +02:00
Slavi Pantaleev d999e984da
Merge pull request #2553 from array-in-a-matrix/patch-17
fix incomplete config line
2023-03-09 08:01:15 +02:00
Slavi Pantaleev dceb781e16
Merge pull request #2554 from joecool1029/gptbump
Bump ChatGPT version and add new config settings
2023-03-09 08:00:35 +02:00
Joe Kappus f2ebb5a91d
Bump ChatGPT version and add new config settings
OpenAI changed the model a month ago and broke the bot.
This bump fixes it and adds the default model.
2023-03-09 00:02:54 -05:00
Array in a Matrix 06a390b6b8
Update configuring-playbook-cactus-comments.md 2023-03-08 19:22:31 -05:00
teutat3s e604445738
Merge branch 'master' into pub.solar 2023-03-08 18:19:12 +01:00
Slavi Pantaleev 0d93ee8c46
Merge pull request #2548 from etkecc/patch-189
Update jitsi stable-8252 -> stable-8319
2023-03-07 22:45:30 +02:00
Aine cdb1452d17
Update jitsi stable-8252 -> stable-8319 2023-03-07 20:38:36 +00:00
Slavi Pantaleev dddfee16bc Fix all 300+ ansible-lint-reported errors 2023-03-07 17:28:15 +02:00
Slavi Pantaleev bf95204860 Mention Element X Android not being quite ready for testing yet 2023-03-07 14:44:30 +02:00
Slavi Pantaleev 6c1a39e6e9 Announce sliding-sync support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515
2023-03-07 12:22:04 +02:00
Slavi Pantaleev 023fe3ea08 Add sliding-sync support
This allows people to try out the new Element X clients, which need to
run against the sliding-sync proxy (https://github.com/matrix-org/sliding-sync).

Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515

The code is based on the existing PR (#2515), but heavily reworked. Major changes:

- lots of internal refactoring and variable renaming

- fixed self-building to support non-amd64 architectures

- changed to talk to the homeserver locally, over the container network (not
  publicly)

- no more matrix-nginx-proxy support due to complexity (see below)

- no more `matrix_server_fqn_sliding_sync_proxy` in favor of
  `matrix_sliding_sync_hostname` and `matrix_sliding_sync_path_prefix`

- runs on `matrix.DOMAIN/sliding-sync` by default, so it can tried
  easily without having to create new DNS records
2023-03-07 11:57:56 +02:00
Slavi Pantaleev 2a872e95fc Mention external roles in the FAQ 2023-03-06 13:52:22 +02:00
Slavi Pantaleev db4070fc75 Remove some nginx references 2023-03-06 13:48:31 +02:00
Slavi Pantaleev 6e3aab6594 Make devture-traefik to matrix-traefik migration code a little safer 2023-03-06 11:00:42 +02:00
Slavi Pantaleev 26fdae3797 Upgrade com.devture.ansible.role.container_socket_proxy 2023-03-06 10:29:58 +02:00
Slavi Pantaleev e21c44347f Add Traefik Dashboard warning 2023-03-06 10:28:44 +02:00
Slavi Pantaleev 30f1034767 Remove matrix_playbook_traefik_role_enabled variable and devture-traefik references
The variable was necessary when multiple playbooks could have
potentially tried to manage a shared `devture-traefik.serivce` systemd service
and shared `/devture-traefik` directory.

Since adcc6d9723, we use our own `/matrix/traefik`
(`matrix-traefik.service`) installation and no conflicts can arise.
It's safe to always enable the role, just like we do with all the other roles.
2023-03-06 09:51:14 +02:00
Slavi Pantaleev adcc6d9723 Relocate Traefik (to matrix-traefik.service && /matrix/traefik base path)
The migration is automatic. Existing users should experience a bit of
downtime until the playbook runs to completion, but don't need to do
anything manually.

This change is provoked by https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2535

While my statements there ("Traefik is a shared component among
sibling/related playbooks and should retain its global
non-matrix-prefixed name and path") do make sense, there's another point
of view as well.

With the addition of docker-socket-proxy support in bf2b540807,
we potentially introduced another non-`matrix-`-prefixed systemd service
and global path (`/devture-container-socket-proxy`). It would have
started to become messy.

Traefik always being called `devture-traefik.service` and using the `/devture-traefik` path
has the following downsides:

- different playbooks may write to the same place, unintentionally,
  before you disable the Traefik role in some of them.
  If each playbook manages its own installation, no such conflicts
  arise and you'll learn about the conflict when one of them starts its
  Traefik service and fails because the ports are already in use

- the data is scattered - backing up `/matrix` is no longer enough when
  some stuff lives in `/devture-traefik` or `/devture-container-socket-proxy` as well;
  similarly, deleting `/matrix` is no longer enough to clean up

For this reason, the Traefik instance managed by this playbook
will now be called `matrix-traefik` and live under `/matrix/traefik`.

This also makes it obvious to users running multiple playbooks, which
Traefik instance (powered by which playbook) is the active one.
Previously, you'd look at `devture-traefik.service` and wonder which
role was managing it.
2023-03-06 09:34:31 +02:00
Slavi Pantaleev bf2b540807 Harden Traefik security by accessing the Docker API through docker-socket-proxy
With these changes, we:

- install https://github.com/Tecnativa/docker-socket-proxy via the
  https://github.com/devture/com.devture.ansible.role.container_socket_proxy Ansible role

- make Traefik access the Docker API via TCP by connecting to this
  socket proxy

- .. which allows us to run the Traefik container with less privileges
  (non-`root`, dropped capabilities)
2023-03-06 09:11:02 +02:00
Slavi Pantaleev 449b51588e Remove usage of undefined matrix_bot_go_neb_identifier variable
This is a mistake made in 10b5350370.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2540
2023-03-06 08:52:32 +02:00
Slavi Pantaleev d9ce9064f6
Merge pull request #2542 from etkecc/patch-188
update honoroit 0.9.16 -> 0.9.17
2023-03-05 20:16:31 +02:00
Aine 493de7316c
update honoroit 0.9.16 -> 0.9.17
* healthchecks.io integration
* mutex on forwarding messages into thread
* fix in prefixes handling
* send error messages as thread reply when possible
2023-03-05 14:52:53 +00:00
Slavi Pantaleev 6724b60d88
Merge pull request #2541 from etkecc/patch-187
Update ntfy 2.1.1 -> 2.1.2
2023-03-05 12:29:25 +02:00
Aine 6a6761cb88
Update ntfy 2.1.1 -> 2.1.2 2023-03-05 10:17:07 +00:00
Slavi Pantaleev 10b5350370 Add Traefik support to Go-NEB bot
Completely untested.
2023-03-03 10:40:45 +02:00
Slavi Pantaleev 6085e3a816 Add validation tasks for Etherpad migration (matrix_etherpad -> etherpad) 2023-03-03 10:38:11 +02:00
Slavi Pantaleev 2457ac0f6a
Merge pull request #2538 from etkecc/patch-186
update grafana 9.4.2 -> 9.4.3
2023-03-03 09:56:35 +02:00
Aine e588f5eaec
update grafana 9.4.2 -> 9.4.3 2023-03-03 07:47:47 +00:00
Slavi Pantaleev f8966cd8da Default etherpad_hostname to matrix_server_fqn_etherpad for backward compatibility 2023-03-03 09:47:13 +02:00
Slavi Pantaleev 8acfcf8bf1
Merge pull request #2537 from etkecc/patch-185
update borgmatic 1.7.7 -> 1.7.8
2023-03-03 09:35:43 +02:00
Slavi Pantaleev 70b67b12bc Upgrade com.devture.ansible.role.postgres_backup 2023-03-03 09:04:13 +02:00
Slavi Pantaleev 0dcfc74fc8 Upgrade com.devture.ansible.role.traefik_certs_dumper 2023-03-03 09:00:30 +02:00
Slavi Pantaleev 49b7d805ee Upgrade com.devture.ansible.role.traefik 2023-03-03 09:00:30 +02:00
Slavi Pantaleev c49875e71c
Merge pull request #2536 from etkecc/patch-184
update grafana 9.4.1 -> 9.4.2
2023-03-03 08:27:00 +02:00
Aine bb19de4a5f
update borgmatic 1.7.7 -> 1.7.8 2023-03-03 06:21:26 +00:00
Aine 47cfec726f
update grafana 9.4.1 -> 9.4.2 2023-03-03 06:18:52 +00:00
Slavi Pantaleev 849248b165 Upgrade Etherpad role (v1.8.18-1 -> v1.8.18-2) 2023-03-02 23:00:18 +02:00
Slavi Pantaleev 795c335395 Upgrade Etherpad role (v1.8.18-0 -> v1.8.18-1) 2023-03-02 22:58:45 +02:00
Slavi Pantaleev 124fbeda04 Switch to using an external Etherpad role
This new role also adds native Traefik support and support for other
(non-`amd64`) architectures via self-building.
2023-03-02 22:50:13 +02:00
Slavi Pantaleev ae76db4d77 Upgrade com.devture.ansible.role.traefik_certs_dumper for wait time increase (60 -> 180 sec.) 2023-03-02 16:06:11 +02:00
Slavi Pantaleev 2e2691e96b
Merge pull request #2534 from FSG-Cat/draupnir
Resolve Draupnir regression caused in #2508
2023-03-02 10:35:29 +02:00
Slavi Pantaleev 4f74d21ba8 Upgrade devture/ansible (2.13.6-r0-1 -> 2.13.6-r0-2)
The new version includes the `passlib` Python module.
2023-03-02 10:31:50 +02:00
Catalan Lover 4ccd3f79de
Fix Draupnir config
Config was accidently changed when importing upstream changes.
2023-03-02 03:58:03 +01:00
Slavi Pantaleev 606c1907bb
Merge pull request #2533 from etkecc/patch-183
update ntfy 2.1.0 -> 2.1.1
2023-03-01 23:48:12 +02:00
Slavi Pantaleev 227d9d8209 Fix variable name typo 2023-03-01 23:14:40 +02:00
Aine 4cd9e65d6d
update ntfy 2.1.0 -> 2.1.1 2023-03-01 20:09:54 +00:00
Slavi Pantaleev adc18251a9 Upgrade com.devture.ansible.role.traefik (2.9.6 -> 2.9.8) 2023-03-01 12:47:55 +02:00
Slavi Pantaleev a4b401c4da Upgrade com.devture.ansible.role.traefik and improve front-Traefik-with-another-proxy docs
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2532
2023-03-01 12:32:30 +02:00
Slavi Pantaleev 8db2c0498a Upgrade Synapse (v1.77.0 -> v1.78.0) 2023-03-01 11:07:25 +02:00
Slavi Pantaleev d6371a0781 Upgrade ddclient (v3.10.0-ls110 -> v3.10.0-ls111) 2023-03-01 10:32:49 +02:00
Slavi Pantaleev 468bed653e Upgrade Redis (v7.0.7-0 -> v7.0.9-0) 2023-03-01 10:30:09 +02:00
Slavi Pantaleev ba2a3caaf3 Minor improvements to docs/configuring-playbook-ssl-certificates.md 2023-03-01 09:54:23 +02:00
Slavi Pantaleev d8c2e1a98c
Merge pull request #2530 from plui29989/master
Added doc for self-signed certificates
2023-03-01 09:47:07 +02:00
Slavi Pantaleev 7331d314c4
Improve wording 2023-03-01 09:45:54 +02:00
Slavi Pantaleev b0845984b3 Only enable Traefik certs dumper if the ACME certificate resolver for Traefik is enabled
If someone disables ACME, then they're using their own certificates
somehow. There's nothing to dump from an `acme.json` file.
2023-03-01 09:45:16 +02:00
Slavi Pantaleev f7149103e4 Remove matrix_playbook_traefik_certs_dumper_role_enabled in favor of just devture_traefik_certs_dumper_enabled
We don't need these 2 roughly-the-same settings related to the
traefik-certs-dumper role.

For Traefik, it makes sense, because it's a component used by the
various related playbooks and they could step onto each other's toes
if the role is enabled, but Traefik is disabled (in that case, uninstall
tasks will run).

As for Traefik certs dumper, the other related playbooks don't have it,
so there's no conflict. Even if they used it, each one would use its own
instance (different `devture_traefik_certs_dumper_identifier`), so there
wouldn't be a conflict and uninstall tasks can run without any danger.
2023-03-01 09:31:48 +02:00
Slavi Pantaleev f372403d22
Merge pull request #2531 from array-in-a-matrix/master
remove devture services in remove-all script
2023-03-01 09:00:24 +02:00
array-in-a-matrix c3900aaf1b remove devture services 2023-02-28 18:06:46 -05:00
plui29989 4b17a1e73a formatting 2023-02-28 21:09:37 +01:00
plui29989 32e700f076 Add doc for self-signed certificates 2023-02-28 21:07:16 +01:00
Slavi Pantaleev 79685c728b
Merge pull request #2528 from etkecc/patch-182
Update element 1.11.23 -> 1.11.24
2023-02-28 15:27:15 +02:00
Slavi Pantaleev 2da914e1bb
Merge pull request #2527 from etkecc/patch-181
Update grafana 9.3.6 -> 9.4.1
2023-02-28 15:26:51 +02:00
Aine 0fe1d1f9ec
Update element 1.11.23 -> 1.11.24 2023-02-28 13:18:59 +00:00
Aine 0aede060f3
Update grafana 9.3.6 -> 9.4.1 2023-02-28 13:18:21 +00:00
Slavi Pantaleev 6fe739a2cb Remove unnecessary variable 2023-02-27 18:32:22 +02:00
Slavi Pantaleev bb90536874 Fix variable name typos in docs/configuring-playbook-postgres-backup.md
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2524
2023-02-27 17:57:36 +02:00
Slavi Pantaleev 73f09d4bb0 Remove fronting matrix-nginx-proxy example
We don't need this anymore. No one should be using matrix-nginx-proxy
anymore.
2023-02-27 17:48:35 +02:00
Slavi Pantaleev a5e216b837
Merge pull request #2526 from jalemann/master
Add example config + readme for fronting playbook's traefik with own nginx on same server
2023-02-27 17:47:37 +02:00
Slavi Pantaleev faa074f7af Improve wording 2023-02-27 17:47:19 +02:00
Slavi Pantaleev 91660f7433 Improve wordng in examples/nginx/README.md 2023-02-27 17:45:28 +02:00
Slavi Pantaleev 7716c306f1 Split Traefik rules for Matrix Client and Matrix Federation APIs
This helps people who run federation on another domain (etc.).
They should now easily be able to add a custom rule for federation traffic.
2023-02-27 17:28:33 +02:00
Slavi Pantaleev b388a01ab7 Wire all certResolver variables to devture_traefik_certResolver_primary
This allows people wishing to change or unset the resolver,
to have a single variable which they can toggle.

Unsetting the resolver is useful for using your own certificates
(not coming from a certificate resolver).
2023-02-27 17:09:19 +02:00
Slavi Pantaleev 9e7415afa2 Ensure Buscarron is part of the Postgres network 2023-02-27 17:07:44 +02:00
Jost Alemann 84e6677bc0
in own webserver doc link to nginx fronting traefik example 2023-02-27 15:56:34 +01:00
Jost Alemann 89b9fca85c
remove duplicate of playbook config instructions 2023-02-27 15:51:04 +01:00
Jost Alemann 8dacdb038b
add: nginx example conf + readme for fronting playbooks traefik with own nginx 2023-02-27 15:34:37 +01:00
Slavi Pantaleev e6ba7cc2c9 Upgrade com.devture.ansible.role.traefik 2023-02-27 16:32:37 +02:00
Jost Alemann 724373b123
add nginx to list of own webserver example configs 2023-02-27 14:59:36 +01:00
Slavi Pantaleev 2c8dffc51c
Merge pull request #2525 from thomwiggers/patch-8
Update irc appservice
2023-02-27 15:04:10 +02:00
Thom Wiggers d544f746e8
Update irc appservice 2023-02-27 13:40:23 +01:00
Slavi Pantaleev d5910d0421 Upgrade com.devture.ansible.role.docker_sdk_for_python
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2522
2023-02-27 08:27:41 +02:00
Slavi Pantaleev 058a54fd05 Add native Traefik support to Dimension 2023-02-26 23:06:36 +02:00
Slavi Pantaleev b84f25309b Add matrix_homeserver_container_network 2023-02-26 22:09:37 +02:00
Slavi Pantaleev cdd23aafc6 Add matrix_conduit_container_network/matrix_conduit_container_additional_networks 2023-02-26 22:08:08 +02:00
Slavi Pantaleev 9e4ecf4ac9 Add matrix_dendrite_container_network/matrix_dendrite_container_additional_networks 2023-02-26 22:05:36 +02:00
Slavi Pantaleev 31857ea9bb Upgrade com.devture.ansible.role.traefik_certs_dumper 2023-02-26 19:49:01 +02:00
Slavi Pantaleev 7c622bd249 Upgrade com.devture.ansible.role.traefik 2023-02-26 19:12:10 +02:00
Slavi Pantaleev f0463b0a10
Merge pull request #2520 from Jaffex/master
Fix documentation when fronting traefik with another reverse proxy
2023-02-26 18:44:57 +02:00
Slavi Pantaleev 835f2d482e
Merge pull request #2519 from etkecc/patch-180
update mautrix-telegram 0.12.2 -> 0.13.0
2023-02-26 18:33:55 +02:00
Jan 05b3f6565b
Update CHANGELOG.md
Fix typo in changelog
2023-02-26 17:21:59 +01:00
Jan ffff236167
Update configuring-playbook-own-webserver.md
Change documentation for host bind port when fronting traefik with another reverse proxy
2023-02-26 17:21:08 +01:00
Aine 7852d5eb26
update mautrix-telegram 0.12.2 -> 0.13.0 2023-02-26 15:58:10 +00:00
teutat3s e025fa5269
Merge branch 'master' into pub.solar 2023-02-26 15:29:55 +01:00
Slavi Pantaleev 0452619820 Add Related plabooks 2023-02-26 16:21:50 +02:00
Slavi Pantaleev 71ae825f6a Switch default reverse-proxy to Traefik, force reverse-proxy choice on existing users 2023-02-26 16:14:05 +02:00
Slavi Pantaleev 67e97cd2dc Redo etke.cc section in the README 2023-02-26 15:55:05 +02:00
Slavi Pantaleev c57ffa4332
Merge pull request #2518 from etkecc/patch-179
fix postgres version detection in the borg role
2023-02-26 13:28:42 +02:00
Aine e625e9aa5b
fix postgres version detection in the borg role 2023-02-26 10:41:40 +00:00
Slavi Pantaleev d20ff688db Add native Traefik support to Sygnal 2023-02-26 11:03:42 +02:00
Slavi Pantaleev eb213c1195
Merge pull request #2517 from etkecc/patch-178
Update ntfy 2.0.1 -> 2.1.0
2023-02-26 10:20:46 +02:00
Aine 252e542bc5
Update ntfy 2.0.1 -> 2.1.0 2023-02-26 08:19:51 +00:00
Slavi Pantaleev 348dd8e76b Remove double space 2023-02-25 19:37:35 +02:00
Slavi Pantaleev 8df7ad47cd Fix rageshake project description in defaults/main.yml 2023-02-25 19:04:28 +02:00
Slavi Pantaleev ccb5b37842 Fix some typos on the Buscarron docs page 2023-02-25 15:59:28 +02:00
Slavi Pantaleev 725b2beed7 Add native Traefik support to Buscarron 2023-02-25 15:50:48 +02:00
Slavi Pantaleev 3852a740bc Mention that Buscarron is aggressive when it comes to banning 2023-02-25 15:50:35 +02:00
Slavi Pantaleev bc5dda2b3a Reorder some Buscarron default variables and fix some typos
Fixes a regression introduced in 0220c851e8
2023-02-25 15:11:23 +02:00
Slavi Pantaleev d7578880b6 Fix typo on Rageshake documentation page 2023-02-25 15:07:47 +02:00
Slavi Pantaleev 63408096cf Fix up Buscarron description on its documentation page 2023-02-25 15:06:29 +02:00
Slavi Pantaleev 0220c851e8 Add multiple container networks support to Buscarron 2023-02-25 15:03:03 +02:00
Slavi Pantaleev 6c2d397853 Fix inaccurate Buscarron project description comment 2023-02-25 14:58:41 +02:00
Slavi Pantaleev c5dbeeae91
Merge pull request #2510 from gnunicorn/ben-adding-rageshake
Add rageshake server
2023-02-25 14:05:42 +02:00
Slavi Pantaleev a45c70fd66 Announce Rageshake support 2023-02-25 14:04:20 +02:00
Slavi Pantaleev b5e9ff5926 Add Rageshake documentation 2023-02-25 14:00:42 +02:00
Slavi Pantaleev 233e253264 Add native Traefik support to rageshake 2023-02-25 13:46:42 +02:00
Slavi Pantaleev 4c64e092d0 Fix rageshake self-building
BuildX is required for building this container image.
2023-02-25 13:09:53 +02:00
Slavi Pantaleev 39be2ef71a Fix matrix_rageshake_container_src_files_path value 2023-02-25 13:01:38 +02:00
Slavi Pantaleev 9a8ebf3d8c matrix_rageshake_docker_ -> matrix_rageshake_container_ 2023-02-25 13:01:11 +02:00
Slavi Pantaleev 5934de84be Reorder matrix-rageshake default variables a bit 2023-02-25 12:59:56 +02:00
Slavi Pantaleev 306679103b Require self-building of rageshake for arm64
There are no arm64 images published.. yet
2023-02-25 12:32:19 +02:00
Slavi Pantaleev 8339ebdf58 Redo the way matryx-rageshake configuration is done
This makes it consistent with the rest of the playbook:
- there's a default config which has various variables controlling
  settings
- there's also an `_extension_yaml` variable, which lets you override it
2023-02-25 12:29:22 +02:00
Slavi Pantaleev a51c9521a8 Rename some task files 2023-02-25 12:23:45 +02:00
Slavi Pantaleev db0104978f Extract api_prefix rageshake configuration into matrix_rageshake_config_api_prefix 2023-02-25 12:23:07 +02:00
Slavi Pantaleev 19e0b8374b Enable matrix_rageshake_enabled in the role by default
We disable it via `group_vars/matrix_servers`, as we do for all other
roles.
2023-02-25 12:20:25 +02:00
Slavi Pantaleev d513c0f446 Document why the rageshake version is master 2023-02-25 12:20:09 +02:00
Slavi Pantaleev 55f43dcc6d Fixup matrix-rageshake section in group vars 2023-02-25 12:09:23 +02:00
Slavi Pantaleev 5adec0bef2
Merge pull request #2516 from Tupsi/patch-2
Update configuring-playbook-own-webserver.md
2023-02-25 11:48:19 +02:00
Tupsi c139d139a5
Update configuring-playbook-own-webserver.md
own traefik server option must have the path to the acme.json. Otherwise the service will not start.
2023-02-25 00:46:54 +01:00
Slavi Pantaleev 53f8a0c6ae Upgrade com.devture.ansible.role.traefik 2023-02-24 20:27:15 +02:00
Benjamin Kampmann 40f037b36d Add rageshake server 2023-02-24 16:55:49 +01:00
Slavi Pantaleev c8022c1a18 Remove useless explicit daemon reload in matrix-user-creator
The next task asks for a daemon reload, so there's no need to do it
twice.
2023-02-23 08:35:45 +02:00
Slavi Pantaleev 0af6e6d9d9 Make wait time for matrix-user-creator configurable and increase default (7 -> 10 sec.) 2023-02-23 08:26:35 +02:00
Slavi Pantaleev 84c5b44bea Upgrade com.devture.ansible.role.docker_sdk_for_python 2023-02-22 16:09:16 +02:00
Slavi Pantaleev 643acfcb5b Make synapse-s3-storage-provider periodic migration schedule customizable
Larger deployments may wish to run migration more often.
2023-02-22 16:08:53 +02:00
Slavi Pantaleev d04132759b
Merge pull request #2511 from igogold/patch-1
Allow configure default country code in element welcome page.
2023-02-22 15:55:31 +02:00
Slavi Pantaleev 4caeab9117
Fix spacing around Jinja2 filters 2023-02-22 15:54:14 +02:00
Igor Goldenberg 620247673e Allow configure default country code in element welcome page. 2023-02-22 18:04:13 +05:00
Slavi Pantaleev 41a5b2dca2
Merge pull request #2509 from etkecc/patch-177
Update borgmatic 1.7.6 -> 1.7.7
2023-02-21 13:58:31 +02:00
Aine cbc8f0c6e6
Update borgmatic 1.7.6 -> 1.7.7 2023-02-21 10:14:53 +00:00
Slavi Pantaleev 1c10a7727c Upgrade ddclient (v3.10.0-ls106 -> v3.10.0-ls110) 2023-02-21 07:40:55 +02:00
Slavi Pantaleev 7340246a9b
Merge pull request #2508 from FSG-Cat/draupnir
Update Draupnir from v1.80.0 to v1.80.1
2023-02-21 07:36:30 +02:00
Catalan Lover 65e7aa2406
Update Draupnir from v1.80.0 to v1.80.1 2023-02-20 22:22:10 +01:00
Catalan Lover 601b67c02d
Update Draupnir Config 2023-02-20 22:21:02 +01:00
Slavi Pantaleev d7e69cfa1e
Merge pull request #2507 from Bergruebe/patch-1
Added matrix_nginx_proxy_https_enabled to the own-nginx documentation
2023-02-20 18:24:39 +02:00
Bergrübe 0c33597ec1
Merge branch 'spantaleev:master' into patch-1 2023-02-20 17:03:05 +01:00
Bergrübe ba429f6a40
Added matrix_nginx_proxy_https_enabled to the own-nginx documentation 2023-02-20 16:59:38 +01:00
Slavi Pantaleev 8e592fb0c1 Upgrade grafana role (v9.3.6-1 -> v9.3.6-2) 2023-02-20 16:53:19 +02:00
Slavi Pantaleev 6cdbde01d7 Fix various Traefik headers syntax
`always` is an nginx suffix, which shouldn't have been added to these.
2023-02-20 16:50:39 +02:00
Slavi Pantaleev 30185a04e9
Merge pull request #2505 from tilosp/patch-1
Add `matrix_playbook_ssl_enabled: true` to configuring-playbook-own-webserver.md
2023-02-20 08:41:18 +02:00
Tilo Spannagel 6438f1ff42
Add matrix_playbook_ssl_enabled: true to configuring-playbook-own-webserver.md
Otherwise the public hookshot url will use http and not https
2023-02-19 17:16:17 +01:00
teutat3s dcb99a79e6
Merge branch 'master' into pub.solar 2023-02-19 17:15:24 +01:00
Slavi Pantaleev 5e7f30a129 Fix appservice-discord/appservice-slack/appservice-webhooks port troubles with external reverse-proxy
Continuation of 6cda711
2023-02-19 11:20:58 +02:00
Slavi Pantaleev a758301bf6 Upgrade geerlingguy.docker (6.0.4 -> 6.1.0) 2023-02-19 10:20:40 +02:00
Slavi Pantaleev 0da308e24d Upgrade com.devture.ansible.role.traefik 2023-02-19 10:20:13 +02:00
Slavi Pantaleev ecde8a46f8
Merge pull request #2503 from etkecc/patch-176
Update ntfy v2.0.0-1 -> v2.0.1-0
2023-02-18 21:52:03 +02:00
Aine 886d1cddd0
Update ntfy v2.0.0-1 -> v2.0.1-0 2023-02-18 19:10:23 +00:00
Slavi Pantaleev a3ae414d43
Merge pull request #2501 from array-in-a-matrix/patch-15
remove comment regarding nginx in traefik doc
2023-02-17 22:51:06 +02:00
Array in a Matrix 89f2fa53c0
remove comment regarding nginx in traefik doc 2023-02-17 15:48:53 -05:00
Slavi Pantaleev 5df89a44b3 Add support for customizing Synapse templates 2023-02-17 19:37:34 +02:00
Slavi Pantaleev 9775218850 Add matrix_synapse_email_app_name variable 2023-02-17 18:31:01 +02:00
Slavi Pantaleev 632026513e Add matrix_synapse_uid, matrix_synapse_gid and matrix_synapse_username 2023-02-17 17:16:50 +02:00
Slavi Pantaleev 154d077ec7 Upgrade ntfy (v2.0.0-0 -> v2.0.0-1) 2023-02-17 16:24:10 +02:00
Slavi Pantaleev 990a6369e1 Switch to using an external Redis role 2023-02-17 16:23:59 +02:00
Slavi Pantaleev 519b32543c Add matrix_synapse_container_network and matrix_synapse_container_additional_networks 2023-02-17 16:13:38 +02:00
Slavi Pantaleev 0ce2121d01 Fix variable typo in validation task 2023-02-17 14:59:22 +02:00
Slavi Pantaleev b291459bf3 Fix syntax error 2023-02-17 10:13:34 +02:00
Slavi Pantaleev 964aa0e84d Switch to using an external Ntfy role
The newly extracted role also has native Traefik support,
so we no longer need to rely on `matrix-nginx-proxy` for
reverse-proxying to Ntfy.

The new role uses port `80` inside the container (not `8080`, like
before), because that's the default assumption of the officially
published container image. Using a custom port (like `8080`), means the
default healthcheck command (which hardcodes port `80`) doesn't work.
Instead of fiddling to override the healthcheck command, we've decided
to stick to the default port instead. This only affects the
inside-the-container port, not any external ports.

The new role also supports adding the network ranges of the container's
multiple additional networks as "exempt hosts". Previously, only one
network's address range was added to "exempt hosts".
2023-02-17 09:54:33 +02:00
Slavi Pantaleev 38c4e464c1 Fix self-check for Hydrogen and Cinny when running under a subpath 2023-02-17 09:20:22 +02:00
Slavi Pantaleev 941e768362
Merge pull request #2497 from etkecc/patch-175
Update ntfy 1.31.0 -> 2.0.0
2023-02-16 22:06:26 +02:00
Aine 954920dd4f
Update ntfy 1.31.0 -> 2.0.0 2023-02-16 20:00:00 +00:00
Slavi Pantaleev 8fd8f12a0d
Merge pull request #2493 from etkecc/patch-174
Update mautrix-whatsapp 0.8.1 -> 0.8.2
2023-02-16 20:08:50 +02:00
Slavi Pantaleev 0289695cbb
Merge pull request #2492 from etkecc/patch-173
Update mautrix-discord 0.1.0 -> 0.1.1
2023-02-16 20:05:34 +02:00
Aine 64ec1db077
Update mautrix-whatsapp 0.8.1 -> 0.8.2 2023-02-16 18:03:18 +00:00
Aine 649f6512ca
Update mautrix-discord 0.1.0 -> 0.1.1 2023-02-16 18:02:25 +00:00
Slavi Pantaleev e80b98c3ad Do not mount SSL certificates into Coturn if TLS is disabled for it 2023-02-16 09:22:29 +02:00
Slavi Pantaleev 93bb117a29 Mention Traefik changes causing backward-compatibility break for own-webserver (non-nginx-proxy) users
This also updates `docs/configuring-playbook-own-webserver.md`,
trying to make it up-to-date with all recent changes.
2023-02-16 09:21:31 +02:00
Slavi Pantaleev 1e085b432b
Merge pull request #2491 from Cadair/patch-1
Update mautrix slack docs
2023-02-15 19:36:23 +02:00
Stuart Mumford 8a471b97a1
Update configuring-playbook-bridge-mautrix-slack.md 2023-02-15 17:14:09 +00:00
Slavi Pantaleev bb7895678c Fix typo 2023-02-15 11:48:27 +02:00
Slavi Pantaleev 4c7d054b37
Merge pull request #2489 from etkecc/patch-172
Update ntfy 1.30.1 -> 1.31.0
2023-02-15 11:05:04 +02:00
Aine 4fe6015464
Update ntfy 1.30.1 -> 1.31.0 2023-02-15 09:02:36 +00:00
Slavi Pantaleev 7c5826f1c3 Break dependency between matrix-prometheus-nginxlog-exporter and the Grafana role
Wiring happens via `group_vars/matrix_servers` now.
2023-02-15 10:52:25 +02:00
Slavi Pantaleev 1006b8d899 Replace matrix-grafana with an external role 2023-02-15 10:32:24 +02:00
Slavi Pantaleev 94124263a7 Add matrix_prometheus_container_network/matrix_prometheus_container_additional_networks 2023-02-15 08:56:11 +02:00
Slavi Pantaleev 59a3646c66 Make .editorconfig for group_vars/matrix_servers cleaner
It's the same result as b6d45304b4, but it's done in a cleaner way.
2023-02-15 08:50:31 +02:00
Slavi Pantaleev b6d45304b4 Make sure group_vars/matrix_servers is indented like other YAML files (with 2 spaces) 2023-02-15 08:49:30 +02:00
Slavi Pantaleev b648d4579f Make it clear that certain matrix_nginx_proxy_* variables are necessary for now, even with Traefik
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2480
2023-02-15 07:30:38 +02:00
Slavi Pantaleev 0b9dc56edf Add type support to matrix_coturn_container_additional_volumes
.. and try to auto-switch between `bind` and `volume` depending on
whether there's a slash in the `src` path.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2482
2023-02-15 06:03:55 +02:00
Slavi Pantaleev 89fea3ef3c
Merge pull request #2488 from array-in-a-matrix/patch-14
Added link to exim/email documentation
2023-02-15 05:59:39 +02:00
Array in a Matrix 7fca8dc986
Update README.md 2023-02-14 20:38:24 -05:00
Slavi Pantaleev 1f0da1103a
Merge pull request #2485 from etkecc/patch-171
update postmoogle 0.9.13 -> 0.9.14
2023-02-14 22:48:51 +02:00
Slavi Pantaleev c85d48c45c Remove Traefik labels for Hydrogen & Cinny from matrix-nginx-proxy
Related to 6a52be7987 and 28e7ef9c71f02
2023-02-14 22:46:34 +02:00
Aine 4045d72e7b
update postmoogle 0.9.13 -> 0.9.14
* make banlist consistent
* proper multi-error message
* ignore "." MX hosts
* try recipient domain directly, even when MX records found, but failed
2023-02-14 20:04:27 +00:00
Slavi Pantaleev 4d24e9bb7f
Merge pull request #2484 from etkecc/patch-170
Update synapse 1.76.0 -> 1.77.0
2023-02-14 20:03:33 +02:00
Slavi Pantaleev 73fa9817fc
Merge pull request #2483 from etkecc/patch-169
Update hydrogen 0.3.7 -> 0.3.8
2023-02-14 19:59:44 +02:00
Aine 3570808633
Update synapse 1.76.0 -> 1.77.0 2023-02-14 17:50:55 +00:00
Aine c98f40c836
Update hydrogen 0.3.7 -> 0.3.8 2023-02-14 17:49:16 +00:00
Slavi Pantaleev 51cfd7b777
Merge pull request #2481 from moan0s/update
Bump element version
2023-02-14 15:29:34 +02:00
Julian-Samuel Gebühr 6727aa55ec Bump element version
Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net>
2023-02-14 13:36:04 +01:00
Slavi Pantaleev f28e7ef9c7 Add (native) Traefik support to matrix-client-cinny
Previously, it had to go through matrix-nginx-proxy.
It's exposed to Traefik directly via container labels now
2023-02-14 11:29:53 +02:00
Slavi Pantaleev 3bace0c7b9 Add matrix_synapse_admin_hostname and rename matrix_synapse_admin_public_endpoint (to matrix_synapse_admin_path_prefix) 2023-02-14 11:05:39 +02:00
Slavi Pantaleev 2e74187050 Add matrix_client_element_hostname and matrix_client_element_path_prefix variables 2023-02-14 11:02:18 +02:00
Slavi Pantaleev eb7292f274 Add matrix_client_hydrogen_hostname and fix Hydrogen serving at non-root-path 2023-02-14 10:57:13 +02:00
Slavi Pantaleev 6a52be7987 Add (native) Traefik support to matrix-client-hydrogen
Previously, it had to go through matrix-nginx-proxy.
It's exposed to Traefik directly via container labels now

Serving at a path other than `/` doesn't work well yet.
2023-02-14 09:58:35 +02:00
Slavi Pantaleev 64e2b26ed5 Fix Hydrogen failing to start
We were mounting our own configuration to
`/usr/share/nginx/html/config.json`, which is a symlink to
`/tmp/config.json`. So we effectively mount our file to
`/tmp/config.json`.

When starting:

- if Hydrogen sees a `CONFIG_OVERRIDE` environment variable,
  it will try to save it into our read-only config file and fail.

- if Hydrogen doesn't see a `CONFIG_OVERRIDE` environment variable (the
  path we go through, because we don't pass such a variable),
  it will try to copy its bundled configuration (`/config.json.bundled`)
  to `/tmp/config.json`. Because our configuration is mounted as read-only, it will
  fail.

In both cases, it will fail with:

> cp: can't create '/tmp/config.json': File exists

Source: 3720de36bb/docker/dynamic-config.sh

We work around this by mounting our configuration on top of the bundled
one (`/config.json.bundled`). We then let Hydrogen's startup script copy
it to `/tmp/config.json` (a tmpfs we've mounted into the container) and use it from there.
2023-02-14 09:49:22 +02:00
Slavi Pantaleev 799cbb44fb Add the ability to control (Traefik) routing priority for Element and synapse-admin
This may proof useful to someone in the future.
2023-02-14 09:04:50 +02:00
Slavi Pantaleev 5c7cd70684 Make use of the existing matrix_synapse_admin_public_endpoint variable 2023-02-14 08:51:20 +02:00
Slavi Pantaleev c33ed94352 Add security headers to synapse-admin (on Traefik)
We've had it on `matrix-nginx-proxy` before, but
our initial support for Traefik did not include any of these security
headers.
2023-02-14 08:49:04 +02:00
Slavi Pantaleev 71597132e0 Move around some matrix-client-element variables 2023-02-14 08:45:32 +02:00
Slavi Pantaleev 5ab5f28d14 Add support for running synapse-admin (on Traefik) at the root path
Previously, we had to run it at a subpath, like `/synapse-admin`.

We can now dedicate a whole domain and the `/` path to it, should we
wish to do so.
2023-02-14 08:42:50 +02:00
Slavi Pantaleev ff1338e003 Add support for hosting Element (on Traefik) at a subpath 2023-02-14 08:31:26 +02:00
Slavi Pantaleev e34174b1b4 Add various security headers to matrix-client-element when behind Traefik 2023-02-13 19:03:20 +02:00
Slavi Pantaleev e51e4eec09 Add (native) Traefik support to matrix-client-element
Previously, it had to go through matrix-nginx-proxy.
It's exposed to Traefik directly via container labels now
2023-02-13 19:03:20 +02:00
Slavi Pantaleev f2ed5e4b04 Delete /matrix/nginx-proxy/conf.d/matrix-client-element.conf if matrix_nginx_proxy_proxy_element_enabled not enabled 2023-02-13 19:03:20 +02:00
Slavi Pantaleev c0060753b5
Merge pull request #2477 from etkecc/patch-168
Update postmoogle 0.9.12 -> 0.9.13
2023-02-13 18:09:30 +02:00
Slavi Pantaleev b2d8718233 Fix synapse-admin reverse-proxying regression for "playbook-managed-nginx"
Regression since 3d9aa8387e
2023-02-13 16:08:59 +02:00
Aine 9f820a506a
Update postmoogle 0.9.12 -> 0.9.13
* live SSL certificates reload on file changes (e.g., on automatic certs renewal)
* print all errors when trying connection to an SMTP server
2023-02-13 14:08:09 +00:00
Slavi Pantaleev 6cda711c0b Fix incorrect host_bind_port syntax (extra `:`) affecting certain deployments
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2474

Seems like this affected all "own webserver" deployments, which required
port exposure.

`playbook-managed-traefik` and `playbook-managed-nginx` were not affected.
2023-02-13 15:38:24 +02:00
Slavi Pantaleev 31aa87fdb6
Merge pull request #2475 from etkecc/patch-167
Update coturn 4.6.1-r1 -> 4.6.1-r2
2023-02-13 15:12:37 +02:00
Slavi Pantaleev 3d9aa8387e Add (native) Traefik support to synapse-admin
Previously, it had to go through matrix-nginx-proxy.
It's exposed to Traefik directly via container labels now.
2023-02-13 15:08:42 +02:00
Aine f6f7bbd2a1
Update coturn 4.6.1-r1 -> 4.6.1-r2 2023-02-13 12:54:55 +00:00
Slavi Pantaleev 80935a5194 Fix broken backup_borg link
Referenced here: 06f5be4fa5 (r100414988)
2023-02-13 14:14:25 +02:00
Slavi Pantaleev 06f5be4fa5 Announce matrix-backup-borg extraction 2023-02-13 13:16:55 +02:00
Slavi Pantaleev 5d14621916 Fix outdated documentation leading to matrix-backup-borg 2023-02-13 13:16:55 +02:00
Slavi Pantaleev e78c52a63a
Merge pull request #2473 from etkecc/patch-166
restore borg prefixes
2023-02-13 12:45:14 +02:00
Aine 33b4f7031b
restore borg prefixes 2023-02-13 10:44:42 +00:00
Slavi Pantaleev 266195ab45 Upgrade backup_borg (v1.2.3-1.7.5-1 -> v1.2.3-1.7.6-0)
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2472
2023-02-13 12:26:49 +02:00
Slavi Pantaleev 65730b84d3 Upgrade backup_borg (v1.2.3-1.7.5-0 -> v1.2.3-1.7.5-1) 2023-02-13 11:51:11 +02:00
Slavi Pantaleev 23f7720247 Add missing backup_borg_base_path override 2023-02-13 11:44:19 +02:00
Slavi Pantaleev 38904c08b0 Wire backup_borg_username
It's probably unnecessary, as this user is only used in the borg container
internally, but.. It doesn't hurt to set it to `matrix`.
2023-02-13 11:01:54 +02:00
Slavi Pantaleev 78c35136b2 Replace matrix-backup-borg with an external role 2023-02-13 10:53:11 +02:00
Slavi Pantaleev f81aa4a927
Merge pull request #2470 from Techno-Disaster/td/oops
fix: missing endif
2023-02-13 09:12:48 +02:00
td af10d350bc fix: missing endif in client well-known 2023-02-13 12:32:43 +05:30
Jayesh Nirve 6939a3d6d3
fix: only add element related entries to client well-known if element is enabled (#2453)
* fix: only add element related entries to client well-known if element is enabled

* Fix matrix-base/defaults/main.yml syntax

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-02-13 08:36:20 +02:00
Slavi Pantaleev 2be5ba45db
Merge pull request #2466 from array-in-a-matrix/patch-13
updated dendrite
2023-02-12 20:37:23 +02:00
Array in a Matrix 79413e7717
updated dendrite 2023-02-12 13:09:53 -05:00
Slavi Pantaleev 972043cfaf Fix trying to start devture-traefik when not necessarily enabled
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2465
2023-02-12 17:14:25 +02:00
Slavi Pantaleev f1a1ce8a91
Merge pull request #2464 from spantaleev/traefik
Reverse-proxy configuration changes and initial Traefik support
2023-02-12 16:05:56 +02:00
Slavi Pantaleev bc4cb7bb6a Update configuring-playbook-own-webserver.md with matrix_playbook_reverse_proxy_type awareness 2023-02-12 16:03:44 +02:00
Slavi Pantaleev 73435dfe10 Announce Traefik support 2023-02-12 15:53:18 +02:00
Slavi Pantaleev b3f6436a0d Do not enable the Traefik role when reverse-proxy = other-traefik-container 2023-02-12 15:50:18 +02:00
Slavi Pantaleev 709e528f60
Merge pull request #2462 from FSG-Cat/patch-4
Upgrade Drapunir from 1.8.0 Beta to 1.8.0 release.
2023-02-12 08:18:58 +02:00
Slavi Pantaleev e41840e184
Merge pull request #2463 from JokerGermany/patch-1
Add Draupnir to the Readme
2023-02-12 08:17:59 +02:00
JokerGermany 17e3c2157e
Add Draupnir to the Readme 2023-02-12 01:07:51 +01:00
Catalan Lover cba63bd4b9
Upgrade Drapunir from 1.8.0 Beta to 1.8.0 release. 2023-02-11 23:51:13 +01:00
Slavi Pantaleev 4ab915f385
Merge pull request #2460 from FSG-Cat/Mjolnir/Drapunir-Crash-on-start/Dimension-Crash-on-start
Fix Dimension,Mjolnir and Drapunir crashing upon startup just to recover.
2023-02-11 19:24:20 +02:00
Catalan Lover be471250dd
Move services that crash without hs connectivity to after proxy. 2023-02-11 17:58:19 +01:00
Slavi Pantaleev 6b0650641b Update matrix_playbook_reverse_proxy_type documentation 2023-02-11 08:58:53 +02:00
Slavi Pantaleev 94be74e633 Improve traefik-certs-dumper defaults for other-traefik-container setups
We'd like to auto-enable traefik-certs-dumper for these setups.

`devture_traefik_certs_dumper_ssl_dir_path` will be empty though,
so the role's validation will point people in the right direction.
2023-02-11 08:54:07 +02:00
Slavi Pantaleev f37a7a21f1 Delay Postmoogle startup to help Traefik-based setups 2023-02-11 08:53:32 +02:00
Slavi Pantaleev 8309a21303 Rename reverse proxy types and fix Hookshot http/https urlPrefix issue 2023-02-11 08:44:11 +02:00
Slavi Pantaleev 3f2cb840b9 Merge branch 'master' into traefik 2023-02-11 07:46:35 +02:00
Slavi Pantaleev ad22bdb884 Do not run matrix-user-verification-service validation tasks unless the service is enabled 2023-02-10 19:40:03 +02:00
Slavi Pantaleev 7142ff422d Ensure matrix_user_verification_service_uvs_access_token is always defined
The playbook tries to avoid such variables which are sometimes defined
and sometimes not. We'd rather not check for `is defined`.
2023-02-10 19:40:03 +02:00
Slavi Pantaleev 97f65e8dff Minor fixes to allow for Traefik without SSL 2023-02-10 19:36:06 +02:00
Slavi Pantaleev ddad722e78
Merge pull request #2458 from etkecc/patch-164
Update Hydrogen 0.3.6 -> 0.3.7
2023-02-10 16:53:13 +02:00
Aine a1ef28681a
Update Hydrogen 0.3.6 -> 0.3.7 2023-02-10 14:40:50 +00:00
Slavi Pantaleev a5afa4eac9 Merge branch 'master' into traefik 2023-02-10 16:11:58 +02:00
Slavi Pantaleev c773a005ae Fix broken link to Matrix User Verification Service 2023-02-10 16:11:52 +02:00
Slavi Pantaleev 28d2eb593c Add matrix_playbook_reverse_proxy_type variable which influences all other services 2023-02-10 16:04:34 +02:00
Slavi Pantaleev 8263228ffb
Merge pull request #2457 from FSG-Cat/patch-3
Fix formating error in Draupnir docs
2023-02-10 14:40:59 +02:00
Slavi Pantaleev 06ccd71edc Merge branch 'master' into traefik 2023-02-10 14:37:59 +02:00
Catalan Lover 29be262f3b
Fix formating error in Draupnir docs 2023-02-10 13:34:16 +01:00
Slavi Pantaleev 6db3c8f2ad Announce Matrix Authentication Support for Jitsi
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2375
2023-02-10 14:26:41 +02:00
Slavi Pantaleev f6ab162fff Remove systemd-reloading handler in matrix-user-verification-service
None of the other roles use handlers.

We rely on com.devture.ansible.role.systemd_service_manager to reload services when it's necessary to do so.
2023-02-10 14:22:37 +02:00
Slavi Pantaleev e1bfa2a7d6 Fix ansible-lint-reported errors 2023-02-10 14:21:31 +02:00
Slavi Pantaleev 43a6a035a0 Skip removing /.well-known/element directory to suppress ansible-lint error
Leaving an orphan directory is okay and can be improved later on.
2023-02-10 14:16:00 +02:00
Slavi Pantaleev 01ccec2dbe Merge branch 'master' into pr-jitsi-matrix-authentication 2023-02-10 14:12:47 +02:00
Slavi Pantaleev 600aaa0bc7 Announce Draupnir support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2451
2023-02-10 11:52:31 +02:00
Slavi Pantaleev 7cdf59d79b
Merge pull request #2451 from FSG-Cat/draupnir
Add Draupnir support to the project.
2023-02-10 11:43:30 +02:00
Slavi Pantaleev 0a15e56641
Fix typo 2023-02-10 11:41:44 +02:00
Slavi Pantaleev d6c8ea3742
Merge pull request #2452 from borisrunakov/update-matrix-chatgpt-bot
update matrix-chatgpt-bot
2023-02-10 08:29:00 +02:00
ntallasv f71cd3a760 fix linting in validate_config.yml 2023-02-10 00:34:07 +02:00
ntallasv 4221b64a98 update configuring-playbook-bot-chatgpt.md 2023-02-10 00:14:09 +02:00
ntallasv b738486684 update validate_config.yml 2023-02-10 00:13:31 +02:00
Slavi Pantaleev 7fb7e7cd69
Merge pull request #2454 from etkecc/patch-163
Update postmoogle 0.9.11 -> 0.9.12
2023-02-09 21:47:30 +02:00
Aine d32f80bf29
Update postmoogle 0.9.11 -> 0.9.12
* fix uploads from incoming emails into matrix threads
* fix emails dequeue (account data cleanup)
* rewrite recipients handling (Cc, To, etc.)
2023-02-09 17:43:35 +00:00
ntallasv 9615855cfa update matrix-chatgpt-bot 2023-02-09 14:53:56 +02:00
Slavi Pantaleev c289996cd9 Upgrade com.devture.ansible.role.traefik 2023-02-09 10:16:41 +02:00
Slavi Pantaleev a5683a6449 Upgrade com.devture.ansible.role.traefik and rename some variables 2023-02-09 10:12:09 +02:00
Catalan Lover ddcb1735e2
Add draupnir as valid prefix to resolve a bug
Current draupnir does not listen to its name. This config change fixes this bug. This bodge is able to be removed once this is fixed upstream.
2023-02-08 20:05:47 +01:00
Catalan Lover a717590aa5
Rename systemd service file from mjolnir to draupnir 2023-02-08 19:53:35 +01:00
Catalan Lover 79a4e57fbd
Add draupnir docs. 2023-02-08 18:55:27 +01:00
Catalan Lover 7b42ff4b75
Finalise moving draupnir to a fully testable state. 2023-02-08 18:55:08 +01:00
Slavi Pantaleev 88a26758e1 Merge branch 'master' into traefik 2023-02-08 18:48:10 +02:00
Slavi Pantaleev c71567477a Stop using deprecated matrix_bot_postmoogle_domain variable in group vars 2023-02-08 18:48:01 +02:00
Slavi Pantaleev 1338963b6c Add support for obtaining additional SSL certificates via Traefik 2023-02-08 18:47:19 +02:00
Catalan Lover 9092d4bb6b
Push draupnir version from develop to v1.80.0-beta.0 2023-02-08 17:02:59 +01:00
Catalan Lover 78b1ebd5af
commit main.yml for draupnir and set target ver to develop 2023-02-08 16:44:30 +01:00
Catalan Lover 563cf1a4ba
Initial commit for draupnir.
main.yml is not included due to that its changed separately.
2023-02-08 16:44:12 +01:00
Slavi Pantaleev 49a1985750 Fix Postmoogle systemd service description 2023-02-08 16:45:58 +02:00
Slavi Pantaleev 9a71a5696b Allow Postmoogle to work with SSL certificates extracted from Traefik 2023-02-08 16:45:03 +02:00
Slavi Pantaleev ddf6b2d4ee Handle matrix_playbook_reverse_proxy_type being "none" when deciding on Coturn certificate parameters 2023-02-08 16:24:43 +02:00
Slavi Pantaleev d44d4b637f Allow Coturn to work with SSL certificates extracted from Traefik 2023-02-08 16:06:46 +02:00
Slavi Pantaleev c07630ed51 Add com.devture.ansible.role.traefik_certs_dumper role
With this, other roles (like Coturn, Postmoogle) will be able
to use SSL certificates extracted from Traefik
via https://github.com/ldez/traefik-certs-dumper
2023-02-08 16:05:38 +02:00
Slavi Pantaleev 65b8e0f4ef
Merge pull request #2446 from etkecc/patch-162
Update heisenbridge 1.14.1 -> 1.14.2
2023-02-07 11:15:19 +02:00
Aine 2eb2ad0ad7
Update heisenbridge 1.14.1 -> 1.14.2 2023-02-07 09:06:00 +00:00
Slavi Pantaleev 2b9061a5d3 Add support for reverse-proxying the base domain via Traefik 2023-02-07 11:02:02 +02:00
Slavi Pantaleev 6c17671abd Upgrade synapse-admin (0.8.6 -> 0.8.7) and drop reverse-proxy workaround
Related to 6a31fba346, 6a31fba346.

Related to https://github.com/Awesome-Technologies/synapse-admin/issues/322
2023-02-07 10:45:19 +02:00
Slavi Pantaleev 66baef5bf6 Fix matrix-synapse-reverse-proxy-companion.service stopping during uninstallation
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2444
2023-02-07 08:48:50 +02:00
jakicoll 6a205a83f6 Change renamed variables matrix_systemd_path -> devture_systemd_docker_base_systemd_path 2023-02-06 17:20:13 +01:00
jakicoll 6cffec14ea fixup! Remove the self-build stub, because self-build was not implemented 2023-02-06 16:36:49 +01:00
jakicoll be634168ac Make the linter happy. 2023-02-06 16:29:25 +01:00
jakicoll f3ca4a0632 Remove unnecessary comment. 2023-02-06 16:28:57 +01:00
jakicoll 7848d865a5 Also define the vars to be overwritten in group vars within the role vars. 2023-02-06 16:28:56 +01:00
Paul N 70bea81df7 Introduced flags to (1) enable/disable Auth (2) enable/disable openid_server_name pinning. Updated validate_config.yml and added new checks to verify. 2023-02-06 15:59:32 +01:00
Paul N 96dd86d33b Set default values where sensible and remove unnecessary conditionals in .env.j2.
Check for empty string instead of Null to verify if an openid_server_name is pinned.
2023-02-06 15:26:08 +01:00
Paul N d67d8c07f5 Remove remnant comment. 2023-02-06 15:26:08 +01:00
jakicoll 6b206b3763 Move checks into validate_config.yml. 2023-02-06 15:21:10 +01:00
jakicoll 6499b6536a Decoupling: Do not use variables user-verification-service role inside the jitsi role. 2023-02-06 15:18:25 +01:00
Paul N 1d99f17b4a Disable matrix-user-verification-service in group_vars and update docs accordingly. 2023-02-06 13:23:11 +01:00
Paul N 50c1e9d695 Set matrix_user_verification_service_uvs_homeserver_url in the role defaults and updated docs accordingly. 2023-02-06 13:14:34 +01:00
Paul N 07d9ea5e87 Stick to port 3003 instead of changing the port based on the status of grafana. 2023-02-06 13:06:35 +01:00
jakicoll 0e0ae2f3e6 Assign default log level in role instead of matrix_servers file. 2023-02-06 13:04:06 +01:00
jakicoll bf5e633656 Remove the self-build stub, because self-build was not implemented 2023-02-06 12:57:20 +01:00
Paul N b89f5b7ff5
Clarify task name and add user and group to templated env file
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-02-06 12:47:50 +01:00
Jakob S 6913d368c8
Consolidate conditionals into a block, keep image
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2023-02-06 12:38:01 +01:00
jakicoll f53731756d Change comment
Applying the assumption, that synapse is always managed by this playbook.
2023-02-06 12:15:54 +01:00
Slavi Pantaleev 8155f780e5 Add support for reverse-proxying Matric (Client & Federation) via Traefik 2023-02-06 13:08:11 +02:00
jakicoll 94830b582b Wording: change collection -> playbook 2023-02-06 11:58:50 +01:00
Slavi Pantaleev f983604695 Initial work on Traefik support
This gets us started on adding a Traefik role and hooking Traefik:

- directly to services which support Traefik - we only have a few of
  these right now, but the list will grow

- to matrix-nginx-proxy for most services that integrate with
  matrix-nginx-proxy right now

Traefik usage should be disabled by default for now and nothing should
change for people just yet.

Enabling these experiments requires additional configuration like this:

```yaml
devture_traefik_ssl_email_address: '.....'

matrix_playbook_traefik_role_enabled: true
matrix_playbook_traefik_labels_enabled: true

matrix_ssl_retrieval_method: none

matrix_nginx_proxy_https_enabled: false

matrix_nginx_proxy_container_http_host_bind_port: ''
matrix_nginx_proxy_container_federation_host_bind_port: ''

matrix_nginx_proxy_trust_forwarded_proto: true

matrix_nginx_proxy_x_forwarded_for: '$proxy_add_x_forwarded_for'

matrix_coturn_enabled: false
```

What currently works is:
reverse-proxying for all nginx-proxy based services **except** for the Matrix homeserver
(both Client-Server an Federation traffic for the homeserver don't work yet)
2023-02-06 10:34:51 +02:00
Slavi Pantaleev 946bbe9734 Upgrade prometheus_node_exporter (v1.5.0-1 -> v1.5.0-2) 2023-02-06 09:54:34 +02:00
Slavi Pantaleev 5de5b5c62c Upgrade prometheus_postgres_exporter (v0.11.1-1 -> v0.11.1-2) 2023-02-06 09:49:15 +02:00
Slavi Pantaleev 4d6a8d049d Add matrix_nginx_proxy_container_network variable 2023-02-06 08:48:11 +02:00
Slavi Pantaleev e018663ba4 Attach ma1sd/nginx-proxy/synapse-reverse-proxy-companion to additional networks in a better way
Switching from doing "post-start" loop hacks to running the container
in 3 steps: `create` + potentially connect to additional networks + `start`.
This way, the container would be connected to all its networks even at
the very beginning of its life.
2023-02-06 08:38:43 +02:00
Slavi Pantaleev 045ed94d43 Upgrade prometheus_postgres_exporter (v0.11.1-0 -> v0.11.1-1) 2023-02-05 10:54:51 +02:00
Slavi Pantaleev be78b74fbd Switch from matrix-prometheus-postgres-exporter to an external prometheus_postgres_exporter role 2023-02-05 10:32:09 +02:00
Slavi Pantaleev 2d7d5d4bab Use new security-opt syntax (: -> =)
Related to https://docs.docker.com/engine/deprecated/#separator--of---security-opt-flag-on-docker-run
2023-02-03 20:36:24 +02:00
Slavi Pantaleev 919f9701ce
Merge pull request #2443 from FSG-Cat/patch-2
Update Prometheus to v2.42.0 from v2.41.0
2023-02-02 17:32:06 +02:00
Catalan Lover 4d49f1f56e
Update Prometheus to v2.42.0 from v2.41.0
Docker images are released now so this change can now be pushed.
2023-02-02 16:00:07 +01:00
Slavi Pantaleev 4027531957
Merge pull request #2440 from etkecc/patch-161
Fix python packages path in synapse container
2023-02-01 08:28:29 +02:00
Aine c11f772e78
Fix python packages path in synapse container 2023-01-31 21:34:25 +00:00
Slavi Pantaleev 7cb140b987
Downgrade Prometheus (v2.42.0 -> v2.41.0) until a container image gets published
Container image not published yet.

Reverts #2438
2023-01-31 23:24:20 +02:00
Slavi Pantaleev d42ef7d243
Merge pull request #2439 from etkecc/patch-160
Update synapse 1.75.0 -> 1.76.0; default room version 9 -> 10
2023-01-31 22:44:04 +02:00
Slavi Pantaleev c8ce83c725
Merge pull request #2438 from etkecc/patch-159
Update prometheus 2.41.0 -> 2.42.0
2023-01-31 22:43:34 +02:00
Slavi Pantaleev c65d165c1b
Merge pull request #2437 from etkecc/patch-158
Update element 1.11.21 -> 1.11.22
2023-01-31 22:42:59 +02:00
Aine 0f208ed053
Update synapse 1.75.0 -> 1.76.0; default room version 9 -> 10 2023-01-31 19:19:43 +00:00
Aine 82d870fddf
Update prometheus 2.41.0 -> 2.42.0 2023-01-31 19:16:52 +00:00
Aine 5300740f70
Update element 1.11.21 -> 1.11.22 2023-01-31 19:11:07 +00:00
teutat3s adf69df131
Merge branch 'master' into pub.solar 2023-01-31 19:32:00 +01:00
Slavi Pantaleev c7767e9bc8 Upgrade Coturn (4.6.1-r0 -> 4.6.1-r1) 2023-01-31 20:25:59 +02:00
Slavi Pantaleev 66bb2943b4
Merge pull request #2436 from etkecc/patch-157
Update jitsi stable-8218 -> stable-8252
2023-01-31 18:03:08 +02:00
Slavi Pantaleev f5a85af47d
Merge pull request #2435 from etkecc/patch-156
Update element 1.11.20 -> 1.11.21
2023-01-31 18:02:38 +02:00
Aine 68ca23d709
Update jitsi stable-8218 -> stable-8252 2023-01-31 14:02:50 +00:00
Aine d70076c805
Update element 1.11.20 -> 1.11.21 2023-01-31 14:01:11 +00:00
Slavi Pantaleev dae1640070
Merge pull request #2433 from etkecc/patch-155
Update cinny 2.2.3 -> 2.2.4
2023-01-30 09:14:31 +02:00
Aine 8c2b77bf0c
Update cinny 2.2.3 -> 2.2.4 2023-01-30 07:07:09 +00:00
Slavi Pantaleev 611a74bde2 Use |to_json in mautrix metrics configuration
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2427
2023-01-30 08:59:35 +02:00
Slavi Pantaleev d7c0239e40 Enable metrics endpoint for mautrix bridges by default when Prometheus is enabled
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2427

This just enables the endpoint, which is somewhat helpful, but not
really enough to scrape them. Ideally, we'd be injecting these targets
into the Prometheus scrape config too.
For now, registering targets with Prometheus is very manual
(`matrix_prometheus_scraper_postgres_enabled`, `matrix_prometheus_scraper_hookshot_enabled`, ..).
This should be redone - e.g. a new `matrix_prometheus_scrape_config_jobs_auto` variable,
which is dynamically built in `group_vars/matrix_servers`.
2023-01-30 08:53:28 +02:00
Slavi Pantaleev d82d0ad84b Add _metrics_proxying_enabled variables to mautrix bridges
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2427

`metrics_enabled` should only expose the metrics locally, on the
container network, so that a local Prometheus can consume them.

Exposing them publicly should be done via a separate toggle (`metrics_proxying_enabled`).
This is how all other roles work, so this makes these mautrix roles consistent with the rest.
2023-01-30 08:50:57 +02:00
Slavi Pantaleev cad83ddca6
Merge pull request #2427 from alemairebe/mautrix-metrics
Mautrix metrics
2023-01-30 08:36:40 +02:00
Slavi Pantaleev f9a496c29c
Merge pull request #2432 from shalzz/patch/slack
mautrix-slack: add team name in channel name template
2023-01-30 08:27:48 +02:00
Shaleen Jain df9931f719 mautrix-slack: add team name in channel name template 2023-01-30 10:17:19 +05:30
Slavi Pantaleev 389d6c978f
Merge pull request #2431 from etkecc/patch-154
Update borgmatic 1.7.5 -> 1.7.6
2023-01-29 21:51:42 +02:00
Slavi Pantaleev 5482a9d5d0
Merge pull request #2429 from etkecc/patch-152
Update mautrix-discord latest -> 0.1.0
2023-01-29 21:02:39 +02:00
Slavi Pantaleev 1dc8f59a38
Merge pull request #2430 from etkecc/patch-153
Update maubot 0.3.1 -> 0.4.0
2023-01-29 21:02:12 +02:00
Aine 4f69b22a6e
Update borgmatic 1.7.5 -> 1.7.6 2023-01-29 18:14:41 +00:00
Aine a9a17d803e
Update maubot 0.3.1 -> 0.4.0 2023-01-29 18:12:26 +00:00
Aine 111303208a
Update mautrix-discord latest -> 0.1.0 2023-01-29 18:11:33 +00:00
Adrien le Maire 9eaf6944e3 add nginx proxy connfig for mautrix metrics 2023-01-29 15:17:31 +01:00
Adrien le Maire 691ef13cab template metric toggle for mautrix bridges supporting it 2023-01-29 09:45:52 +01:00
Slavi Pantaleev e588c42088 Improve synapse-admin reverse-proxying fix
Fixup for 6a31fba346
2023-01-28 17:09:27 +02:00
Slavi Pantaleev 6a31fba346 Fix synapse-admin reverse-proxying regression caused by 0.8.6
Related to f165aa5d48

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2424
2023-01-28 17:04:55 +02:00
Slavi Pantaleev 29818abaf5
Merge pull request #2423 from etkecc/patch-150
Update synapse-admin 0.8.5 -> 0.8.6
2023-01-28 09:56:41 +02:00
Aine f165aa5d48
Update synapse-admin 0.8.5 -> 0.8.6 2023-01-28 07:54:52 +00:00
Slavi Pantaleev 546535982b
Merge pull request #2422 from bertybuttface/patch-1
Bump Matrix Bot ChatGPT from 1.3.2 --> 1.4.1
2023-01-27 21:18:32 +02:00
bertybuttface 7b5ced3037
Fix linting issue. 2023-01-27 19:02:14 +00:00
bertybuttface d66a2949f6
Update env.j2
Use matrix_bot_chatgpt_context for CHATGPT_CONTEXT
2023-01-27 18:57:24 +00:00
bertybuttface 7e1408ea65
Bump ChatGPT version and add new config settings
matrix_bot_chatgpt_context=thread
2023-01-27 18:55:13 +00:00
Slavi Pantaleev 430a55902c
Merge pull request #2420 from bertybuttface/patch-1
Upgrade matrix-chatgpt-bot to latest
2023-01-27 08:57:16 +02:00
Slavi Pantaleev 784043cc5d
Ensure OPENAI_PRO is true/false (not True/False) 2023-01-27 08:55:38 +02:00
Slavi Pantaleev e43ba65dd3 Upgrade prometheus_node_exporter (v1.5.0-0 -> v1.5.0-1) 2023-01-27 08:46:16 +02:00
Slavi Pantaleev 864b64d015 Mention the new no-multicast-peers default in Coturn config
Related to 4c9f96722f
2023-01-26 20:01:48 +02:00
Slavi Pantaleev f1c9052fe5 Make it obvious that running Coturn in host-networking mode requires manual firewall changes 2023-01-26 17:59:56 +02:00
Slavi Pantaleev 867737fe0b Upgrade Grafana (9.3.4 -> 9.3.6) 2023-01-26 17:42:03 +02:00
Slavi Pantaleev aafa8f019c Allow matrix_coturn_docker_network to be set to 'host' to use host-networking
This helps large deployments which need to open up thousands of ports
(matrix_coturn_turn_udp_min_port, matrix_coturn_turn_udp_min_port)

On a test VM, opening 1k ports takes 17 seconds for Docker to "publish"
all of these ports (setting up forwarding rules with the firewall, etc),
so service startup and shutdown take a long amount of time.

If host-networking is used, there's no need to open any ports at all
and startup/shutdown can be quick.
2023-01-26 17:35:30 +02:00
Slavi Pantaleev bb0faa6bc3 Block various private network ranges via denied_peer_ips for Coturn by default
Inspired by: https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/
2023-01-26 17:35:30 +02:00
Slavi Pantaleev 773cb7d37e Make no-tcp-relay Coturn configuration property configurable 2023-01-26 17:35:30 +02:00
Slavi Pantaleev bf23d63f82 Add matrix_coturn_additional_configuration 2023-01-26 17:35:30 +02:00
Slavi Pantaleev 4c9f96722f Add no-multicast-peers to Coturn config by default
Part of a security hardening provoked by:
https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/
2023-01-26 17:35:30 +02:00
bertybuttface 18c3903def
Update env.j2
Set OPEN_AI to matrix_bot_chatgpt_openai_pro
2023-01-26 15:12:36 +00:00
bertybuttface ad58858a96
Upgrade matrix-chatgpt (1.2.3 -> 1.3.2)
Add support for OPENAI_PRO for ChatGPT pro subscriptions.
2023-01-26 15:09:24 +00:00
Slavi Pantaleev 803d5c129e
Merge pull request #2419 from RhysRdm/jitsi-jigasi-user-population
Added option to allow user to set jigasi user and password for AUTH
2023-01-25 17:18:01 +02:00
rhys d01de9f33d Fix lint errors 2023-01-25 12:07:00 +00:00
rhys 547b01d618 Added option to allow user to set jigasi user and password for AUTH 2023-01-25 12:02:40 +00:00
Slavi Pantaleev 39b0300797
Merge pull request #2418 from etkecc/patch-149
Update grafana 9.3.2 -> 9.3.4
2023-01-25 10:46:23 +02:00
Aine 6afd3c59eb
Update grafana 9.3.2 -> 9.3.4 2023-01-25 08:39:47 +00:00
Slavi Pantaleev d0d2c94493
Merge pull request #2417 from array-in-a-matrix/patch-12
updated dendrite to version 0.11.0
2023-01-25 07:23:53 +02:00
Array in a Matrix 47165e8902
updated dendrite version 2023-01-24 15:50:06 -05:00
teutat3s 5367dc337f
Merge branch 'master' into pub.solar 2023-01-23 21:34:24 +01:00
Slavi Pantaleev 54e5e4b6b9
Merge pull request #2416 from moan0s/fix_cactus_comments
Fix client js and css download (load compiled version)
2023-01-22 09:10:16 +02:00
Slavi Pantaleev c4d1347466
Fix typos 2023-01-22 09:08:47 +02:00
Julian-Samuel Gebühr 18d8d41e14 Fix client js and css download (load compiled version) 2023-01-21 20:54:12 +01:00
Slavi Pantaleev 9ed2e04d80 Switch from matrix-prometheus-node-exporter to an external prometheus_node_exporter role 2023-01-21 11:07:04 +02:00
teutat3s 5a24a716e2
Merge branch 'master' into pub.solar 2023-01-21 03:13:46 +01:00
Slavi Pantaleev 5f7ed722f6
Merge pull request #2415 from etkecc/patch-148
Update hookshot 2.6.1 -> 2.7.0
2023-01-20 22:40:54 +02:00
Slavi Pantaleev 1546c98448
Merge pull request #2414 from etkecc/patch-147
Update element 1.11.19 -> 1.11.20
2023-01-20 22:40:26 +02:00
Aine 32292b1f02
Update hookshot 2.6.1 -> 2.7.0 2023-01-20 18:39:05 +00:00
Aine b71e267221
Update element 1.11.19 -> 1.11.20 2023-01-20 18:38:14 +00:00
Slavi Pantaleev 9f1e990f8c
Merge pull request #2413 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.11.0
Bump ansible-community/ansible-lint-action from 6.10.2 to 6.11.0
2023-01-20 19:20:53 +02:00
dependabot[bot] b4c36eb8ca
Bump ansible-community/ansible-lint-action from 6.10.2 to 6.11.0
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.10.2 to 6.11.0.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.10.2...v6.11.0)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-20 16:03:54 +00:00
Slavi Pantaleev b7b5c7edb7 Improve s3-storage-provider migration steps visibility 2023-01-19 17:16:21 +02:00
Slavi Pantaleev 4ec602983f Remove scary synapse-s3-storage-provider warning 2023-01-19 17:14:02 +02:00
Slavi Pantaleev 910c99d03d Improve "Copying data to Amazon S3" documentation for synapse-s3-storage-provider 2023-01-19 17:14:02 +02:00
Slavi Pantaleev 36ef2c6131 Do not recommend SSE-C in default s3-storage-provider config
This is an advanced feature with dubious usefulness.
Putting it in the default config just confuses people.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2220
2023-01-19 17:14:02 +02:00
Slavi Pantaleev 13b916408d
Merge pull request #2408 from etkecc/patch-146
Update element 1.11.18 -> 1.11.19
2023-01-19 07:56:42 +02:00
Aine 8804a15821
Update element 1.11.18 -> 1.11.19 2023-01-19 05:10:49 +00:00
Slavi Pantaleev d78c24cd6b
Merge pull request #2405 from CyberShadow/chatgpt-home
Fix ChatGPT container
2023-01-19 06:42:34 +02:00
Vladimir Panteleev 6c332da7d3
Fix ChatGPT container
This container needs a writable $HOME, and will fail at startup if
there isn't one.

Provide one by pointing HOME to a path under the mounted /data
directory.
2023-01-19 01:21:44 +00:00
Slavi Pantaleev fc3012208c
Merge pull request #2403 from array-in-a-matrix/patch-11
Fixed broken links to justfile
2023-01-18 18:33:08 +02:00
Slavi Pantaleev 4fed67747b
Merge pull request #2404 from etkecc/patch-145
Update element 1.11.17 -> 1.11.18
2023-01-18 18:22:37 +02:00
Aine 63a3764f51
Update element 1.11.17 -> 1.11.18 2023-01-18 15:45:04 +00:00
Array in a Matrix ecb173c8d4
Update installing.md 2023-01-18 10:30:09 -05:00
Slavi Pantaleev 70a35f17fe
Merge pull request #2402 from etkecc/patch-144
Update buscarron v1.3.0 -> v1.3.1
2023-01-18 16:33:00 +02:00
Slavi Pantaleev 65ed68287c
Merge pull request #2401 from etkecc/patch-143
Update postmoogle 0.9.10 -> 0.9.11
2023-01-18 16:32:39 +02:00
Aine 2fc02abfdc
Update buscarron v1.3.0 -> v1.3.1 2023-01-18 13:52:44 +00:00
Aine 903db54959
Update postmoogle 0.9.10 -> 0.9.11 2023-01-18 13:37:03 +00:00
Slavi Pantaleev 424f79df3a Replace synapse.app.pusher and synapse.app.federation_sender with synapse.app.generic_worker
Related to https://github.com/matrix-org/synapse/commit/3479599387164aca2613e88d169719
2023-01-17 15:55:57 +02:00
Slavi Pantaleev 34745b5206 Upgrade Synapse (v1.74.0 -> v1.75.0) 2023-01-17 15:53:26 +02:00
Slavi Pantaleev c27021b29b Upgrade com.devture.ansible.role.timesync 2023-01-17 14:51:00 +02:00
Slavi Pantaleev f64745c6ac Upgrade com.devture.ansible.role.timesync
Related to https://github.com/devture/com.devture.ansible.role.timesync
2023-01-17 14:47:57 +02:00
Slavi Pantaleev 3ff6e755a9 Upgrade Hookshot (2.6.0 -> 2.6.1) 2023-01-16 18:52:22 +02:00
Slavi Pantaleev 187b639347
Merge pull request #2399 from etkecc/patch-142
update mautrix-whatsapp 0.8.0 -> 0.8.1
2023-01-16 15:41:57 +02:00
Aine e053b2b0fc
update mautrix-whatsapp 0.8.0 -> 0.8.1 2023-01-16 13:17:02 +00:00
Slavi Pantaleev 432a820ca6
Merge pull request #2398 from etkecc/backup-borg-update-tags
update borg image tag
2023-01-16 12:49:38 +02:00
Aine 5c8bad6091
update borg image tag 2023-01-16 12:11:01 +02:00
Slavi Pantaleev 34c448c3bb Upgrade Cinny (2.2.2 -> 2.2.3) 2023-01-15 11:07:19 +02:00
Slavi Pantaleev e21343dc0b
Merge pull request #2396 from etkecc/unify-image-prefixes
unify docker images urls
2023-01-14 15:48:50 +02:00
Aine d1b4a6ebe1
unify docker images urls 2023-01-14 15:26:58 +02:00
Slavi Pantaleev 5d10001712
Merge pull request #2394 from etkecc/patch-141
Update hookshot 2.5.0 -> 2.6.0
2023-01-13 18:40:42 +02:00
Slavi Pantaleev c677ec0aa8
Merge pull request #2393 from etkecc/patch-140
Update jitsi stable-8138-1 -> stable-8218
2023-01-13 18:40:29 +02:00
Aine 627d8557ae
Update hookshot 2.5.0 -> 2.6.0 2023-01-13 16:31:19 +00:00
Aine e8c6267e9a
Update jitsi stable-8138-1 -> stable-8218 2023-01-13 16:30:18 +00:00
Slavi Pantaleev 57e4f3a73c
Merge pull request #2392 from spantaleev/dependabot/github_actions/frenck/action-yamllint-1.4.0
Bump frenck/action-yamllint from 1.3.1 to 1.4.0
2023-01-13 18:27:39 +02:00
dependabot[bot] ada582bc9f
Bump frenck/action-yamllint from 1.3.1 to 1.4.0
Bumps [frenck/action-yamllint](https://github.com/frenck/action-yamllint) from 1.3.1 to 1.4.0.
- [Release notes](https://github.com/frenck/action-yamllint/releases)
- [Commits](https://github.com/frenck/action-yamllint/compare/v1.3.1...v1.4.0)

---
updated-dependencies:
- dependency-name: frenck/action-yamllint
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-13 16:25:02 +00:00
Slavi Pantaleev ae1ad3baf6 Improve block tasks indentation to make yamllint happy
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2392
2023-01-13 18:17:52 +02:00
Slavi Pantaleev 4c5d945ad3 Upgrade com.devture.ansible.role.postgres 2023-01-13 18:12:22 +02:00
Slavi Pantaleev c874830de3 Upgrade com.devture.ansible.role.postgres
The new version uses the corresponding container image when running
vacuum, not the latest Postgres version.
2023-01-13 09:42:04 +02:00
Slavi Pantaleev fb60ba67f6 Announce just 2023-01-13 09:18:27 +02:00
Slavi Pantaleev 673ee508dc Upgrade matrix-chatgpt (1.2.2 -> 1.2.3) 2023-01-12 11:25:00 +02:00
Slavi Pantaleev ab8cb21a45 Upgrade matrix-chatgpt (1.2.1 -> 1.2.2) 2023-01-11 19:25:07 +02:00
Slavi Pantaleev 17438bd0dd Upgrade mjolnir (v1.6.3 -> v1.6.4) 2023-01-11 19:24:35 +02:00
Slavi Pantaleev a529bca756 Add justfile
We keep the Makefile for now, but don't mention it to new
users anymore.
2023-01-11 15:12:05 +02:00
Slavi Pantaleev 0c472c172e Upgrade mjolnir (v1.6.1 -> v1.6.3) 2023-01-11 13:51:35 +02:00
Slavi Pantaleev ecb5c077f6 Fix typo (too -> to) 2023-01-11 10:41:09 +02:00
Slavi Pantaleev 275a739b22 Announce maurtix-slack
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2227
2023-01-11 10:38:54 +02:00
Slavi Pantaleev 4e40ac5ad8
Merge pull request #2227 from xangelix/add-matrix-mautrix-slack-role
Add matrix-bridge-mautrix-slack role
2023-01-11 10:35:45 +02:00
Slavi Pantaleev 20558589cb Announce matrix-bot-chatgpt
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2386
2023-01-10 17:31:21 +02:00
Slavi Pantaleev 226d81318a Merge branch 'bertybuttface-master' 2023-01-10 17:27:42 +02:00
Slavi Pantaleev a96a22c925 chatgpt docs updates 2023-01-10 17:26:59 +02:00
Slavi Pantaleev 9ecca2cbb9 Update documentation with more chatgpt mentions 2023-01-10 17:22:54 +02:00
Slavi Pantaleev ddfab60427 Enable self-building for chatgpt for arm32 2023-01-10 17:20:50 +02:00
Slavi Pantaleev 8d3ce50d1b Disable chatgpt from group_vars/matrix_servers by default 2023-01-10 17:20:33 +02:00
bertybuttface 0b88293393 Bump ChatGPT version. 2023-01-10 14:09:08 +00:00
bertybuttface 0ec1868b95 Add matrix-bot-chatgpt.
Co-Authored-By: Slavi Pantaleev <slavi@devture.com>
2023-01-10 13:57:38 +00:00
Slavi Pantaleev d2416365d2
Merge pull request #2220 from xangelix/synapse-s3-sse-c
Add S3 SSE-C config support for synapse-s3-storage-provider
2023-01-10 09:25:11 +02:00
Slavi Pantaleev f0d1e23c9d
Move around whitelines 2023-01-10 09:22:55 +02:00
Slavi Pantaleev a8d417f91e
Merge pull request #2387 from etkecc/synapse-ext-ldap-mode
add mode var for synapse ext ldap auth
2023-01-10 00:00:32 +02:00
Cody Wyatt Neiman fc9eaa6ec5
Remove git version for s3 storage provider 2023-01-09 15:52:38 -05:00
Aine 6bd909bbb7
add mode var for synapse ext ldap auth 2023-01-09 22:18:37 +02:00
Slavi Pantaleev 1d1fd7053c ewoutp/goofys:latest -> docker.io/ewoutp/goofys:latest 2023-01-09 18:55:22 +02:00
Slavi Pantaleev d4a7c9b135
Merge pull request #2385 from etkecc/unify-prefixes
unify image prefixes
2023-01-08 22:26:23 +02:00
Aine b487bb6749
unify image prefixes 2023-01-08 22:05:43 +02:00
Slavi Pantaleev ffbc68ef42
Merge pull request #2383 from etkecc/patch-139
Update heisenbridge 1.14.0 -> 1.14.1
2023-01-06 13:04:52 +02:00
Aine 38151c9fd3
Update heisenbridge 1.14.0 -> 1.14.1 2023-01-06 11:03:18 +00:00
James Collier 36d8ea281c
Allow the mautrix whatsapp relaybot to be enabled with a variable (#2381)
* Allow the mautrix whatsapp relaybot to be enable with a variable

This allows a user to enable the relaybot by setting a variable in
`vars.yml` in the same way that the mautrix signal relaybot is
configured.

* Correct default values for mautrix whatsapp relaybot variables

* Add documentation for using the relaybot with mautrix whatsapp

* Adjust variable names to better reflect what they do

* Set default variables properly and use to_json in template
2023-01-06 11:09:07 +02:00
Slavi Pantaleev 25b0630bd2
Merge pull request #2380 from thomsbe/master
convert to list from generator
2023-01-05 15:18:32 +02:00
Thomas Baer c86720eeae
convert to list from generator
selectattr() returns a generator object, an iterator. This leads to an exception later, lists can't concated to iterators, only to other lists. So '| list' converts the iterator to a list and the script runs happily.
2023-01-05 14:10:06 +01:00
jakicoll 42e4e50f5b Matrix Authentication Support for Jitsi
This extends the collection with support for seamless authentication at the Jitsi server using Matrix OpenID.

1. New role for installing the [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service)
2. Changes to Jitsi role: Installing Jitsi Prosody Mods and configuring Jitsi Auth
3. Changes to Jitsi and nginx-proxy roles: Serving .well-known/element/jitsi from jitsi.DOMAIN
4. We updated the Jitsi documentation on authentication and added documentation for the user verification service.
2023-01-04 14:27:16 +01:00
Cody Wyatt Neiman 3a28b7e332
Specify version requirement for sse-c in s3 storage provider 2023-01-03 18:01:15 -05:00
Cody Wyatt Neiman 7e5e1712f5
Encode s3 sse-c key for utf-8 2023-01-03 17:53:33 -05:00
Cody Wyatt Neiman f5390562ed
Fix synapse s3 storage provider container indentation 2023-01-03 16:13:09 -05:00
Cody Wyatt Neiman b9604da9d9
Add note on using synapse s3 provider git version for sse-c support 2023-01-03 15:26:06 -05:00
Cody Wyatt Neiman 6d96bcee1d
Allow 'git' as a version for s3 storage provider 2023-01-03 15:18:49 -05:00
Cody Wyatt Neiman 4d44f7b49e
Use base64 encoded string for sse-c key 2023-01-03 15:18:09 -05:00
Cody Wyatt Neiman 533e47e9b9
Add documentation on using s3 sse-c 2023-01-03 15:16:55 -05:00
Cody Wyatt Neiman 4c60b1dabf
Merge branch 'master' into synapse-s3-sse-c 2023-01-03 14:31:02 -05:00
Cody Wyatt Neiman 94474e387a
Fix mautrix slack doc typos and clarifications 2023-01-03 12:53:57 -05:00
Cody Wyatt Neiman 1c6ab4a1bc
Update documentation for mautrix slack 2023-01-03 12:33:09 -05:00
Slavi Pantaleev f400093865
Merge pull request #2373 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.10.2
Bump ansible-community/ansible-lint-action from 6.10.0 to 6.10.2
2023-01-03 18:12:43 +02:00
dependabot[bot] 2a2d9d97c2
Bump ansible-community/ansible-lint-action from 6.10.0 to 6.10.2
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.10.0 to 6.10.2.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.10.0...v6.10.2)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-03 16:06:49 +00:00
Cody Wyatt Neiman 12b8cb3aab
Fix localpart slack id regex for mautrix-slack 2023-01-02 21:58:52 -05:00
Cody Wyatt Neiman e977242022
Pull more mautrix-slack defaults from upstream 2023-01-02 21:31:04 -05:00
Cody Wyatt Neiman f4874d2e4a
Pull upstream mautrix-slack config defaults 2023-01-02 21:09:40 -05:00
Cody Wyatt Neiman c925b517e7
Include mautrix-slack in setup 2023-01-02 21:09:23 -05:00
Cody Wyatt Neiman 2e0dfb2dc1
Update slack bridge implementation 2023-01-02 20:07:04 -05:00
Cody Wyatt Neiman d07480a883
Remove hardcoded matrix-postgres references 2023-01-02 19:23:14 -05:00
Cody Wyatt Neiman 97c45676de
Update paths and vars for mautrix-slack to roles/custom 2023-01-02 19:13:58 -05:00
Cody Wyatt Neiman d6022d851e
Move mautrix-sack role files to new roles/custom path 2023-01-02 19:13:49 -05:00
Cody Wyatt Neiman 6fb0f26b30
Add mautrix/appservice slack bridge bot username checks 2023-01-02 19:13:49 -05:00
Cody Wyatt Neiman 784e5492d5
Add matrix-bridge-mautrix-slack role 2023-01-02 19:13:17 -05:00
Slavi Pantaleev 1abba4c918 Upgrade matrix-corporal (2.5.0 -> 2.5.1) 2023-01-02 14:39:54 +02:00
Slavi Pantaleev 73e689e48e Fix --tags=register-user not working on Dendrite due to broken Jinja syntax
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2369
2022-12-31 17:33:46 +02:00
Slavi Pantaleev d018677293 Upgrade geerlingguy.docker (6.0.3 -> 6.0.4) 2022-12-30 18:12:38 +02:00
Slavi Pantaleev 2188dd34d1 Add missing install-* tags in setup.yml
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2356
2022-12-28 15:29:34 +02:00
Slavi Pantaleev e8f6a9965d
Merge pull request #2365 from spantaleev/dependabot/github_actions/ansible-community/ansible-lint-action-6.10.0
Bump ansible-community/ansible-lint-action from 6.8.2 to 6.10.0
2022-12-27 11:49:26 +02:00
dependabot[bot] a6d7370106
Bump ansible-community/ansible-lint-action from 6.8.2 to 6.10.0
Bumps [ansible-community/ansible-lint-action](https://github.com/ansible-community/ansible-lint-action) from 6.8.2 to 6.10.0.
- [Release notes](https://github.com/ansible-community/ansible-lint-action/releases)
- [Commits](https://github.com/ansible-community/ansible-lint-action/compare/v6.8.2...v6.10.0)

---
updated-dependencies:
- dependency-name: ansible-community/ansible-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-26 16:06:33 +00:00
Slavi Pantaleev ba09705f7f Make Jitsi auth setup not show credentials in the shell
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2363
2022-12-26 07:58:32 +02:00
Slavi Pantaleev 7164a79aa2
Merge pull request #2362 from etkecc/patch-138
Update ntfy 1.29.1 -> 1.30.1
2022-12-23 18:30:18 +02:00
Aine 6795fe3578
Update ntfy 1.29.1 -> 1.30.1 2022-12-23 15:46:33 +00:00
Slavi Pantaleev 1e6d8d1bc8
Merge pull request #2361 from etkecc/master
update beeper-linkedin 0.5.3 -> 0.5.4
2022-12-23 13:13:48 +02:00
Aine 8b2a86e35e
update beeper-linkedin 0.5.3 -> 0.5.4 2022-12-23 13:00:35 +02:00
Slavi Pantaleev f731bcb5eb
Merge pull request #2360 from Kuchenmampfer/master
Upgrade Signald
2022-12-23 10:11:44 +02:00
Kuchenmampfer d1442dec15
Upgrade Signald
Fixes the following issue when trying to use the !pm <phone number> command: https://gitlab.com/signald/signald/-/issues/345
2022-12-22 22:31:38 +00:00
Slavi Pantaleev 2ad9f8e0a0
Merge pull request #2358 from adam-kress/patch-1
Update element v1.11.16 -> v1.11.17
2022-12-21 20:19:27 +02:00
adam-kress bef4fe5d9e
Update element v1.11.16 -> v1.11.17 2022-12-21 13:16:09 -05:00
Slavi Pantaleev 539ed4dd05
Merge pull request #2357 from meenzen/conduit-update
Update conduit to 0.5.0
2022-12-21 20:07:42 +02:00
Samuel Meenzen 0179b0f165
Remove conduit workaround
Conduit update 0.5.0 fixed the issue, so this is no longer needed.
2022-12-21 18:28:34 +01:00
Samuel Meenzen 33fb5a4665
Upgrade Conduit (0.4.0 -> 0.5.0) 2022-12-21 18:21:49 +01:00
Slavi Pantaleev 77bb386adc Upgrade devture/ansible (2.13.6-r0 -> 2.13.6-r0-1)
This is a rebuild on Alpinelinux 3.17.0 (previously 3.16.2).
The new container image tag was pushed for arm32 and arm64 architectures
as well (2.13.6-r0 was `amd64`-only due to CI trouble in the past).

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2353
2022-12-21 18:47:38 +02:00
Slavi Pantaleev 40aa42e982 Add reference to push.enabled to homeserver.yaml
Related to:

- https://github.com/matrix-org/synapse/pull/14551/files
- https://github.com/matrix-org/synapse/pull/14619/files
2022-12-21 06:43:43 +02:00
Slavi Pantaleev 42c4f0450d Upgrade Prometheus (2.40.7 -> 2.41.0) 2022-12-20 21:37:19 +02:00
Slavi Pantaleev d0b2a50768 Upgrade Hydrogen (v0.3.5 -> v0.3.6) 2022-12-20 21:36:39 +02:00
Slavi Pantaleev c4f2a5f158
Merge pull request #2355 from joecool1029/synapsebump
Upgrade Synapse (1.73.0 -> 1.74.0)
2022-12-20 21:33:41 +02:00
Joe Kappus deabd79452
Upgrade Synapse (1.73.0 -> 1.74.0)
Signed-off-by: Joe Kappus <joe@wt.gd>
2022-12-20 14:07:14 -05:00
Slavi Pantaleev 362954aeab Remove warning which no longer applies
This warning was added because of:
https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090

The problem has since been fixed by:
e9e84341a9

This current patch was provoked by:
https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2352
2022-12-20 11:24:20 +02:00
Slavi Pantaleev d4a8435fa2 Try to improve own-webserver docs a bit
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2351
2022-12-20 10:32:14 +02:00
Slavi Pantaleev b138c25937
Merge pull request #2350 from FSG-Cat/patch-1
Update Mjolnir from 1.5.0 to 1.6.1
2022-12-19 16:39:39 +02:00
Catalan Lover 5e30f6d4c4
Update Mjolnir from 1.5.0 to 1.6.1
Please note that This Mjolnir version bump technnically is missing some extra stuff that mjolnir claims we should do but it didnt work when i tried it and well my mjolnir deployment has been running this since release day almost and its fine. No errors in log that are unexpected. (Mjolnir throws errors in the log for anyone who wonders for various things that are fine. Like if a protection is off that is an error. Its due to how matrix-bot-lib works.)
2022-12-19 15:33:58 +01:00
Slavi Pantaleev f2e68469cb Upgrade nginx (1.23.2 -> 1.23.3) 2022-12-19 12:32:43 +02:00
Slavi Pantaleev 576eb0006c Upgrade Grafana (9.3.1 -> 9.3.2) 2022-12-17 22:49:34 +02:00
Slavi Pantaleev a7d39b109a Upgrade Redis (7.0.6 -> 7.0.7) 2022-12-17 22:48:48 +02:00
Slavi Pantaleev fa73513064 Upgrade mautrix-whatsapp (0.7.2 -> 0.8.0) 2022-12-17 22:47:38 +02:00
Slavi Pantaleev 0c6959de8b
Merge pull request #2341 from etkecc/patch-137
Update prometheus 2.40.6 -> 2.40.7
2022-12-14 13:05:45 +02:00
Aine 455b8aff15
Update prometheus 2.40.6 -> 2.40.7 2022-12-14 10:32:14 +00:00
Slavi Pantaleev 60127cdffd
Merge pull request #2339 from etkecc/patch-135
update redis 7.0.5 -> 7.0.6
2022-12-14 07:31:36 +02:00
Slavi Pantaleev 190f241bf5
Merge pull request #2340 from etkecc/patch-136
Update jitsi stable-8138 -> stable-8138-1
2022-12-14 07:31:31 +02:00
Slavi Pantaleev ea591cdd8a
Merge pull request #2338 from etkecc/patch-134
update mautrix-instagram 0.2.2 -> 0.2.3
2022-12-14 07:31:12 +02:00
Aine bd0f21588f
Update jitsi stable-8138 -> stable-8138-1 2022-12-13 22:49:10 +00:00
Aine 07ca0267f1
update redis 7.0.5 -> 7.0.6 2022-12-13 22:47:30 +00:00
Aine f642f6fae7
update mautrix-instagram 0.2.2 -> 0.2.3 2022-12-13 22:45:52 +00:00
Slavi Pantaleev 1f593f708f Upgrade Jitsi (stable-8044 -> stable-8138)
Untested
2022-12-12 19:00:55 +02:00
Slavi Pantaleev 3f4ab0bd7e Upgrade Redis (7.0.4 -> 7.0.5) 2022-12-12 19:00:55 +02:00
Slavi Pantaleev c99c23eca3
Merge pull request #2337 from FanchTheSystem/patch-1
Specify relation between matrix-registration and matrix-registration-bot
2022-12-12 16:21:04 +02:00
Fanch a3ec2f3215
Specify relation between matrix-registration and matrix-registration-bot 2022-12-12 15:18:05 +01:00
Slavi Pantaleev ae7325f251 Run com.devture.ansible.role.playbook_state_preserver even on --tags=install-all 2022-12-12 15:28:29 +02:00
Slavi Pantaleev e8ed318908
Merge pull request #2335 from gardar/fix-tag-typo
fix: unclosed tags typo
2022-12-12 08:18:03 +02:00
Slavi Pantaleev 6f52e8c64c
Merge pull request #2334 from ikkemaniac/update-nginxlog
Update nginxlog
2022-12-12 08:17:43 +02:00
gardar b9afcead42 fix: unclosed tags typo 2022-12-11 23:25:59 +00:00
ikkemaniac 108ada75e8 update dashboard, fix typo, fix using original user ip
improve nginxlog matches to group URI's
2022-12-11 22:41:12 +01:00
Slavi Pantaleev f69d90c1e6 Upgrade Prometheus (2.40.5 -> 2.40.6) 2022-12-11 18:29:13 +02:00
Slavi Pantaleev 86d177266a Upgrade matrix-corporal (2.4.0 -> 2.5.0) 2022-12-11 18:29:13 +02:00
Slavi Pantaleev b0030bd62f
Merge pull request #2333 from mattcen/hydrogen-prebuilt-docker
Use upstream Docker image for amd64 rather than self-build
2022-12-11 17:01:48 +02:00
Matthew Cengia 3453fff901
Use upstream Docker image for amd64 rather than self-build 2022-12-11 21:25:43 +11:00
Slavi Pantaleev 2b89d5d92f Upgrade exim-relay (4.95-r0-4 -> 4.96-r1-0) 2022-12-11 11:45:47 +02:00
Slavi Pantaleev 905ffd091e
Merge pull request #2332 from mochman/master
add 'not' to fail check for s3_storage_provider
2022-12-10 15:22:50 +02:00
Luke Moch dd51ad2ba2 fail if matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url 'not' startswith('http') 2022-12-10 08:13:55 -05:00
Slavi Pantaleev d81e7d6328 Make matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url required
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2330
2022-12-10 10:37:01 +02:00
Slavi Pantaleev a2935ec7c8
Merge pull request #2329 from AIndoria/master
Fix Broken ma1sd Playbook Documentation Link
2022-12-09 17:17:12 +02:00
Abe 5bb55e99f8
Merge pull request #1 from AIndoria/patch-1
Fix Broken ma1sd Playbook Documentation Link
2022-12-09 07:17:52 -07:00
Abe 0d8161acb5
Fix Broken ma1sd Playbook Documentation Link
Old link was pointing at 

`https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/configuring-playbook-ma1sd.md` which 404s

New link at `https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-ma1sd.md`
2022-12-09 07:15:43 -07:00
Slavi Pantaleev 3824139908 Rename inject_into_nginx_proxy.yml to init.yml when it does more than injection 2022-12-09 10:18:40 +02:00
Slavi Pantaleev f186d6236d Add some missing tags to Synapse role
Without these:

- `--tags=install-synapse` and `--tags=install-all` would be incomplete
and will not contain Synapse worker configuration

- `--tags=install-synapse-reverse-proxy-companion` and
  `--tags=setup-synapse-reverse-proxy-companion` would not contain
  Synapse worker configuration
2022-12-09 10:15:40 +02:00
Slavi Pantaleev da82c3bd4f
Merge pull request #2327 from ikkemaniac/fix-nginxlog-prometheus
fix: nginxlog prometheus config port
2022-12-08 13:15:34 +02:00
Slavi Pantaleev bdf1bea873
Merge pull request #2326 from ikkemaniac/fix-nginxlox-systemd
fix: nginxlog systemd entry
2022-12-08 13:14:57 +02:00
ikkemaniac e6fc6b7a86 fix: nginxlog prometheus config port 2022-12-08 01:10:05 +01:00
ikkemaniac 8ef6341fd7 fix: systemd entry 2022-12-08 00:02:54 +01:00
teutat3s ce1cf0e78f
Merge branch 'master' into pub.solar 2022-12-07 21:01:52 +01:00
Slavi Pantaleev 7900839d40
Merge pull request #2324 from thedanbob/delete-matrix-scripts
Only delete playbook scripts from /usr/local/bin
2022-12-07 21:37:14 +02:00
Dan Arnfield 5823f1f298 Only delete playbook scripts from /usr/local/bin 2022-12-07 13:26:02 -06:00
Slavi Pantaleev 6a5a09ba9b Remove matrix-change-user-admin-status mentions and provide an alternative 2022-12-07 20:36:28 +02:00
Rhys fd79140201
Changes to allow a user to set the max participants on a jitsi conference (#2323)
* Changes to allow a user to set the max participants on a jitsi
conference

* changed var name from jitsi_max_participants to matrix_prosody_jitsi_max_participants
2022-12-07 17:54:58 +02:00
ikkemaniac 8ebf18a885
add prometheus-nginxlog-exporter role (#2315)
* add prometheus-nginxlog-exporter role

* Rename matrix_prometheus_nginxlog_exporter_container_url to matrix_prometheus_nginxlog_exporter_container_hostname

* avoid referencing variables from other roles, handover info using group_vars/matrix_servers

* fix: stop service when uninstalling

fix: typo

move available arch's into a var

fix: text

* fix: prometheus enabled condition

Co-authored-by: ikkemaniac <ikkemaniac@localhost>
2022-12-07 16:58:36 +02:00
Slavi Pantaleev 48d601008c
Merge pull request #2322 from etkecc/patch-133
postmoogle - add missing join()s
2022-12-07 13:53:12 +02:00
Aine fda65a0a56
postmoogle - add missing join()s 2022-12-07 11:38:47 +00:00
Slavi Pantaleev 87448c04de
Merge pull request #2321 from etkecc/postmoogle-0910
update postmoogle 0.9.9 -> 0.9.10
2022-12-07 08:59:05 +02:00
Aine ba13231c58
update postmoogle 0.9.9 -> 0.9.10 2022-12-06 22:51:17 +02:00
Slavi Pantaleev b4cb085fb5
Merge pull request #2320 from etkecc/patch-132
Update element v1.11.15 -> v1.11.16
2022-12-06 16:51:41 +02:00
Aine ba4580a1fd
Update element v1.11.15 -> v1.11.16 2022-12-06 14:50:56 +00:00
Slavi Pantaleev 9edc7da67d Do not specify now-unnecessary worker_main_http_uri Synapse worker setting
Related to

- c15e9a0edb
- 01a0527892
2022-12-06 15:54:06 +02:00
Slavi Pantaleev 13e7399104 Handle /timestamp_to_event via Synapse workers
Related to 8f10c8b054
2022-12-06 15:52:16 +02:00
Slavi Pantaleev 663fe29ddb Do not specify start_pushers in Synapse config
It's unnecessary when `pusher_instances` is populated.

Source: 6acb6d772a
2022-12-06 15:49:56 +02:00
Slavi Pantaleev 135bb5af3e Do not specify send_federation in Synapse config
It's unnecessary when `federation_sender_instances` is populated.

Source: 6acb6d772a
2022-12-06 15:49:28 +02:00
Slavi Pantaleev 84d529b542 Upgrade Synapse (v1.72.0 -> v1.73.0)
Synapse Worker configuration updates are coming later.
2022-12-06 15:47:07 +02:00
Slavi Pantaleev 9ab2a72e86 More matrix_postgres -> devture_postgres changes
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2319
2022-12-06 10:12:31 +02:00
Slavi Pantaleev 86b436792d
Merge pull request #2319 from felixx9/master
matrix_ to devture_
2022-12-06 10:11:53 +02:00
felixx9 7f2cdd9889
matrix_ to devture_
I'm not sure, but this should be changed to devture_postgres_... !?
https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2022-11-28

```yaml
matrix_postgres_process_extra_arguments: [
  "-c 'max_connections=200'"
]
```
2022-12-06 08:47:54 +01:00
Slavi Pantaleev b1c77f9bf2 Add comment to matrix-backup-borg.service
Related to 8005557061
2022-12-05 15:45:33 +02:00
Slavi Pantaleev 8005557061 Give backup-borg container more permissions to perform the backup
Running with a user (like `matrix:matrix`) fails if Etherpad is enabled,
because `/matrix/etherpad` is owned by `matrix_etherpad_user_uid`/`matrix_etherpad_user_gid` (`5001:5001`).

The `matrix` user can't acccess the Etherpad directory for this reason
and Borgmatic fails when trying to make a backup.

There may be other things under `/matrix` which similarly use
non-`matrix:matrix` permissions.

Another workaround might have been to add `/matrix/etherpad` (and
potentially other things) to `matrix_backup_borg_location_exclude_patterns`, but:

- that means Etherpad won't be backed up - not great
- only excluding Etherpad may not be enough. There may be other files we
  need to exclude as well

---

Running with `root` is still not enough though.

We need at least the `CAP_DAC_OVERRIDE` capability, or we won't be able to read the
`/etc/borgmatic.d/config.yaml` configuration file (owned by
`matrix:matrix` with `0640` permissions).

---

Additionally, it seems like the backup process tries to write to at least a few directories:
- `/root/.borgmatic`
- `/root/.ssh`
- `/root/.config`

> [Errno 30] Read-only file system: '/root/.borgmatic'
> Error while creating a backup.
> /etc/borgmatic.d/config.yaml: Error running configuration file

We either need to stop mounting the container filesystem as readonly
(remove `--read-only`) or to allow writing via a `tmpfs`.

I've gone the `tmpfs` route which seems to work.

In any case, the mounted source directories (`matrix_backup_borg_location_source_directories`)
are read-only regardless, so our actual source files are protected from unintentional changes.
2022-12-05 15:42:57 +02:00
Slavi Pantaleev 7b123907e0 Fix borg repository URL format
Reference: https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls

Otherwise, we'd get:

> /etc/borgmatic.d/config.yaml: Remote repository paths without ssh:// syntax are deprecated. Interpreting "user@hostname:matrix" as "ssh://user@hostname/./matrix"
2022-12-05 15:15:47 +02:00
Slavi Pantaleev 64b03c2dfd Fix backup-borg repository initialization for borgmatic 1.7+ (or borg 2.0) 2022-12-05 15:00:11 +02:00
Slavi Pantaleev 1f1a3dfc38 Ensure database port is passed to Borg as an integer
Without this, it's a string and borg says:

> At 'hooks.postgresql_databases[INDEX_HERE].port': '5432' is not of type 'integer'
> /etc/borgmatic/config.yaml /etc/borgmatic.d /tmp/.config/borgmatic/config.yaml /tmp/.config/borgmatic.d: No valid configuration files found

.. and fails to do anything.
2022-12-05 14:42:02 +02:00
Slavi Pantaleev d8df03dfc9 Mark Postgres v15 as supported for borg backup
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2257

Fixed in d134cd7c4c
(thanks to `alpine:latest` now being `alpine:3.17.0`, which includes
Postgres v15)
2022-12-05 11:46:49 +02:00
Slavi Pantaleev b2a40effaf Fix Element self-building by switching to docker-buildx
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2318
2022-12-05 10:02:54 +02:00
Slavi Pantaleev 6414599079 Upgrade Coturn (4.6.0 -> 4.6.1) 2022-12-05 09:46:11 +02:00
Slavi Pantaleev 9b47a85322
Merge pull request #2316 from qlyoung/fix-s3-ensure-data-directory
fix s3 storage provider not ensuring data dir
2022-12-04 10:20:27 +02:00
Slavi Pantaleev 7464604ddd Make use of matrix_synapse_ext_s3_storage_provider_data_path in a few more places 2022-12-04 10:17:55 +02:00
Quentin Young b31731ebf8 fix s3 storage provider not ensuring data dir
This path is accessed by the s3 storage provider stuff and needs to be
ensured.

Broken by 7c5c3aedc
2022-12-04 01:16:58 -05:00
Slavi Pantaleev ceb2c30277 Upgrade mautrix-signal (v0.4.1 -> v0.4.2) 2022-12-03 15:37:17 +02:00
Slavi Pantaleev 4589f94053 Upgrade Postgres (minor versions upgrade) 2022-12-02 19:17:35 +02:00
Slavi Pantaleev d59bbfdfc9 Upgrade Hookshot (2.4.0 -> 2.5.0) 2022-12-02 19:15:04 +02:00
Slavi Pantaleev a353bda7a1 Upgrade appservice-slack (2.0.1 -> 2.0.2) 2022-12-01 23:30:09 +02:00
Slavi Pantaleev 9e93030159 Upgrade Grafana (9.3.0 -> 9.3.1) 2022-12-01 23:29:33 +02:00
Slavi Pantaleev 7dc612743d
Merge pull request #2311 from etkecc/patch-131
Update prometheus 2.40.4 -> 2.40.5
2022-12-01 17:40:03 +02:00
Aine ea401170e1
Update prometheus 2.40.4 -> 2.40.5 2022-12-01 15:16:33 +00:00
Slavi Pantaleev 5e595611fe
Merge pull request #2309 from etkecc/patch-130
fix hookshot role
2022-11-30 14:33:40 +02:00
Aine 8ca6cdd016
fix hookshot role 2022-11-30 12:25:51 +00:00
Slavi Pantaleev e3d21e8096 Rename some default Hookshot variables
Fixup for 7e2e2626a0

Some references were left unrenamed which caused `validate_config.yml`
to trigger.
2022-11-30 11:55:23 +02:00
Slavi Pantaleev dc817f30ce Upgrade Grafana (9.2.7 -> 9.3.0) 2022-11-30 11:50:21 +02:00
Slavi Pantaleev 9d5b5d7a01
Merge pull request #2308 from etkecc/patch-129
Update grafana 9.2.6 -> 9.2.7
2022-11-30 11:28:39 +02:00
Slavi Pantaleev 0a018ac22b Add internal Postgres instance (if enabled) to postgres-backup dependencies 2022-11-30 11:22:00 +02:00
Slavi Pantaleev d5ea17d66f Make postgres-backup priority start later 2022-11-30 11:18:39 +02:00
Slavi Pantaleev 4eed49f931 Replace custom/matrix-postgres-backup role with galaxy/com.devture.ansible.role.postgres_backup
This role is usable on its own and it's not tied to Matrix, so
extracting it out into an independent role that we install via
ansible-galaxy makes sense.

This also fixes the confusion from the other day, where
`matrix_postgres_*` had to be renamed to `devture_postgres_*`
(unless it was about `matrix_postgres_backup_*`).
We now can safely say that ALL `matrix_postgres_*` variables need to be
renamed.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2305
2022-11-30 11:01:19 +02:00
Aine d37adfba4e
Update grafana 9.2.6 -> 9.2.7 2022-11-30 08:48:07 +00:00
Slavi Pantaleev a365e54f4d
Merge pull request #2307 from etkecc/patch-128
Update prometheus 2.40.2 -> 2.40.4
2022-11-30 10:34:20 +02:00
Aine 65019a5774
Update prometheus 2.40.2 -> 2.40.4 2022-11-30 08:30:50 +00:00
Slavi Pantaleev de979bc6a2 Upgrade com.devture.ansible.role.postgres 2022-11-30 09:42:06 +02:00
Slavi Pantaleev bc64d8ed9a Upgrade prometheus-node-exporter (v1.4.0 -> v1.5.0) 2022-11-30 08:32:29 +02:00
Slavi Pantaleev 4a62df2ea3 Make Hookshot logging-level configurable 2022-11-30 08:18:41 +02:00
Slavi Pantaleev 84f306b236 Add support for enableHttpGet and waitForComplete Hookshot options
Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2256
2022-11-30 08:16:58 +02:00
Slavi Pantaleev 7e2e2626a0 Make hookshot variable names consistent with the rest of the playbook
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2256
2022-11-30 08:13:39 +02:00
Slavi Pantaleev a2f0bcc4a3
Merge pull request #2306 from MrAnno/faq-docker-install-typo
Fix Docker installation typo in FAQ
2022-11-30 07:46:42 +02:00
László Várady 3424a1169d Fix Docker installation typo in FAQ 2022-11-30 02:45:00 +01:00
Slavi Pantaleev b25385dffd Upgrade com.devture.ansible.role.postgres 2022-11-29 20:16:29 +02:00
Slavi Pantaleev d40d303cc5
Merge pull request #2304 from array-in-a-matrix/patch-10
update dendrite to v0.10.8
2022-11-29 19:46:54 +02:00
Array in a Matrix d5e8d2a939
update dendrite 2022-11-29 11:58:00 -05:00
Slavi Pantaleev 8c5e34b37f Upgrade ddclient (v3.10.0-ls105 -> v3.10.0-ls106) 2022-11-29 08:20:36 +02:00
Slavi Pantaleev 4b2d30a474 Fix matrix_dendrite_client_api_turn_shared_secret not being defined
Regression since https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2290
2022-11-28 18:33:18 +02:00
Slavi Pantaleev 5b26647127 Upgrade Certbot (v1.31.0 -> v2.0.0) and switch to new default key type (ecdsa)
More details about the new key type can be found here:
https://eff-certbot.readthedocs.io/en/stable/using.html#rsa-and-ecdsa-keys

Existing RSA-based keys will continue to renew as RSA until manual
action is taken. Example from the documentation above:
> certbot renew --key-type ecdsa --cert-name example.com --force-renewal

In the future, we may add a command which does this automatically for
all domains.
2022-11-28 09:24:25 +02:00
Slavi Pantaleev 81054bb19c Upgrade com.devture.ansible.role.postgres 2022-11-28 09:05:22 +02:00
Slavi Pantaleev 0d322a5c86 Announce matrix-postgres replacement and /usr/local/bin cleanup 2022-11-28 08:09:57 +02:00
Slavi Pantaleev 4b111d05d5 Pass devture_postgres_db_migration_request to com.devture.ansible.role.postgres in a cleaner way 2022-11-28 07:44:59 +02:00
Slavi Pantaleev 910cd9adf0 Replace import_role calls with include_role calls 2022-11-27 11:27:01 +02:00
Slavi Pantaleev 4bb3a38de6 Upgrade com.devture.ansible.role.postgres 2022-11-27 11:24:53 +02:00
Slavi Pantaleev 3d1ea3e79e Auto-delete old matrix scripts from /usr/local/bin 2022-11-27 10:10:00 +02:00
Slavi Pantaleev d1b2fd50be Remove manual service enablement/start for backup-borg
This is done via devture_systemd_service_manager_services_list_auto
already.
2022-11-27 10:04:03 +02:00
Slavi Pantaleev 2688e8bfc3 Optimize initial installation by not reloading systemd after each .service install
We expect `--tags=start` to handle systemd reloading, so we don't need
to do it manually each time we install/uninstall a .service file.
2022-11-27 10:02:45 +02:00
Slavi Pantaleev 707e909b9b /usr/local/bin/matrix-ssl-lets-encrypt-certificates-renew -> /matrix/ssl/bin/lets-encrypt-certificates-renew 2022-11-27 09:53:23 +02:00
Slavi Pantaleev fb86f6d5e7 /usr/local/bin/matrix-remove-all -> /matrix/bin/remove-all 2022-11-27 09:47:02 +02:00
Slavi Pantaleev c928148261 Make uninstall tasks for Synapse delete bin/ 2022-11-27 09:43:25 +02:00
Slavi Pantaleev 40cf9cd72c /usr/local/bin/matrix-dendrite-create-account -> /matrix/dendrite/bin/create-account 2022-11-27 09:42:10 +02:00
Slavi Pantaleev 7c5c3aedc4 Put s3-storage-provider scripts under /matrix/synapse/ext/s3-storage-provider/bin, not /usr/local/bin 2022-11-27 09:38:34 +02:00
Slavi Pantaleev 735e7355a5 Rename variable (matrix_synapse_ext_s3_storage_provider_path -> matrix_synapse_ext_s3_storage_provider_base_path) 2022-11-27 09:28:29 +02:00
Slavi Pantaleev 72744f9db9 /usr/local/bin/matrix-synapse-register-user -> /matrix/synapse/bin/register-user 2022-11-27 09:26:18 +02:00
Slavi Pantaleev 7b43ef34b7 Remove more hardcoded matrix-postgres references 2022-11-27 09:16:18 +02:00
Slavi Pantaleev 3d5d843418 Replace some devture_postgres_identifier instances with devture_postgres_connection_hostname 2022-11-27 08:31:54 +02:00
Slavi Pantaleev eedf5ad94d Remove some hardcoded matrix-postgres references 2022-11-27 08:23:43 +02:00
Slavi Pantaleev 04b9483f0d Switch from matrix-postgres to com.devture.ansible.role.postgres 2022-11-27 08:04:31 +02:00
Slavi Pantaleev dd9ae0d25c Fix accidentally swapped tags (rust-synapse-compress-state and update-user-password) 2022-11-27 07:24:39 +02:00
Slavi Pantaleev 1688983436
Merge pull request #2299 from etkecc/patch-127
update mautrix-telegram 0.12.1 -> 0.12.2
2022-11-26 20:51:02 +02:00
Aine ea0c9ed71d
update mautrix-telegram 0.12.1 -> 0.12.2 2022-11-26 18:48:04 +00:00
Slavi Pantaleev 018a609e47 Simplify matrix_postgres_backup_databases definition
Related to 71de7cd8cd
2022-11-26 18:57:45 +02:00
Slavi Pantaleev 71de7cd8cd Simplify matrix_backup_borg_postgresql_databases definition
There was no need to add `synapse` to the list manually
and then add all other additional databases.

When the `synapse` database was the main database, this made sense.
Since a long time ago already, ALL databases are "additional" databases,
so the `synapse` database is part of that list.

We could additional add the main (`matrix`) database to this list,
but there's probably no point in backing that one up.
2022-11-26 18:53:54 +02:00
Slavi Pantaleev 9427f9408d
Merge pull request #2298 from pub-solar/docs/synapse-oidc-keycloak
Update docs on how to use synapse & keycloak OIDC
2022-11-26 17:23:31 +02:00
teutat3s e9765ae4a5
Update docs on how to use synapse & keycloak OIDC
Use up-to-date example from synapse docs

Add link to keycloak website

Add link to synapse docs on OIDC
2022-11-26 16:16:56 +01:00
Slavi Pantaleev fe4c2d73f4 Update Ansible version requirements
Tests were carried out like this:

- `virtualenv3 env`
- `./env/bin/pip install ansible==4.10.0 ansible-core==2.11.7`
- `./env/bin/ansible-playbook .....`

The lowest version of `ansible-core` available on PyPI right now is
2.11.0. That version has trouble with `ansible==4.0.0` though.
The errors we were hitting seemed to be resolved by others online by
using `ansible==4.10.0` instead, which has a minimum `ansible-core`
requirement of `2.11.7`, so that's what we went with.

Older versions of Ansible may work, but.. I'm having trouble
installing them and don't want to spend too much time on digging through
ancient versions and testing them out. People should just learn to run
up-to-date software.
2022-11-26 16:45:07 +02:00
Array in a Matrix 504d4a4134
Add dendrite captcha config to doc and hCaptcha (#2290)
* added dendrite captcha options

* added hcaptcha doc

* proper url

* Apply suggestions from code review

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

* Update main.yml

* renamed captcha vars to new naming scheme

* change vars to new format

* Rename back some incorrect renamed variables

These variables are either not just part of the `client_api` subsection,
or are not even part of that section at all. They shouldn't have been
renamed in baaef2ed616e2645550d9

* Fix up naming inconsistencies

Some of these variables had been renamed in one place,
but not in other places, so it couldn't have worked that way.

* Add validation/deprecation for renamed Dendrite variables

Related to 4097898f885cf4c73, baaef2ed616e2645550, 68f4418092fa8ad
and a0b4a0ae6b2f1f18

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2022-11-26 09:27:43 +02:00
teutat3s 3dbe8fc232
Merge branch 'master' into pub.solar 2022-11-26 00:19:12 +01:00
teutat3s 7f9ff30731
Merge branch 'master' into pub.solar 2022-11-22 16:00:26 +01:00
Cody Wyatt Neiman b6bb5731cd
Remove leftover sse-c enabled cmd check 2022-11-13 03:20:30 -05:00
Cody Wyatt Neiman a7320e02ff
Adjust sse-c template formatting 2022-11-13 03:18:53 -05:00
teutat3s 3982f56e97
devshell: init with gnumake for new make roles target 2022-11-10 11:46:18 +01:00
Cody Wyatt Neiman 384da4f34f
Add S3 SSE-C support to synapse-s3-storage-provider 2022-11-09 16:16:33 -05:00
teutat3s ea0cfb9f85
Merge branch 'master' into pub.solar 2022-11-09 18:02:47 +01:00
teutat3s d1dcef8d31
Merge branch 'master' into pub.solar 2022-10-29 19:38:54 +02:00
teutat3s 2531e82d5b
Merge branch 'master' into pub.solar 2022-10-19 01:30:25 +02:00
teutat3s 8f80021c3a
Merge branch 'master' into pub.solar 2022-09-28 17:49:10 +02:00
teutat3s faae6699ec
Merge branch 'master' into pub.solar 2022-09-28 12:26:38 +02:00
teutat3s 95611fd77f
Merge branch 'master' into pub.solar 2022-09-27 10:00:16 +02:00
teutat3s 71d239a28e
Merge branch 'master' into pub.solar 2022-09-18 13:54:11 +02:00
teutat3s 53dea38606
Merge branch 'master' into pub.solar 2022-09-04 19:29:32 +02:00
teutat3s 5102ed3098
Merge branch 'master' into pub.solar 2022-08-27 13:53:39 +02:00
teutat3s ca40fa9747
Merge branch 'master' into pub.solar 2022-08-08 13:52:01 +02:00
teutat3s 8b057ab29b
Merge branch 'master' into pub.solar 2022-07-21 16:44:48 +02:00
teutat3s f6a1d4391e
Merge branch 'master' into pub.solar 2022-07-19 09:56:48 +02:00
teutat3s 981af07892
Merge branch 'master' into pub.solar 2022-07-18 12:25:58 +02:00
teutat3s dd5af71b0e
Merge branch 'master' into pub.solar 2022-07-11 16:31:16 +02:00
teutat3s c19ba7008d
Merge branch 'master' into pub.solar 2022-07-05 23:54:24 +02:00
teutat3s 2925553b8f
Merge branch 'master' into pub.solar 2022-06-28 16:32:45 +02:00
3hhh 7aa4f48faa
whatsapp bridge: set the default log level to warning
Debug logs are inappropriate for production use.
2022-06-11 17:58:03 +02:00
3hhh 60cbc34f5d
whatsapp bridge: add matrix_mautrix_whatsapp_log_level
Fixes #1873
2022-06-11 17:58:02 +02:00
3hhh aa25a7ca6d
whatsapp bridge: disable logging to external files
The same logs still go to the systemd journal.
2022-06-11 17:58:02 +02:00
Slavi Pantaleev ecf8b13dc0
Upgrade Hookshot (1.7.2 -> 1.7.3) 2022-06-11 17:58:02 +02:00
Kai Biebel ee1d4f41ac
update PIP install-link 2022-06-11 17:58:02 +02:00
Slavi Pantaleev 116896dd3a
Announce the ability to run Ansible in a container on the Matrix server
Continuation of 959a6ac0b1
2022-06-11 17:58:02 +02:00
Slavi Pantaleev 5403518eef
Upgrade devture/ansible version and documen nsenter usage
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1772
2022-06-11 17:58:02 +02:00
Slavi Pantaleev 17d5c6738f
Upgrade Hookshot (1.7.0 -> 1.7.2) 2022-06-11 17:58:02 +02:00
Slavi Pantaleev 574b276fe7
Upgrade Element (v1.10.13 -> v1.10.14) 2022-06-11 17:58:02 +02:00
Ruben Hias 881eb5a1b6
Updated mautrix-googlechat to v0.3.3 2022-06-11 17:58:01 +02:00
roughnecks c920292385
Fix string null in status_endpoint 2022-06-11 17:58:01 +02:00
Slavi Pantaleev 646da6d163
Fix self-building for matrix-registration
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1864

Related to https://github.com/zeratax/matrix-registration/issues/93

This is a poor way to do things though. It may break again in the future.
matrix-registration is a poorly maintained project and should likely be removed from the playbook.
2022-06-11 17:58:01 +02:00
Aine 9740cb6357
update Honoroit 0.9.8 -> 0.9.9 2022-06-11 17:58:01 +02:00
Slavi Pantaleev d2709097cd
Switch matrix_encryption_disabler back to upstream repository
Now that https://github.com/digitalentity/matrix_encryption_disabler/pull/9
has been merged, we can get the module from there.

Continuation of 246c43be1e
2022-06-11 17:58:01 +02:00
Slavi Pantaleev e2fb5f0a16
Upgrade Synapse (v1.59.1 -> v1.60.0) 2022-06-11 17:58:01 +02:00
Slavi Pantaleev a2c3ee417b
Stop using deprecated (in Synapse v1.59) user_dir and appservice workers
Source: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types

As an alternative, we should probably find a way to run one or a few
more generic workers (which will handle appservice and user_dir stuff) and
update `homeserver.yaml` so that it would point to the name of these workers using
`notify_appservices_from_worker` and `update_user_directory_from_worker` options.

For now, this solves the deprecation, so we can have a peace of mind
going forward.

We're force-setting these worker counts to 0, so that we can clean up
existing homeservers which use these worker types. In the future, these
options will either be removed or repurposed (so that they transparently
create more generic workers that handle user_dir/appservice loads).
2022-06-11 17:58:01 +02:00
Aine c0587b6490
Update Honoroit 0.9.7 -> 0.9.8
* add `NOENCRYPTION` option
* fix race condition on thread start
* fix greetings messages
* updated deps
2022-06-11 17:58:01 +02:00
Aine 550e7423d0
Update Cinny 2.0.3 -> 2.0.4 2022-06-11 17:58:00 +02:00
shukon 670a3b9628
Update configuring-playbook-bridge-hookshot.md 2022-06-11 17:58:00 +02:00
Aine 262b30eab9
Updated signal daemon 0.18.1 -> 0.18.5 2022-06-11 17:58:00 +02:00
Aine 224f3a61e2
Updated Element 1.10.12 -> 1.10.13 2022-06-11 17:58:00 +02:00
Aine e99a0a2db3
Update coturn 4.5.2-r11 -> 4.5.2-r12 2022-06-11 17:58:00 +02:00
Vicx bf240c5045
Fix synapse LDAP simple bind config
When using LDAP simple bind, the `bind_dn` and `bind_password`
configuration values must not be present.
2022-06-11 17:58:00 +02:00
Erick Wibben 2460ab3609
Update Matrix-Registration-Bot main.yml
Line 10, which sets the tag to which docker version to pull was reverted from `v1.1.15` to latest. This gets the playbook working again
2022-06-11 17:58:00 +02:00
Slavi Pantaleev b75735824d
Upgrade certbot (v1.23.0 -> v1.27.0) 2022-06-11 17:58:00 +02:00
GoliathLabs 5b4692fb50
Set version to v1.1.5 2022-06-11 17:57:59 +02:00
GoliathLabs 192b99aaf4
Updated: mautrix-googlechat to v0.3.2 2022-06-11 17:57:59 +02:00
GoliathLabs 55d0552077
Updated: grafana to 8.5.3 2022-06-11 17:57:59 +02:00
GoliathLabs 5afa00fbbf
Updated: etherpad to 1.8.18 2022-06-11 17:57:59 +02:00
GoliathLabs 7ea6b021dd
Updated: ddclient to v3.9.1-ls89 2022-06-11 17:57:59 +02:00
GoliathLabs a8f3c19c67
Reverted URL change 2022-06-11 17:57:59 +02:00
GoliathLabs 0fcc98e76b
Updated: hydrogen to v0.2.29 2022-06-11 17:57:59 +02:00
GoliathLabs 2a1476449b
Updated: hydrogen-web to v0.2.29 2022-06-11 17:57:59 +02:00
GoliathLabs ee060fe2cd
Updated: mautrix-twitter to v0.1.4 2022-06-11 17:57:58 +02:00
GoliathLabs aa8266c048
Updated: mjolnir v1.4.2 2022-06-11 17:57:58 +02:00
Paul B 00a8336134
bridge-whatsapp: add variable to enable end-to-bridge encryption 2022-06-11 17:57:58 +02:00
Paul B 6ea9ed6cb1
bridge-signal: add variable to enable encryption 2022-06-11 17:57:58 +02:00
Slavi Pantaleev a4a612c337
Fix compatibility with ansible=6 / ansible-core=2.13
Details here: https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_6.html#id36

Basically:

```yaml
- name: Prior to 2.13
  debug:
    msg: '[1] + {{ [2] }}'

- name: 2.13 and forward
  debug:
    msg: '{{ [1] + [2] }}'
```

Interestingly, we had been using the new/safe syntax in lofs of places.

We were using the broken one in many others though. Hopefully all
instances were fixed by this patch.
2022-06-11 17:57:58 +02:00
Aine 3bcf31c61e
Update Synapse v1.59.0 -> v.1.59.1 2022-06-11 17:57:58 +02:00
Slavi Pantaleev 28e192b99b
Upgrade hookshot (1.6.1 -> 1.7.0)
This new version should be buildable on arm64.

See: https://github.com/matrix-org/matrix-hookshot/releases/tag/1.7.0

There's still no prebuild arm64 image, so we continue relying on
self-building there.
2022-06-11 17:57:58 +02:00
Aine 0b3e04ba05
Update Postgres (CVE-2022-1552 + last 9.x update)
CVE: https://security-tracker.debian.org/tracker/CVE-2022-1552
Source: https://www.postgresql.org/about/news/postgresql-143-137-1211-1116-and-1021-released-2449/
Postgres 9.6 upgrade (**not a CVE fix, 9.x still vulnerable**): https://www.postgresql.org/docs/release/9.6.24/
2022-06-11 17:57:57 +02:00
Aine 32af01e57e
Update mautrix-whatsapp v0.3.1 -> v0.4.0 2022-06-11 17:57:57 +02:00
Toni Spets be0289e4d3
Upgrade Heisenbridge (1.12.0 -> 1.13.0) 2022-06-11 17:57:57 +02:00
Slavi Pantaleev 29f2bfee8f
Upgrade Synapse (1.58.1 -> 1.59.0) 2022-06-11 17:57:57 +02:00
Slavi Pantaleev 2364b36d25
Work around mx-puppet-discord failing with "No relay found" after reboot
Related to https://gitlab.com/mx-puppet/discord/mx-puppet-discord/-/issues/117

Looks like the bridge is too quick to start and fails to initialize
itself by connecting to Synapse. It's mostly observed after a system
reboot, because Synapse (and everything else) is slower to start.

Once mx-puppet-discord fails to initialize itself, a "No relay found"
error will be observed any time you try to relay a Matrix message to
Discord. Relaying messages in the other direction (Discord to Matrix)
also fails.

With this workaround (longer delay on mx-puppet-discord startup), I
observe mx-puppet-discord working well, even after a full reboot.
Of course, a proper fix is preferable, instead of delaying by a magic
number of seconds.
2022-06-11 17:57:57 +02:00
Slavi Pantaleev 90dffb650c
Upgrade mx-puppet-slack (v0.1.1 -> v0.1.2)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1829
2022-06-11 17:57:57 +02:00
Julian-Samuel Gebühr 4d129aab8b
Automatically enable admin api access via nginx (#1830) 2022-06-11 17:57:57 +02:00
Daniel Sonck eff5ebce6c
Change back to working original mx-puppet-slack
Now that v0.1.1 is out, which depends on the functional matrix-slack-parser
it works again.
2022-06-11 17:57:57 +02:00
Aaron Raimist 498906cf5f
Update Element self build repo URL
It forwards to the correct place but might as well just update it to the current URL.
2022-06-11 17:57:56 +02:00
Aaron Raimist f2ef97f1fa
Document `git` as a potential prereq
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1792
2022-06-11 17:57:56 +02:00
Aine 319ec33862
Update Cinny v2.0.2 -> v2.0.3 2022-06-11 17:57:56 +02:00
Aine 93e7717c45
Update Cinny v2.0.1 -> v2.0.2 2022-06-11 17:57:56 +02:00
Aine 2782a1ae3d
Update Cinny v2.0.0 -> v2.0.1 2022-06-11 17:57:56 +02:00
Luis b88c9f23e1
Update configuring-playbook-bridge-hookshot.md
fix Hookshot instructions link
2022-06-11 17:57:56 +02:00
brush ac298ae076
Update configuring-well-known.md 2022-06-11 17:57:56 +02:00
brush b60995a954
Update configuring-well-known.md 2022-06-11 17:57:56 +02:00
Didier 'OdyX' Raboud 7557dab315
Bump Slack Appservice to 1.11.0 2022-06-11 17:57:55 +02:00
Aine 7d82b4fc9d
matrix-bot-buscarron - set defaults 2022-06-11 17:57:55 +02:00
Kim Brose b71a4b90d5
Update configuring-playbook-bridge-hookshot.md 2022-06-11 17:57:55 +02:00
Aine b6b5070cde
Update Element 1.10.11 -> 1.10.12 2022-06-11 17:57:55 +02:00
Aine 02fcc2a069
matrix-bot-buscarron v1.1.0 2022-06-11 17:57:55 +02:00
Aine e9713ce2a8
Update cinny v1.8.2 -> v2.0.0 2022-06-11 17:57:55 +02:00
Slavi Pantaleev 3a7ab72b25
Revert "Change back to original mx-puppet-slack"
This reverts commit fcfd00bcb4.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1808

Reverts https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1809

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1810
2022-06-11 17:57:55 +02:00
Daniel Sonck cc9c8e2747
Change back to original mx-puppet-slack
Closes: #1808
2022-06-11 17:57:55 +02:00
Arkonos a4d33cd316
clarifying where well-known files are created 2022-06-11 17:57:54 +02:00
Arkonos bbb0b0e1ae
clarifying reverse proxying of well-known files 2022-06-11 17:57:54 +02:00
Daniel Sonck 46c27c3efb
Change back to original mx-puppet-discord
Closes: #1801
2022-06-11 17:57:54 +02:00
HarHarLinks b5cbd6aebc
add hookshot feeds support 2022-06-11 17:57:54 +02:00
Kim Brose 8974d591a9
Upgrade Hookshot (1.5.0 -> 1.6.1) 2022-06-11 17:57:54 +02:00
Slavi Pantaleev 71cecd6a55
Do not proxy some endpoints to the generic Synapse worker
These endpoints should not be proxied to a generic Synapse worker
without other preparation (setting up stream writers, sending traffic
to a specific stream writer, etc.).

Disabling them for now. In the future, we'd like to fix up our awk
script to disable them automatically.

This is a fix up for 058fedff91
2022-06-11 17:57:54 +02:00
Paul Tötterman fc105f89a3
typo 2022-06-11 17:57:54 +02:00
Slavi Pantaleev d07883d205
Fix "endpoint seems conditional" determination in workers-doc-to-yaml.awk"
This prevented us from keeping our workers reverse-proxying definitions
updated since Synapse v1.54.0.

The last `workers.md` file we could parse is at commit
02632b3504ad4512c5f5a4f859b3fe326b19c788.
Parsing regressed at commit c56bfb08bc071368db23f3b1c593724eb4f205f0,
because the introduction message for `synapse.app.generic_worker` said
"If":

> If a worker is set up to handle a..

.. which made the AWK script think that definitions below were
conditional (which they're not in this case).

This patch fixes up the regex for determining if a line is conditional
or not, so that it doesn't trip up. Hopefully, it doesn't miss something
important.
2022-06-11 17:57:54 +02:00
Slavi Pantaleev 7df7884041
Upgrade Synapse (1.58.0 -> 1.58.1) 2022-06-11 17:57:53 +02:00
Benjamin Bädorf d8f3d8ff45
Add shell.nix
Adds a basic shell.nix with ansible
2022-06-04 00:26:40 +02:00
teutat3s 976b7f42b4
Merge branch 'master' into pub.solar 2022-05-04 11:30:41 +02:00
teutat3s 58f66c9891
Merge branch 'master' into pub.solar 2022-04-30 22:50:19 +02:00
teutat3s e0b27ae3cc
matrix-synapse: allow unsafe locale in DB 2022-04-18 18:29:22 +02:00
teutat3s 1f15b4cad2
Merge branch 'master' into pub.solar 2022-04-18 18:28:31 +02:00
teutat3s 594b1f10e6
Merge branch 'master' into pub.solar 2022-04-05 20:55:24 +02:00
teutat3s 12c7244203
Merge branch 'master' into pub.solar 2022-04-05 18:08:43 +02:00
teutat3s 80f94fd344
Merge branch 'master' into pub.solar 2022-03-23 13:32:55 +01:00
teutat3s 5970916982
Merge branch 'master' into pub.solar 2022-03-02 16:50:38 +01:00
teutat3s 1378e779ce
Merge branch 'master' into pub.solar 2022-02-23 11:35:26 +01:00
teutat3s 5816d61793
Merge branch 'master' into pub.solar 2022-02-09 17:23:27 +01:00
teutat3s 851353994d
Merge branch 'master' into pub.solar 2022-02-01 04:32:01 +01:00
teutat3s 3b82cf959d
Merge branch 'master' into pub.solar 2022-01-21 17:22:05 +01:00
teutat3s 3b4880cd68
Merge branch 'master' into pub.solar 2022-01-11 21:04:21 +01:00
teutat3s 0d0bdb4f7c
Merge branch 'master' into pub.solar 2021-12-22 15:24:11 +01:00
teutat3s 0b71ba477c
Merge branch 'master' into pub.solar 2021-12-16 14:22:56 +01:00
teutat3s 6607221deb
Merge branch 'master' into pub.solar 2021-12-14 10:48:14 +01:00
teutat3s 8eefd29ec9
Merge branch 'master' into pub.solar 2021-11-23 14:35:44 +01:00
teutat3s a9b8e6c50b
Upgrade Element (v1.9.4) 2021-11-09 15:03:04 +01:00
teutat3s 5fd4c7c8a6
Merge branch 'master' into pub.solar 2021-11-09 15:02:53 +01:00
teutat3s 8960625173
Merge branch 'master' into pub.solar 2021-10-29 13:07:48 +02:00
teutat3s e6e0e946a6
Merge branch 'master' into pub.solar 2021-10-21 23:54:45 +02:00
teutat3s 646fd386ac
Merge branch 'master' into pub.solar 2021-10-08 01:29:20 +02:00
teutat3s 129bdfc50b
Merge branch 'master' into pub.solar 2021-09-21 16:31:52 +02:00
teutat3s 95480b1702
Merge branch 'master' into pub.solar 2021-09-13 15:41:28 +02:00
teutat3s 0400690e44
Merge branch 'master' into pub.solar 2021-09-02 12:13:17 +02:00
teutat3s bdac31e10b
Merge branch 'master' into pub.solar 2021-08-17 14:07:17 +02:00
teutat3s 9af287513d
Merge branch 'master' into pub.solar 2021-07-28 15:08:06 +02:00
teutat3s a501786ce6
Merge branch 'master' into pub.solar 2021-07-16 16:36:51 +02:00
teutat3s 67b1b33d39
Merge branch 'master' into pub.solar 2021-07-03 16:06:42 +02:00
teutat3s 02d578bfa9
Merge branch 'master' into pub.solar 2021-06-27 18:06:08 +02:00
teutat3s 8d67ccfae0
Merge branch 'master' into pub.solar 2021-06-18 16:35:44 +02:00
teutat3s 061cf83998
Merge branch 'master' into pub.solar 2021-06-06 15:33:23 +02:00
teutat3s 3da97e4750
Merge branch 'master' into pub.solar 2021-05-22 17:51:13 +02:00
teutat3s 431fcfd9d3
Merge branch 'master' into pub.solar 2021-05-19 02:40:02 +02:00
Jhonas Wernery aa360a8624
Merge branch 'master' into pub.solar 2021-05-11 23:04:31 +02:00
Jhonas Wernery f1d6fbce35
Merge branch 'master' into pub.solar 2021-05-11 01:40:47 +02:00
Jhonas Wernery be8e588001
Merge branch 'master' into pub.solar 2021-05-03 21:58:28 +02:00
teutat3s 009623a26d
Merge branch 'master' into pub.solar 2021-04-16 13:07:43 +02:00
teutat3s 44d8dd8c1a
Merge branch 'master' into pub.solar 2021-04-16 00:33:50 +02:00
teutat3s 57d9f96cee
Merge branch 'master' into pub.solar 2021-04-14 16:04:15 +02:00
teutat3s 7ac348e705
Add mastodon .well-known redirect for pub.solar 2021-04-07 23:41:37 +02:00
teutat3s 9f45a11f84
Merge branch 'master' into pub.solar 2021-04-07 23:10:22 +02:00
teutat3s 1e7c5abbf3
Merge branch 'mautrix-signal/update-config' into pub.solar 2021-03-31 03:10:46 +02:00
teutat3s 8c261b296b
Merge branch 'master' into pub.solar 2021-03-30 19:59:14 +02:00
teutat3s 4e1ddb23cf
Merge branch 'master' into pub.solar 2021-03-08 19:26:17 +01:00
teutat3s e740692807
Merge branch 'master' into pub.solar 2021-02-23 19:46:19 +01:00
teutat3s 831aabaa87
Merge branch 'master' into pub.solar 2021-02-05 14:51:51 +01:00
teutat3s 7e9b56c634
Merge branch 'master' into pub.solar 2021-01-21 19:58:58 +01:00
teutat3s 07e8f04fa9
Merge branch 'master' into pub.solar 2021-01-19 16:19:52 +01:00
teutat3s 8720ab02d2
Merge branch 'master' into pub.solar 2021-01-13 16:20:56 +01:00
teutat3s a77f8649e2
Merge branch 'master' into pub.solar 2021-01-06 22:45:41 +01:00
teutat3s ea380b486b
Fix appservice-slack default db: nedb 2021-01-06 21:59:25 +01:00
teutat3s 8b39c769ec
Merge branch 'master' into pub.solar 2021-01-06 18:56:52 +01:00
teutat3s b1c1708b14
Merge branch 'master' into pub.solar 2020-12-09 14:06:21 +01:00
teutat3s 3eb1e785e6
Merge branch 'master' into pub.solar 2020-11-30 14:19:19 +01:00
teutat3s 32efa25ba7
Merge branch 'master' into pub.solar 2020-11-17 15:49:26 +01:00
teutat3s 43e7e646b6
Merge branch 'master' into pub.solar 2020-10-31 14:35:47 +01:00
teutat3s 19b691f194
Merge branch 'master' into pub.solar 2020-10-23 00:54:47 +02:00
teutat3s 6e4601e2cc
Merge branch 'master' into pub.solar 2020-10-03 16:54:57 +02:00
teutat3s 721d982929
Merge branch 'master' into pub.solar 2020-09-18 18:14:17 +02:00
teutat3s 2ebf62a771
Merge branch 'master' into pub.solar 2020-08-30 18:39:04 +02:00
teutat3s d3290f1e1e
Remove custom redirect 2020-07-20 08:49:10 +02:00
teutat3s 47a355270b
Merge branch 'master' into pub.solar 2020-07-20 07:43:19 +02:00
teutat3s 9759cc7ccc
Merge branch 'master' into pub.solar 2020-07-08 14:16:57 +02:00
teutat3s 5e657795e0
Remove loopup query, fixed in ma1uta/ma1sd@a6968fb 2020-06-28 21:33:27 +02:00
teutat3s 5ae97fdd3b
Readd pub.solar modifications 2020-06-28 19:36:20 +02:00
teutat3s 0cc59911d3
Merge branch 'master' of https://github.com/spantaleev/matrix-docker-ansible-deploy into pub.solar 2020-06-28 19:29:19 +02:00
teutat3s bec0f6484a
Merge branch 'master' into pub.solar 2020-05-23 18:48:37 +02:00
teutat3s 7fc6b574b4
Merge branch 'master' into pub.solar 2020-05-16 14:50:59 +02:00
teutat3s a00e600d28
Merge branch 'master' into pub.solar 2020-05-09 14:25:26 +02:00
teutat3s ba4c24874d
Merge branch 'master' into pub.solar 2020-04-29 23:50:12 +02:00
teutat3s 4e137b76a2
Merge branch 'master' into pub.solar 2020-04-28 12:44:00 +02:00
teutat3s ce18854f21
Merge branch 'master' into pub.solar 2020-04-28 02:24:25 +02:00
teutat3s 06c013695d
Merge branch 'master' into pub.solar 2020-04-10 02:48:36 +02:00
teutat3s c537c12e31
Merge branch 'master' into pub.solar 2020-04-08 16:12:50 +02:00
teutat3s 925c9e99e5
Merge branch 'master' into pub.solar 2020-04-07 22:54:13 +02:00
teutat3s a8faa368c9
add matrix API v1 and v2 for testing 2020-04-07 22:52:43 +02:00
teutat3s be5d43f949
add identity lookup query and hashing to ma1sd 2020-04-04 02:22:04 +02:00
teutat3s cf386f2fb8
add ma1sd postgresql storage backend and switch to it 2020-04-04 02:19:57 +02:00
teutat3s 24b9ed6d9c
add missing jitsi auth URL conditional 2020-04-04 02:16:20 +02:00
teutat3s a066791a25
add redirect 302 to HTTPS 2020-04-04 00:08:32 +02:00
teutat3s d706a4c357
add riot web registration possibility 2020-04-04 00:07:25 +02:00
663 changed files with 22603 additions and 9085 deletions

View File

@ -9,6 +9,7 @@ skip_list:
- schema
- command-instead-of-shell
- role-name
- var-naming[no-role-prefix]
# We frequently load configuration from a template (into a variable), then merge that with another variable (configuration extension)
# before finally dumping it to a file.
- template-instead-of-copy

View File

@ -19,6 +19,14 @@ trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[group_vars/matrix_servers]
indent_style = space
indent_size = 2
[justfile]
indent_style = space
indent_size = 4
# Markdown Files
#
# Two spaces at the end of a line in Markdown mean "new line",

1
.envrc Normal file
View File

@ -0,0 +1 @@
use flake

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto eol=lf

14
.github/renovate.json vendored Normal file
View File

@ -0,0 +1,14 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"regexManagers": [
{
"fileMatch": ["defaults/main.yml$"],
"matchStrings": [
"# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[a-z-0-9]+?))?\\s+[A-Za-z0-9_]+?(?:_version|_tag)\\s*:\\s*[\"']?(?<currentValue>.+?)[\"']?\\s"
]
}
]
}

View File

@ -11,16 +11,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Run yamllint
uses: frenck/action-yamllint@v1.3.1
uses: frenck/action-yamllint@v1.4.2
ansible-lint:
name: ansible-lint
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Run ansible-lint
uses: ansible-community/ansible-lint-action@v6.8.2
uses: ansible-community/ansible-lint-action@v6.17.0
with:
path: roles/custom

3
.gitignore vendored
View File

@ -5,6 +5,9 @@
/roles/**/files/scratchpad
.DS_Store
.python-version
.idea/
flake.lock
.direnv
# ignore roles pulled by ansible-galaxy
/roles/galaxy/*

View File

@ -1,3 +1,600 @@
# 2023-10-23
## Enabling `allow_public_rooms_over_federation` by default for Synapse
**TDLR**: if your Matrix server is federating (which it mostly likely is, unless you've [disabled federation](docs/configuring-playbook-federation.md#disabling-federation)), your public rooms will not only be joinable across federation (as they've always been), but from now on will be discoverable (made available as a list across federation). We're changing this by flipping the value for Synapse's `allow_public_rooms_over_federation` setting to `true`, going against the upstream default. Servers that disable federation are not affected. Servers that have public rooms which are not published to the room directory are also not affected.
We generally try to stick to the default configuration for Synapse (and all other components), unless these defaults seem wrong or harmful. One such previous case from a few months ago was us [Enabling `forget_rooms_on_leave` by default for Synapse](#enabling-forget_rooms_on_leave-by-default-for-synapse) - the default value was making Synapse more wasteful of resources by default.
Today, we're going against upstream defaults again and flipping the `allow_public_rooms_over_federation` configuration option to `true`.
This way, public rooms on your server will be made discoverable by others via federation, using the [`GET /_matrix/federation/v1/publicRooms` of the Server-Server API](https://spec.matrix.org/v1.8/server-server-api/#get_matrixfederationv1publicrooms).
The upstream Synapse default is `false` (disabled), so that public rooms are not exposed for other servers to discover (learn about their existence). Nevertheless, even if these rooms are not exposed (listed) for discovery, they are **still joinable** by anyone who knows their address or is invited to the room by an existing member.
**We go against the upstream default** in an effort to make Matrix federation more useful - a public room should be globally public - not only joinable, but also discoverable across federation.
The **historical reasoning** behind this change is as follows:
- `allow_public_rooms_over_federation` seems to have been enabled by default for Synapse until v1.7.0 (~2019), just like we believe it should be for a globally-federating network - rooms should be joinable and discoverable across federation.
- In Synapse v1.7.0 (~2019), `allow_public_rooms_over_federation` [got disabled](https://github.com/matrix-org/synapse/blob/e9069c9f919685606506f04527332e83fbfa44d9/docs/upgrade.md?plain=1#L1877-L1891) by default in a [security-by-obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity) workaround for misconfigured servers. See the [Avoiding unwelcome visitors on private Matrix servers](https://matrix.org/blog/2019/11/09/avoiding-unwelcome-visitors-on-private-matrix-servers/) `matrix.org` blog article. We believe that people wishing for a truly private server, should [disable federation](docs/configuring-playbook-federation.md#disabling-federation), instead of having a fully-federating server and trying to hide its public rooms. We also provide other workarounds below. We (and the Synapse team, obviously) believe that Matrix should federate by default, so federating the public room list seems to make sense.
- [etke.cc](https://etke.cc/) has been developing the free-software [Matrix Rooms Search](https://gitlab.com/etke.cc/mrs) project for a while now. One public (demo) instance of it is hosted at [matrixrooms.info](https://matrixrooms.info/). This search engine tries to go through the Matrix federation and discover & index public rooms to allow people to find them. We believe it's vital for Matrix (and any chat or social network for that matter) to be more discoverable, so that people can find communities and others to talk to. Today (on 23rd of October 2023), `matrixrooms.info` is indexing `23066` Matrix servers. Of these, only `1567` servers (7%) are making their public rooms discoverable. Who knows what wonderful communities and rooms are available on these 93% other Matrix servers that are supposedly federating, but are still gate-keeping their public room list. Indubitably, many of these servers are hosted via matrix-docker-ansible-deploy, so we feel partially responsible for making Matrix federation less useful.
Here are **actions you may wish to take** as a result of this change:
- (recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery.
- (switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for "mostly private" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces - you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting - controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element have a nice UI checkbox for this) to explicitly disable federation for them.
- (keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures.
# 2023-10-18
## Postgres parameters are automatically tuned now
The playbook has provided some hints about [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) for quite a while now.
From now on, the [Postgres Ansible role](https://github.com/devture/com.devture.ansible.role.postgres) automatically tunes your Postgres configuration with the same [calculation logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) that powers https://pgtune.leopard.in.ua/.
Our [Tuning PostgreSQL](docs/maintenance-postgres.md#tuning-postgresql) documentation page has details about how you can turn auto-tuning off or adjust the automatically-determined Postgres configuration parameters manually.
People who [enable load-balancing with Synapse workers](docs/configuring-playbook-synapse.md#load-balancing-with-workers) no longer need to increase the maximum number of Postgres connections manually (previously done via `devture_postgres_process_extra_arguments`). There's a new variable (`devture_postgres_max_connections`) for controlling this number and the playbook automatically raises its value from `200` to `500` for setups which enable workers.
# 2023-08-31
## SchildiChat support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) client.
See our [Configuring SchildiChat](docs/configuring-playbook-client-schildichat.md) documentation to get started.
# 2023-08-23
## mautrix-wsproxy support
Thanks to [Johan Swetzén](https://github.com/jswetzen)'s efforts (who finished what was started by [James Reilly](https://github.com/hanthor) and [Shreyas Ajjarapu](https://github.com/shreyasajj)), the playbook now supports bridging to Android SMS and Apple iMessage via the [mautrix-wsproxy](https://github.com/mautrix/wsproxy) service (in combination with a [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android phone).
See our [Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](docs/configuring-playbook-bridge-mautrix-wsproxy.md) documentation page for getting started.
# 2023-07-24
## matrix-registration-bot usage changed
[matrix-registration-bot](docs/configuring-playbook-bot-matrix-registration-bot.md) got some updates and now supports password-only-based login. Therefore the bot now doesn't need any manual configuration except setting a password in your `vars.yml`. The bot will be registered as admin and access tokens will be obtained automatically by the bot.
**For existing users** You need to set `matrix_bot_matrix_registration_bot_bot_password` if you previously only used `matrix_bot_matrix_registration_bot_bot_access_token`. Please also remove the following deprecated settings
* `matrix_bot_matrix_registration_bot_bot_access_token`
* `matrix_bot_matrix_registration_bot_api_token`
# 2023-07-21
## mautrix-gmessages support
Thanks to [Shreyas Ajjarapu](https://github.com/shreyasajj)'s efforts, the playbook now supports bridging to [Google Messages](https://messages.google.com/) via the [mautrix-gmessages](https://github.com/mautrix/gmessages) bridge. See our [Setting up Mautrix Google Messages bridging](docs/configuring-playbook-bridge-mautrix-gmessages.md) documentation page for getting started.
# 2023-07-17
## matrix-media-repo support
Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), the playbook can now set up [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) - an alternative way to store homeserver media files, powered by a homeserver-independent implementation which supports S3 storage, IPFS, deduplication and other advanced features.
To learn more see our [Storing Matrix media files using matrix-media-repo](docs/configuring-playbook-matrix-media-repo.md) documentation page.
# 2023-05-25
## Enabling `forget_rooms_on_leave` by default for Synapse
With the [Synapse v1.84.0 update](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2698), we've also **changed the default value** of the `forget_rooms_on_leave` setting of Synapse to a value of `true`.
This way, **when you leave a room, Synapse will now forget it automatically**.
The upstream Synapse default is `false` (disabled), so that you must forget rooms manually after leaving.
**We go against the upstream default** ([somewhat controversially](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2700)) in an effort to make Synapse leaner and potentially do what we believe most users would expect their homeserver to be doing.
If you'd like to go back to the old behavior, add the following to your configuration: `matrix_synapse_forget_rooms_on_leave: false`
# 2023-04-03
## The matrix-jitsi role lives independently now
**TLDR**: the `matrix-jitsi` role is now included from the [ansible-role-jitsi](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact.
The `matrix-jitsi` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project - an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Jitsi stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so.
As part of the extraction process of this role out of the Matrix playbook, a few other things improved:
- **native Traefik support** has been added
- **support for hosting under a subpath** has been added, although it suffers from a few minor issues listed [here](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md#url)
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Jitsi or not.
If you're making use of Jitsi via this playbook, you will need to update variable references in your `vars.yml` file:
- `matrix_jitsi_*_docker_image_` -> `matrix_jitsi_*_container_image_`
- `matrix_jitsi_` -> `jitsi_`
- some other internal variables have changed, but the playbook will tell you about them
# 2023-03-22
## ntfy Web App is disabled by default
ntfy provides a web app, which is now disabled by default, because it may be unknown to and unused by most users of this playbook. You can enable it by setting `ntfy_web_root: "app"` (see [ntfy documentation](docs/configuring-playbook-ntfy.md)).
This change was already applied a while before this entry, but as some users were reporting the missing web app, this entry was added (see [#2529](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2529)).
# 2023-03-21
## The matrix-prometheus role lives independently now
**TLDR**: the `matrix-prometheus` role is now included from the [ansible-role-prometheus](https://github.com/mother-of-all-self-hosting/ansible-role-prometheus) repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Some variables have been renamed. All functionality remains intact.
The `matrix-prometheus` role has been relocated in its own repository, part of the [MASH playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) project - an Ansible playbook for self-hosting [a growing list of FOSS software](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md). If hosting a Prometheus stack on the Matrix server itself did not stand right with you or you always wanted to host most stuff, you can now use this new playbook to do so.
Extracting the Prometheus role out of this Matrix playbook required huge internal refactoring to the way the Prometheus configuration (scraping jobs) is generated. If you notice any breakage after upgrading, let us know.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Prometheus or not.
If you're making use of Prometheus via this playbook, you will need to update variable references in your `vars.yml` file:
- `matrix_prometheus_docker_image_` -> `matrix_prometheus_container_image_`
- `matrix_prometheus_` -> `prometheus_`
- some other internal variables have changed, but the playbook will tell you about them
# 2023-03-12
## synapse-auto-compressor support
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state)'s `synapse_auto_compressor` tool to run periodically.
If enabled, `synapse_auto_compressor` runs on a schedule and compresses your Synapse database's `state_groups` table. It was possible to run `rust-synapse-compress-state` manually via the playbook even before - see [Compressing state with rust-synapse-compress-state](docs/maintenance-synapse.md#compressing-state-with-rust-synapse-compress-state). However, using `synapse_auto_compressor` is better, because:
- it runs on a more up-to-date version of `rust-synapse-compress-state`
- it's a set-it-and-forget-it tool that you can enable and never have to deal with manual compression anymore
This tool needs to be enabled manually, for now. In the future, we're considering enabling it by default for all Synapse installations.
See our [Setting up synapse-auto-compressor](docs/configuring-playbook-synapse-auto-compressor.md) documentation to get started.
# 2023-03-07
## Sliding Sync Proxy (Element X) support
Thanks to [Benjamin Kampmann](https://github.com/gnunicorn) for [getting it started](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2515), [FSG-Cat](https://github.com/FSG-Cat) for fixing it up and me ([Slavi](https://github.com/spantaleev)) for polishing it up, the playbook can now install and configure the [sliding-sync proxy](https://github.com/matrix-org/sliding-sync).
The upcoming Element X clients ([Element X iOS](https://github.com/vector-im/element-x-ios) and [Element X Android](https://github.com/vector-im/element-x-android)) require the `sliding-sync` proxy to do their job. **These clients are still in beta** (especially Element X Android, which requires manual compilation to get it working with a non-`matrix.org` homeseserver). Playbook users can now easily give these clients a try and help test them thanks to us having `sliding-sync` support.
To get started, see our [Setting up Sliding Sync Proxy](docs/configuring-playbook-sliding-sync-proxy.md) documentation page.
# 2023-03-02
## The matrix-etherpad role lives independently now
**TLDR**: the `matrix-etherpad` role is now included from [another repository](https://gitlab.com/etke.cc/roles/etherpad). Some variables have been renamed. All functionality remains intact.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're using Etherpad or not.
If you're making use of Etherpad via this playbook, you will need to update variable references in your `vars.yml` file:
- Rename `matrix_etherpad_public_endpoint` to `etherpad_path_prefix`
- Replace `matrix_etherpad_mode: dimension` with:
- for `matrix-nginx-proxy` users:
- `etherpad_nginx_proxy_dimension_integration_enabled: true`
- `etherpad_hostname: "{{ matrix_server_fqn_dimension }}"`
- for Traefik users:
- define your own `etherpad_hostname` and `etherpad_path_prefix` as you see fit
- Rename all other variables:
- `matrix_etherpad_docker_image_` -> `matrix_etherpad_container_image_`
- `matrix_etherpad_` -> `etherpad_`
Along with this relocation, the new role also:
- supports [self-building](docs/self-building.md), so it should work on `arm32` and `arm64` architectures
- has native Traefik reverse-proxy support (Etherpad requests no longer go through `matrix-nginx-proxy` when using Traefik)
# 2023-02-26
## Traefik is the default reverse-proxy now
**TLDR**: new installations will now default to Traefik as their reverse-proxy. Existing users need to explicitly choose their reverse-proxy type. [Switching to Traefik](#how-do-i-switch-my-existing-setup-to-traefik) is strongly encouraged. `matrix-nginx-proxy` may break over time and will ultimately be removed.
As mentioned 2 weeks ago in [(Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support](#backward-compatibility-reverse-proxy-configuration-changes-and-initial-traefik-support), the playbook is moving to Traefik as its default SSL-terminating reverse-proxy.
Until now, we've been doing the migration gradually and keeping full backward compatibility. New installations were defaulting to `matrix-nginx-proxy` (just like before), while existing installations were allowed to remain on `matrix-nginx-proxy` as well. This makes things very difficult for us, because we need to maintain and think about lots of different setups:
- Traefik managed by the playbook
- Traefik managed by the user in another way
- another reverse-proxy on the same host (`127.0.0.1` port exposure)
- another reverse-proxy on another host (`0.0.0.0` port exposure)
- `matrix-nginx-proxy` - an `nginx` container managed by the playbook
- `nginx` webserver operated by the user, running without a container on the same server
Each change we do and each new feature that comes in needs to support all these different ways of reverse-proxying. Because `matrix-nginx-proxy` was the default and pretty much everyone was (and still is) using it, means that new PRs also come with `matrix-nginx-proxy` as their main focus and Traefik as an afterthought, which means we need to spend hours fixing up Traefik support.
We can't spend all this time maintaining so many different configurations anymore. Traefik support has been an option for 2 weeks and lots of people have already migrated their server and have tested things out. Traefik is what we use and preferentially test for.
It's time for the **next step in our migration process** to Traefik and elimination of `matrix-nginx-proxy`:
- Traefik is now the default reverse-proxy for new installations
- All existing users need to explicitly choose their reverse-proxy type by defining the `matrix_playbook_reverse_proxy_type` variable in their `vars.yml` configuration file. We strongly encourage existing users to [switch the Traefik](#how-to-switch-an-existing-setup-to-traefik), as the nginx setup is bound to become more and more broken over time until it's ultimately removed
### How do I switch my existing setup to Traefik?
**For users who are on `matrix-nginx-proxy`** (the default reverse-proxy provided by the playbook), switching to Traefik can happen with a simple configuration change. Follow this section from 2 weeks ago: [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now).
If you experience trouble:
1. Follow [How do I remain on matrix-nginx-proxy?](#how-do-i-remain-on-matrix-nginx-proxy) to bring your server back online using the old reverse-proxy
2. Ask for help in our [support channels](README.md#support)
3. Try switching to Traefik again later
**For users with a more special reverse-proxying setup** (another nginx server, Apache, Caddy, etc.), the migration may not be so smooth. Follow the [Using your own webserver](docs/configuring-playbook-own-webserver.md) guide. Ideally, your custom reverse-proxy will be configured in such a way that it **fronts the Traefik reverse-proxy** provided by the playbook. Other means of reverse-proxying are more fragile and may be deprecated in the future.
### I already use my own Traefik server. How do I plug that in?
See the [Traefik managed by the playbook](docs/configuring-playbook-own-webserver.md#traefik-managed-by-the-playbook) section.
### Why is matrix-nginx-proxy used even after switching to Traefik?
This playbook manages many different services. All these services were initially integrated with `matrix-nginx-proxy`.
While we migrate all these components to have native Traefik support, some still go through nginx internally (Traefik -> local `matrix-nginx-proxy` -> component).
As time goes on, internal reliance on `matrix-nginx-proxy` will gradually decrease until it's completely removed.
### How do I remain on matrix-nginx-proxy?
Most new work and testing targets Traefik, so remaining on nginx is **not** "the good old stable" option, but rather the "still available, but largely untested and likely to be broken very soon" option.
To proceed regardless of this warning, add `matrix_playbook_reverse_proxy_type: playbook-managed-nginx` to your configuration.
At some point in the **near** future (days, or even weeks at most), we hope to completely get rid of `matrix-nginx-proxy` (or break it enough to make it unusable), so you **will soon be forced to migrate** anyway. Plan your migration accordingly.
### How do I keep using my own other reverse-proxy?
We recommend that you follow the guide for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy).
# 2023-02-25
## Rageshake support
Thanks to [Benjamin Kampmann](https://github.com/gnunicorn), the playbook can now install and configure the [Rageshake](https://github.com/matrix-org/rageshake) bug report server.
Additional details are available in [Setting up Rageshake](docs/configuring-playbook-rageshake.md).
# 2023-02-17
## Synapse templates customization support
The playbook can now help you customize Synapse's templates.
Additional details are available in the [Customizing templates](docs/configuring-playbook-synapse.md#customizing-templates) section of our Synapse documentation.
## The matrix-redis role lives independently now
**TLDR**: the `matrix-redis` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
The `matrix-redis` role (which configures [Redis](https://redis.io/)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/redis). This makes it possible to easily use it in other Ansible playbooks.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_redis_` -> `redis_`).
## The matrix-ntfy role lives independently now
**TLDR**: the `matrix-ntfy` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
The `matrix-ntfy` role (which configures [Ntfy](https://ntfy.sh/)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/ntfy). This makes it possible to easily use it in other Ansible playbooks.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Ntfy or not. If you're making use of Ntfy via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_ntfy_` -> `ntfy_`).
# 2023-02-15
## The matrix-grafana role lives independently now
**TLDR**: the `matrix-grafana` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
The `matrix-grafana` role (which configures [Grafana](docs/configuring-playbook-prometheus-grafana.md)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/grafana). This makes it possible to easily use it in other Ansible playbooks.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Grafana or not. If you're making use of Grafana via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_grafana_` -> `grafana_`).
# 2023-02-13
## The matrix-backup-borg role lives independently now
**TLDR**: the `matrix-backup-borg` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
Thanks to [moan0s](https://github.com/moan0s), the `matrix-backup-borg` role (which configures [Borg backups](docs/configuring-playbook-backup-borg.md)) has been extracted from the playbook and now lives in its [own repository](https://gitlab.com/etke.cc/roles/backup_borg). This makes it possible to easily use it in other Ansible playbooks and will become part of [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) soon.
You need to **update your roles** (`just roles` or `make roles`) regardless of whether you're enabling Borg backup functionality or not. If you're making use of Borg backups via this playbook, you will need to update variable references in your `vars.yml` file (`matrix_backup_borg_` -> `backup_borg_`).
# 2023-02-12
## (Backward Compatibility) Reverse-proxy configuration changes and initial Traefik support
**TLDR**:
- there's a new `matrix_playbook_reverse_proxy_type` variable (see [roles/custom/matrix-base/defaults/main.yml](roles/custom/matrix-base/defaults/main.yml)), which lets you tell the playbook what reverse-proxy setup you'd like to have. This makes it easier for people who want to do reverse-proxying in other ways.
- the default reverse-proxy (`matrix_playbook_reverse_proxy_type`) is still `playbook-managed-nginx` (via `matrix-nginx-proxy`), for now. **Existing `matrix-nginx-proxy` users should not observe any changes** and can stay on this for now.
- **Users who use their [own other webserver](docs/configuring-playbook-own-webserver.md) (e.g. Apache, etc.) need to change** `matrix_playbook_reverse_proxy_type` to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`
- we now have **optional [Traefik](https://traefik.io/) support**, so you could easily host Matrix and other Traefik-native services in containers on the same server. Traefik support is still experimental (albeit, good enough) and will improve over time. It does work, but certain esoteric features may not be there yet.
- **Traefik will become the default reverse-proxy in the near future**. `matrix-nginx-proxy` will either remain as an option, or be completely removed to simplify the playbook
### Motivation for redoing our reverse-proxy setup
The playbook has supported various reverse-proxy setups for a long time.
We have various configuration variables (`matrix_nginx_proxy_enabled`, various `_host_bind_port` variables, etc.) which allow the playbook to adapt to these different setups. The whole situation was messy though - hard to figure out and with lots of variables to toggle to make things work as you'd expect - huge **operational complexity**.
We love containers, proven by the fact that **everything** that this playbook manages runs in a container. Yet, we weren't allowing people to easily host other web-exposed containers alongside Matrix services on the same server. We were using `matrix-nginx-proxy` (our integrated [nginx](https://nginx.org/) server), which was handling web-exposure and SSL termination for our own services, but we **weren't helping you with all your other containers**.
People who were **using `matrix-nginx-proxy`** were on the happy path on which everything worked well by default (Matrix-wise), **but** could not easily run other web-exposed services on their Matrix server because `matrix-nginx-proxy` was occupying ports `80` and `443`. Other services which wanted to get web exposure either had to be plugged into `matrix-nginx-proxy` (somewhat difficult) or people had to forgo using `matrix-nginx-proxy` in favor of something else.
Of those that decided to forgo `matrix-nginx-proxy`, many were **using nginx** on the same server without a container. This was likely some ancient nginx version, depending on your choice of distro. The Matrix playbook was trying to be helpful and even with `matrix_nginx_proxy_enabled: false` was still generating nginx configuration in `/matrix/nginx-proxy/conf.d`. Those configuration files were adapted for inclusion into an nginx server running locally. Disabling the `matrix-nginx-proxy` role like this, yet still having it produce files is a bit disgusting, but it's what we've had since the early beginnings of this playbook.
Others still, wanted to run Matrix locally (no SSL certificates), regardless of which web server technology this relied on, and then **reverse-proxy from another machine on the network** which was doing SSL termination. These people were:
- *either* relying on `matrix_nginx_proxy_enabled: false` as well, combined with exposing services manually (setting `_bind_port` variables)
- *or* better yet, they were keeping `matrix-nginx-proxy` enabled, but in `http`-only mode (no SSL certificate retrieval).
Despite this operational complexity, things worked and were reasonably flexible to adapt to all these situations.
When using `matrix-nginx-proxy` as is, we still had another problem - one of **internal playbook complexity**. Too many services need to be web-exposed (port 80/443, SSL certificates). Because of this, they all had to integrate with the `matrix-nginx-proxy` role. Tens of different roles explicitly integrating with `matrix-nginx-proxy` is not what we call clean. The `matrix-nginx-proxy` role contains variables for many of these roles (yikes). Other roles were more decoupled from it and were injecting configuration into `matrix-nginx-proxy` at runtime - see all the `inject_into_nginx_proxy.yml` task files in this playbook (more decoupled, but still.. yikes).
The next problem is one of **efficiency, interoperability and cost-saving**. We're working on other playbooks:
- [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) for hosting the [Vaultwarden](https://github.com/dani-garcia/vaultwarden) server - an alternative implementation of the [Bitwarden](https://bitwarden.com/) password manager
- [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) - for hosting the [Gitea](https://gitea.io/) git source code hosting service
- [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) - for hosting the [Nextcloud](https://nextcloud.com/) groupware platform
We'd love for users to be able to **seamlessly use all these playbooks (and others, even) against a single server**. We don't want `matrix-nginx-proxy` to have a monopoly on port `80`/`443` and make it hard for other services to join in on the party. Such a thing forces people into running multiple servers (one for each service), which does provide nice security benefits, but is costly and ineffiecient. We'd like to make self-hosting these services cheap and easy.
These other playbooks have been using [Traefik](https://traefik.io/) as their default reverse-proxy for a long time. They can all coexist nicely together (as an example, see the [Interoperability](https://github.com/spantaleev/nextcloud-docker-ansible-deploy/blob/master/docs/configuring-playbook-interoperability.md) documentation for the [Nextcloud playbook](https://github.com/spantaleev/nextcloud-docker-ansible-deploy)). Now that this playbook is gaining Traefik support, it will be able to interoperate with them. If you're going this way, make sure to have the Matrix playbook install Traefik and have the others use `*_reverse_proxy_type: other-traefik-container`.
Finally, at [etke.cc - a managed Matrix server hosting service](https://etke.cc) (built on top of this playbook, and coincidentally [turning 2 years old today](https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/) 🎉), we're allowing people to host some additional services besides Matrix components. Exposing these services to the web requires ugly hacks and configuration files being dropped into `/matrix/nginx-proxy/conf.d`. We believe that everything should run in independent containers and be exposed to the web via a Traefik server, without a huge Ansible role like `matrix-nginx-proxy` that everything else needs to integrate with.
### How do these changes fix all these problems?
The new `matrix_playbook_reverse_proxy_type` lets you easily specify your preferred reverse-proxy type, including `other-on-same-host`, `other-on-another-host` and `none`, so people who'd like to reverse-proxy with their own web server have more options now.
Using Traefik greatly simplifies things, so going forward we'll have a simpler and easier to maintain playbook, which is also interoperable with other services.
Traefik is a web server, which has been specifically **designed for reverse-proxying to services running in containers**. It's ideal for usage in an Ansible playbook which runs everything in containers.
**Traefik obtains SSL certificates automatically**, so there's no need for plugging additional tools like [Certbot](https://certbot.eff.org/) into your web server (like we were doing in the `matrix-nginx-proxy` role). No more certificate renewal timers, web server reloading timers, etc. It's just simpler.
Traefik is a **modern web server**. [HTTP/3](https://doc.traefik.io/traefik/routing/entrypoints/#http3) is supported already (experimentally) and will move to stable soon, in the upcoming Traefik v3 release.
Traefik does not lock important functionality we'd like to use into [plus packages like nginx does](https://www.nginx.com/products/nginx/), leading us to resolve to configuration workarounds. The default Traefik package is good enough as it is.
### Where we're at right now?
`matrix_playbook_reverse_proxy_type` still defaults to a value of `playbook-managed-nginx`.
Unless we have some regression, **existing `matrix-nginx-proxy` users should be able to update their Matrix server and not observe any changes**. Their setup should still remain on nginx and everything should still work as expected.
**Users using [their own webservers](docs/configuring-playbook-own-webserver.md) will need to change `matrix_playbook_reverse_proxy_type`** to something like `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`. Previously, they could toggle `matrix_nginx_proxy_enabled` to `false`, and that made the playbook automatically expose services locally. Currently, we only do this if you change the reverse-proxy type to `other-on-same-host`, `other-on-another-host` or `other-nginx-non-container`.
#### How do I explicitly switch to Traefik right now?
**Users who wish to migrate to Traefik** today, can do so by **adding** this to their configuration:
```yaml
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
devture_traefik_config_certificatesResolvers_acme_email: YOUR_EMAIL_ADDRESS
```
You may still need to keep certain old `matrix_nginx_proxy_*` variables (like `matrix_nginx_proxy_base_domain_serving_enabled`), even when using Traefik. For now, we recommend keeping all `matrix_nginx_proxy_*` variables just in case. In the future, reliance on `matrix-nginx-proxy` will be removed.
Switching to Traefik will obtain new SSL certificates from Let's Encrypt (stored in `/matrix/traefik/ssl/acme.json`). **The switch is reversible**. You can always go back to `playbook-managed-nginx` if Traefik is causing you trouble.
**Note**: toggling `matrix_playbook_reverse_proxy_type` between Traefik and nginx will uninstall the Traefik role and all of its data (under `/matrix/traefik`), so you may run into a Let's Encrypt rate limit if you do it often.
Treafik directly reverse-proxies to **some** services right now, but for most other services it goes through `matrix-nginx-proxy` (e.g. Traefik -> `matrix-nginx-proxy` -> [Ntfy](docs/configuring-playbook-ntfy.md)). So, even if you opt into Traefik, you'll still see `matrix-nginx-proxy` being installed in local-only mode. This will improve with time.
Some services (like [Coturn](docs/configuring-playbook-turn.md) and [Postmoogle](docs/configuring-playbook-bot-postmoogle.md)) cannot be reverse-proxied to directly from Traefik, so they require direct access to SSL certificate files extracted out of Traefik. The playbook does this automatically thanks to a new [com.devture.ansible.role.traefik_certs_dumper](https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper) role utilizing the [traefik-certs-dumper](https://github.com/ldez/traefik-certs-dumper) tool.
Our Traefik setup mostly works, but certain esoteric features may not work. If you have a default setup, we expect you to have a good experience.
### Where we're going in the near future?
The `matrix-nginx-proxy` role is quite messy. It manages both nginx and Certbot and its certificate renewal scripts and timers. It generates configuration even when the role is disabled (weird). Although it doesn't directly reach into variables from other roles, it has explicit awareness of various other services that it reverse-proxies to (`roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/matrix-ntfy.conf.j2`, etc.). We'd like to clean this up. The only way is probably to just get rid of the whole thing at some point.
For now, `matrix-nginx-proxy` will stay around.
As mentioned above, Traefik still reverse-proxies to some (most) services by going through a local-only `matrix-nginx-proxy` server. This has allowed us to add Traefik support to the playbook early on (without having to rework all services), but is not the final goal. We'll **work on making each service support Traefik natively**, so that traffic will not need to go through `matrix-nginx-proxy` anymore. In the end, choosing Traefik should only give you a pure Traefik installation with no `matrix-nginx-proxy` in sight.
As Traefik support becomes complete and proves to be stable for a while, especially as a playbook default, we will **most likely remove `matrix-nginx-proxy` completely**. It will likely be some months before this happens though. Keeping support for both Traefik and nginx in the playbook will be a burden, especially with most of us running Traefik in the future. The Traefik role should do everything nginx does in a better and cleaner way. Users who use their own `nginx` server on the Matrix server will be inconvenienced, as nothing will generate ready-to-include nginx configuration for them. Still, we hope it won't be too hard to migrate their setup to another way of doing things, like:
- not using nginx anymore. A common reason for using nginx until now was that you were running other containers and you need your own nginx to reverse-proxy to all of them. Just switch them to Traefik as well.
- running Traefik in local-only mode (`devture_traefik_config_entrypoint_web_secure_enabled: false`) and using some nginx configuration which reverse-proxies to Traefik (we should introduce examples for this in `examples/nginx`).
### How do I help?
You can help by:
- **explicitly switching your server to Traefik** right now (see example configuration in [How do I explicitly switch to Traefik right now?](#how-do-i-explicitly-switch-to-traefik-right-now) above), testing, reporting troubles
- **adding native Traefik support to a role** (requires adding Traefik labels, etc.) - for inspiration, see these roles ([prometheus_node_exporter](https://gitlab.com/etke.cc/roles/prometheus_node_exporter), [prometheus_postgres_exporter](https://gitlab.com/etke.cc/roles/prometheus_postgres_exporter)) and how they're hooked into the playbook via [group_vars/matrix_servers](group_vars/matrix_servers).
- **adding reverse-proxying examples for nginx users** in `examples/nginx`. People who insist on using their own `nginx` server on the same Matrix host, can run Traefik in local-only mode (`devture_traefik_config_entrypoint_web_secure_enabled: false`) and reverse-proxy to the Traefik server
# 2023-02-10
## Matrix Authentication Support for Jitsi
Thanks to [Jakob S.](https://github.com/jakicoll) ([zakk gGmbH](https://github.com/zakk-it)), Jitsi can now use Matrix for authentication (via [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service)).
Additional details are available in the [Authenticate using Matrix OpenID (Auth-Type 'matrix')](docs/configuring-playbook-jitsi.md#authenticate-using-matrix-openid-auth-type-matrix).
## Draupnir moderation tool (bot) support
Thanks to [FSG-Cat](https://github.com/FSG-Cat), the playbook can now install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool (bot). Draupnir is a fork of [Mjolnir](docs/configuring-playbook-bot-mjolnir.md) (which the playbook has supported for a long time) maintained by Mjolnir's former lead developer.
Additional details are available in [Setting up Draupnir](docs/configuring-playbook-bot-draupnir.md).
# 2023-02-05
## The matrix-prometheus-postgres-exporter role lives independently now
**TLDR**: the `matrix-prometheus-postgres-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
The `matrix-prometheus-postgres-exporter` role (which configures [Prometheus Postgres Exporter](https://github.com/prometheus-community/postgres_exporter)) has been extracted from the playbook and now lives in its own repository at https://gitlab.com/etke.cc/roles/prometheus_postgres_exporter
It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_postgres_exporter_` -> `prometheus_postgres_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact.
The `matrix-prometheus-services-proxy-connect` role has bee adjusted to help integrate the new `prometheus_postgres_exporter` role with our own services (`matrix-nginx-proxy`)
Other roles which aren't strictly related to Matrix are likely to follow this fate of moving to their own repositories. Extracting them out allows other Ansible playbooks to make use of these roles easily.
# 2023-01-26
## Coturn can now use host-networking
Large Coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow Coturn service startup and shutdown.
Such deployments don't need to run Coturn within a private container network anymore. Coturn can now run with host-networking by using configuration like this:
```yaml
matrix_coturn_docker_network: host
```
With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time Coturn starts and stops.
This, however, means that **you will need to ensure these ports are open** in your firewall yourself.
Thanks to us [tightening Coturn security](#backward-compatibility-tightening-coturn-security-can-lead-to-connectivity-issues), running Coturn with host-networking should be safe and not expose neither other services running on the host, nor other services running on the local network.
## (Backward Compatibility) Tightening Coturn security can lead to connectivity issues
**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default Coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it.
Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of Coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your Coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run Coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better.
If you access your Matrix server from a local network and need Coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it.
We've also added `no-multicast-peers` to the default Coturn configuration, but we don't expect this to cause trouble for most people.
# 2023-01-21
## The matrix-prometheus-node-exporter role lives independently now
**TLDR**: the `matrix-prometheus-node-exporter` role is now included from another repository. Some variables have been renamed. All functionality remains intact.
The `matrix-prometheus-node-exporter` role (which configures [Prometheus node exporter](https://github.com/prometheus/node_exporter)) has been extracted from the playbook and now lives in its own repository at https://gitlab.com/etke.cc/roles/prometheus_node_exporter
It's still part of the playbook, but is now installed via `ansible-galaxy` (by running `just roles` / `make roles`). Some variables have been renamed (`matrix_prometheus_node_exporter_` -> `prometheus_node_exporter_`, etc.). The playbook will report all variables that you need to rename to get upgraded. All functionality remains intact.
A new `matrix-prometheus-services-proxy-connect` role was added to the playbook to help integrate the new `prometheus_node_exporter` role with our own services (`matrix-nginx-proxy`)
Other roles which aren't strictly related to Matrix are likely to follow this fate of moving to their own repositories. Extracting them out allows other Ansible playbooks to make use of these roles easily.
# 2023-01-13
## Support for running commands via just
We've previously used [make](https://www.gnu.org/software/make/) for easily running some playbook commands (e.g. `make roles` which triggers `ansible-galaxy`, see [Makefile](Makefile)).
Our `Makefile` is still around and you can still run these commands.
In addition, we've added support for running commands via [just](https://github.com/casey/just) - a more modern command-runner alternative to `make`. Instead of `make roles`, you can now run `just roles` to accomplish the same.
Our [justfile](justfile) already defines some additional helpful **shortcut** commands that weren't part of our `Makefile`. Here are some examples:
- `just install-all` to trigger the much longer `ansible-playbook -i inventory/hosts setup.yml --tags=install-all,ensure-matrix-users-created,start` command
- `just install-all --ask-vault-pass` - commands also support additional arguments (`--ask-vault-pass` will be appended to the above installation command)
- `just run-tags install-mautrix-slack,start` - to run specific playbook tags
- `just start-all` - (re-)starts all services
- `just stop-group postgres` - to stop only the Postgres service
- `just register-user john secret-password yes` - registers a `john` user with the `secret-password` password and admin access (admin = `yes`)
Additional helpful commands and shortcuts may be defined in the future.
This is all completely optional. If you find it difficult to [install `just`](https://github.com/casey/just#installation) or don't find any of this convenient, feel free to run all commands manually.
# 2023-01-11
## mautrix-slack support
Thanks to [Cody Neiman](https://github.com/xangelix)'s efforts, the playbook now supports bridging to [Slack](https://slack.com/) via the [mautrix-slack](https://mau.dev/mautrix/slack) bridge. See our [Setting up Mautrix Slack bridging](docs/configuring-playbook-bridge-mautrix-slack.md) documentation page for getting started.
**Note**: this is a new Slack bridge. The playbook still retains Slack bridging via [matrix-appservice-slack](docs/configuring-playbook-bridge-appservice-slack.md) and [mx-puppet-slack](docs/configuring-playbook-bridge-mx-puppet-slack.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases).
# 2023-01-10
## ChatGPT support
Thanks to [@bertybuttface](https://github.com/bertybuttface), the playbook can now help you set up [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) - a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model.
See our [Setting up matrix-bot-chatgpt](docs/configuring-playbook-bot-chatgpt.md) documentation to get started.
# 2022-11-30
## matrix-postgres-backup has been replaced by the com.devture.ansible.role.postgres_backup external role
Just like we've [replaced Postgres with an external role](#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role) on 2022-11-28, we're now replacing `matrix-postgres-backup` with an external role - [com.devture.ansible.role.postgres_backup](https://github.com/devture/com.devture.ansible.role.postgres_backup).
You'll need to rename your `matrix_postgres_backup`-prefixed variables such that they use a `devture_postgres_backup` prefix.
# 2022-11-28
## matrix-postgres has been replaced by the com.devture.ansible.role.postgres external role
**TLDR**: the tasks that install the integrated Postgres server now live in an external role - [com.devture.ansible.role.postgres](https://github.com/devture/com.devture.ansible.role.postgres). You'll need to run `make roles` to install it, and to also rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix (e.g. `matrix_postgres_connection_password` -> `devture_postgres_connection_password`). All your data will still be there! Some scripts have moved (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`).
The `matrix-postgres` role that has been part of the playbook for a long time has been replaced with the [com.devture.ansible.role.postgres](https://github.com/devture/com.devture.ansible.role.postgres) role. This was done as part of our work to [use external roles for some things](#the-playbook-now-uses-external-roles-for-some-things) for better code re-use and maintainability.
The new role is an upgraded version of the old `matrix-postgres` role with these notable differences:
- it uses different names for its variables (`matrix_postgres` -> `devture_postgres`)
- when [Vacuuming PostgreSQL](docs/maintenance-postgres.md#vacuuming-postgresql), it will vacuum all your databases, not just the Synapse one
You'll need to run `make roles` to install the new role. You would also need to rename your `matrix_postgres`-prefixed variables to use a `devture_postgres` prefix.
Note: the systemd service still remains the same - `matrix-postgres.service`. Your data will still be in `/matrix/postgres`, etc.
Postgres-related scripts will be moved to `/matrix/postgres/bin` (`/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`, etc). Also see [The playbook no longer installs scripts in /usr/local/bin](#the-playbook-no-longer-installs-scripts-in-usrlocalbin).
## The playbook no longer installs scripts to /usr/local/bin
The locations of various scripts installed by the playbook have changed.
The playbook no longer contaminates your `/usr/local/bin` directory.
All scripts installed by the playbook now live in `bin/` directories under `/matrix`. Some examples are below:
- `/usr/local/bin/matrix-remove-all` -> `/matrix/bin/remove-all`
- `/usr/local/bin/matrix-postgres-cli` -> `/matrix/postgres/bin/cli`
- `/usr/local/bin/matrix-ssl-lets-encrypt-certificates-renew` -> `/matrix/ssl/bin/lets-encrypt-certificates-renew`
- `/usr/local/bin/matrix-synapse-register-user` -> `/matrix/synapse/bin/register-user`
# 2022-11-25
## 2x-5x performance improvements in playbook runtime
@ -96,11 +693,11 @@ Various services (like Dimension, etc.) still talk to Synapse via `matrix-nginx-
Until now, [Etherpad](https://etherpad.org/) (which [the playbook could install for you](docs/configuring-playbook-etherpad.md)) required the [Dimension integration manager](docs/configuring-playbook-dimension.md) to also be installed, because Etherpad was hosted on the Dimension domain (at `dimension.DOMAIN/etherpad`).
From now on, Etherpad can be installed in `standalone` mode on `etherpad.DOMAIN` and used even without Dimension. This is much more versatile, so the playbook now defaults to this new mode (`matrix_etherpad_mode: standalone`).
From now on, Etherpad can be installed in `standalone` mode on `etherpad.DOMAIN` and used even without Dimension. This is much more versatile, so the playbook now defaults to this new mode (`etherpad_mode: standalone`).
If you've already got both Etherpad and Dimension in use you could:
- **either** keep hosting Etherpad under the Dimension domain by adding `matrix_etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary.
- **either** keep hosting Etherpad under the Dimension domain by adding `etherpad_mode: dimension` to your `vars.yml` file. All your existing room widgets will continue working at the same URLs and no other changes will be necessary.
- **or**, you could change to hosting Etherpad separately on `etherpad.DOMAIN`. You will need to [configure a DNS record](docs/configuring-dns.md) for this new domain. You will also need to reconfigure Dimension to use the new pad URLs (`https://etherpad.DOMAIN/...`) going forward (refer to our [configuring Etherpad documentation](docs/configuring-playbook-etherpad.md)). All your existing room widgets (which still use `https://dimension.DOMAIN/etherpad/...`) will break as Etherpad is not hosted there anymore. You will need to re-add them or to consider not using `standalone` mode
@ -313,7 +910,7 @@ matrix_homeserver_implementation: conduit
Thanks to [MdotAmaan](https://github.com/MdotAmaan)'s efforts, the playbook now supports bridging to [Discord](https://discordapp.com/) via the [mautrix-discord](https://mau.dev/mautrix/discord) bridge. See our [Setting up Mautrix Discord bridging](docs/configuring-playbook-bridge-mautrix-discord.md) documentation page for getting started.
**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md) and [mx-puppet-discord](docs/configuring-playbook-bridge-mx-puppet-discord.md). You're free too use the bridge that serves you better, or even all three of them (for different users and use-cases).
**Note**: this is a new Discord bridge. The playbook still retains Discord bridging via [matrix-appservice-discord](docs/configuring-playbook-bridge-appservice-discord.md) and [mx-puppet-discord](docs/configuring-playbook-bridge-mx-puppet-discord.md). You're free to use the bridge that serves you better, or even all three of them (for different users and use-cases).
# 2022-07-27
@ -387,14 +984,14 @@ See our [Setting up the ntfy push notifications server](docs/configuring-playboo
**If you are using the [Hookshot bridge](docs/configuring-playbook-bridge-hookshot.md)**, you may find that:
1. **Metrics may not be enabled by default anymore**:
- If Prometheus is enabled (`matrix_prometheus_enabled: true`), then Hookshot metrics will be enabled automatically (`matrix_hookshot_metrics_enabled: true`). These metrics will be collected from the local (in-container) Prometheus over the container network.
- If Prometheus is enabled (`prometheus_enabled: true`), then Hookshot metrics will be enabled automatically (`matrix_hookshot_metrics_enabled: true`). These metrics will be collected from the local (in-container) Prometheus over the container network.
- **If Prometheus is not enabled** (you are either not using Prometheus or are using an external one), **Hookshot metrics will not be enabled by default anymore**. Feel free to enable them by setting `matrix_hookshot_metrics_enabled: true`. Also, see below.
2. When metrics are meant to be **consumed by an external Prometheus server**, `matrix_hookshot_metrics_proxying_enabled` needs to be set to `true`, so that metrics would be exposed (proxied) "publicly" on `https://matrix.DOMAIN/metrics/hookshot`. To make use of this, you'll also need to enable the new `https://matrix.DOMAIN/metrics/*` endpoints mentioned above, using `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. Learn more in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation.
3. **We've changed the URL we're exposing Hookshot metrics at** for external Prometheus servers. Until now, you were advised to consume Hookshot metrics from `https://stats.DOMAIN/hookshot/metrics` (working in conjunction with `matrix_nginx_proxy_proxy_synapse_metrics`). From now on, **this no longer works**. As described above, you need to start consuming metrics from `https://matrix.DOMAIN/metrics/hookshot`.
**If you're using node-exporter** (`matrix_prometheus_node_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_node_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.DOMAIN/metrics/node-exporter`.
**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`matrix_prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.DOMAIN/metrics/postgres-exporter`.
**If you're using [postgres-exporter](docs/configuring-playbook-prometheus-postgres.md)** (`prometheus_postgres_exporter_enabled: true`) and would like to collect its metrics from an external Prometheus server, see `matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled` described in our [Collecting metrics to an external Prometheus server](docs/configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) documentation. You will be able to collect its metrics from `https://matrix.DOMAIN/metrics/postgres-exporter`.
**If you're using Synapse** and would like to collect its metrics from an external Prometheus server, you may find that:
@ -415,7 +1012,6 @@ See our [Setting up Go Skype Bridge](docs/configuring-playbook-bridge-go-skype-b
The playbook has supported [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridging (see [Setting up MX Puppet Skype bridging](docs/configuring-playbook-bridge-mx-puppet-skype.md)) since [2020-04-09](#2020-04-09), but `mx-puppet-skype` is reportedly broken.
# 2022-06-09
## Running Ansible in a container can now happen on the Matrix server itself
@ -1085,7 +1681,7 @@ People who have [fine-tuned Jitsi](docs/configuring-playbook-jitsi.md#optional-f
The next time you run the playbook [installation](docs/installing.md) command, our validation logic will tell you if you're using some variables like that and will recommend a migration path for each one.
Additionally, we've recently disabled transcriptions (`matrix_jitsi_enable_transcriptions: false`) and recording (`matrix_jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working.
Additionally, we've recently disabled transcriptions (`jitsi_enable_transcriptions: false`) and recording (`jitsi_enable_recording: false`) by default. These features did not work anyway, because we don't install the required dependencies for them (Jigasi and Jibri, respectively). If you've been somehow pointing your Jitsi installation to some manually installed Jigasi/Jibri service, you may need to toggle these flags back to enabled to have transcriptions and recordings working.
# 2020-11-23

View File

@ -13,6 +13,15 @@ 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)).
## Self-hosting or 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.
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/) - a service built on top of this Ansible playbook, which can help you run a Matrix server with ease.
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
Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else.
@ -27,7 +36,7 @@ You can always re-run the playbook later to add or remove components.
The homeserver is the backbone of your matrix system. Choose one from the following list.
| Name | Default? | Description | Documentation |
| ---- | -------- | ----------- | ------------- |
| ---- | -------- | ----------- | ------------- |
| [Synapse](https://github.com/matrix-org/synapse) | ✓ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) |
| [Conduit](https://conduit.rs) | x | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) |
| [Dendrite](https://github.com/matrix-org/dendrite) | x | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) |
@ -38,9 +47,10 @@ Web clients for matrix that you can host on your own domains.
| Name | Default? | Description | Documentation |
| ---- | -------- | ----------- | ------------- |
[Element](https://app.element.io/) | ✓ | Web UI, which is configured to connect to your own Synapse server by default | [Link](docs/configuring-playbook-client-element.md) |
| [Hydrogen](https://github.com/vector-im/hydrogen-web) | x | Web client | [Link](docs/configuring-playbook-client-hydrogen.md) |
| [Cinny](https://github.com/ajbura/cinny) | x | Web client | [Link](docs/configuring-playbook-client-cinny.md) |
| [Element](https://app.element.io/) | ✓ | Web UI, which is configured to connect to your own Synapse server by default | [Link](docs/configuring-playbook-client-element.md) |
| [Hydrogen](https://github.com/vector-im/hydrogen-web) | x | Lightweight matrix client with legacy and mobile browser support | [Link](docs/configuring-playbook-client-hydrogen.md) |
| [Cinny](https://github.com/ajbura/cinny) | x | Simple, elegant and secure web client | [Link](docs/configuring-playbook-client-cinny.md) |
| [SchildiChat](https://schildi.chat/) | x | Based on Element, with a more traditional instant messaging experience | [Link](docs/configuring-playbook-client-schildichat.md) |
@ -52,10 +62,11 @@ Services that run on the server to make the various parts of your installation w
| ---- | -------- | ----------- | ------------- |
| [PostgreSQL](https://www.postgresql.org/)| ✓ | Database for Synapse. [Using an external PostgreSQL server](docs/configuring-playbook-external-postgres.md) is also possible. | [Link](docs/configuring-playbook-external-postgres.md) |
| [Coturn](https://github.com/coturn/coturn) | ✓ | STUN/TURN server for WebRTC audio/video calls | [Link](docs/configuring-playbook-turn.md) |
| [nginx](http://nginx.org/) | ✓ | Web server, listening on ports 80 and 443 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md) | [Link](docs/configuring-playbook-nginx.md) |
| [Let's Encrypt](https://letsencrypt.org/) | ✓ | Free SSL certificate, which secures the connection to the Synapse server and the Element web UI | [Link](docs/configuring-playbook-ssl-certificates.md) |
| [ma1sd](https://github.com/ma1uta/ma1sd) | x | Matrix Identity Server | [Link](configuring-playbook-ma1sd.md)
| [Exim](https://www.exim.org/) | ✓ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | - |
| [Traefik](https://doc.traefik.io/traefik/) | ✓ | Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver [is possible](docs/configuring-playbook-own-webserver.md) | [Link](docs/configuring-playbook-traefik.md) |
| [nginx](http://nginx.org/) | x | (Deprecated) Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Deprecated in favor of Traefik | [Link](docs/configuring-playbook-nginx.md) |
| [Let's Encrypt](https://letsencrypt.org/) | ✓ | Free SSL certificate, which secures the connection to all components | [Link](docs/configuring-playbook-ssl-certificates.md) |
| [ma1sd](https://github.com/ma1uta/ma1sd) | x | Matrix Identity Server | [Link](docs/configuring-playbook-ma1sd.md)
| [Exim](https://www.exim.org/) | ✓ | Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) | [Link](docs/configuring-playbook-email.md) |
| [Dimension](https://github.com/turt2live/matrix-dimension) | x | An open source integrations manager for matrix clients | [Link](docs/configuring-playbook-dimension.md) |
| [Sygnal](https://github.com/matrix-org/sygnal) | x | Push gateway | [Link](docs/configuring-playbook-sygnal.md) |
| [ntfy](https://ntfy.sh) | x | Push notifications server | [Link](docs/configuring-playbook-ntfy.md) |
@ -66,10 +77,10 @@ Services that run on the server to make the various parts of your installation w
Extend and modify how users are authenticated on your homeserver.
| Name | Default? | Description | Documentation |
| ---- | -------- | ----------- | ------------- |
| ---- | -------- | ----------- | ------------- |
| [matrix-synapse-rest-auth](https://github.com/ma1uta/matrix-synapse-rest-password-provider) (advanced) | x | REST authentication password provider module | [Link](docs/configuring-playbook-rest-auth.md) |
|[matrix-synapse-shared-secret-auth](https://github.com/devture/matrix-synapse-shared-secret-auth) (advanced) | x | Password provider module | [Link](docs/configuring-playbook-shared-secret-auth.md) |
| [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced) | x | LDAP Auth password provider module | [Link](configuring-playbook-ldap-auth.md) |
| [matrix-synapse-ldap3](https://github.com/matrix-org/matrix-synapse-ldap3) (advanced) | x | LDAP Auth password provider module | [Link](docs/configuring-playbook-ldap-auth.md) |
| [matrix-ldap-registration-proxy](https://gitlab.com/activism.international/matrix_ldap_registration_proxy) (advanced) | x | A proxy that handles Matrix registration requests and forwards them to LDAP. | [Link](docs/configuring-playbook-matrix-ldap-registration-proxy.md) |
| [matrix-registration](https://github.com/ZerataX/matrix-registration) | x | A simple python application to have a token based matrix registration | [Link](docs/configuring-playbook-matrix-registration.md) |
@ -82,6 +93,7 @@ Use alternative file storage to the default `media_store` folder.
| ---- | -------- | ----------- | ------------- |
| [Goofys](https://github.com/kahing/goofys) | x | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | [Link](docs/configuring-playbook-s3-goofys.md) |
| [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) | x | [Amazon S3](https://aws.amazon.com/s3/) (or other S3-compatible object store) storage for Synapse's content repository (`media_store`) files | [Link](docs/configuring-playbook-s3.md) |
| [matrix-media-repo](https://github.com/turt2live/matrix-media-repo) | x | matrix-media-repo is a highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. | [Link](docs/configuring-playbook-matrix-media-repo.md) |
### Bridges
@ -89,31 +101,33 @@ Bridges can be used to connect your matrix installation with third-party communi
| Name | Default? | Description | Documentation |
| ---- | -------- | ----------- | ------------- |
[mautrix-discord](https://github.com/mautrix/discord) | x | Bridge for bridging your Matrix server to [Discord](https://discord.com/) | [Link](docs/configuring-playbook-bridge-mautrix-discord.md) |
| [mautrix-telegram](https://github.com/mautrix/telegram) | x | Bridge for bridging your Matrix server to [Telegram](https://telegram.org/) | [Link](docs/configuring-playbook-bridge-mautrix-telegram.md) |
| [mautrix-whatsapp](https://github.com/mautrix/whatsapp) | x | Bridge for bridging your Matrix server to [WhatsApp](https://www.whatsapp.com/) | [Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md) |
| [mautrix-facebook](https://github.com/mautrix/facebook) | x | Bridge for bridging your Matrix server to [Facebook](https://facebook.com/) | [Link](docs/configuring-playbook-bridge-mautrix-facebook.md) |
| [mautrix-twitter](https://github.com/mautrix/twitter) | x | Bridge for bridging your Matrix server to [Twitter](https://twitter.com/) | [Link](docs/configuring-playbook-bridge-mautrix-twitter.md) |
| [mautrix-hangouts](https://github.com/mautrix/hangouts) | x | Bridge for bridging your Matrix server to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) | [Link](docs/configuring-playbook-bridge-mautrix-hangouts.md) |
| [mautrix-googlechat](https://github.com/mautrix/googlechat) | x | Bridge for bridging your Matrix server to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat) | [Link](docs/configuring-playbook-bridge-mautrix-googlechat.md) |
| [mautrix-instagram](https://github.com/mautrix/instagram) | x | Bridge for bridging your Matrix server to [Instagram](https://instagram.com/) | [Link](docs/configuring-playbook-bridge-mautrix-instagram.md) |
| [mautrix-signal](https://github.com/mautrix/signal) | x | Bridge for bridging your Matrix server to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) |
| [beeper-linkedin](https://github.com/beeper/linkedin) | x | Bridge for bridging your Matrix server to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) |
| [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | x | Bridge for bridging your Matrix server to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) |
| [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) | x | Bridge for bridging your Matrix server to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) |
| [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) | x | Bridge for bridging your Matrix server to [Slack](https://slack.com/) | [Link](docs/configuring-playbook-bridge-appservice-slack.md) |
| [mautrix-discord](https://github.com/mautrix/discord) | x | Bridge to [Discord](https://discord.com/) | [Link](docs/configuring-playbook-bridge-mautrix-discord.md) |
| [mautrix-slack](https://github.com/mautrix/slack) | x | Bridge to [Slack](https://slack.com/) | [Link](docs/configuring-playbook-bridge-mautrix-slack.md) |
| [mautrix-telegram](https://github.com/mautrix/telegram) | x | Bridge to [Telegram](https://telegram.org/) | [Link](docs/configuring-playbook-bridge-mautrix-telegram.md) |
| [mautrix-gmessages](https://github.com/mautrix/gmessages) | x | Bridge to [Google Messages](https://messages.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gmessages.md) |
| [mautrix-whatsapp](https://github.com/mautrix/whatsapp) | x | Bridge to [WhatsApp](https://www.whatsapp.com/) | [Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md) |
| [mautrix-facebook](https://github.com/mautrix/facebook) | x | Bridge to [Facebook](https://facebook.com/) | [Link](docs/configuring-playbook-bridge-mautrix-facebook.md) |
| [mautrix-twitter](https://github.com/mautrix/twitter) | x | Bridge to [Twitter](https://twitter.com/) | [Link](docs/configuring-playbook-bridge-mautrix-twitter.md) |
| [mautrix-hangouts](https://github.com/mautrix/hangouts) | x | Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) | [Link](docs/configuring-playbook-bridge-mautrix-hangouts.md) |
| [mautrix-googlechat](https://github.com/mautrix/googlechat) | x | Bridge to [Google Chat](https://en.wikipedia.org/wiki/Google_Chat) | [Link](docs/configuring-playbook-bridge-mautrix-googlechat.md) |
| [mautrix-instagram](https://github.com/mautrix/instagram) | x | Bridge to [Instagram](https://instagram.com/) | [Link](docs/configuring-playbook-bridge-mautrix-instagram.md) |
| [mautrix-signal](https://github.com/mautrix/signal) | x | Bridge to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) |
| [beeper-linkedin](https://github.com/beeper/linkedin) | x | Bridge to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) |
| [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | x | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) |
| [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) | x | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) |
| [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) | x | Bridge to [Slack](https://slack.com/) | [Link](docs/configuring-playbook-bridge-appservice-slack.md) |
| [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) | x | Bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.) | [Link](docs/configuring-playbook-bridge-appservice-webhooks.md) |
| [matrix-hookshot](https://github.com/Half-Shot/matrix-hookshot) | x | Bridge for bridging Matrix to generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) |
| [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | x | Bridge for bridging your Matrix server to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) |
| [Heisenbridge](https://github.com/hifi/heisenbridge) | x | Bridge for bridging your Matrix server to IRC bouncer-style | [Link](docs/configuring-playbook-bridge-heisenbridge.md) |
| [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) | x | Bridge for bridging your Matrix server to [Skype](https://www.skype.com) | [Link](docs/configuring-playbook-bridge-go-skype-bridge.md) |
| [mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) | x | Bridge for bridging your Matrix server to [Slack](https://slack.com) | [Link](docs/configuring-playbook-bridge-mx-puppet-slack.md) |
| [matrix-hookshot](https://github.com/Half-Shot/matrix-hookshot) | x | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) |
| [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | x | Bridge to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) |
| [Heisenbridge](https://github.com/hifi/heisenbridge) | x | Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-heisenbridge.md) |
| [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) | x | Bridge to [Skype](https://www.skype.com) | [Link](docs/configuring-playbook-bridge-go-skype-bridge.md) |
| [mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) | x | Bridge to [Slack](https://slack.com) | [Link](docs/configuring-playbook-bridge-mx-puppet-slack.md) |
| [mx-puppet-instagram](https://github.com/Sorunome/mx-puppet-instagram) | x | Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/)) | [Link](docs/configuring-playbook-bridge-mx-puppet-instagram.md) |
| [mx-puppet-twitter](https://github.com/Sorunome/mx-puppet-twitter) | x | Bridge for Twitter-DMs ([Twitter](https://twitter.com/)) | [Link](docs/configuring-playbook-bridge-mx-puppet-twitter.md) |
| [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) | x | Bridge for [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-discord.md) |
| [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) | x | Bridge for [GroupMe](https://groupme.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md) |
| [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) | x | Bridge for [Steam](https://steamapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-steam.md) |
| [Email2Matrix](https://github.com/devture/email2matrix) | x | Bridge for relaying email messages to Matrix rooms | [Link](docs/configuring-playbook-email2matrix.md) |
| [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord) | x | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-discord.md) |
| [mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme) | x | Bridge to [GroupMe](https://groupme.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-groupme.md) |
| [mx-puppet-steam](https://github.com/icewind1991/mx-puppet-steam) | x | Bridge to [Steam](https://steamapp.com/) | [Link](docs/configuring-playbook-bridge-mx-puppet-steam.md) |
| [Email2Matrix](https://github.com/devture/email2matrix) | x | Bridge for relaying emails to Matrix rooms | [Link](docs/configuring-playbook-email2matrix.md) |
### Bots
@ -129,7 +143,9 @@ Bots provide various additional functionality to your installation.
| [Postmoogle](https://gitlab.com/etke.cc/postmoogle) | x | Email to matrix bot | [Link](docs/configuring-playbook-bot-postmoogle.md) |
| [Go-NEB](https://github.com/matrix-org/go-neb) | x | A multi functional bot written in Go | [Link](docs/configuring-playbook-bot-go-neb.md) |
| [Mjolnir](https://github.com/matrix-org/mjolnir) | x | A moderation tool for Matrix | [Link](docs/configuring-playbook-bot-mjolnir.md) |
| [Draupnir](https://github.com/the-draupnir-project/Draupnir) | x | A moderation tool for Matrix (Fork of Mjolnir) | [Link](docs/configuring-playbook-bot-draupnir.md) |
| [Buscarron](https://gitlab.com/etke.cc/buscarron) | x | Web forms (HTTP POST) to matrix | [Link](docs/configuring-playbook-bot-buscarron.md) |
| [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) | x | ChatGPT from matrix | [Link](docs/configuring-playbook-bot-chatgpt.md) |
### Administration
@ -141,6 +157,7 @@ Services that help you in administrating and monitoring your matrix installation
| [synapse-admin](https://github.com/Awesome-Technologies/synapse-admin) | x | A web UI tool for administrating users and rooms on your Matrix server | [Link](docs/configuring-playbook-synapse-admin.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) |
| [Rageshake](https://github.com/matrix-org/rageshake) | x | Bug report server | [Link](docs/configuring-playbook-rageshake.md) |
### Misc
@ -148,6 +165,8 @@ Various services that don't fit any other category.
| Name | Default? | Description | Documentation |
| ---- | -------- | ----------- | ------------- |
| [sliding-sync](https://github.com/matrix-org/sliding-sync)| x | Sliding Sync support for clients which require it (e.g. Element X) | [Link](docs/configuring-playbook-sliding-sync-proxy.md) |
| [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) | x | A cli tool that automatically compresses `state_groups` database table in background. | [Link](docs/configuring-playbook-synapse-auto-compressor.md) |
| [synapse-simple-antispam](https://github.com/t2bot/synapse-simple-antispam) (advanced) | x | A spam checker module | [Link](docs/configuring-playbook-synapse-simple-antispam.md) |
| [Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced) | x | Reconciliator and gateway for a managed Matrix server | [Link](docs/configuring-playbook-matrix-corporal.md) |
| [Etherpad](https://etherpad.org) | x | An open source collaborative text editor | [Link](docs/configuring-playbook-etherpad.md) |
@ -176,6 +195,16 @@ When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up w
- GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)
## Services by the community
## Related
- [etke.cc](https://etke.cc) - matrix-docker-ansible-deploy and system stuff "as a service". That service will create your matrix homeserver on your domain and server (doesn't matter if it's cloud provider or on an old laptop in the corner of your room), (optional) maintains it (server's system updates, cleanup, security adjustments, tuning, etc.; matrix homeserver updates & maintenance) and (optional) provide full-featured email service for your domain
You may also be interested in these other Ansible playbooks:
- [gitea-docker-ansible-deploy](https://github.com/spantaleev/gitea-docker-ansible-deploy) - for deploying a [Gitea](https://gitea.io/) git version-control server
- [nextcloud-docker-ansible-deploy](https://github.com/spantaleev/nextcloud-docker-ansible-deploy) - for deploying a [Nextcloud](https://nextcloud.com/) server
- [peertube-docker-ansible-deploy](https://github.com/spantaleev/peertube-docker-ansible-deploy) - for deploying a [PeerTube](https://joinpeertube.org/) video-platform server
- [vaultwarden-docker-ansible-deploy](https://github.com/spantaleev/vaultwarden-docker-ansible-deploy) - for deploying a [Vaultwarden](https://github.com/dani-garcia/vaultwarden) password manager server (unofficial [Bitwarden](https://bitwarden.com/) compatible server)
They're all making use of Traefik as their reverse-proxy, so it should be easy to host all these services on the same server. Follow the `docs/configuring-playbook-interoperability.md` documentation in each playbook.

1
devshell/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/.direnv/

4
devshell/devshell.toml Normal file
View File

@ -0,0 +1,4 @@
# https://numtide.github.io/devshell
[[commands]]
package = "devshell.cli"
help = "Per project developer environments"

92
devshell/flake.lock Normal file
View File

@ -0,0 +1,92 @@
{
"nodes": {
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1667210711,
"narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=",
"owner": "numtide",
"repo": "devshell",
"rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1642700792,
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1643381941,
"narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5efc8ca954272c4376ac929f4c5ffefcc20551d5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1667969101,
"narHash": "sha256-GL53T705HO7Q/KVfbb5STx8AxFs8YgaGY8pvAZC+O7U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bbf77421ac51a7c93f5f0f760da99e4dbce614fa",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
}
}
},
"root": "root",
"version": 7
}

23
devshell/flake.nix Normal file
View File

@ -0,0 +1,23 @@
{
description = "virtual environments";
inputs.devshell.url = "github:numtide/devshell";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, flake-utils, devshell, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system: {
devShell =
let pkgs = import nixpkgs {
inherit system;
overlays = [ devshell.overlay ];
};
in
pkgs.devshell.mkShell {
imports = [ (pkgs.devshell.importTOML ./devshell.toml) ];
devshell.packages = with pkgs; [
gnumake
];
};
});
}

View File

@ -9,19 +9,14 @@ If your local computer cannot run Ansible, you can also run Ansible on some serv
## Supported Ansible versions
Ansible 2.7.1 or newer is required ([last discussion about Ansible versions](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/743)).
Note: Ubuntu 20.04 ships with Ansible 2.9.6 which is a buggy version (see this [bug](https://bugs.launchpad.net/ubuntu/+source/ansible/+bug/1880359)), which can't be used in combination with a host running new systemd (more details in [#517](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/517), [#669](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/669)). If this problem affects you, you can: avoid running Ubuntu 20.04 on your host; run Ansible from another machine targeting your host; or try to upgrade to a newer Ansible version (see below).
## Checking your Ansible version
In most cases, you won't need to worry about the Ansible version.
The playbook will try to detect it and tell you if you're on an unsupported version.
To manually check which version of Ansible you're on, run: `ansible --version`.
If you're on an old version of Ansible, you should [upgrade Ansible to a newer version](#upgrading-ansible) or [use Ansible via Docker](#using-ansible-via-docker).
For the **best experience**, we recommend getting the **latest version of Ansible available**.
We're not sure what's the minimum version of Ansible that can run this playbook successfully.
The lowest version that we've confirmed (on 2022-11-26) to be working fine is: `ansible-core` (`2.11.7`) combined with `ansible` (`4.10.0`).
If your distro ships with an Ansible version older than this, you may run into issues. Consider [Upgrading Ansible](#upgrading-ansible) or [using Ansible via Docker](#using-ansible-via-docker).
## Upgrading Ansible
@ -70,7 +65,7 @@ docker run -it --rm \
-w /work \
-v `pwd`:/work \
--entrypoint=/bin/sh \
docker.io/devture/ansible:2.13.6-r0
docker.io/devture/ansible:2.14.5-r0-0
```
Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container.
@ -91,7 +86,7 @@ docker run -it --rm \
-v `pwd`:/work \
-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
--entrypoint=/bin/sh \
docker.io/devture/ansible:2.13.6-r0
docker.io/devture/ansible:2.14.5-r0-0
```
The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`).

View File

@ -2,9 +2,11 @@
# Overview
Captcha can be enabled for this home server. This file explains how to do that.
The captcha mechanism used is Google's [ReCaptcha](https://www.google.com/recaptcha/). This requires API keys from Google.
The captcha mechanism used is Google's [ReCaptcha](https://www.google.com/recaptcha/). This requires API keys from Google. If your homeserver is Dendrite then [hCapcha](https://www.hcaptcha.com) can be used instead.
## Getting keys
## ReCaptcha
### Getting keys
Requires a site/secret key pair from:
@ -12,12 +14,39 @@ Requires a site/secret key pair from:
Must be a reCAPTCHA **v2** key using the "I'm not a robot" Checkbox option
## Setting ReCaptcha Keys
### Setting ReCaptcha keys
Once registered as above, set the following values:
```yaml
# for Synapse
matrix_synapse_enable_registration_captcha: true
matrix_synapse_recaptcha_public_key: 'YOUR_SITE_KEY'
matrix_synapse_recaptcha_private_key: 'YOUR_SECRET_KEY'
# for Dendrite
matrix_dendrite_client_api_enable_registration_captcha: true
matrix_dendrite_client_api_recaptcha_public_key: 'YOUR_SITE_KEY'
matrix_dendrite_client_api_recaptcha_private_key: 'YOUR_SECRET_KEY'
```
## hCaptcha
### Getting keys
Requires a site/secret key pair from:
<https://dashboard.hcaptcha.com/sites/new>
### Setting hCaptcha keys
```yaml
matrix_dendrite_client_api_enable_registration_captcha: true
matrix_dendrite_client_api_recaptcha_public_key: 'YOUR_SITE_KEY'
matrix_dendrite_client_api_recaptcha_private_key: 'YOUR_SECRET_KEY'
matrix_dendrite_client_api_recaptcha_siteverify_api: 'https://hcaptcha.com/siteverify'
matrix_dendrite_client_api_recaptcha_api_js_url: 'https://js.hcaptcha.com/1/api.js'
matrix_dendrite_client_api_recaptcha_form_field: 'h-captcha-response'
matrix_dendrite_client_api_recaptcha_sitekey_class: 'h-captcha'
```

View File

@ -42,6 +42,8 @@ When you're done configuring DNS, proceed to [Configuring the playbook](configur
| [Etherpad](configuring-playbook-etherpad.md) collaborative text editor | CNAME | `etherpad` | - | - | - | `matrix.<your-domain>` |
| [Hydrogen](configuring-playbook-client-hydrogen.md) web client | CNAME | `hydrogen` | - | - | - | `matrix.<your-domain>` |
| [Cinny](configuring-playbook-client-cinny.md) web client | CNAME | `cinny` | - | - | - | `matrix.<your-domain>` |
| [SchildiChat](configuring-playbook-client-schildichat.md) web client | CNAME | `schildichat` | - | - | - | `matrix.<your-domain>` |
| [wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) sms bridge | CNAME | `wsproxy` | - | - | - | `matrix.<your-domain>` |
| [Buscarron](configuring-playbook-bot-buscarron.md) helpdesk bot | CNAME | `buscarron` | - | - | - | `matrix.<your-domain>` |
| [Postmoogle](configuring-playbook-bot-postmoogle.md)/[Email2Matrix](configuring-playbook-email2matrix.md) email bridges | MX | `matrix` | 10 | 0 | - | `matrix.<your-domain>` |
| [Postmoogle](configuring-playbook-bot-postmoogle.md) email bridge | TXT | `matrix` | - | - | - | `v=spf1 ip4:<your-ip> -all` |
@ -75,6 +77,8 @@ The `hydrogen.<your-domain>` subdomain may be necessary, because this playbook c
The `cinny.<your-domain>` subdomain may be necessary, because this playbook could install the [Cinny](https://github.com/ajbura/cinny) web client. The installation of cinny is disabled by default, it is not a core required component. To learn how to install it, see our [configuring cinny guide](configuring-playbook-client-cinny.md). If you do not wish to set up cinny, feel free to skip the `cinny.<your-domain>` DNS record.
The `wsproxy.<your-domain>` subdomain may be necessary, because this playbook could install the [wsproxy](https://github.com/mautrix/wsproxy) web client. The installation of wsproxy is disabled by default, it is not a core required component. To learn how to install it, see our [configuring wsproxy guide](configuring-playbook-bridge-mautrix-wsproxy.md). If you do not wish to set up wsproxy, feel free to skip the `wsproxy.<your-domain>` DNS record.
The `buscarron.<your-domain>` subdomain may be necessary, because this playbook could install the [buscarron](https://gitlab.com/etke.cc/buscarron) bot. The installation of buscarron is disabled by default, it is not a core required component. To learn how to install it, see our [configuring buscarron guide](configuring-playbook-bot-buscarron.md). If you do not wish to set up buscarron, feel free to skip the `buscarron.<your-domain>` DNS record.
## `_matrix-identity._tcp` SRV record setup

View File

@ -6,9 +6,9 @@ That means your daily incremental backups can be stored in a fraction of the spa
You will need a remote server where borg will store the backups. There are hosted, borg compatible solutions available, such as [BorgBase](https://www.borgbase.com).
The backup will run based on `matrix_backup_borg_schedule` var (systemd timer calendar), default: 4am every day.
The backup will run based on `backup_borg_schedule` var (systemd timer calendar), default: 4am every day.
By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), Borg backups will also include dumps of your Postgres database. An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for Borg using the `matrix_backup_borg_postgresql_enabled` variable.
By default, if you're using the integrated Postgres database server (as opposed to [an external Postgres server](configuring-playbook-external-postgres.md)), Borg backups will also include dumps of your Postgres database. An alternative solution for backing up the Postgres database is [postgres backup](configuring-playbook-postgres-backup.md). If you decide to go with another solution, you can disable Postgres-backup support for Borg using the `backup_borg_postgresql_enabled` variable.
## Prerequisites
@ -38,11 +38,11 @@ cat PUBKEY | ssh USER@HOST 'dd of=.ssh/authorized_keys oflag=append conv=notrunc
Minimal working configuration (`inventory/host_vars/matrix.DOMAIN/vars.yml`) to enable borg backup:
```yaml
matrix_backup_borg_enabled: true
matrix_backup_borg_location_repositories:
- USER@HOST:REPO
matrix_backup_borg_storage_encryption_passphrase: "PASSPHRASE"
matrix_backup_borg_ssh_key_private: |
backup_borg_enabled: true
backup_borg_location_repositories:
- ssh://USER@HOST/./REPO
backup_borg_storage_encryption_passphrase: "PASSPHRASE"
backup_borg_ssh_key_private: |
-----BEGIN OPENSSH PRIVATE KEY-----
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZW
xpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRv
@ -58,13 +58,13 @@ where:
* HOST - SSH host of a provider/server
* REPO - borg repository name, it will be initialized on backup start, eg: `matrix`, regarding Syntax see [Remote repositories](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls)
* PASSPHRASE - passphrase used for encrypting backups, you may generate it with `pwgen -s 64 1` or use any password manager
* PRIVATE KEY - the content of the **private** part of the SSH key you created before. The whole key (all of its belonging lines) under `matrix_backup_borg_ssh_key_private` needs to be indented with 2 spaces
* PRIVATE KEY - the content of the **private** part of the SSH key you created before. The whole key (all of its belonging lines) under `backup_borg_ssh_key_private` needs to be indented with 2 spaces
To backup without encryption, add `matrix_backup_borg_encryption: 'none'` to your vars. This will also enable the `matrix_backup_borg_unknown_unencrypted_repo_access_is_ok` variable.
To backup without encryption, add `backup_borg_encryption: 'none'` to your vars. This will also enable the `backup_borg_unknown_unencrypted_repo_access_is_ok` variable.
`matrix_backup_borg_location_source_directories` defines the list of directories to back up: it's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges. You might want to exclude certain directories or file patterns from the backup using the `matrix_backup_borg_location_exclude_patterns` variable.
`backup_borg_location_source_directories` defines the list of directories to back up: it's set to `{{ matrix_base_data_path }}` by default, which is the base directory for every service's data, such as Synapse, Postgres and the bridges. You might want to exclude certain directories or file patterns from the backup using the `backup_borg_location_exclude_patterns` variable.
Check the `roles/custom/matrix-backup-borg/defaults/main.yml` file for the full list of available options.
Check the [backup_borg role](https://gitlab.com/etke.cc/roles/backup_borg)'s [defaults/main.yml](https://gitlab.com/etke.cc/roles/backup_borg/-/blob/main/defaults/main.yml) file for the full list of available options.
## Installing

View File

@ -2,8 +2,32 @@
The playbook can install and configure [buscarron](https://gitlab.com/etke.cc/buscarron) for you.
It's a bot you can use to setup **your own helpdesk on matrix**
It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) matrix room
Buscarron is bot that receives HTTP POST submissions of web forms and forwards them to a Matrix room.
## Decide on a domain and path
By default, Buscarron is configured to use its own dedicated domain (`buscarron.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
You can override the domain and path like this:
```yaml
# Switch to the domain used for Matrix services (`matrix.DOMAIN`),
# so we won't need to add additional DNS records for Buscarron.
matrix_bot_buscarron_hostname: "{{ matrix_server_fqn_matrix }}"
# Expose under the /buscarron subpath
matrix_bot_buscarron_path_prefix: /buscarron
```
**NOTE**: When using `matrix-nginx-proxy` instead of Traefik, you won't be able to override the path prefix. You can only override the domain, but that needs to happen using another variable: `matrix_server_fqn_buscarron` (e.g. `matrix_server_fqn_buscarron: "form.{{ matrix_domain }}"`).
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Buscarron domain to the Matrix server.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
## Adjusting the playbook configuration
@ -31,16 +55,6 @@ matrix_bot_buscarron_forms:
matrix_bot_buscarron_spamlist: [] # (optional) list of emails/domains/hosts (with wildcards support) that should be rejected automatically
```
You will also need to add a DNS record so that buscarron can be accessed.
By default buscarron will use https://buscarron.DOMAIN so you will need to create an CNAME record for `buscarron`.
See [Configuring DNS](configuring-dns.md).
If you would like to use a different domain, add the following to your configuration file (changing it to use your preferred domain):
```yaml
matrix_server_fqn_buscarron: "form.{{ matrix_domain }}"
```
## Installing
@ -67,4 +81,12 @@ To use the bot, invite the `@bot.buscarron:DOMAIN` to the room you specified in
</form>
```
**NOTE**: to fight against spam, Buscarron is **very aggressive when it comes to banning** and will ban you if:
- if you hit the homepage (HTTP `GET` request to `/`)
- if you submit a form to the wrong URL (`POST` request to `/non-existing-form`)
- if `hasemail` is enabled for the form (like in the example above) and you don't submit an `email` field
If you get banned, you'd need to restart the process by running the playbook with `--tags=start` or running `systemctl restart matrix-bot-buscarron` on the server.
You can also refer to the upstream [documentation](https://gitlab.com/etke.cc/buscarron).

View File

@ -0,0 +1,69 @@
# Setting up ChatGPT (optional)
The playbook can install and configure [matrix-chatgpt-bot](https://github.com/matrixgpt/matrix-chatgpt-bot) for you.
Talk to [ChatGPT](https://openai.com/blog/chatgpt/) via your favourite Matrix client!
## 1. Register the bot account
The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver.
You **need to register the bot user manually** before setting up the bot.
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.chatgpt password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
## 2. Get an access token and create encryption keys
Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md).
To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [element documentation](https://element.io/help#encryption6).
## 3. Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
```yaml
matrix_bot_chatgpt_enabled: true
# Obtain a new API key from https://platform.openai.com/account/api-keys
matrix_bot_chatgpt_openai_api_key: ''
# This is the default username
# matrix_bot_chatgpt_matrix_bot_username_localpart: 'bot.chatgpt'
# Matrix access token (from bot user above)
# see: https://webapps.stackexchange.com/questions/131056/how-to-get-an-access-token-for-element-riot-matrix
matrix_bot_chatgpt_matrix_access_token: ''
# Configuring the system promt used, needed if the bot is used for special tasks.
# More information: https://github.com/mustvlad/ChatGPT-System-Prompts
matrix_bot_chatgpt_matrix_bot_prompt_prefix: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.'
```
You will need to get tokens for ChatGPT.
## 4. Installing
After configuring the playbook, run the [installation](installing.md) command again:
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=install-all,start
```
## Usage
To use the bot, invite the `@bot.chatgpt:DOMAIN` to the room you specified in a config, after that start speaking to it, use the prefix if you configured one or mention the bot.
You can also refer to the upstream [documentation](https://github.com/matrixgpt/matrix-chatgpt-bot).

View File

@ -0,0 +1,110 @@
# Setting up draupnir (optional)
The playbook can install and configure the [draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you.
See the project's [documentation](https://github.com/the-draupnir-project/Draupnir) to learn what it does and why it might be useful to you.
If your migrating from Mjolnir skip to step 5b.
## 1. Register the bot account
The playbook does not automatically create users for you. The bot requires an access token to be able to connect to your homeserver.
You **need to register the bot user manually** before setting up the bot.
Choose a strong password for the bot. You can generate a good password with a command like this: `pwgen -s 64 1`.
You can use the playbook to [register a new user](registering-users.md):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.draupnir password=PASSWORD_FOR_THE_BOT admin=no' --tags=register-user
```
If you would like draupnir to be able to deactivate users, move aliases, shutdown rooms, show abuse reports ([see below](#abuse-reports)), etc then it must be a server admin so you need to change `admin=no` to `admin=yes` in the command above.
## 2. Get an access token
Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md).
## 3. Make sure the account is free from rate limiting
You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step draupnir will crash. This can be done using Synapse's [admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). Please ask for help if you are uncomfortable with these steps or run into issues.
If your Synapse Admin API is exposed to the internet for some reason like running the Synapse Admin Role [Link](/docs/configuring-playbook-synapse-admin.md) or running `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true` in your playbook config. If your API is not externally exposed you should still be able to on the local host for your synapse run these commands.
The following command works on semi up to date Windows 10 installs and All Windows 11 installations and other systems that ship curl. `curl --header "Authorization: Bearer <access_token>" -X POST https://matrix.example.com/_synapse/admin/v1/users/@example:example.com/override_ratelimit` Replace `@example:example.com` with the MXID of your Draupnir and example.com with your homeserver domain. You can easily obtain an access token for a homeserver admin account the same way you can obtain an access token for Draupnir it self. If you made Draupnir Admin you can just use the Draupnir token.
## 4. Create a management room
Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room. Anyone in this room can control the bot so it is important that you only invite trusted users to this room. The room must be unencrypted since the playbook does not support installing Pantalaimon yet.
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element you can do this by going to the room's settings, clicking Advanced, and then coping the internal room ID. The room ID will look something like `!QvgVuKq0ha8glOLGMG:DOMAIN`.
Finally invite the `@bot.draupnir:DOMAIN` account you created earlier into the room.
## 5a. Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
You must replace `ACCESS_TOKEN_FROM_STEP_2_GOES_HERE` and `ROOM_ID_FROM_STEP_4_GOES_HERE` with the your own values.
```yaml
matrix_bot_draupnir_enabled: true
matrix_bot_draupnir_access_token: "ACCESS_TOKEN_FROM_STEP_2_GOES_HERE"
matrix_bot_draupnir_management_room: "ROOM_ID_FROM_STEP_4_GOES_HERE"
```
## 5b. Migrating from Mjolnir (Only required if migrating.)
Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable mjolnir if you're doing migration.
That is all you need to do due to that Draupnir can complete migration on its own.
## 6. Installing
After configuring the playbook, run the [installation](installing.md) command:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for additional ways to use and configure draupnir. Check out their [quickstart guide](https://github.com/the-draupnir-project/Draupnir/blob/main/docs/moderators.md#quick-usage) for some basic commands you can give to the bot.
You can configure additional options by adding the `matrix_bot_draupnir_configuration_extension_yaml` variable to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file.
For example to change draupnir's `recordIgnoredInvites` option to `true` you would add the following to your `vars.yml` file.
```yaml
matrix_bot_draupnir_configuration_extension_yaml: |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_bot_draupnir_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_bot_draupnir_configuration_yaml`.
recordIgnoredInvites: true
```
## Abuse Reports
Draupnir supports two methods to receive reports in the management room.
The first method intercepts the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver.
While this playbook uses reverse proxies, it does not yet implement this.
The other method polls an synapse admin API endpoint and is hence only available when using synapse and when the Draupnir user is an admin user (see step 1).
To enable it, set `pollReports: true` in Draupnir's config:
```yaml
matrix_bot_draupnir_configuration_extension_yaml: |
pollReports: true
```

View File

@ -24,6 +24,31 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.go-neb
Once the user is created you can [obtain an access token](obtaining-access-tokens.md).
## Decide on a domain and path
By default, Go-NEB is configured to use its own dedicated domain (`goneb.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
You can override the domain and path like this:
```yaml
# Switch to the domain used for Matrix services (`matrix.DOMAIN`),
# so we won't need to add additional DNS records for Go-NEB.
matrix_bot_go_neb_hostname: "{{ matrix_server_fqn_matrix }}"
# Expose under the /go-neb subpath
matrix_bot_go_neb_path_prefix: /go-neb
```
**NOTE**: When using `matrix-nginx-proxy` instead of Traefik, you won't be able to override the path prefix. You can only override the domain, but that needs to happen using another variable: `matrix_server_fqn_go_neb` (e.g. `matrix_server_fqn_go_neb: "mybot.{{ matrix_domain }}"`).
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Go-NEB domain to the Matrix server.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
@ -193,9 +218,7 @@ matrix_bot_go_neb_services:
## Installing
Don't forget to add `goneb.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
After configuring the playbook, run the [installation](installing.md) command again:
After potentially [adjusting DNS records](#adjusting-dns-records) and configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start

View File

@ -14,6 +14,10 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
```yaml
matrix_bot_honoroit_enabled: true
# Uncomment and adjust if you'd like to change the hostname or path
# matrix_bot_honoroit_hostname: "{{ matrix_server_fqn_matrix }}"
# matrix_bot_honoroit_path_prefix: /honoroit
# Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bot_honoroit_login: honoroit

View File

@ -2,40 +2,28 @@
The playbook can install and configure [matrix-registration-bot](https://github.com/moan0s/matrix-registration-bot) for you.
The bot allows you to easily **create and manage registration tokens**. It can be used for an invitation-based server,
where you invite someone by sending them a registration token. They can register as normal but have to provide a valid
registration token in a final step of the registration.
The bot allows you to easily **create and manage registration tokens** aka. invitation codes.
It can be used for an invitation-based server,
where you invite someone by sending them a registration token (loook like this: `rbalQ0zkaDSRQCOp`). They can register as normal but have to provide a valid registration token in a final step of the registration.
See the project's [documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands) to learn what it
does and why it might be useful to you.
## Registering the bot user
## Configuration
By default, the playbook will set use the bot with a username like this: `@bot.matrix-registration-bot:DOMAIN`.
(to use a different username, adjust the `matrix_bot_matrix_registration_bot_matrix_user_id_localpart` variable).
For [other bots supported by the playbook](configuring-playbook.md#bots), Matrix bot user accounts are created and put to use automatically. For `matrix-registration-bot`, however, this is not the case - 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):
```
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.matrix-registration-bot 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
In order to use the bot you need to add an admin user's access token token to the configuration. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md).
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
To enable the bot, add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_bot_matrix_registration_bot_enabled: true
# Token obtained via logging into the bot account (see above)
matrix_bot_matrix_registration_bot_bot_access_token: "syt_bW9hbm9z_XXXXXXXXXXXXXr_2kuzbE"
#By default, the playbook will set use the bot with a username like
## this: `@bot.matrix-registration-bot:DOMAIN`.
# To use a different username, uncomment & adjust the variable.
# matrix_bot_matrix_registration_bot_matrix_user_id_localpart: bot.matrix-registration-bot
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`
matrix_bot_matrix_registration_bot_bot_password: PASSWORD_FOR_THE_BOT
# Enables registration
matrix_synapse_enable_registration: true
@ -44,6 +32,7 @@ matrix_synapse_enable_registration: true
matrix_synapse_registration_requires_token: true
```
The bot account will be automatically created.
## Installing
@ -56,10 +45,16 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
## Usage
To use the bot, create a **non-encrypted** room and invite `@bot.matrix-registration-bot:DOMAIN` (where `DOMAIN` is your base domain, not the `matrix.` domain).
To use the bot, message `@bot.matrix-registration-bot:DOMAIN` (where `DOMAIN` is your base domain, not the `matrix.` domain).
In this room send `help` and the bot will reply with all options.
You can also refer to the upstream [Usage documentation](https://github.com/moan0s/matrix-registration-bot#supported-commands).
If you have any questions, or if you need help setting it up, read the [troublshooting guide](https://github.com/moan0s/matrix-registration-bot/blob/main/docs/troubleshooting.md)
or join [#matrix-registration-bot:hyteck.de](https://matrix.to/#/#matrix-registration-bot:hyteck.de).
To clean the cache (session&encryption data) after you changed the bot's username, changed the login methon form access_token to password etc.. you can use
```bash
just run-tags bot-matrix-registration-bot-clean-cache
```

View File

@ -29,31 +29,11 @@ Refer to the documentation on [how to obtain an access token](obtaining-access-t
## 3. Make sure the account is free from rate limiting
You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step Mjolnir will crash. This can be done using Synapse's [admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). This can also be manually done by editing the Synapse database. Manually editing the Synapse database is rarely a good idea. Please ask for help if you are uncomfortable with these steps.
You will need to prevent Synapse from rate limiting the bot's account. This is not an optional step. If you do not do this step Mjolnir will crash. This can be done using Synapse's [admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). Please ask for help if you are uncomfortable with these steps or run into issues.
1. Copy the statement below into a text editor.
```
INSERT INTO ratelimit_override VALUES ('@bot.mjolnir:DOMAIN', 0, 0);
```
1. Change the username (`@bot.mjolnir:DOMAIN`) to the username you used when you registered the bot's account. You must change `DOMAIN` to your server's domain.
1. Get a database terminal by following these steps: [maintenance-postgres.md#getting-a-database-terminal](maintenance-postgres.md#getting-a-database-terminal)
1. Connect to Synapse's database by typing `\connect synapse` into the database terminal
1. Paste in the `INSERT INTO` command that you edited and press enter.
You can run `SELECT * FROM ratelimit_override;` to see if it worked. If the output looks like this:
```
user_id | messages_per_second | burst_count
-----------------------+---------------------+-------------
@bot.mjolnir:raim.ist | 0 | 0`
```
then you did it correctly.
If your Synapse Admin API is exposed to the internet for some reason like running the Synapse Admin Role [Link](/docs/configuring-playbook-synapse-admin.md) or running `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true` in your playbook config. If your API is not externally exposed you should still be able to on the local host for your synapse run these commands.
The following command works on semi up to date Windows 10 installs and All Windows 11 installations and other systems that ship curl. `curl --header "Authorization: Bearer <access_token>" -X POST https://matrix.example.com/_synapse/admin/v1/users/@example:example.com/override_ratelimit` Replace `@example:example.com` with the MXID of your Mjolnir and example.com with your homeserver domain. You can easily obtain an access token for a homeserver admin account the same way you can obtain an access token for Mjolnir it self. If you made Mjolnir Admin you can just use the Mjolnir token.
## 4. Create a management room

View File

@ -4,12 +4,26 @@
The playbook can install and configure [Postmoogle](https://gitlab.com/etke.cc/postmoogle) for you.
It's a bot/bridge you can use to forward emails to Matrix rooms
It's a bot/bridge you can use to forward emails to Matrix rooms.
Postmoogle runs an SMTP email server and allows you to assign mailbox addresses to Matrix rooms.
See the project's [documentation](https://gitlab.com/etke.cc/postmoogle) to learn what it does and why it might be useful to you.
## Prerequisites
## Adjusting the playbook configuration
### Networking
Open the following ports on your server to be able to receive incoming emails:
- `25/tcp`: SMTP
- `587/tcp`: Submission (TLS-encrypted SMTP)
If you don't open these ports, you will still be able to send emails, but not receive any.
These port numbers are configurable via the `matrix_bot_postmoogle_smtp_host_bind_port` and `matrix_bot_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use.
### Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
@ -21,9 +35,20 @@ matrix_bot_postmoogle_enabled: true
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`
matrix_bot_postmoogle_password: PASSWORD_FOR_THE_BOT
# Uncomment to add one or more admins to this bridge:
#
# matrix_bot_postmoogle_admins:
# - '@yourAdminAccount:domain.com'
#
# .. unless you've made yourself an admin of all bridges like this:
#
# matrix_admin: '@yourAdminAccount:domain.com'
```
You will also need to add several DNS records so that postmoogle can send emails.
### DNS
You will also need to add several DNS records so that Postmoogle can send emails.
See [Configuring DNS](configuring-dns.md).
@ -51,3 +76,13 @@ Then send `!pm mailbox NAME` to expose this Matrix room as an inbox with the ema
Send `!pm help` to the room to see the bot's help menu for additional commands.
You can also refer to the upstream [documentation](https://gitlab.com/etke.cc/postmoogle).
### Debug/Logs
As with all other services, you can find their logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running something like `journalctl -fu matrix-bot-postmoogle`
The default logging level for this bridge is `INFO`, but you can increase it to `DEBUG` with the following additional configuration:
```yaml
matrix_bot_postmoogle_loglevel: 'DEBUG'
```

View File

@ -1,7 +1,7 @@
# Setting up Appservice Discord (optional)
**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook.
- For using as a Bot we are recommend the Appservice Discord bridge (the one being discussed here), because it supports plumbing.
**Note**: bridging to [Discord](https://discordapp.com/) can also happen via the [mx-puppet-discord](configuring-playbook-bridge-mx-puppet-discord.md) and [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridges supported by the playbook.
- For using as a Bot we are recommend the Appservice Discord bridge (the one being discussed here), because it supports plumbing.
- For personal use we recommend the [mautrix-discord](configuring-playbook-bridge-mautrix-discord.md) bridge, because it is the most fully-featured and stable of the 3 Discord bridges supported by the playbook.
The playbook can install and configure [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) for you.
@ -23,8 +23,14 @@ matrix_appservice_discord_enabled: true
matrix_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID"
matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN"
```
5. As of Synapse 1.90.0, you will need to add the following to `matrix_synapse_configuration_extension_yaml` to enable the [backwards compatibility](https://matrix-org.github.io/synapse/latest/upgrade#upgrading-to-v1900) that this bridge needs:
```yaml
matrix_synapse_configuration_extension_yaml: |
use_appservice_legacy_authorization: true
```
*Note*: This deprecated method is considered insecure.
5. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
6. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
Other configuration options are available via the `matrix_appservice_discord_configuration_extension_yaml` variable.

View File

@ -1,6 +1,6 @@
# Setting up Appservice Slack (optional)
**Note**: bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) bridge supported by the playbook.
**Note**: bridging to [Slack](https://slack.com) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook.
The playbook can install and configure [matrix-appservice-slack](https://github.com/matrix-org/matrix-appservice-slack) for you.

View File

@ -26,22 +26,29 @@ you can adjust this in `inventory/host_vars/matrix.<domain-name>/vars.yml` as we
matrix_appservice_webhooks_log_level: '<log_level>'
```
3. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
3. As of Synapse 1.90.0, you will need to add the following to `matrix_synapse_configuration_extension_yaml` to enable the [backwards compatibility](https://matrix-org.github.io/synapse/latest/upgrade#upgrading-to-v1900) that this bridge needs:
```yaml
matrix_synapse_configuration_extension_yaml: |
use_appservice_legacy_authorization: true
```
*Note*: This deprecated method is considered insecure.
4. If you're using the [Dimension Integration Manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge by opening the Dimension integration manager -> Settings -> Bridges and selecting edit action for "Webhook Bridge". Press "Add self-hosted Bridge" button and populate "Provisioning URL" & "Shared Secret" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively.
4. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready.
5. Invite the bridge bot user to your room:
5. If you're using the [Dimension Integration Manager](configuring-playbook-dimension.md), you can configure the Webhooks bridge by opening the Dimension integration manager -> Settings -> Bridges and selecting edit action for "Webhook Bridge". Press "Add self-hosted Bridge" button and populate "Provisioning URL" & "Shared Secret" values from `/matrix/appservice-webhooks/config/config.yaml` file's homeserver URL value and provisioning secret value, respectively.
6. Invite the bridge bot user to your room:
- either with `/invite @_webhook:<domain.name>` (*Note*: Make sure you have administration permissions in your room)
- or simply add the bridge bot to a private channel (personal channels imply you being an administrator)
6. Send a message to the bridge bot in order to receive a private message including the webhook link.
7. Send a message to the bridge bot in order to receive a private message including the webhook link.
```
!webhook
```
7. The JSON body for posting messages will have to look like this:
8. The JSON body for posting messages will have to look like this:
```json
{
"text": "Hello world!",

View File

@ -32,14 +32,10 @@ You may wish to look at `roles/custom/matrix-bridge-beeper-linkedin/templates/co
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
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 [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
## Usage

View File

@ -16,7 +16,7 @@ Refer to the [official instructions](https://matrix-org.github.io/matrix-hooksho
1. Enable the bridge by adding `matrix_hookshot_enabled: true` to your `vars.yml` file
2. For each of the services (GitHub, GitLab, Jira, Figma, generic webhooks) fill in the respective variables `matrix_hookshot_service_*` listed in [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required.
3. Take special note of the `matrix_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab, Generic), while you must first add the required configuration and enable the others (GitHub, Jira, Figma).
4. If you're setting up the GitHub bridge, you'll need to generate and download a private key file after you created your GitHub app. Copy the contents of that file to the variable `matrix_hookshot_github_private_key` so the playbook can install it for you, or use one of the [other methods](#manage-github-private-key-with-matrix-aux-role) explained below.
4. If you're setting up the GitHub bridge, you'll need to generate and download a private key file after you created your GitHub app. Copy the contents of that file to the variable `matrix_hookshot_github_private_key` so the playbook can install it for you, or use one of the [other methods](#manage-github-private-key-with-aux-role) explained below.
5. If you've already installed Matrix services using the playbook before, you'll need to re-run it (`--tags=setup-all,start`). If not, proceed with [configuring other playbook services](configuring-playbook.md) and then with [Installing](installing.md). Get back to this guide once ready. Hookshot can be set up individually using the tag `setup-hookshot`.
Other configuration options are available via the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables, see the comments in [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml) for how to use them.
@ -58,23 +58,23 @@ See also `matrix_hookshot_matrix_nginx_proxy_configuration` in [init.yml](/roles
The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_hookshot_container_url`) and on different ports (e.g. `matrix_hookshot_appservice_port`). Read [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml) in detail for more info.
### Manage GitHub Private Key with matrix-aux role
### Manage GitHub Private Key with aux role
The GitHub bridge requires you to install a private key file. This can be done in multiple ways:
- copy the *contents* of the downloaded file and set the variable `matrix_hookshot_github_private_key` to the contents (see example in [main.yml](/roles/custom/matrix-bridge-hookshot/defaults/main.yml)).
- somehow copy the file to the path `{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually.
- use the `matrix-aux` role to copy the file from an arbitrary path on your ansible client to the correct path on the server.
- use the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) to copy the file from an arbitrary path on your ansible client to the correct path on the server.
To use `matrix-aux`, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add to `matrix-aux` configuration like this:
To use the `aux` role, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add the following additional configuration:
```yaml
matrix_aux_file_definitions:
aux_file_definitions:
- dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}"
mode: '0400'
owner: "{{ matrix_user_username }}"
group: "{{ matrix_user_groupname }}"
```
For more info see the documentation in the [matrix-aux base configuration file](/roles/custom/matrix-aux/defaults/main.yml).
For more information, see the documentation in the [default configuration of the aux role](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml).
### Provisioning API
@ -93,4 +93,4 @@ To explicitly enable metrics, use `matrix_hookshot_metrics_enabled: true`. This
### Collision with matrix-appservice-webhooks
If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_user_id_prefix: '_webhooks_'`).
If you are also running [matrix-appservice-webhooks](configuring-playbook-bridge-appservice-webhooks.md), it reserves its namespace by the default setting `matrix_appservice_webhooks_user_prefix: '_webhook_'`. You should take care if you modify its or hookshot's prefix that they do not collide with each other's namespace (default `matrix_hookshot_generic_userIdPrefix: '_webhooks_'`).

View File

@ -0,0 +1,38 @@
# Setting up Mautrix gmessages (optional)
The playbook can install and configure [mautrix-gmessages](https://github.com/mautrix/gmessages) for you, for bridging to [Google Messages](https://messages.google.com/).
See the project's [documentation](https://docs.mau.fi/bridges/go/gmessages/index.html) to learn what it does and why it might be useful to you.
Use the following playbook configuration:
```yaml
matrix_mautrix_gmessages_enabled: true
```
## Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
### Method 2: manually, by asking each user to provide a working access token
**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)).
When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:
- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md).
- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`
- make sure you don't log out the `Mautrix-gmessages` device some time in the future, as that would break the Double Puppeting feature
## Usage
You then need to start a chat with `@gmessagesbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).

View File

@ -0,0 +1,75 @@
# Setting up Mautrix Slack (optional)
**Note**: bridging to [Slack](https://slack.com/) can also happen via the [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) and [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) bridges supported by the playbook.
- For using as a Bot we recommend the [Appservice Slack](configuring-playbook-bridge-appservice-slack.md), because it supports plumbing.
- For personal use with a slack account we recommend the `mautrix-slack` bridge (the one being discussed here), because it is the most fully-featured and stable of the 3 Slack bridges supported by the playbook.
The playbook can install and configure [mautrix-slack](https://github.com/mautrix/slack) for you.
See the project's [documentation](https://docs.mau.fi/bridges/go/slack/index.html) to learn what it does and why it might be useful to you.
See the [features and roadmap](https://github.com/mautrix/slack/blob/main/ROADMAP.md) for more information.
## Prerequisites
For using this bridge, you would need to authenticate by **providing your username and password** (legacy) or by using a **token login**. See more information in the [docs](https://docs.mau.fi/bridges/go/slack/authentication.html).
Note that neither of these methods are officially supported by Slack. [matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) uses a Slack bot account which is the only officially supported method for bridging a Slack channel.
## Installing
To enable the bridge, add this to your `vars.yml` file:
```yaml
matrix_mautrix_slack_enabled: true
```
You may optionally wish to add some [Additional configuration](#additional-configuration), or to [prepare for double-puppeting](#set-up-double-puppeting) before the initial installation.
After adjusting your `vars.yml` file, re-run the playbook and restart all services: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`
To make use of the bridge, see [Usage](#usage) below.
### Additional configuration
There are some additional options you may wish to configure with the bridge.
Take a look at:
- `roles/custom/matrix-bridge-mautrix-slack/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-mautrix-slack/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_mautrix_slack_configuration_extension_yaml` variable
### Set up Double Puppeting
If you'd like to use [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do), you have 2 ways of going about it.
#### Method 1: automatically, by enabling Shared Secret Auth
The bridge will automatically perform Double Puppeting if you enable [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
This is the recommended way of setting up Double Puppeting, as it's easier to accomplish, works for all your users automatically, and has less of a chance of breaking in the future.
#### Method 2: manually, by asking each user to provide a working access token
**Note**: This method for enabling Double Puppeting can be configured only after you've already set up bridging (see [Usage](#usage)).
When using this method, **each user** that wishes to enable Double Puppeting needs to follow the following steps:
- retrieve a Matrix access token for yourself. Refer to the documentation on [how to do that](obtaining-access-tokens.md).
- send the access token to the bot. Example: `login-matrix MATRIX_ACCESS_TOKEN_HERE`
- make sure you don't log out the `Mautrix-Slack` device some time in the future, as that would break the Double Puppeting feature
## Usage
1. Start a chat with `@slackbot:YOUR_DOMAIN` (where `YOUR_DOMAIN` is your base domain, not the `matrix.` domain).
2. If you would like to login to Slack using a token, send the `login-token` command, otherwise, send the `login-password` command. Read [here](https://docs.mau.fi/bridges/go/slack/authentication.html) on how to retrieve your token and cookie token.
3. The bot should respond with "Successfully logged into <email> for team <workspace>"
4. Now that you're logged in, you can send a `help` command to the bot again, to see additional commands you have access to.
5. Slack channels should automatically begin bridging if you authenticated using a token. Otherwise, you must wait to receive a message in the channel if you used password authentication.

View File

@ -11,6 +11,19 @@ matrix_mautrix_whatsapp_enabled: true
```
Whatsapp multidevice beta is required, now it is enough if Whatsapp is connected to the Internet every 2 weeks.
The relay bot functionality is off by default. If you would like to enable the relay bot, add the following to your `vars.yml` file:
```yaml
matrix_mautrix_whatsapp_bridge_relay_enabled: true
```
By default, only admins are allowed to set themselves as relay users. To allow anyone on your homeserver to set themselves as relay users add this to your `vars.yml` file:
```yaml
matrix_mautrix_whatsapp_bridge_relay_admin_only: false
```
If you want to activate the relay bot in a room, use `!whatsapp set-relay`.
Use `!whatsapp unset-relay` to deactivate.
## Enable backfilling history
This requires a server with MSC2716 support, which is currently an experimental feature in synapse.
Note that as of Synapse 1.46, there are still some bugs with the implementation, especially if using event persistence workers.

View File

@ -0,0 +1,33 @@
# Setting up Mautrix wsproxy (optional)
The playbook can install and configure [mautrix-wsproxy](https://github.com/mautrix/wsproxy) for you.
See the project's [documentation](https://github.com/mautrix/wsproxy#readme) to learn what it does and why it might be useful to you.
## DNS
You need to create a `wsproxy.DOMAIN` DNS record pointing to your Matrix server (a `CNAME` pointing to `matrix.DOMAIN`) to use wsproxy.
The hostname is configurable via a `matrix_mautrix_wsproxy_hostname` variable.
## Configuration
Use the following playbook configuration:
```yaml
matrix_mautrix_wsproxy_enabled: true
matrix_mautrix_androidsms_appservice_token: 'secret token from bridge'
matrix_mautrix_androidsms_homeserver_token: 'secret token from bridge'
matrix_mautrix_imessage_appservice_token: 'secret token from bridge'
matrix_mautrix_imessage_homeserver_token: 'secret token from bridge'
matrix_mautrix_wsproxy_syncproxy_shared_secret: 'secret token from bridge'
```
Note that the tokens must match what is compiled into the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android device.
## Usage
Follow the [matrix-imessage documenation](https://docs.mau.fi/bridges/go/imessage/index.html) for running `android-sms` and/or `matrix-imessage` on your device(s).

View File

@ -1,8 +1,7 @@
# Setting up MX Puppet Slack (optional)
**Note**: bridging to [Slack](https://slack.com) can also happen via the
[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md)
bridge supported by the playbook.
[matrix-appservice-slack](configuring-playbook-bridge-appservice-slack.md) and [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) bridges supported by the playbook.
The playbook can install and configure [Beeper](https://www.beeper.com/)-maintained fork of
[mx-puppet-slack](https://gitlab.com/beeper/mx-puppet-monorepo) for you.

View File

@ -24,7 +24,7 @@ matrix_cactus_comments_enabled: true
# To do this you need to uncomment one of the following lines (depending if you are using synapse or dentrite as a homeserver)
# If you don't know which one you use: The default is synapse ;)
# matrix_synapse_allow_guest_access: true
# matrix_dentrite_allow_guest_access
# matrix_dentrite_allow_guest_access: true
```
## Installing

View File

@ -32,7 +32,7 @@ Alternatively, **if there is no pre-defined variable** for an Element setting yo
## Themes
To change the look of Element, you can define your own themes manually by using the `matrix_client_element_settingDefaults_custom_themes` setting.
To change the look of Element, you can define your own themes manually by using the `matrix_client_element_setting_defaults_custom_themes` setting.
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_element_themes_enabled: true`).

View File

@ -0,0 +1,42 @@
# Configuring SchildiChat (optional)
By default, this playbook does not install the [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) Matrix client web application.
**WARNING**: SchildiChat is based on Element-web, but its releases are lagging behind. As an example (from 2023-08-31), SchildiChat is 10 releases behind (it being based on element-web `v1.11.30`, while element-web is now on `v1.11.40`). Element-web frequently suffers from security issues, so running something based on an ancient Element-web release is **dangerous**. Use SchildiChat at your own risk!
## Enabling SchildiChat
If you'd like for the playbook to install SchildiChat, you can enable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_client_schildichat_enabled: true
```
## Configuring SchildiChat settings
The playbook provides some customization variables you could use to change schildichat's settings.
Their defaults are defined in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml) and they ultimately end up in the generated `/matrix/schildichat/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-schildichat/templates/config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2) template.
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
Alternatively, **if there is no pre-defined variable** for an schildichat setting you wish to change:
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of schildichat's various settings that rarely get used.
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2)) by making use of the `matrix_client_schildichat_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml).
- or, if extending the configuration is still not powerful enough for your needs, you can **override the configuration completely** using `matrix_client_schildichat_configuration_default` (or `matrix_client_schildichat_configuration`). You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml).
## Themes
To change the look of schildichat, you can define your own themes manually by using the `matrix_client_schildichat_setting_defaults_custom_themes` setting.
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_schildichat_themes_enabled: true`).
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
Note that for a custom theme to work well, all schildichat instances that you use must have the same theme installed.

View File

@ -3,17 +3,34 @@
**[Dimension](https://dimension.t2bot.io) can only be installed after Matrix services are installed and running.**
If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) flow and come back here later.
**Note**: Dimension is **[officially unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299)**. We recommend not bothering with installing it.
**Note**: This playbook now supports running [Dimension](https://dimension.t2bot.io) in both a federated and [unfederated](https://github.com/turt2live/matrix-dimension/blob/master/docs/unfederated.md) environments. This is handled automatically based on the value of `matrix_synapse_federation_enabled`. Enabling Dimension, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled. It's something to be aware of, especially in terms of firewall whitelisting (make sure port `8448` is accessible).
## Prerequisites
## Decide on a domain and path
The `dimension.<your-domain>` DNS record must be created. See [Configuring your DNS server](configuring-dns.md) on how to set up DNS record correctly.
By default, Dimension is configured to use its own dedicated domain (`dimension.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
You can override the domain and path like this:
```yaml
# Switch to another hostname compared to the default (`dimension.{{ matrix_domain }}`)
matrix_dimension_hostname: "integrations.{{ matrix_domain }}"
```
While there is a `matrix_dimension_path_prefix` variable for changing the path where Dimension is served, overriding it is not possible right now due to [this Dimension issue](https://github.com/turt2live/matrix-dimension/issues/510). You must serve Dimension at a dedicated subdomain until this issue is solved.
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Dimension domain to the Matrix server.
## Enable
[Dimension integrations manager](https://dimension.t2bot.io) installation is disabled by default. You can enable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
To enable Dimension, add this to your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_dimension_enabled: true
@ -54,7 +71,7 @@ For more information on how to acquire an access token, visit [https://t2bot.io/
## Installation
After these variables have been set, please run the following command to re-run setup and to restart Dimension:
After these variables have been set and you have potentially [adjusted your DNS records](#adjusting-dns-records), please run the following command to re-run setup and to restart Dimension:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start

View File

@ -1,19 +1,41 @@
# Setting up Etherpad (optional)
[Etherpad](https://etherpad.org) is is an open source collaborative text editor that can be embedded in a Matrix chat room using the [Dimension integrations manager](https://dimension.t2bot.io) or used as standalone web app.
[Etherpad](https://etherpad.org) is an open source collaborative text editor that can be embedded in a Matrix chat room using the [Dimension integrations manager](https://dimension.t2bot.io) or used as standalone web app.
When enabled together with the Jitsi audio/video conferencing system (see [our docs on Jitsi](configuring-playbook-jitsi.md)), it will be made available as an option during the conferences.
## Prerequisites
## Decide on a domain and path
Etherpad can be installed in 2 modes:
By default, Etherpad is configured to use its own dedicated domain (`etherpad.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
- (default) `standalone` mode (`matrix_etherpad_mode: standalone`) - Etherpad will be hosted on `etherpad.<your-domain>` (`matrix_server_fqn_etherpad`), so the DNS record for this domian must be created. See [Configuring your DNS server](configuring-dns.md) on how to set up the `etherpad` DNS record correctly
You can override the domain and path like this:
- `dimension` mode (`matrix_etherpad_mode: dimension`) - Etherpad will be hosted on `dimension.<your-domain>/etherpad` (`matrix_server_fqn_dimension`). This requires that you **first** configure the **Dimension integrations manager** as described in [the playbook documentation](configuring-playbook-dimension.md)
```yaml
# Switch to the domain used for Matrix services (`matrix.DOMAIN`),
# so we won't need to add additional DNS records for Etherpad.
etherpad_hostname: "{{ matrix_server_fqn_matrix }}"
We recomend that you go with the default (`standalone`) mode, which makes Etherpad independent and allows it to be used with or without Dimension.
# Expose under the /etherpad subpath
etherpad_path_prefix: /etherpad
```
**NOTE**: When using the old `matrix-nginx-proxy` reverse-proxy instead of Traefik, you have only 2 choices:
- serving Etherpad at its own dedicated domain:
- you need to set the domain using the `matrix_server_fqn_etherpad` variable (not `etherpad_hostname`)
- you must use `etherpad_path_prefix: /`
- serving Etherpad at the [Dimension](configuring-playbook-dimension.md) integration manager's domain (`matrix_server_fqn_dimension`)
- you need to have Dimension enabled
- you need to add `etherpad_path_prefix: /etherpad` or another prefix (different than `/`)
- you need to add `etherpad_nginx_proxy_dimension_integration_enabled: true` to enable this integration
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Etherpad domain to the Matrix server.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
## Installing
@ -21,48 +43,51 @@ We recomend that you go with the default (`standalone`) mode, which makes Etherp
[Etherpad](https://etherpad.org) installation is disabled by default. You can enable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_etherpad_enabled: true
# Uncomment below if you'd like to install Etherpad on the Dimension domain (not recommended)
# matrix_etherpad_mode: dimension
etherpad_enabled: true
# Uncomment below to enable the admin web UI
# matrix_etherpad_admin_username: admin
# matrix_etherpad_admin_password: some-password
# etherpad_admin_username: admin
# etherpad_admin_password: some-password
```
If enabled, the admin web-UI should then be available on `https://etherpad.<your-domain>/admin` (or `https://dimension.<your-domain>/etherpad/admin`, if `matrix_etherpad_mode: dimension`)
Then, [run the installation process](installing.md) again (e.g. `just install-all`).
## Managing / Deleting old pads
## Usage
The Etherpad UI should be available at `https://etherpad.<your-domain>`, while the admin UI (if enabled) should then be available at `https://etherpad.<your-domain>/admin`.
If you've [decided on another hostname or path-prefix](#decide-on-a-domain-and-path) (e.g. `https://matrix.DOMAIN/etherpad`), adjust these URLs accordingly before usage.
### Managing / Deleting old pads
If you want to manage and remove old unused pads from Etherpad, you will first need to able Admin access as described above.
Then from the plugin manager page (`https://etherpad.<your-domain>/admin/plugins` or `https://dimension.<your-domain>/etherpad/admin/plugins`), install the `adminpads2` plugin. Once installed, you should have a "Manage pads" section in the Admin web-UI.
Then from the plugin manager page (`https://etherpad.<your-domain>/admin/plugins`, install the `adminpads2` plugin. Once installed, you should have a "Manage pads" section in the Admin web-UI.
## How to use Etherpad widgets without an Integration Manager (like Dimension)
### How to use Etherpad widgets without an Integration Manager (like Dimension)
This is how it works in Element, it might work quite similar with other clients:
To integrate a standalone etherpad in a room, create your pad by visiting `https://etherpad.DOMAIN`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section.
## Set Dimension default to the self-hosted Etherpad (optional)
### Set Dimension default to the self-hosted Etherpad (optional)
If you decided to install [Dimension integration manager](configuring-playbook-dimension.md) alongside Etherpad, the Dimension administrator users can configure the default URL template.
The Dimension configuration menu can be accessed with the sprocket icon as you begin to add a widget to a room in Element. There you will find the Etherpad Widget Configuration action beneath the _Widgets_ tab.
### Removing the integrated Etherpad chat
#### Removing the integrated Etherpad chat
If you wish to disable the Etherpad chat button, you can do it by appending `?showChat=false` to the end of the pad URL, or the template. Examples:
- `https://etherpad.<your-domain>/p/$roomId_$padName?showChat=false` (for the default - `matrix_etherpad_mode: standalone`)
If you wish to disable the Etherpad chat button, you can do it by appending `?showChat=false` to the end of the pad URL, or the template.
- `https://dimension.<your-domain>/etherpad/p/$roomId_$padName?showChat=false` (for `matrix_etherpad_mode: dimension`)
Example: `https://etherpad.<your-domain>/p/$roomId_$padName?showChat=false`
### Known issues
## Known issues
If your Etherpad widget fails to load, this might be due to Dimension generating a Pad name so long, the Etherpad app rejects it.
`$roomId_$padName` can end up being longer than 50 characters. You can avoid having this problem by altering the template so it only contains the three word random identifier `$padName`.

View File

@ -10,7 +10,7 @@ If you'd like to use an external PostgreSQL server that you manage, you can edit
If you'd like to use an external Postgres server, use a custom `vars.yml` configuration like this:
```yaml
matrix_postgres_enabled: false
devture_postgres_enabled: false
# Rewire Synapse to use your external Postgres server
matrix_synapse_database_host: "your-postgres-server-hostname"

View File

@ -9,12 +9,12 @@ The setup done by the playbook is very similar to [docker-jitsi-meet](https://gi
## Prerequisites
Before installing Jitsi, make sure you've created the `jitsi.DOMAIN` DNS record. See [Configuring DNS](configuring-dns.md).
Before installing Jitsi, make sure you've created the `jitsi.DOMAIN` DNS record (unless you've changed `jitsi_hostname`, as described below). See [Configuring DNS](configuring-dns.md) for details about DNS changes.
You may also need to open the following ports to your server:
- `4443/tcp` - RTP media fallback over TCP
- `10000/udp` - RTP media over UDP. Depending on your firewall/NAT setup, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`matrix_jitsi_jvb_stun_servers`](../roles/custom/matrix-jitsi/defaults/main.yml)).
- `10000/udp` - RTP media over UDP. Depending on your firewall/NAT setup, incoming RTP packets on port `10000` may have the external IP of your firewall as destination address, due to the usage of STUN in JVB (see [`jitsi_jvb_stun_servers`](https://github.com/mother-of-all-self-hosting/ansible-role-jitsi/blob/main/defaults/main.yml)).
## Installation
@ -22,62 +22,86 @@ You may also need to open the following ports to your server:
Add this to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
```yaml
matrix_jitsi_enabled: true
jitsi_enabled: true
# Run `bash inventory/scripts/jitsi-generate-passwords.sh` to generate these passwords,
# or define your own strong passwords manually.
matrix_jitsi_jicofo_auth_password: ""
matrix_jitsi_jvb_auth_password: ""
matrix_jitsi_jibri_recorder_password: ""
matrix_jitsi_jibri_xmpp_password: ""
# Uncomment and adjust if you need to use another hostname
# jitsi_hostname: "jitsi.{{ matrix_domain }}"
# Uncomment and possible adjust if you'd like to host under a subpath
# jitsi_path_prefix: /jitsi
```
## (Optional) Configure Jitsi authentication and guests mode
By default the Jitsi Meet instance does not require any kind of login and is open to use for anyone without registration.
If you're fine with such an open Jitsi instance, please skip to [Apply changes](#apply-changes).
If you would like to control who is allowed to open meetings on your new Jitsi instance, then please follow this step to enable Jitsi's authentication and guests mode. With authentication enabled, all meeting rooms have to be opened by a registered user, after which guests are free to join. If a registered host is not yet present, guests are put on hold in individual waiting rooms.
If you would like to control who is allowed to open meetings on your new Jitsi instance, then please follow the following steps to enable Jitsi's authentication and optionally guests mode.
Currently, there are three supported authentication modes: 'internal' (default), 'matrix' and 'ldap'.
**Note:** Authentication is not tested via the playbook's self-checks.
We therefore recommend that you manually verify if authentication is required by jitsi.
For this, try to manually create a conference on jitsi.DOMAIN in your browser.
### Authenticate using Jitsi accounts (Auth-Type 'internal')
The default authentication mechanism is 'internal' auth, which requires jitsi-accounts to be setup and is the recommended setup, as it also works in federated rooms.
With authentication enabled, all meeting rooms have to be opened by a registered user, after which guests are free to join.
If a registered host is not yet present, guests are put on hold in individual waiting rooms.
Add these lines to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
```yaml
matrix_jitsi_enable_auth: true
matrix_jitsi_enable_guests: true
matrix_jitsi_prosody_auth_internal_accounts:
jitsi_enable_auth: true
jitsi_enable_guests: true
jitsi_prosody_auth_internal_accounts:
- username: "jitsi-moderator"
password: "secret-password"
- username: "another-user"
password: "another-password"
```
**Caution:** Accounts added here and subsquently removed will not be automatically removed from the Prosody server until user account cleaning is integrated into the playbook.
**Caution:** Accounts added here and subsequently removed will not be automatically removed from the Prosody server until user account cleaning is integrated into the playbook.
**If you get an error** like this: "Error: Account creation/modification not supported.", it's likely that you had previously installed Jitsi without auth/guest support. In such a case, you should look into [Rebuilding your Jitsi installation](#rebuilding-your-jitsi-installation).
### Authenticate using Matrix OpenID (Auth-Type 'matrix')
### (Optional) LDAP authentication
**Attention: Probably breaks Jitsi in federated rooms and does not allow sharing conference links with guests.**
The default authentication mode of Jitsi is `internal`, however LDAP is also supported. An example LDAP configuration could be:
Using this authentication type require a [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service).
By default, this playbook creates and configures a user-verification-service to run locally, see [configuring-user-verification-service](configuring-playbook-user-verification-service.md).
To enable set this configuration at host level:
```yaml
matrix_jitsi_enable_auth: true
matrix_jitsi_auth_type: ldap
matrix_jitsi_ldap_url: "ldap://ldap.DOMAIN"
matrix_jitsi_ldap_base: "OU=People,DC=DOMAIN
#matrix_jitsi_ldap_binddn: ""
#matrix_jitsi_ldap_bindpw: ""
matrix_jitsi_ldap_filter: "uid=%u"
matrix_jitsi_ldap_auth_method: "bind"
matrix_jitsi_ldap_version: "3"
matrix_jitsi_ldap_use_tls: true
matrix_jitsi_ldap_tls_ciphers: ""
matrix_jitsi_ldap_tls_check_peer: true
matrix_jitsi_ldap_tls_cacert_file: "/etc/ssl/certs/ca-certificates.crt"
matrix_jitsi_ldap_tls_cacert_dir: "/etc/ssl/certs"
matrix_jitsi_ldap_start_tls: false
jitsi_enable_auth: true
jitsi_auth_type: matrix
matrix_user_verification_service_enabled: true
```
For more information see also [https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification](https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification).
### Authenticate using LDAP (Auth-Type 'ldap')
An example LDAP configuration could be:
```yaml
jitsi_enable_auth: true
jitsi_auth_type: ldap
jitsi_ldap_url: "ldap://ldap.DOMAIN"
jitsi_ldap_base: "OU=People,DC=DOMAIN"
#jitsi_ldap_binddn: ""
#jitsi_ldap_bindpw: ""
jitsi_ldap_filter: "uid=%u"
jitsi_ldap_auth_method: "bind"
jitsi_ldap_version: "3"
jitsi_ldap_use_tls: true
jitsi_ldap_tls_ciphers: ""
jitsi_ldap_tls_check_peer: true
jitsi_ldap_tls_cacert_file: "/etc/ssl/certs/ca-certificates.crt"
jitsi_ldap_tls_cacert_dir: "/etc/ssl/certs"
jitsi_ldap_start_tls: false
```
For more information refer to the [docker-jitsi-meet](https://github.com/jitsi/docker-jitsi-meet#authentication-using-ldap) and the [saslauthd `LDAP_SASLAUTHD`](https://github.com/winlibs/cyrus-sasl/blob/master/saslauthd/LDAP_SASLAUTHD) documentation.
@ -94,7 +118,7 @@ Here is how to do it in the playbook.
Add these two lines to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
```yaml
matrix_jitsi_jvb_container_extra_arguments:
jitsi_jvb_container_extra_arguments:
- '--env "JVB_ADVERTISE_IPS=<Local IP address of the host>"'
```
@ -103,7 +127,7 @@ matrix_jitsi_jvb_container_extra_arguments:
Sample **additional** `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration to save up resources (explained below):
```yaml
matrix_jitsi_web_custom_config_extension: |
jitsi_web_custom_config_extension: |
config.enableLayerSuspension = true;
config.disableAudioLevels = true;
@ -111,13 +135,12 @@ matrix_jitsi_web_custom_config_extension: |
// Limit the number of video feeds forwarded to each client
config.channelLastN = 4;
matrix_jitsi_web_config_resolution_width_ideal_and_max: 480
matrix_jitsi_web_config_resolution_height_ideal_and_max: 240
jitsi_web_config_resolution_width_ideal_and_max: 480
jitsi_web_config_resolution_height_ideal_and_max: 240
```
You may want to **suspend unused video layers** until they are requested again, to save up resources on both server and clients.
Read more on this feature [here](https://jitsi.org/blog/new-off-stage-layer-suppression-feature/)
For this add this line to your `inventory/host_vars/matrix.DOMAIN/vars.yml` configuration:
You may wish to **disable audio levels** to avoid excessive refresh of the client-side page and decrease the CPU consumption involved.
@ -127,12 +150,22 @@ Read how it works [here](https://github.com/jitsi/jitsi-videobridge/blob/master/
You may want to **limit the maximum video resolution**, to save up resources on both server and clients.
## (Optional) Specify a Max number of participants on a Jitsi conference
The playbook allows a user to set a max number of participants allowed to join a Jitsi conference. By default there is no limit.
In order to set the max number of participants use the following **additional** configuration:
```yaml
jitsi_prosody_max_participants: 4 # example value
```
## (Optional) Additional JVBs
By default, a single JVB ([Jitsi VideoBridge](https://github.com/jitsi/jitsi-videobridge)) is deployed on the same host as the Matrix server. To allow more video-conferences to happen at the same time, you may need to provision additional JVB services on other hosts.
There is an ansible playbook that can be run with the following tag:
` ansible-playbook -i inventory/hosts --limit jitsi_jvb_servers jitsi_jvb.yml --tags=common,setup-additional-jitsi-jvb,start`
`ansible-playbook -i inventory/hosts --limit jitsi_jvb_servers jitsi_jvb.yml --tags=common,setup-additional-jitsi-jvb,start`
For this role to work you will need an additional section in the ansible hosts file with the details of the JVB hosts, for example:
```
@ -140,18 +173,18 @@ For this role to work you will need an additional section in the ansible hosts f
<your jvb hosts> ansible_host=<ip address of the jvb host>
```
Each JVB will require a server id to be set so that it can be uniquely identified and this allows Jitsi to keep track of which conferences are on which JVB.
The server id is set with the variable `matrix_jitsi_jvb_server_id` which ends up as the JVB_WS_SERVER_ID environment variables in the JVB docker container.
Each JVB will require a server id to be set so that it can be uniquely identified and this allows Jitsi to keep track of which conferences are on which JVB.
The server id is set with the variable `jitsi_jvb_server_id` which ends up as the JVB_WS_SERVER_ID environment variables in the JVB docker container.
This variable can be set via the host file, a parameter to the ansible command or in the `vars.yaml` for the host which will have the additional JVB. For example:
``` yaml
matrix_jitsi_jvb_server_id: 'jvb-2'
jitsi_jvb_server_id: 'jvb-2'
```
``` INI
[jitsi_jvb_servers]
jvb-2.example.com ansible_host=192.168.0.2 matrix_jitsi_jvb_server_id=jvb-2
jvb-3.example.com ansible_host=192.168.0.3 matrix_jitsi_jvb_server_id=jvb-2
jvb-2.example.com ansible_host=192.168.0.2 jitsi_jvb_server_id=jvb-2
jvb-3.example.com ansible_host=192.168.0.3 jitsi_jvb_server_id=jvb-2
```
Note that the server id `jvb-1` is reserved for the JVB instance running on the Matrix host and therefore should not be used as the id of an additional jvb host.
@ -159,38 +192,84 @@ Note that the server id `jvb-1` is reserved for the JVB instance running on the
The additional JVB will also need to expose the colibri web socket port and this can be done with the following variable:
```yaml
matrix_jitsi_jvb_container_colibri_ws_host_bind_port: 9090
jitsi_jvb_container_colibri_ws_host_bind_port: 9090
```
The JVB will also need to know where the prosody xmpp server is located, similar to the server id this can be set in the vars for the JVB by using the variable
`matrix_jitsi_xmpp_server`. The Jitsi prosody container is deployed on the matrix server by default so the value can be set to the matrix domain. For example:
The JVB will also need to know where the prosody xmpp server is located, similar to the server id this can be set in the vars for the JVB by using the variable
`jitsi_xmpp_server`. The Jitsi prosody container is deployed on the matrix server by default so the value can be set to the matrix domain. For example:
```yaml
matrix_jitsi_xmpp_server: "{{ matrix_domain }}"
jitsi_xmpp_server: "{{ matrix_domain }}"
```
However, it can also be set the ip address of the matrix server. This can be useful if you wish to use a private ip. For example:
```yaml
matrix_jitsi_xmpp_server: "192.168.0.1"
jitsi_xmpp_server: "192.168.0.1"
```
The nginx configuration will also need to be updated in order to deal with the additional JVB servers. This is achieved via its own configuration variable
`matrix_nginx_proxy_proxy_jitsi_additional_jvbs`, which contains a dictionary of server ids to ip addresses.
For the JVB to be able to contact the XMPP server, the latter must expose the XMPP port (5222). By default, the Matrix server does not expose the
port; only the XMPP container exposes it internally inside the host, which means that the first JVB (which runs on the Matrix server) can reach it but
the additional JVB cannot. The port is exposed by setting `jitsi_prosody_container_jvb_host_bind_port` like this:
For example,
``` yaml
matrix_nginx_proxy_proxy_jitsi_additional_jvbs:
jvb-2: 192.168.0.2
jvb-3: 192.168.0.3
```yaml
jitsi_prosody_container_jvb_host_bind_port: 5222
```
(The default is empty; if it's set then docker forwards the port.)
Applied together this will allow you to provision extra JVB instances which will register themselves with the prosody service and be available for jicofo
Applied together this will allow you to provision extra JVB instances which will register themselves with the prosody service and be available for jicofo
to route conferences too.
To make Traefik reverse-proxy to these additional JVBs (living on other hosts), **you would need to add the following Traefik configuration extension**:
```yaml
# Traefik proxying for additional JVBs. These can't be configured using Docker
# labels, like the first JVB is, because they run on different hosts, so we add
# the necessary configuration to the file provider.
devture_traefik_provider_configuration_extension_yaml: |
http:
routers:
{% for host in groups['jitsi_jvb_servers'] %}
additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-router:
entryPoints:
- "{{ devture_traefik_entrypoint_primary }}"
rule: "Host(`{{ jitsi_hostname }}`) && PathPrefix(`/colibri-ws/{{ hostvars[host]['jitsi_jvb_server_id'] }}/`)"
service: additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service
{% if devture_traefik_entrypoint_primary != 'web' %}
tls:
certResolver: "{{ devture_traefik_certResolver_primary }}"
{% endif %}
{% endfor %}
services:
{% for host in groups['jitsi_jvb_servers'] %}
additional-{{ hostvars[host]['jitsi_jvb_server_id'] }}-service:
loadBalancer:
servers:
- url: "http://{{ host }}:9090/"
{% endfor %}
```
## (Optional) Enable Gravatar
In the default Jisti Meet configuration, gravatar.com is enabled as an avatar service. This results in third party request leaking data to gravatar.
Since element already sends the url of configured Matrix avatars to Jitsi, we disabled gravatar.
To enable Gravatar set:
```yaml
jitsi_disable_gravatar: false
```
**Beware:** This leaks information to a third party, namely the Gravatar-Service (unless configured otherwise: gravatar.com).
Besides metadata, this includes the matrix user_id and possibly the room identifier (via `referrer` header).
## Apply changes
@ -214,7 +293,7 @@ You can use the self-hosted Jitsi server in multiple ways:
### Rebuilding your Jitsi installation
**If you ever run into any trouble** or **if you change configuration (`matrix_jitsi_*` variables) too much**, we urge you to rebuild your Jitsi setup.
**If you ever run into any trouble** or **if you change configuration (`jitsi_*` variables) too much**, we urge you to rebuild your Jitsi setup.
We normally don't require such manual intervention for other services, but Jitsi services generate a lot of configuration files on their own.
@ -222,7 +301,6 @@ These files are not all managed by Ansible (at least not yet), so you may someti
To rebuild your Jitsi configuration:
- SSH into the server and do this:
- stop all Jitsi services (`systemctl stop matrix-jitsi-*`).
- remove all Jitsi configuration & data (`rm -rf /matrix/jitsi`)
- ask Ansible to set up Jitsi anew and restart services (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-jitsi,start`)
- ask Ansible to stop all Jitsi services: `just run-tags stop-group --extra-vars=group=jitsi`
- SSH into the server and do this and remove all Jitsi configuration & data (`rm -rf /matrix/jitsi`)
- ask Ansible to set up Jitsi anew and restart services (`just install-service jitsi`)

View File

@ -8,7 +8,9 @@ If you decide that you'd like to let this playbook install it for you, you need
```yaml
matrix_synapse_ext_password_provider_ldap_enabled: true
matrix_synapse_ext_password_provider_ldap_uri: "ldap://ldap.mydomain.tld:389"
matrix_synapse_ext_password_provider_ldap_uri:
- "ldap://ldap-01.mydomain.tld:389"
- "ldap://ldap-02.mydomain.tld:389"
matrix_synapse_ext_password_provider_ldap_start_tls: true
matrix_synapse_ext_password_provider_ldap_base: "ou=users,dc=example,dc=com"
matrix_synapse_ext_password_provider_ldap_attributes_uid: "uid"

View File

@ -91,7 +91,7 @@ matrix_corporal_policy_provider_config: |
}
# Modify the policy below as you see fit
matrix_aux_file_definitions:
aux_file_definitions:
- dest: "{{ matrix_corporal_config_dir_path }}/policy.json"
content: |
{

View File

@ -0,0 +1,106 @@
# Setting up matrix-media-repo (optional)
[matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/) is a highly customizable multi-domain media repository for Matrix. Intended for medium to large environments consisting of several homeservers, this media repo de-duplicates media (including remote media) while being fully compliant with the specification.
Smaller/individual homeservers can still make use of this project's features, though it may be difficult to set up or have higher than expected resource consumption. Please do your research before deploying this as this project may not be useful for your environment.
For a simpler alternative (which allows you to offload your media repository storage to S3, etc.), you can [configure S3 storage](configuring-playbook-s3.md) instead of setting up matrix-media-repo.
## Quickstart
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_media_repo_enabled: true
# (optional) Turned off by default
# matrix_media_repo_metrics_enabled: true
```
The repo is pre-configured for integrating with the Postgres database, 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).
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.
## Configuring the media-repo
Additional common configuration options:
```yaml
# The postgres database pooling options
# The maximum number of connects to hold open. More of these allow for more concurrent
# processes to happen.
matrix_media_repo_database_max_connections: 25
# The maximum number of connects to leave idle. More of these reduces the time it takes
# to serve requests in low-traffic scenarios.
matrix_media_repo_database_max_idle_connections: 5
# These users have full access to the administrative functions of the media repository.
# See https://github.com/turt2live/matrix-media-repo/blob/release-v1.2.8/docs/admin.md for information on what these people can do. They must belong to one of the
# configured homeservers above.
matrix_media_repo_admins:
admins: []
# admins:
# - "@your_username:example.org"
# Datastores are places where media should be persisted. This isn't dedicated for just uploads:
# thumbnails and other misc data is also stored in these places. The media repo, when looking
# for a datastore to use, will always use the smallest datastore first.
matrix_media_repo_datastores:
datastores:
- type: file
enabled: true # Enable this to set up data storage.
# Datastores can be split into many areas when handling uploads. Media is still de-duplicated
# across all datastores (local content which duplicates remote content will re-use the remote
# content's location). This option is useful if your datastore is becoming very large, or if
# you want faster storage for a particular kind of media.
#
# The kinds available are:
# thumbnails - Used to store thumbnails of media (local and remote).
# remote_media - Original copies of remote media (servers not configured by this repo).
# local_media - Original uploads for local media.
# archives - Archives of content (GDPR and similar requests).
forKinds: ["thumbnails", "remote_media", "local_media", "archives"]
opts:
path: /data/media
- type: s3
enabled: false # Enable this to set up s3 uploads
forKinds: ["thumbnails", "remote_media", "local_media", "archives"]
opts:
# The s3 uploader needs a temporary location to buffer files to reduce memory usage on
# small file uploads. If the file size is unknown, the file is written to this location
# before being uploaded to s3 (then the file is deleted). If you aren't concerned about
# memory usage, set this to an empty string.
tempPath: "/tmp/mediarepo_s3_upload"
endpoint: sfo2.digitaloceanspaces.com
accessKeyId: ""
accessSecret: ""
ssl: true
bucketName: "your-media-bucket"
# An optional region for where this S3 endpoint is located. Typically not needed, though
# some providers will need this (like Scaleway). Uncomment to use.
#region: "sfo2"
# An optional storage class for tuning how the media is stored at s3.
# See https://aws.amazon.com/s3/storage-classes/ for details; uncomment to use.
#storageClass: STANDARD
# The media repo does support an IPFS datastore, but only if the IPFS feature is enabled. If
# the feature is not enabled, this will not work. Note that IPFS support is experimental at
# the moment and not recommended for general use.
#
# NOTE: Everything you upload to IPFS will be publicly accessible, even when the media repo
# puts authentication on the download endpoints. Only use this option for cases where you
# expect your media to be publicly accessible.
- type: ipfs
enabled: false # Enable this to use IPFS support
forKinds: ["local_media"]
# The IPFS datastore currently has no options. It will use the daemon or HTTP API configured
# in the IPFS section of your main config.
opts: {}
```
Full list of configuration options with documentation can be found in `roles/custom/matrix-media-repo/templates/defaults/main.yml`

View File

@ -4,6 +4,8 @@ The playbook can install and configure [matrix-registration](https://github.com/
**WARNING**: this is a poorly maintained and buggy project. It's better to avoid using it.
**WARNING**: this is not related to [matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md)
> matrix-registration is a simple python application to have a token based matrix registration.
Use matrix-registration to **create unique registration links**, which people can use to register on your Matrix server. It allows you to **keep your server's registration closed (private)**, but still allow certain people (these having a special link) to register a user account.

View File

@ -32,7 +32,18 @@ matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
'@YOUR_USERNAME:{{ matrix_domain }}': admin
```
## encryption
Encryption support is off by default. If you would like to enable encryption, add the following to your `vars.yml` file:
**for all bridges with encryption support**:
```yaml
matrix_bridges_encryption_enabled: true
```
**Alternatively**, for a specific bridge:
```yaml
matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
bridge:
@ -41,6 +52,24 @@ matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
default: true
```
## relay mode
Relay mode is off by default. If you would like to enable relay mode, add the following to your `vars.yml` file:
**for all bridges with relay mode support**:
```yaml
matrix_bridges_relay_enabled: true
```
**Alternatively**, for a specific bridge:
```yaml
matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
bridge:
relay:
enabled: true
```
You can only have one `matrix_mautrix_SERVICENAME_configuration_extension_yaml` definition in `vars.yml` per bridge, so if you need multiple pieces of configuration there, just merge them like this:

View File

@ -1,7 +1,6 @@
# Configure Nginx (optional, advanced)
By default, this playbook installs its own nginx webserver (in a Docker container) which listens on ports 80 and 443.
If that's alright, you can skip this.
**Note**: the playbook is [in the process of moving to Traefik](../CHANGELOG.md#reverse-proxy-configuration-changes-and-initial-traefik-support). Traefik is already the default reverse-proxy for new installations and existing users are also strongly encouraged to switch to Traefik. As such, this **nginx documentation below may be incomplete or misleading**.
## Using Nginx status

View File

@ -15,17 +15,23 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
```yaml
# Enabling it is the only required setting
matrix_ntfy_enabled: true
ntfy_enabled: true
# Some other options
matrix_server_fqn_ntfy: "ntfy.{{ matrix_domain }}"
matrix_ntfy_configuration_extension_yaml: |
log_level: DEBUG
# This is the default hostname.
# Uncomment the line below and change it, if you'd like.
# matrix_server_fqn_ntfy: "ntfy.{{ matrix_domain }}"
# Uncomment to enable the ntfy web app (disabled by default)
# ntfy_web_root: app # defaults to "disable"
# Uncomment and change to inject additional configuration options.
# ntfy_configuration_extension_yaml: |
# log_level: DEBUG
```
For a more complete list of variables that you could override, see `roles/custom/matrix-ntfy/defaults/main.yml`.
For a more complete list of variables that you could override, see the [`defaults/main.yml` file](https://gitlab.com/etke.cc/roles/ntfy/-/blob/main/defaults/main.yml) of the ntfy Ansible role.
For a complete list of ntfy config options that you could put in `matrix_ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options).
For a complete list of ntfy config options that you could put in `ntfy_configuration_extension_yaml`, see the [ntfy config documentation](https://ntfy.sh/docs/config/#config-options).
## Installing
@ -78,6 +84,12 @@ If the matrix app asks, "Choose a distributor: FCM Fallback or ntfy", then choos
If the matrix app doesn't seem to pick it up, try restarting it and try the Troubleshooting section below.
### Web App
ntfy also has a web app to subscribe to and push to topics from the browser. This may be helpful to further troubleshoot UnifiedPush problems or to use ntfy for other purposes. The web app only runs in the browser locally (after downloading the JavaScript).
The web app is disabled in this playbook by default as the expectation is that most users won't use it. You can either use the [official hosted one](https://ntfy.sh/app) (it supports using other public reachable ntfy instances) or host it yourself by setting `ntfy_web_root: "app"` and re-running Ansible.
## Troubleshooting

View File

@ -1,200 +1,49 @@
# Using your own webserver, instead of this playbook's nginx proxy (optional, advanced)
# Using your own webserver, instead of this playbook's Traefik reverse-proxy (optional, advanced)
**Note**: the playbook is [in the process of moving to Traefik](../CHANGELOG.md#reverse-proxy-configuration-changes-and-initial-traefik-support). The **documentation below may be incomplete or misleading**.
By default, this playbook installs its own nginx webserver (called `matrix-nginx-proxy`, in a Docker container) which listens on ports 80 and 443.
If that's alright, you can skip this.
If you don't want this playbook's nginx webserver to take over your server's 80/443 ports like that,
and you'd like to use your own webserver (be it nginx, Apache, Varnish Cache, etc.), you can.
Soon, this default will change and the playbook will install its own [Traefik](https://traefik.io/) reverse-proxy instead.
You should note, however, that the playbook's services work best when you keep using the integrated `matrix-nginx-proxy` webserver.
For example, disabling `matrix-nginx-proxy` when running a [Synapse worker setup for load-balancing](configuring-playbook-synapse.md#load-balancing-with-workers) (a more advanced, non-default configuration) is likely to cause various troubles (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090)). If you need a such more scalable setup, disabling `matrix-nginx-proxy` will be a bad idea. If yours will be a simple (default, non-worker-load-balancing) deployment, disabling `matrix-nginx-proxy` may be fine.
## Traefik
There are **2 ways you can go about it**, if you'd like to use your own webserver:
[Traefik](https://traefik.io/) will be the default reverse-proxy for the playbook in the near future.
- [Method 1: Disabling the integrated nginx reverse-proxy webserver](#method-1-disabling-the-integrated-nginx-reverse-proxy-webserver)
There are 2 ways to use Traefik with this playbook, as described below.
- [Method 2: Fronting the integrated nginx reverse-proxy webserver with another reverse-proxy](#method-2-fronting-the-integrated-nginx-reverse-proxy-webserver-with-another-reverse-proxy)
### Traefik managed by the playbook
## Method 1: Disabling the integrated nginx reverse-proxy webserver
This method is about completely disabling the integrated nginx reverse-proxy webserver and replicating its behavior using another webserver.
For an alternative, make sure to check Method #2 as well.
### Preparation
No matter which external webserver you decide to go with, you'll need to:
1) Make sure your web server user (something like `http`, `apache`, `www-data`, `nginx`) is part of the `matrix` group. You should run something like this: `usermod -a -G matrix nginx`. This allows your webserver user to access files owned by the `matrix` group. When using an external nginx webserver, this allows it to read configuration files from `/matrix/nginx-proxy/conf.d`. When using another server, it would make other files, such as `/matrix/static-files/.well-known`, accessible to it.
2) Edit your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`)
- to disable the integrated nginx server:
```yaml
matrix_nginx_proxy_enabled: false
```
- if using an external server on another host, add the `<service>_http_host_bind_port` or `<service>_http_bind_port` variables for the services that will be exposed by the external server on the other host. The actual name of the variable is listed in the `roles/<service>/defaults/vars.yml` file for each service. Most variables follow the `<service>_http_host_bind_port` format.
These variables will make Docker expose the ports on all network interfaces instead of localhost only.
[Keep in mind that there are some security concerns if you simply proxy everything.](https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints)
Here are the variables required for the default configuration (Synapse and Element)
```
matrix_synapse_reverse_proxy_companion_container_client_api_host_bind_port: '0.0.0.0:8008'
matrix_synapse_reverse_proxy_companion_container_federation_api_host_bind_port: '0.0.0.0:8048'
matrix_client_element_container_http_host_bind_port: "0.0.0.0:8765"
```
3) **If you'll manage SSL certificates by yourself**, edit your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) to disable SSL certificate retrieval:
To switch to Traefik now, use configuration like this:
```yaml
matrix_ssl_retrieval_method: none
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
devture_traefik_config_certificatesResolvers_acme_email: YOUR_EMAIL_ADDRESS
```
**Note**: During [installation](installing.md), unless you've disabled SSL certificate management (`matrix_ssl_retrieval_method: none`), the playbook would need 80 to be available, in order to retrieve SSL certificates. **Please manually stop your other webserver while installing**. You can start it back up afterwards.
This will install Traefik in the place of `matrix-nginx-proxy`. Traefik will manage SSL certificates for all services seamlessly.
### Using your own external nginx webserver
**Note**: during the transition period, `matrix-nginx-proxy` will still be installed in local-only mode. Do not be alarmed to see `matrix-nginx-proxy` running even when you've chosen Traefik as your reverse-proxy. In the future, we'll be able to run without nginx, but we're not there yet.
Once you've followed the [Preparation](#preparation) guide above, it's time to set up your external nginx server.
Even with `matrix_nginx_proxy_enabled: false`, the playbook still generates some helpful files for you in `/matrix/nginx-proxy/conf.d`.
Those configuration files are adapted for use with an external web server (one not running in the container network).
You can most likely directly use the config files installed by this playbook at: `/matrix/nginx-proxy/conf.d`. Just include them in your own `nginx.conf` like this: `include /matrix/nginx-proxy/conf.d/*.conf;`
Note that if your nginx version is old, it might not like our default choice of SSL protocols (particularly the fact that the brand new `TLSv1.3` protocol is enabled). You can override the protocol list by redefining the `matrix_nginx_proxy_ssl_protocols` variable. Example:
### Traefik managed by you
```yaml
# Custom protocol list (removing `TLSv1.3`) to suit your nginx version.
matrix_nginx_proxy_ssl_protocols: "TLSv1.2"
matrix_playbook_reverse_proxy_type: other-traefik-container
matrix_playbook_reverse_proxyable_services_additional_network: your-traefik-network
devture_traefik_certs_dumper_ssl_dir_path: "/path/to/your/traefiks/acme.json/directory"
```
If you are experiencing issues, try updating to a newer version of Nginx. As a data point in May 2021 a user reported that Nginx 1.14.2 was not working for them. They were getting errors about socket leaks. Updating to Nginx 1.19 fixed their issue.
In this mode all roles will still have Traefik labels attached. You will, however, need to configure your Traefik instance and its entrypoints.
### Using your own external Apache webserver
By default, the playbook congiures services use a `web-secure` (443) and `matrix-federation` (8448) entrypoints, as well as a `default` certificate resolver.
Once you've followed the [Preparation](#preparation) guide above, you can take a look at the [examples/apache](../examples/apache) directory for a sample configuration.
You need to configure 3 entrypoints for your Traefik server: `web` (TCP port `80`), `web-secure` (TCP port `443`) and `matrix-federation` (TCP port `8448`).
### Using your own external caddy webserver
After following the [Preparation](#preparation) guide above, you can take a look at the [examples/caddy](../examples/caddy) directory and [examples/caddy2](../examples/caddy2) directory for a sample configuration for Caddy v1 and v2, respectively.
### Using your own HAproxy reverse proxy
After following the [Preparation](#preparation) guide above, you can take a look at the [examples/haproxy](../examples/haproxy) directory for a sample configuration. In this case HAproxy is used as a reverse proxy and a simple Nginx container is used to serve statically `.well-known` files.
### Using another external webserver
Feel free to look at the [examples/apache](../examples/apache) directory, or the [template files in the matrix-nginx-proxy role](../roles/custom/matrix-nginx-proxy/templates/nginx/conf.d/).
## Method 2: Fronting the integrated nginx reverse-proxy webserver with another reverse-proxy
This method is about leaving the integrated nginx reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.).
If you wish to use another webserver, the integrated nginx reverse-proxy webserver usually gets in the way because it attempts to fetch SSL certificates and binds to ports 80, 443 and 8448 (if Matrix Federation is enabled).
You can disable such behavior and make the integrated nginx reverse-proxy webserver only serve traffic locally (or over a local network).
You would need some configuration like this:
```yaml
# Do not retrieve SSL certificates. This shall be managed by another webserver or other means.
matrix_ssl_retrieval_method: none
# Do not try to serve HTTPS, since we have no SSL certificates.
# Disabling this also means services will be served on the HTTP port
# (`matrix_nginx_proxy_container_http_host_bind_port`).
matrix_nginx_proxy_https_enabled: false
# Do not listen for HTTP on port 80 globally (default), listen on the loopback interface.
# If you'd like, you can make it use the local network as well and reverse-proxy from another local machine.
matrix_nginx_proxy_container_http_host_bind_port: '127.0.0.1:81'
# Likewise, expose the Matrix Federation port on the loopback interface.
# Since `matrix_nginx_proxy_https_enabled` is set to `false`, this federation port will serve HTTP traffic.
# If you'd like, you can make it use the local network as well and reverse-proxy from another local machine.
#
# You'd most likely need to expose it publicly on port 8448 (8449 was chosen for the local port to prevent overlap).
matrix_nginx_proxy_container_federation_host_bind_port: '127.0.0.1:8449'
# Coturn relies on SSL certificates that have already been obtained.
# Since we don't obtain any certificates (`matrix_ssl_retrieval_method: none` above), it won't work by default.
# An alternative is to tweak some of: `matrix_coturn_tls_enabled`, `matrix_coturn_tls_cert_path` and `matrix_coturn_tls_key_path`.
matrix_coturn_enabled: false
# Trust the reverse proxy to send the correct `X-Forwarded-Proto` header as it is handling the SSL connection.
matrix_nginx_proxy_trust_forwarded_proto: true
# Trust and use the other reverse proxy's `X-Forwarded-For` header.
matrix_nginx_proxy_x_forwarded_for: '$proxy_add_x_forwarded_for'
```
With this, nginx would still be in use, but it would not bother with anything SSL related or with taking up public ports.
All services would be served locally on `127.0.0.1:81` and `127.0.0.1:8449` (as per the example configuration above).
You can then set up another reverse-proxy server on ports 80/443/8448 for all of the expected domains and make traffic go to these local ports.
The expected domains vary depending on the services you have enabled (`matrix.DOMAIN` for sure; `element.DOMAIN`, `dimension.DOMAIN` and `jitsi.DOMAIN` are optional).
### Sample configuration for running behind Traefik 2.0
Below is a sample configuration for using this playbook with a [Traefik](https://traefik.io/) 2.0 reverse proxy.
```yaml
# Disable generation and retrieval of SSL certs
matrix_ssl_retrieval_method: none
# Configure Nginx to only use plain HTTP
matrix_nginx_proxy_https_enabled: false
# Don't bind any HTTP or federation port to the host
# (Traefik will proxy directly into the containers)
matrix_nginx_proxy_container_http_host_bind_port: ''
matrix_nginx_proxy_container_federation_host_bind_port: ''
# Trust the reverse proxy to send the correct `X-Forwarded-Proto` header as it is handling the SSL connection.
matrix_nginx_proxy_trust_forwarded_proto: true
# Trust and use the other reverse proxy's `X-Forwarded-For` header.
matrix_nginx_proxy_x_forwarded_for: '$proxy_add_x_forwarded_for'
# Disable Coturn because it needs SSL certs
# (Clients can, though exposing IP address, use Matrix.org TURN)
matrix_coturn_enabled: false
# All containers need to be on the same Docker network as Traefik
# (This network should already exist and Traefik should be using this network)
matrix_docker_network: 'traefik'
matrix_nginx_proxy_container_extra_arguments:
# May be unnecessary depending on Traefik config, but can't hurt
- '--label "traefik.enable=true"'
# The Nginx proxy container will receive traffic from these subdomains
- '--label "traefik.http.routers.matrix-nginx-proxy.rule=Host(`{{ matrix_server_fqn_matrix }}`,`{{ matrix_server_fqn_element }}`,`{{ matrix_server_fqn_dimension }}`,`{{ matrix_server_fqn_jitsi }}`)"'
# (The 'web-secure' entrypoint must bind to port 443 in Traefik config)
- '--label "traefik.http.routers.matrix-nginx-proxy.entrypoints=web-secure"'
# (The 'default' certificate resolver must be defined in Traefik config)
- '--label "traefik.http.routers.matrix-nginx-proxy.tls.certResolver=default"'
# Traefik requires that we declare which service this router is using
- '--label "traefik.http.routers.matrix-nginx-proxy.service=matrix-nginx-proxy"'
# The Nginx proxy container uses port 8080 internally
- '--label "traefik.http.services.matrix-nginx-proxy.loadbalancer.server.port=8080"'
# Federation
- '--label "traefik.http.routers.matrix-nginx-proxy-federation.rule=Host(`{{ matrix_server_fqn_matrix }}`)"'
# (The 'federation' entrypoint must bind to port 8448 in Traefik config)
- '--label "traefik.http.routers.matrix-nginx-proxy-federation.entrypoints=federation"'
# (The 'default' certificate resolver must be defined in Traefik config)
- '--label "traefik.http.routers.matrix-nginx-proxy-federation.tls.certResolver=default"'
# Traefik requires that we declare which service this router is using
- '--label "traefik.http.routers.matrix-nginx-proxy-federation.service=matrix-nginx-proxy-federation"'
# The Nginx proxy container uses port `matrix_nginx_proxy_proxy_matrix_federation_port (8448) internally
- '--label "traefik.http.services.matrix-nginx-proxy-federation.loadbalancer.server.port={{ matrix_nginx_proxy_proxy_matrix_federation_port }}"'
- '--label "traefik.http.services.matrix-nginx-proxy-federation.loadbalancer.server.scheme={{ "https" if matrix_nginx_proxy_https_enabled else "http" }}"'
```
This method uses labels attached to the Nginx and Synapse containers to provide the Traefik Docker provider with the information it needs to proxy `matrix.DOMAIN`, `element.DOMAIN`, `dimension.DOMAIN` and `jitsi.DOMAIN`. Some [static configuration](https://docs.traefik.io/v2.0/reference/static-configuration/file/) is required in Traefik; namely, having endpoints on ports 443 and 8448 and having a certificate resolver.
Below is some configuration for running Traefik yourself, although we recommend using [Traefik managed by the playbook](#traefik-managed-by-the-playbook).
Note that this configuration on its own does **not** redirect traffic on port 80 (plain HTTP) to port 443 for HTTPS, which may cause some issues, since the built-in Nginx proxy usually does this. If you are not already doing this in Traefik, it can be added to Traefik in a [file provider](https://docs.traefik.io/v2.0/providers/file/) as follows:
@ -224,7 +73,7 @@ version: "3.3"
services:
traefik:
image: "traefik:v2.3"
image: "docker.io/traefik:v2.9.6"
restart: always
container_name: "traefik"
networks:
@ -250,3 +99,128 @@ networks:
traefik:
external: true
```
## Another webserver
If you don't wish to use Traefik or `matrix-nginx-proxy`, you can also use your own webserver.
Doing this is possible, but requires manual work.
There are 2 ways to go about it:
- (recommended) [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) - using a playbook-managed reverse-proxy (either `matrix-nginx-proxy` or Traefik), disabling SSL termination for it, exposing this reverse-proxy on a few local ports (e.g. `127.0.0.1:81`, etc.) and forwarding traffic from your own webserver to those few ports
- (difficult) [Using no reverse-proxy on the Matrix side at all](#using-no-reverse-proxy-on-the-matrix-side-at-all) disabling all playbook-managed reverse-proxies (no `matrix-nginx-proxy`, no Traefik)
### Fronting the integrated reverse-proxy webserver with another reverse-proxy
This method is about leaving the integrated reverse-proxy webserver be, but making it not get in the way (using up important ports, trying to retrieve SSL certificates, etc.).
If you wish to use another webserver, the integrated reverse-proxy webserver usually gets in the way because it attempts to fetch SSL certificates and binds to ports 80, 443 and 8448 (if Matrix Federation is enabled).
You can disable such behavior and make the integrated reverse-proxy webserver only serve traffic locally (or over a local network).
This is the recommended way for using another reverse-proxy, because the integrated one would act as a black box and wire all Matrix services correctly. You would only need to reverse-proxy a few individual domains and ports over to it.
To front Traefik with another reverse-proxy, you would need some configuration like this:
```yaml
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
# Ensure that public urls use https
matrix_playbook_ssl_enabled: true
# Disable the web-secure (port 443) endpoint, which also disables SSL certificate retrieval
devture_traefik_config_entrypoint_web_secure_enabled: false
# If your reverse-proxy runs on another machine, consider using `0.0.0.0:81`, just `81` or `SOME_IP_ADDRESS_OF_THIS_MACHINE:81`
devture_traefik_container_web_host_bind_port: '127.0.0.1:81'
# We bind to `127.0.0.1` by default (see above), so trusting `X-Forwarded-*` headers from
# a reverse-proxy running on the local machine is safe enough.
devture_traefik_config_entrypoint_web_forwardedHeaders_insecure: true
# Or, if you're publishing the port (`devture_traefik_container_web_host_bind_port` above) to a public network interfaces:
# - remove the `devture_traefik_config_entrypoint_web_forwardedHeaders_insecure` variable definition above
# - uncomment and adjust the line below
# devture_traefik_config_entrypoint_web_forwardedHeaders_trustedIPs: ['IP-ADDRESS-OF-YOUR-REVERSE-PROXY']
# Likewise (to `devture_traefik_container_web_host_bind_port` above),
# if your reverse-proxy runs on another machine, consider changing the `host_bind_port` setting below.
devture_traefik_additional_entrypoints_auto:
- name: matrix-federation
port: 8449
host_bind_port: '127.0.0.1:8449'
config: {}
# If your reverse-proxy runs on another machine, remove the config above and use this config instead:
# config:
# forwardedHeaders:
# insecure: true
# # trustedIPs: ['IP-ADDRESS-OF-YOUR-REVERSE-PROXY']
```
For an example where the playbook's Traefik reverse-proxy is fronted by another reverse-proxy running on the same server, see [Nginx reverse-proxy fronting the playbook's Traefik](../examples/nginx/README.md) or [Caddy reverse-proxy fronting the playbook's Traefik](../examples/caddy2/README.md).
### Using no reverse-proxy on the Matrix side at all
Instead of [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy), you can also go another way -- completely disabling the playbook-managed reverse-proxy. You would then need to reverse-proxy from your own webserver directly to Matrix services.
This is more difficult, as you would need to handle the configuration for each service manually. Enabling additional services would come with extra manual work you need to do.
If your webserver is on the same machine, sure your web server user (something like `http`, `apache`, `www-data`, `nginx`) is part of the `matrix` group. You should run something like this: `usermod -a -G matrix nginx`. This allows your webserver user to access files owned by the `matrix` group. When using an external nginx webserver, this allows it to read configuration files from `/matrix/nginx-proxy/conf.d`. When using another server, it would make other files, such as `/matrix/static-files/.well-known`, accessible to it.
#### Using your own nginx reverse-proxy running on the same machine
**WARNING**: this type of setup is not maintained and will be removed in the future. We recommend that you go for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instead.
If you'll be using `nginx` running on the same machine (not in a container), you can make the playbook help you generate configuration for `nginx` with this configuration:
```yaml
matrix_playbook_reverse_proxy_type: other-nginx-non-container
# If you want https configured in /matrix/nginx-proxy/conf.d/
matrix_nginx_proxy_https_enabled: true
# If you will manage SSL certificates yourself, uncomment the line below
# matrix_ssl_retrieval_method: none
# If you're using an old nginx version, consider using a custom protocol list
# (removing `TLSv1.3` that is enabled by default) to suit your nginx version.
# matrix_nginx_proxy_ssl_protocols: "TLSv1.2"
```
You can most likely directly use the config files installed by this playbook at: `/matrix/nginx-proxy/conf.d`. Just include them in your own `nginx.conf` like this: `include /matrix/nginx-proxy/conf.d/*.conf;`
#### Using your own reverse-proxy running on the same machine or elsewhere
**WARNING**: this is difficult to set up, likely not very well supported and will be removed in the future. We recommend that you go for [Fronting the integrated reverse-proxy webserver with another reverse-proxy](#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instead.
To reverse-proxy manually for each service, use configuration like this:
```yaml
# If your reverse-proxy runs on the same machine:
matrix_playbook_reverse_proxy_type: other-on-same-host
# Or, if it runs on another machine:
# matrix_playbook_reverse_proxy_type: other-on-another-host
# Or, optionally customize the network interface prefix (note the trailing `:` character).
# For other-on-same-host, the interface defaults to `127.0.0.1:`.
# For other-on-another-host, the interface defaults to `0.0.0.0:`.
# matrix_playbook_service_host_bind_interface_prefix: '192.168.30.4:'
```
With this configuration, each service will be exposed on a custom port. Example:
- Synapse will be exposed on port `8008`
- [Grafana](configuring-playbook-prometheus-grafana.md) will be exposed on port `3000`
- [synapse-admin](configuring-playbook-synapse-admin.md) will be exposed on port `8766`
You can capture traffic for these services and forward it to their port.
Some of these services are configured with certain default expecations with regard to hostname, path, etc., so it's not completely arbitrary where you can host them (unless you change the defaults).
For each new playbook service that you enable, you'll need special handling.
The [`examples/`](../examples/) directory contains examples for various servers: Caddy, Apache, HAproxy, Nginx, etc.

View File

@ -1,6 +1,6 @@
# Setting up postgres backup (optional)
The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you.
The playbook can install and configure [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) for you via the [com.devture.ansible.role.postgres_backup](https://github.com/devture/com.devture.ansible.role.postgres_backup) Ansible role.
For a more complete backup solution (one that includes not only Postgres, but also other configuration/data files), you may wish to look into [borg backup](configuring-playbook-backup-borg.md) instead.
@ -10,7 +10,7 @@ For a more complete backup solution (one that includes not only Postgres, but al
Minimal working configuration (`inventory/host_vars/matrix.DOMAIN/vars.yml`) to enable Postgres backup:
```yaml
matrix_postgres_backup_enabled: true
devture_postgres_backup_enabled: true
```
Refer to the table below for additional configuration variables and their default values.
@ -18,12 +18,13 @@ Refer to the table below for additional configuration variables and their defaul
| Name | Default value | Description |
| :-------------------------------- | :--------------------------- | :--------------------------------------------------------------- |
|`matrix_postgres_backup_enabled`|`false`|Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups|
|`matrix_postgres_backup_schedule`| `'@daily'` |Cron-schedule specifying the interval between postgres backups.|
|`matrix_postgres_backup_keep_days`|`7`|Number of daily backups to keep|
|`matrix_postgres_backup_keep_weeks`|`4`|Number of weekly backups to keep|
|`matrix_postgres_backup_keep_months`|`12`|Number of monthly backups to keep|
|`matrix_postgres_backup_path` | `"{{ matrix_base_data_path }}/postgres-backup"` | Storagepath for the database backups|
|`devture_postgres_backup_enabled`|`false`|Set to true to use [docker-postgres-backup-local](https://github.com/prodrigestivill/docker-postgres-backup-local) to create automatic database backups|
|`devture_postgres_backup_schedule`| `'@daily'` |Cron-schedule specifying the interval between postgres backups.|
|`devture_postgres_backup_keep_days`|`7`|Number of daily backups to keep|
|`devture_postgres_backup_keep_weeks`|`4`|Number of weekly backups to keep|
|`devture_postgres_backup_keep_months`|`12`|Number of monthly backups to keep|
|`devture_postgres_backup_base_path` | `"{{ matrix_base_data_path }}/postgres-backup"` | Base path for postgres-backup. Also see `devture_postgres_backup_data_path` |
|`devture_postgres_backup_data_path` | `"{{ devture_postgres_backup_base_path }}/data"` | Storage path for postgres-backup database backups |
## Installing

View File

@ -7,24 +7,27 @@ You can enable this with the following settings in your configuration file (`inv
Remember to add `stats.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
```yaml
matrix_prometheus_enabled: true
prometheus_enabled: true
# You can remove this, if unnecessary.
matrix_prometheus_node_exporter_enabled: true
prometheus_node_exporter_enabled: true
# You can remove this, if unnecessary.
matrix_prometheus_postgres_exporter_enabled: true
prometheus_postgres_exporter_enabled: true
matrix_grafana_enabled: true
# You can remove this, if unnecessary.
matrix_prometheus_nginxlog_exporter_enabled: true
matrix_grafana_anonymous_access: false
grafana_enabled: true
grafana_anonymous_access: false
# This has no relation to your Matrix user id. It can be any username you'd like.
# Changing the username subsequently won't work.
matrix_grafana_default_admin_user: "some_username_chosen_by_you"
grafana_default_admin_user: "some_username_chosen_by_you"
# Changing the password subsequently won't work.
matrix_grafana_default_admin_password: "some_strong_password_chosen_by_you"
grafana_default_admin_password: "some_strong_password_chosen_by_you"
```
By default, a [Grafana](https://grafana.com/) web user-interface will be available at `https://stats.<your-domain>`.
@ -36,24 +39,25 @@ The retention policy of Prometheus metrics is [15 days by default](https://prome
Name | Description
-----|----------
`matrix_prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about.
`matrix_prometheus_node_exporter_enabled`|[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures
`matrix_prometheus_postgres_exporter_enabled`|[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus.
`matrix_grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.<your-domain>` subdomain) the dashboards with the graphs that we're interested in
`matrix_grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option.
`matrix_grafana_default_admin_user`<br>`matrix_grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here
`prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about.
`prometheus_node_exporter_enabled`|[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures
`prometheus_postgres_exporter_enabled`|[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus.
`matrix_prometheus_nginxlog_exporter_enabled`|[NGINX Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose NGINX logs to Prometheus.
`grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.<your-domain>` subdomain) the dashboards with the graphs that we're interested in
`grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option.
`grafana_default_admin_user`<br>`grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here
## Security and privacy
Metrics and resulting graphs can contain a lot of information. This includes system specs but also usage patterns. This applies especially to small personal/family scale homeservers. Someone might be able to figure out when you wake up and go to sleep by looking at the graphs over time. Think about this before enabling anonymous access. And you should really not forget to change your Grafana password.
Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `matrix_prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source.
Most of our docker containers run with limited system access, but the `prometheus-node-exporter` has access to the host network stack and (readonly) root filesystem. This is required to report on them. If you don't like that, you can set `prometheus_node_exporter_enabled: false` (which is actually the default). You will still get Synapse metrics with this container disabled. Both of the dashboards will always be enabled, so you can still look at historical data after disabling either source.
## Collecting metrics to an external Prometheus server
**If the integrated Prometheus server is enabled** (`matrix_prometheus_enabled: true`), metrics are collected by it from each service via communication that happens over the container network. Each service does not need to expose its metrics "publicly".
**If the integrated Prometheus server is enabled** (`prometheus_enabled: true`), metrics are collected by it from each service via communication that happens over the container network. Each service does not need to expose its metrics "publicly".
When you'd like **to collect metrics from an external Prometheus server**, you need to expose service metrics outside of the container network.
@ -70,14 +74,16 @@ Name | Description
`matrix_nginx_proxy_proxy_matrix_metrics_basic_auth_raw_content`|Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs. If you only need one credential, use `matrix_nginx_proxy_proxy_matrix_metrics_basic_auth_username` and `matrix_nginx_proxy_proxy_matrix_metrics_basic_auth_password` instead.
`matrix_synapse_metrics_enabled`|Set this to `true` to make Synapse expose metrics (locally, on the container network)
`matrix_synapse_metrics_proxying_enabled`|Set this to `true` to expose Synapse's metrics on `https://matrix.DOMAIN/metrics/synapse/main-process` and `https://matrix.DOMAIN/metrics/synapse/worker/TYPE-ID` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`). Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`).
`matrix_prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network)
`matrix_prometheus_node_exporter_metrics_proxying_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.DOMAIN/metrics/node-exporter` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`matrix_prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network)
`matrix_prometheus_postgres_exporter_metrics_proxying_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.DOMAIN/metrics/postgres-exporter` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network)
`matrix_prometheus_services_proxy_connect_prometheus_node_exporter_metrics_proxying_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.DOMAIN/metrics/node-exporter` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.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_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.DOMAIN/metrics/postgres-exporter` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`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` (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`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. Only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`
`matrix_nginx_proxy_proxy_matrix_metrics_additional_user_location_configuration_blocks`|Add nginx `location` blocks to this list if you'd like to expose additional exporters manually (see below)
`matrix_media_repo_metrics_enabled`|Set this to `true` to make media-repo expose metrics (locally, on the container network)
Example for how to make use of `matrix_nginx_proxy_proxy_matrix_metrics_additional_user_location_configuration_blocks` for exposing additional metrics locations:
```nginx

View File

@ -0,0 +1,59 @@
# Enabling metrics and graphs for NginX logs (optional)
It can be useful to have some (visual) insight into NignX logs.
This adds [prometheus-nginxlog-exporter](https://github.com/martin-helmich/prometheus-nginxlog-exporter/) to your matrix deployment.
It will provide a prometheus 'metrics' endpoint exposing data from both the `matrix-nginx-proxy` and `matrix-synapse-reverse-proxy-companion` logs and automatically aggregates the data with prometheus.
Optionally it visualizes the data, if [`matrix-grafana`](configuring-playbook-prometheus-grafana.md) is enabled, by means of a dedicated Grafana dashboard named `NGINX PROXY`
You can enable this role by adding the following settings in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_prometheus_nginxlog_exporter_enabled: true
# required depency
prometheus_enabled: true
# optional for visualization
grafana_enabled: true
```
x | Prerequisites | Variable | Description
|:--:|:--:|:--:|:--|
**REQUIRED** | `matrix-prometheus`| `prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about.
_Optional_ | [`matrix-grafana`](configuring-playbook-prometheus-grafana.md) | [`grafana_enabled`](configuring-playbook-prometheus-grafana.md)|[Grafana](https://grafana.com) is the visual component. It shows (on the `stats.<your-domain>` subdomain) graphs that we're interested in. When enabled the `NGINX PROXY` dashboard is automatically added.
## Docker Image Compatibility
At the moment of writing only images for `amd64` and `arm64` architectures are available
The playbook currently does not support building an image.
You can however use a custom-build image by setting
```yaml
matrix_prometheus_nginxlog_exporter_docker_image_arch_check_enabled: false
matrix_prometheus_nginxlog_exporter_docker_image: path/to/docker/image:tag
```
## Security and privacy
Metrics and resulting graphs can contain a lot of information. NginX logs contain information like IP address, URLs, UserAgents and more. This information can reveal usage patterns and could be considered Personally Identifiable Information (PII). Think about this before enabling (anonymous) access.
Please make sure you change the default Grafana password.
## Save metrics on an external Prometheus server
The playbook will automatically integrate the metrics into the Prometheus server provided with this playbook. You can choose to save data on an external Prometheus instance.
The metrics of this role will be exposed on `https://matrix.DOMAIN/metrics/nginxlog` when setting
```yaml
matrix_prometheus_nginxlog_exporter_metrics_proxying_enabled: true
# required dependency
matrix_nginx_proxy_proxy_matrix_metrics_enabled: true
```
The playbook can provide a single endpoint (`https://matrix.DOMAIN/metrics/*`), under which various services may expose their metrics (e.g. `/metrics/node-exporter`, `/metrics/postgres-exporter`, `/metrics/nginxlog`, etc). To enable this `/metrics/*` feature, use `matrix_nginx_proxy_proxy_matrix_metrics_enabled`. To protect access using [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication), see `matrix_nginx_proxy_proxy_matrix_metrics_basic_auth_enabled`.
The following variables may be of interest:
Name | Description
-----|----------
`matrix_nginx_proxy_proxy_matrix_metrics_enabled`|Set this to `true` to enable metrics exposure for various services on `https://matrix.DOMAIN/metrics/*`. Refer to the individual `matrix_SERVICE_metrics_proxying_enabled` variables below for exposing metrics for each individual service.

View File

@ -6,17 +6,17 @@ You can enable this with the following settings in your configuration file (`inv
```yaml
matrix_prometheus_postgres_exporter_enabled: true
prometheus_postgres_exporter_enabled: true
```
## What does it do?
Name | Description
-----|----------
`matrix_prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'
`matrix_prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'
`matrix_prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook
`matrix_prometheus_postgres_exporter_metrics_proxying_enabled`|If set to `true`, exposes the Postgres exporter metrics on `https://matrix.DOMAIN/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
`prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false'
`prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter'
`prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook
`matrix_prometheus_services_proxy_connect_prometheus_postgres_exporter_metrics_proxying_enabled`|If set to `true`, exposes the Postgres exporter metrics on `https://matrix.DOMAIN/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) (only takes effect if `matrix_nginx_proxy_proxy_matrix_metrics_enabled: true`)
## More information

View File

@ -0,0 +1,65 @@
# Setting up Rageshake (optional)
The playbook can install and configure the [rageshake](https://github.com/matrix-org/rageshake) bug report server for you.
This is useful if you're developing your own applications and would like to collect bug reports for them.
## Decide on a domain and path
By default, Rageshake is configured to use its own dedicated domain (`rageshake.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
You can override the domain and path like this:
```yaml
# Switch to the domain used for Matrix services (`matrix.DOMAIN`),
# so we won't need to add additional DNS records for Rageshake.
matrix_rageshake_hostname: "{{ matrix_server_fqn_matrix }}"
# Expose under the /rageshake subpath
matrix_rageshake_path_prefix: /rageshake
```
**NOTE**: When using `matrix-nginx-proxy` instead of Traefik, you won't be able to override the path prefix. You can only override the domain, but that needs to happen using another variable: `matrix_server_fqn_rageshake` (e.g. `matrix_server_fqn_rageshake: "some-domain.{{ matrix_domain }}"`).
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Rageshake domain to the Matrix server.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
## Enabling the Rageshake service
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
```yaml
matrix_rageshake_enabled: true
```
Rageshake has various options which don't have dedicated Ansible variables. You can see the full list of options in the [`rageshake.sample.yaml` file](https://github.com/matrix-org/rageshake/blob/master/rageshake.sample.yaml).
To set these, you can make use of the `matrix_rageshake_configuration_extension_yaml` variable like this:
```yaml
matrix_rageshake_configuration_extension_yaml: |
github_token: secrettoken
github_project_mappings:
my-app: octocat/HelloWorld
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
Refer to the [rageshake documentation](https://github.com/matrix-org/rageshake) for available APIs, etc.

View File

@ -5,11 +5,13 @@ If that's alright, you can skip this.
As an alternative to storing media files on the local filesystem, you can store them on [Amazon S3](https://aws.amazon.com/s3/) or another S3-compatible object store.
You can do this either by sticking to Synapse's media repository and making that use S3 (read below for this method), or by switching to an external media storage implementation like [matrix-media-repo](configuring-playbook-matrix-media-repo.md).
First, [choose an Object Storage provider](#choosing-an-object-storage-provider).
Then, [create the S3 bucket](#bucket-creation-and-security-configuration).
Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md) or [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)).
Finally, [set up S3 storage for Synapse](#setting-up) (with [Goofys](configuring-playbook-s3-goofys.md), [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md), or use s3 datastore with the [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html)).
## Choosing an Object Storage provider
@ -105,3 +107,4 @@ To set up Synapse to store files in S3, follow the instructions for the method o
- using [synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md) (recommended)
- using [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md)
- using [matrix-media-repo](https://docs.t2bot.io/matrix-media-repo/configuration/s3-datastore.html)

View File

@ -0,0 +1,63 @@
# Setting up Sliding Sync Proxy (optional)
The playbook can install and configure [sliding-sync](https://github.com/matrix-org/sliding-sync) proxy for you.
Sliding Sync is an implementation of [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md) and a prerequisite for running the new (**still beta**) Element X clients ([Element X iOS](https://github.com/vector-im/element-x-ios) and [Element X Android](https://github.com/vector-im/element-x-android)).
See the project's [documentation](https://github.com/matrix-org/sliding-sync) to learn more.
Element X iOS is [available on TestFlight](https://testflight.apple.com/join/uZbeZCOi).
Element X Android is [available on the Github Releases page](https://github.com/vector-im/element-x-android/releases).
**NOTE**: The Sliding Sync proxy **only works with the Traefik reverse-proxy**. If you have an old server installation (from the time `matrix-nginx-proxy` was our default reverse-proxy - `matrix_playbook_reverse_proxy_type: playbook-managed-nginx`), you won't be able to use Sliding Sync.
**NOTE**: The sliding-sync proxy is **not required** when using the **Conduit homeserver**. Starting from version `0.6.0` Conduit has native support for some sliding sync features. If there are issues with the native implementation, you might have a better experience when enabling the sliding-sync proxy anyway.
## Decide on a domain and path
By default, the Sliding Sync proxy is configured to be served on the Matrix domain (`matrix.DOMAIN`, controlled by `matrix_server_fqn_matrix`), under the `/sliding-sync` path.
This makes it easy to set it up, **without** having to [adjust your DNS records](#adjusting-dns-records).
If you'd like to run the Sliding Sync proxy on another hostname or path, use the `matrix_sliding_sync_hostname` and `matrix_sliding_sync_path_prefix` variables.
## Adjusting DNS records
If you've changed the default hostame, **you may need to adjust your DNS** records.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_sliding_sync_enabled: true
```
## Installing
After potentially [adjusting DNS records](#adjusting-dns-records) and configuring the playbook, run the [installation](installing.md) command again: `just install-all`.
### External databases
Please note that, if your setup utilizes an external database, you must also establish configuration for the sliding sync proxy. Alter the defaults below to suit your configuration:
```yaml
matrix_sliding_sync_database_username: 'matrix_sliding_sync'
matrix_sliding_sync_database_password: ''
matrix_sliding_sync_database_hostname: ''
matrix_sliding_sync_database_port: 5432
matrix_sliding_sync_database_name: 'matrix_sliding_sync'
```
## Usage
You **don't need to do anything special** to make use of the Sliding Sync Proxy.
Simply open your client which supports Sliding Sync (like Element X) and log in.
When the Sliding Sync proxy is [installed](#installing), your `/.well-known/matrix/client` file is also updated. A new `org.matrix.msc3575.proxy` section and `url` property are added there and made to point to your Sliding Sync proxy's base URL (e.g. `https://matrix.DOMAIN/sliding-sync`).
This allows clients which support Sliding Sync to detect the Sliding Sync Proxy's URL and make use of it.

View File

@ -1,112 +1,100 @@
# Adjusting SSL certificate retrieval (optional, advanced)
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (`matrix.<your-domain>` and possibly `element.<your-domain>`)
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.<your-domain>` and others)
Those certificates are used when configuring the nginx reverse proxy installed by this playbook.
They can also be used for configuring [your own webserver](configuring-playbook-own-webserver.md), in case you're not using the integrated nginx server provided by the playbook.
This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md).
If you need to retrieve certificates for other domains (e.g. your base domain) or more control over certificate retrieval, read below.
Things discussed in this document:
## Using staging Let's Encrypt certificates instead of real ones
- [Using self-signed SSL certificates](#using-self-signed-ssl-certificates), if you can't use Let's Encrypt or just need a test setup
For testing purposes, you may wish to use staging certificates provide by Let's Encrypt.
- [Using your own SSL certificates](#using-your-own-ssl-certificates), if you don't want to or can't use Let's Encrypt certificates, but are still interested in using the integrated nginx reverse proxy server
You can do this with the following configuration:
- [Not bothering with SSL certificates](#not-bothering-with-ssl-certificates), if you're using [your own webserver](configuring-playbook-own-webserver.md) and would rather this playbook leaves SSL certificate management to you
```yaml
devture_traefik_config_certificatesResolvers_acme_use_staging: true
```
- [Obtaining SSL certificates for additional domains](#obtaining-ssl-certificates-for-additional-domains), if you'd like to host additional domains on the Matrix server and would like the playbook to help you obtain and renew certificates for those domains automatically
## Disabling SSL termination
For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`.
You can do this with the following configuration:
```yaml
devture_traefik_config_entrypoint_web_secure_enabled: false
```
## Using self-signed SSL certificates
For private deployments (not publicly accessible from the internet), you may not be able to use Let's Encrypt certificates.
If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)):
If self-signed certificates are alright with you, you can ask the playbook to generate such for you with the following configuration:
```yaml
matrix_ssl_retrieval_method: self-signed
```
If you get a `Cannot reach homeserver` error in Element, you will have to visit `https://matrix.<your-domain>` in your browser and agree to the certificate exception before you can login.
- generate your self-signed certificate files
- follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below
## Using your own SSL certificates
If you'd like to manage SSL certificates by yourself and have the playbook use your certificate files, you can use the following configuration:
To use your own SSL certificates with Traefik, you need to:
- disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support
- put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
- register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
- put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
```yaml
matrix_ssl_retrieval_method: manually-managed
```
With such a configuration, the playbook would expect you to drop the SSL certificate files in the directory specified by `matrix_ssl_config_dir_path` (`/matrix/ssl/config` by default) obeying the following hierarchy:
- `<matrix_ssl_config_dir_path>/live/<domain>/fullchain.pem`
- `<matrix_ssl_config_dir_path>/live/<domain>/privkey.pem`
- `<matrix_ssl_config_dir_path>/live/<domain>/chain.pem`
where `<domain>` refers to the domains that you need (usually `matrix.<your-domain>` and `element.<your-domain>`).
## Not bothering with SSL certificates
If you're [using an external web server](configuring-playbook-own-webserver.md) which is not nginx, or you would otherwise want to manage its certificates without this playbook getting in the way, you can completely disable SSL certificate management with the following configuration:
```yaml
matrix_ssl_retrieval_method: none
```
With such a configuration, no certificates will be retrieved at all. You're free to manage them however you want.
## Obtaining SSL certificates for additional domains
The playbook tries to be smart about the certificates it will obtain for you.
By default, it obtains certificates for:
- `matrix.<your-domain>` (`matrix_server_fqn_matrix`)
- possibly for `element.<your-domain>`, unless you have disabled the [Element client component](configuring-playbook-client-element.md) using `matrix_client_element_enabled: false`
- possibly for `riot.<your-domain>`, if you have explicitly enabled Riot to Element redirection (for background compatibility) using `matrix_nginx_proxy_proxy_riot_compat_redirect_enabled: true`
- possibly for `hydrogen.<your-domain>`, if you have explicitly [set up Hydrogen client](configuring-playbook-client-hydrogen.md).
- possibly for `cinny.<your-domain>`, if you have explicitly [set up Cinny client](configuring-playbook-client-cinny.md).
- possibly for `dimension.<your-domain>`, if you have explicitly [set up Dimension](configuring-playbook-dimension.md).
- possibly for `goneb.<your-domain>`, if you have explicitly [set up Go-NEB bot](configuring-playbook-bot-go-neb.md).
- possibly for `jitsi.<your-domain>`, if you have explicitly [set up Jitsi](configuring-playbook-jitsi.md).
- possibly for `stats.<your-domain>`, if you have explicitly [set up Grafana](configuring-playbook-prometheus-grafana.md).
- possibly for `sygnal.<your-domain>`, if you have explicitly [set up Sygnal](configuring-playbook-sygnal.md).
- possibly for `ntfy.<your-domain>`, if you have explicitly [set up ntfy](configuring-playbook-ntfy.md).
- possibly for your base domain (`<your-domain>`), if you have explicitly configured [Serving the base domain](configuring-playbook-base-domain-serving.md)
If you are hosting other domains on the Matrix machine, you can make the playbook obtain and renew certificates for those other domains too.
To do that, simply define your own custom configuration like this:
```yaml
# In this example, we retrieve 2 extra certificates,
# one for the base domain (in the `matrix_domain` variable) and one for a hardcoded domain.
# Adding any other additional domains (hosted on the same machine) is possible.
matrix_ssl_additional_domains_to_obtain_certificates_for:
- '{{ matrix_domain }}'
- 'another.domain.example.com'
```
After redefining `matrix_ssl_domains_to_obtain_certificates_for`, to actually obtain certificates you should:
- make sure the web server occupying port 80 is stopped. If you are using matrix-nginx-proxy server (which is the default for this playbook), you need to stop it temporarily by running `systemctl stop matrix-nginx-proxy` on the server.
- re-run the SSL part of the playbook and restart all services: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-ssl,start`
The certificate files would be made available in `/matrix/ssl/config/live/<your-other-domain>/...`.
For automated certificate renewal to work, each port `80` vhost for each domain you are obtaining certificates for needs to forward requests for `/.well-known/acme-challenge` to the certbot container we use for renewal.
See how this is configured for the `matrix.` subdomain in `/matrix/nginx-proxy/conf.d/matrix-domain.conf`
Don't be alarmed if the above configuration file says port `8080`, instead of port `80`. It's due to port mapping due to our use of containers.
## Specify the SSL private key algorithm
If you'd like to [specify the private key type](https://eff-certbot.readthedocs.io/en/stable/using.html#using-ecdsa-keys) used with Let's Encrypt, define your own custom configuration like this:
```yaml
matrix_ssl_lets_encrypt_key_type: ecdsa
# Disable ACME / Let's Encrypt support.
devture_traefik_config_certificatesResolvers_acme_enabled: false
# Disabling ACME support (above) automatically disables the creation of the SSL directory.
# Force-enable it here, because we'll add our certificate files there.
devture_traefik_ssl_dir_enabled: true
# Tell Traefik to load our custom configuration file (certificates.yml).
# The file is created below, in `aux_file_definitions`.
# The `/config/..` path is an in-container path, not a path on the host (like `/matrix/traefik/config`). Do not change it!
devture_traefik_configuration_extension_yaml: |
providers:
file:
filename: /config/certificates.yml
watch: true
# Use the aux role to create our custom files on the server.
# If you'd like to do this manually, you remove this `aux_file_definitions` variable.
aux_file_definitions:
# Create the privkey.pem file on the server by
# uploading a file from the computer where Ansible is running.
- dest: "{{ devture_traefik_ssl_dir_path }}/privkey.pem"
src: /path/on/your/Ansible/computer/to/privkey.pem
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
# Note the indentation level.
# content: |
# FILE CONTENT
# HERE
# Create the cert.pem file on the server
# uploading a file from the computer where Ansible is running.
- dest: "{{ devture_traefik_ssl_dir_path }}/cert.pem"
src: /path/on/your/Ansible/computer/to/cert.pem
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
# Note the indentation level.
# content: |
# FILE CONTENT
# HERE
# Create the custom Traefik configuration.
# The `/ssl/..` paths below are in-container paths, not paths on the host (/`matrix/traefik/ssl/..`). Do not change them!
- dest: "{{ devture_traefik_config_dir_path }}/certificates.yml"
content: |
tls:
certificates:
- certFile: /ssl/cert.pem
keyFile: /ssl/privkey.pem
stores:
default:
defaultCertificate:
certFile: /ssl/cert.pem
keyFile: /ssl/privkey.pem
```

View File

@ -11,6 +11,31 @@ See the project's [documentation](https://github.com/matrix-org/sygnal) to learn
This optional playbook component is only useful to people who develop/build their own Matrix client applications themselves.
## Decide on a domain and path
By default, Sygnal is configured to use its own dedicated domain (`sygnal.DOMAIN`) and requires you to [adjust your DNS records](#adjusting-dns-records).
You can override the domain and path like this:
```yaml
# Switch to the domain used for Matrix services (`matrix.DOMAIN`),
# so we won't need to add additional DNS records for Sygnal.
matrix_sygnal_hostname: "{{ matrix_server_fqn_matrix }}"
# Expose under the /sygnal subpath
matrix_sygnal_path_prefix: /sygnal
```
**NOTE**: When using `matrix-nginx-proxy` instead of Traefik, you won't be able to override the path prefix. You can only override the domain, but that needs to happen using another variable: `matrix_server_fqn_sygnal` (e.g. `matrix_server_fqn_sygnal: "push.{{ matrix_domain }}"`).
## Adjusting DNS records
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Sygnal domain to the Matrix server.
If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file (adapt to your needs):
@ -30,7 +55,7 @@ matrix_sygnal_apps:
api_key: your_api_key_for_gcm
# .. more configuration ..
matrix_aux_file_definitions:
aux_file_definitions:
- dest: "{{ matrix_sygnal_data_path }}/my_key.p8"
content: |
some
@ -48,16 +73,14 @@ Configuring [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/) is easi
To configure [APNS](https://developer.apple.com/notifications/) (Apple Push Notification Service), you'd need to provide one or more certificate files.
To do that, the above example configuration:
- makes use of the `matrix-aux` role (and its `matrix_aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See `roles/custom/matrix-aux/defaults/main.yml` for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `matrix-aux`.
- makes use of the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) (and its `aux_file_definitions` variable) to make the playbook install files into `/matrix/sygnal/data` (the `matrix_sygnal_data_path` variable). See [`defaults/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml) of the `aux` role for usage examples. It also makes sure the files are owned by `matrix:matrix`, so that Sygnal can read them. Of course, you can also install these files manually yourself, if you'd rather not use `aux`.
- references these files in the Sygnal configuration (`matrix_sygnal_apps`) using a path like `/data/..` (the `/matrix/sygnal/data` directory on the host system is mounted into the `/data` directory inside the container)
## Installing
Don't forget to add `sygnal.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
After configuring the playbook, run the [installation](installing.md) command again:
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
@ -66,6 +89,6 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
## Usage
To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is also pointed to `https://sygnal.DOMAIN` as the configured push server.
To make use of your Sygnal installation, you'd need to build your own Matrix client application, which uses the same API keys (for [GCM/FCM](https://firebase.google.com/docs/cloud-messaging/)) and certificates (for [APNS](https://developer.apple.com/notifications/)) and is to your Sygnal URL endpoint (e.g. `https://sygnal.DOMAIN`).
Refer to Sygnal's [Notes for application developers](https://github.com/matrix-org/sygnal/blob/master/docs/applications.md) document.

View File

@ -15,7 +15,7 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
matrix_synapse_admin_enabled: true
```
**Note**: Synapse Admin requires Synapse's [Admin APIs](https://github.com/matrix-org/synapse/tree/master/docs/admin_api) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, we **automatically** exposes them publicly for you (equivalent to `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true`).
**Note**: Synapse Admin requires Synapse's [Admin APIs](https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/index.html) to function. Access to them is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, for additional security, we normally leave them unexposed, following [official Synapse reverse-proxying recommendations](https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md#synapse-administration-endpoints). Because Synapse Admin needs these APIs to function, when installing Synapse Admin, we **automatically** exposes them publicly for you (equivalent to `matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled: true`).
## Installing
@ -35,34 +35,6 @@ To use Synapse Admin, you need to have [registered at least one administrator ac
The Homeserver URL to use on Synapse Admin's login page is: `https://matrix.DOMAIN`
### Sample configuration for running behind Traefik 2.0
Below is a sample configuration for using this playbook with a [Traefik](https://traefik.io/) 2.0 reverse proxy.
This an extension to Traefik config sample in [own-webserver-documentation](./configuring-playbook-own-webserver.md).
```yaml
# Don't bind any HTTP or federation port to the host
# (Traefik will proxy directly into the containers)
matrix_synapse_admin_container_http_host_bind_port: ""
matrix_synapse_admin_container_extra_arguments:
# May be unnecessary depending on Traefik config, but can't hurt
- '--label "traefik.enable=true"'
# The Synapse Admin container will only receive traffic from this subdomain and path
- '--label "traefik.http.routers.matrix-synapse-admin.rule=(Host(`{{ matrix_server_fqn_matrix }}`) && Path(`{{matrix_synapse_admin_public_endpoint}}`))"'
# (Define your entrypoint)
- '--label "traefik.http.routers.matrix-synapse-admin.entrypoints=web-secure"'
# (The 'default' certificate resolver must be defined in Traefik config)
- '--label "traefik.http.routers.matrix-synapse-admin.tls.certResolver=default"'
# The Synapse Admin container uses port 80 by default
- '--label "traefik.http.services.matrix-synapse-admin.loadbalancer.server.port=80"'
```
### Sample configuration for running behind Caddy v2
Below is a sample configuration for using this playbook with a [Caddy](https://caddyserver.com/v2) 2.0 reverse proxy (non-default configuration where `matrix-nginx-proxy` is disabled - `matrix_nginx_proxy_enabled: false`).

View File

@ -0,0 +1,36 @@
# Setting up synapse_auto_compressor
The playbook can install and configure [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) for you.
It's a CLI tool that automatically compresses Synapse's `state_groups` database table in the background.
See the project's [documentation](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) to learn what it does and why it might be useful to you.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_synapse_auto_compressor_enabled: true
```
## Installing
After configuring the playbook, run the [installation](installing.md) command again:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
## Usage
After installation, `synapse_auto_compressor` will run automatically every day at `00:00:00` (as defined in `matrix_synapse_auto_compressor_calendar` by default).
## Manually start the tool
For testing your setup it can be helpful to not wait until 00:00. If you want to run the tool immediately, log onto the server
and run `systemctl start matrix-synapse-auto-compressor`. Running this command will not return control to your terminal until the compression run is done, which may take a long time.
Consider using [tmux](https://en.wikipedia.org/wiki/Tmux) if your SSH connection is unstable.

View File

@ -3,8 +3,6 @@
If you'd like to store Synapse's content repository (`media_store`) files on Amazon S3 (or other S3-compatible service),
you can use the [synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider) media provider module for Synapse.
**`synapse-s3-storage-provider` support is very new and still relatively untested. Using it may cause data loss.**
An alternative (which has worse performance) is to use [Goofys to mount the S3 store to the local filesystem](configuring-playbook-s3-goofys.md).
@ -28,17 +26,27 @@ While you will need some local disk space around, it's only to accommodate usage
## Installing
After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), you can proceed to configure Goofys in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
After [creating the S3 bucket and configuring it](configuring-playbook-s3.md#bucket-creation-and-security-configuration), you can proceed to configure `s3-storage-provider` in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_synapse_ext_synapse_s3_storage_provider_enabled: true
matrix_synapse_ext_synapse_s3_storage_provider_config_bucket: your-bucket-name
matrix_synapse_ext_synapse_s3_storage_provider_config_region_name: some-region-name # e.g. eu-central-1
matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url: https://.. # delete this whole line for Amazon S3
matrix_synapse_ext_synapse_s3_storage_provider_config_access_key_id: access-key-goes-here
matrix_synapse_ext_synapse_s3_storage_provider_config_secret_access_key: secret-key-goes-here
matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url: https://s3.REGION_NAME.amazonaws.com # adjust this
matrix_synapse_ext_synapse_s3_storage_provider_config_storage_class: STANDARD # or STANDARD_IA, etc.
# Authentication Method 1 - (access key id + secret)
# This works on all providers (AWS and other compatible systems).
# Uncomment the variables below to use it.
# matrix_synapse_ext_synapse_s3_storage_provider_config_access_key_id: access-key-goes-here
# matrix_synapse_ext_synapse_s3_storage_provider_config_secret_access_key: secret-key-goes-here
# Authentication Method 2 - EC2 instance profile which grants permission to access S3
# This only works on AWS when your server is hosted on an EC2 instance with the correct instance profile set.
# Uncomment the variable below to use it.
# matrix_synapse_ext_synapse_s3_storage_provider_config_ec2_instance_profile: true
# For additional advanced settings, take a look at `roles/custom/matrix-synapse/defaults/main.yml`
```
@ -62,26 +70,26 @@ Migrating your existing data can happen in multiple ways:
Instead of using `s3_media_upload` directly, which is very slow and painful for an initial data migration, we recommend [using another tool in combination with `s3_media_upload`](#using-another-tool-in-combination-with-s3_media_upload).
To copy your existing files, SSH into the server and run `/usr/local/bin/matrix-synapse-s3-storage-provider-shell`.
To copy your existing files, SSH into the server and run `/matrix/synapse/ext/s3-storage-provider/bin/shell`.
This launches a Synapse container, which has access to the local media store, Postgres database, S3 store and has some convenient environment variables configured for you to use (`MEDIA_PATH`, `BUCKET`, `ENDPOINT`, `UPDATE_DB_DAYS`, etc).
Then use the following commands (`$` values come from environment variables - they're **not placeholders** that you need to substitute):
- `s3_media_upload update-db $UPDATE_DB_DURATION` - create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on
1. `s3_media_upload update-db $UPDATE_DB_DURATION` - create a local SQLite database (`cache.db`) with a list of media repository files (from the `synapse` Postgres database) eligible for operating on
- `$UPDATE_DB_DURATION` is influenced by the `matrix_synapse_ext_synapse_s3_storage_provider_update_db_day_count` variable (defaults to `0`)
- `$UPDATE_DB_DURATION` defaults to `0d` (0 days), which means **include files which haven't been accessed for more than 0 days** (that is, **all files will be included**).
- `s3_media_upload check-deleted $MEDIA_PATH` - check whether files in the local cache still exist in the local media repository directory
- `s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` - uploads locally-stored files to S3 and deletes them from the local media repository directory
2. `s3_media_upload check-deleted $MEDIA_PATH` - check whether files in the local cache still exist in the local media repository directory
3. `s3_media_upload upload $MEDIA_PATH $BUCKET --delete --storage-class $STORAGE_CLASS --endpoint-url $ENDPOINT` - uploads locally-stored files to S3 and deletes them from the local media repository directory
The `s3_media_upload upload` command may take a lot of time to complete.
Instead of running the above commands manually in the shell, you can also run the `/usr/local/bin/matrix-synapse-s3-storage-provider-migrate` script which will run the same commands automatically. We demonstrate how to do it manually, because:
Instead of running the above commands manually in the shell, you can also run the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script which will run the same commands automatically. We demonstrate how to do it manually, because:
- it's what the upstream project demonstrates and it teaches you how to use the `s3_media_upload` tool
- allows you to check and verify the output of each command, to catch mistakes
- includes progress bars and detailed output for each command
- allows you to easily interrupt slow-running commands, etc. (the `/usr/local/bin/matrix-synapse-s3-storage-provider-migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill ..`)
- allows you to easily interrupt slow-running commands, etc. (the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` starts a container without interactive TTY support, so `Ctrl+C` may not work and you and require killing via `docker kill ..`)
### Using another tool in combination with `s3_media_upload`
@ -93,13 +101,29 @@ To migrate your existing local data to S3, we recommend to:
#### Copying data to Amazon S3
Generally, you need to use the `aws s3` tool.
To copy to AWS S3, start a container on the Matrix server like this:
This documentation section could use an improvement. Ideally, we'd come up with a guide like the one used in [Copying data to Backblaze B2](#copying-data-to-backblaze-b2) - running `aws s3` in a container, etc.
```sh
docker run -it --rm \
-w /work \
--env-file=/matrix/synapse/ext/s3-storage-provider/env \
--mount type=bind,src=/matrix/synapse/storage/media-store,dst=/work,ro \
--entrypoint=/bin/sh \
docker.io/amazon/aws-cli:2.9.16 \
-c 'aws s3 sync /work/. s3://$BUCKET/'
```
#### Copying data to an S3 alternative using the aws-s3 tool
To copy to a provider other than AWS S3 (e.g. Wasabi, Digital Ocean Spaces, etc.), you can use the command for [Copying data to Amazon S3](#copying-data-to-amazon-s3) with an added `--endpoint-url=$ENDPOINT` argument.
Add this argument to the command **as-is** (`$ENDPOINT` is an environment variable corresponding to `matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url`, so you don't need to touch it). Make sure to add the argument **before** the final quote (`'`) of the command.
#### Copying data to Backblaze B2
To copy to Backblaze B2, start a container like this:
You can copy files to Backblaze B2 either by following the [Copying data to an S3 alternative using the aws-s3 tool](#copying-data-to-an-s3-alternative-using-the-aws-s3-tool) or by using the B2-specific [b2 command-line tool](https://www.backblaze.com/b2/docs/quick_command_line.html) as described below.
To copy the data using the `b2` tool, start a container on the Matrix server like this:
```sh
docker run -it --rm \
@ -109,7 +133,7 @@ docker run -it --rm \
--env='B2_BUCKET_NAME=YOUR_BUCKET_NAME_GOES_HERE' \
--mount type=bind,src=/matrix/synapse/storage/media-store,dst=/work,ro \
--entrypoint=/bin/sh \
tianon/backblaze-b2:3.6.0 \
docker.io/tianon/backblaze-b2:3.6.0 \
-c 'b2 authorize-account $B2_KEY_ID $B2_KEY_SECRET && b2 sync /work b2://$B2_BUCKET_NAME --skipNewer'
```
@ -119,7 +143,7 @@ As described in [How it works?](#how-it-works) above, when new media is uploaded
By default, we periodically ensure that all local files are uploaded to S3 and are then removed from the local filesystem. This is done automatically using:
- the `/usr/local/bin/matrix-synapse-s3-storage-provider-migrate` script
- the `/matrix/synapse/ext/s3-storage-provider/bin/migrate` script
- .. invoked via the `matrix-synapse-s3-storage-provider-migrate.service` service
- .. triggered by the `matrix-synapse-s3-storage-provider-migrate.timer` timer, every day at 05:00

View File

@ -34,15 +34,7 @@ We support a few configuration presets (`matrix_synapse_workers_preset: one-of-e
If you'd like more customization power, you can start with one of the presets and tweak various `matrix_synapse_workers_*_count` variables manually.
If you increase worker counts too much, you may need to increase the maximum number of Postgres connections too (example):
```yaml
matrix_postgres_process_extra_arguments: [
"-c 'max_connections=200'"
]
```
**NOTE**: Disabling `matrix-nginx-proxy` (`matrix_nginx_proxy_enabled: false`) (that is, [using your own other webserver](configuring-playbook-own-webserver.md) when running a Synapse worker setup is likely to cause various troubles (see [this issue](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090)).
When Synapse workers are enabled, the integrated [Postgres database is tuned](maintenance-postgres.md#tuning-postgresql), so that the maximum number of Postgres connections are increased from `200` to `500`. If you need to decrease or increase the number of maximum Postgres connections further, use the `devture_postgres_max_connections` variable.
In case any problems occur, make sure to have a look at the [list of synapse issues about workers](https://github.com/matrix-org/synapse/issues?q=workers+in%3Atitle) and your `journalctl --unit 'matrix-*'`.
@ -56,21 +48,73 @@ Certain Synapse administration tasks (managing users and rooms, etc.) can be per
If you'd like to use OpenID Connect authentication with Synapse, you'll need some additional reverse-proxy configuration (see [our nginx reverse-proxy doc page](configuring-playbook-nginx.md#synapse-openid-connect-for-single-sign-on)).
This example configuration is for [keycloak](https://www.keycloak.org/), an opensource Identity Provider maintained by Red Hat.
For more detailed documentation on available options and how to setup keycloak, see the [Synapse documentation on OpenID Connect with keycloak](https://github.com/matrix-org/synapse/blob/develop/docs/openid.md#keycloak).
In case you encounter errors regarding the parsing of the variables, you can try to add `{% raw %}` and `{% endraw %}` blocks around them. For example ;
```
- idp_id: keycloak
idp_name: "Keycloak"
issuer: "https://url.ix/auth/realms/x"
client_id: "matrix"
client_secret: "{{ vault_synapse_keycloak }}"
scopes: ["openid", "profile"]
authorization_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/auth"
token_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/token"
userinfo_endpoint: "https://url.ix/auth/realms/x/protocol/openid-connect/userinfo"
user_mapping_provider:
config:
display_name_template: "{% raw %}{{ user.given_name }}{% endraw %} {% raw %}{{ user.family_name }}{% endraw %}"
email_template: "{% raw %}{{ user.email }}{% endraw %}"
matrix_synapse_configuration_extension_yaml: |
oidc_providers:
- idp_id: keycloak
idp_name: "My KeyCloak server"
issuer: "https://url.ix/auth/realms/{realm_name}"
client_id: "matrix"
client_secret: "{{ vault_synapse_keycloak }}"
scopes: ["openid", "profile"]
user_mapping_provider:
config:
localpart_template: "{% raw %}{{ user.preferred_username }}{% endraw %}"
display_name_template: "{% raw %}{{ user.name }}{% endraw %}"
email_template: "{% raw %}{{ user.email }}{% endraw %}"
allow_existing_users: true # Optional
backchannel_logout_enabled: true # Optional
```
## Customizing templates
[Templates](https://github.com/matrix-org/synapse/blob/develop/docs/templates.md) are used by Synapse for showing **certain web pages** handled by the server, as well as for **email notifications**.
This playbook allows you to customize the default templates (see the [`synapse/res/templates` directory](https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates)).
If template customization is enabled, the playbook will build a custom container image based on the official one.
Your custom templates need to live in a public or private git repository. This repository will be cloned during Synapse image customization (during the playbook run).
To enable template customizations, use a configuration (`inventory/host_vars/matrix.DOMAIN/vars.yml`) like this:
```yaml
# If you'd like to ensure that the customized image is built each time the playbook runs, enable this.
# Otherwise, the customized image will only be rebuilt whenever the Synapse version changes (once every ~2 weeks).
# matrix_synapse_docker_image_customized_build_nocache: true
matrix_synapse_container_image_customizations_templates_enabled: true
# Our templates live in a templates/ directory within the repository.
# If they're at the root path, delete this line.
matrix_synapse_container_image_customizations_templates_in_container_template_files_relative_path: templates
matrix_synapse_container_image_customizations_templates_git_repository_url: git@github.com:organization/repository.git
matrix_synapse_container_image_customizations_templates_git_repository_branch: main
matrix_synapse_container_image_customizations_templates_git_repository_keyscan_enabled: true
matrix_synapse_container_image_customizations_templates_git_repository_keyscan_hostname: github.com
# If your git repository is public, do not define the private key (remove the variable).
matrix_synapse_container_image_customizations_templates_git_repository_ssh_private_key: |
-----BEGIN OPENSSH PRIVATE KEY-----
....
-----END OPENSSH PRIVATE KEY-----
```
As mentioned in Synapse's Templates documentation, Synapse will fall back to its own templates if a template is not found in that directory.
Due to this, it's recommended to only store and maintain template files in your repository if you need to make custom changes. Other files (which you don't need to change), should not be duplicated, so that you don't need to worry about getting out-of-sync with the original Synapse templates.
## Monitoring Synapse Metrics with Prometheus and Grafana
This playbook allows you to enable Synapse metrics, which can provide insight into the performance and activity of Synapse.
To enable Synapse metrics see [`configuring-playbook-prometheus-grafana.md`](./configuring-playbook-prometheus-grafana.md)

View File

@ -0,0 +1,50 @@
# Configure Traefik (optional, advanced)
By default, this playbook installs and manages a [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server, powered by the [com.devture.ansible.role.traefik](https://github.com/devture/com.devture.ansible.role.traefik) Ansible role.
This Ansible role support various configuration options. Feel free to consult its `default/main.yml` variables file.
## Adjusting SSL certificate retrieval
See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page.
## Increase logging verbosity
```yaml
devture_traefik_config_log_level: DEBUG
```
## Disable access logs
This will disable access logging.
```yaml
devture_traefik_config_accessLog_enabled: false
```
## Enable Traefik Dashboard
This will enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.DOMAIN/dashboard/` (note the trailing `/`).
```yaml
devture_traefik_dashboard_enabled: true
devture_traefik_dashboard_hostname: "{{ matrix_server_fqn_matrix }}"
devture_traefik_dashboard_basicauth_enabled: true
devture_traefik_dashboard_basicauth_user: YOUR_USERNAME_HERE
devture_traefik_dashboard_basicauth_password: YOUR_PASSWORD_HERE
```
**WARNING**: enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts.
## Additional configuration
Use the `devture_traefik_configuration_extension_yaml` variable provided by the Traefik Ansible role to override or inject additional settings, even when no dedicated variable exists.
```yaml
# This is a contrived example.
# You can enable and secure the Dashboard using dedicated variables. See above.
devture_traefik_configuration_extension_yaml: |
api:
dashboard: true
```

View File

@ -15,6 +15,24 @@ matrix_coturn_enabled: false
In that case, Synapse would not point to any Coturn servers and audio/video call functionality may fail.
## Manually defining your public IP
In the `hosts` file we explicitly ask for your server's external IP address when defining `ansible_host`, because the same value is used for configuring Coturn.
If you'd rather use a local IP for `ansible_host`, make sure to set up `matrix_coturn_turn_external_ip_address` replacing `YOUR_PUBLIC_IP` with the pubic IP used by the server.
```yaml
matrix_coturn_turn_external_ip_address: "YOUR_PUBLIC_IP"
```
If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set `matrix_coturn_turn_external_ip_address` to an empty value. The playbook will automatically contact an [EchoIP](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable.
If your server has multiple external IP addresses, the Coturn role offers a different variable for specifying them:
```yaml
# Note: matrix_coturn_turn_external_ip_addresses is different than matrix_coturn_turn_external_ip_address
matrix_coturn_turn_external_ip_addresses: ['1.2.3.4', '4.5.6.7']
```
## Using your own external Coturn server
@ -36,7 +54,10 @@ If you have or want to enable [Jitsi](configuring-playbook-jitsi.md), you might
If you do not do it, Jitsi will fall back to an upstream service.
```yaml
matrix_jitsi_web_stun_servers:
jitsi_web_stun_servers:
- stun:HOSTNAME_OR_IP:PORT
```
You can put multiple host/port combinations if you like.
## Further variables and configuration options
To see all the available configuration options, check roles/custom/matrix-coturn/defaults/main.yml

View File

@ -0,0 +1,125 @@
# Setting up Matrix User Verification Service (optional)
**[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) (hereafter: UVS) can only be installed after Matrix services are installed and running.**
If you're just installing Matrix services for the first time, please continue with the [Configuration](configuring-playbook.md) / [Installation](installing.md) flow and come back here later.
Currently, the main purpose of this role is to allow Jitsi to authenticate matrix users and check if they are authorized to join a conference. Please refer to the documentation of the [Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) to understand how it works.
**Note**: enabling Matrix User Verification Service, means that the `openid` API endpoints will be exposed on the Matrix Federation port (usually `8448`), even if [federation](configuring-playbook-federation.md) is disabled.
If the Jitsi server is also configured by this playbook, all plugging of variables and secrets is handled in `group_vars/matrix_servers`.
__Some general concepts of UVS may be helpful to understand the rest, so here they are:__
UVS can be used to verify two claims:
* (A) Whether a given OpenID token is valid for a given server and
* (B) whether a user is member of a given room and the corresponding PowerLevel
Verifying an OpenID token id done by finding the corresponding Homeserver via '.well-known/matrix/server' for the given domain.
The configured `matrix_user_verification_service_uvs_homeserver_url` does **not** factor into this.
By default, this playbook only checks against `matrix_server_fqn_matrix`.
Therefore, the request will be made against the public openid API for `matrix_server_fqn_matrix`.
Verifying RoomMembership and PowerLevel is done against `matrix_user_verification_service_uvs_homeserver_url` which is by default done via the docker network.
UVS will verify the validity of the token beforehand though.
## Prerequisites
In order to use UVS, an admin token for the configured homeserver must be supplied. For now this means configuring Synapse and creating the token before installing UVS.
## Enable
[Matrix User Verification Service](https://github.com/matrix-org/matrix-user-verification-service) installation is disabled by default.
You can enable it in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
```yaml
matrix_user_verification_service_enabled: true
```
## Configuration
The only required configuration variable is `matrix_user_verification_service_uvs_access_token` (see below).
For a list of all configuration options see the role defaults [`roles/matrix-user-verification-service/defaults/main.yml`](../roles/custom/matrix-user-verification-service/defaults/main.yml).
But be aware of all the plugging happening in `group_vars/matrix_servers`.
In the default configuration, the UVS Server is only reachable via the docker network, which is fine if e.g. Jitsi is also running in a container on the host.
However, it is possible to expose UVS via setting `matrix_user_verification_service_container_http_host_bind_port`.
### Access token
The Synapse Access Token is used to verify RoomMembership and PowerLevel against `matrix_user_verification_service_uvs_homeserver_url`.
We recommend that you create a dedicated Matrix user for uvs (`uvs` is a good username).
Follow our [Registering users](registering-users.md) guide to register a user with administration privileges.
You are required to specify an access token (belonging to this new user) for UVS to work.
To get an access token for the UVS user, you can follow the documentation on [how to do obtain an access token](obtaining-access-tokens.md).
**Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone.**
```yaml
matrix_user_verification_service_uvs_access_token: "YOUR ACCESS TOKEN HERE"
```
### (Optional) Custom Auth Token
It is possible to set an API Auth Token to restrict access to the UVS. If this is enabled, anyone making a request to UVS must provide it via the header "Authorization: Bearer TOKEN"
By default, the token will be derived from `matrix_homeserver_generic_secret_key` in `group_vars/matrix_servers`.
To set your own Token, simply put the following in your host_vars.
```yaml
matrix_user_verification_service_uvs_auth_token: "TOKEN"
```
In case Jitsi is also managed by this playbook and 'matrix' authentication in Jitsi is enabled, this collection will automatically configure Jitsi to use the configured auth token.
### (Optional) Disable Auth
Authorization is enabled by default. To disable set
```yaml
matrix_user_verification_service_uvs_require_auth: false
```
in your host_vars.
### (Optional) Federation
In theory (however currently untested), UVS can handle federation. Simply set:
```yaml
matrix_user_verification_service_uvs_pin_openid_verify_server_name: false
```
in your host_vars.
This will instruct UVS to verify the OpenID token against any domain given in a request.
Homeserver discovery is done via '.well-known/matrix/server' of the given domain.
## Installation
After these variables have been set, please run the following command to re-run setup and to restart UVS:
```
ansible-playbook -i inventory/hosts setup.yml --tags=setup-matrix-user-verification-service,start
```
## Logging
The configuration variable `UVS_LOG_LEVEL` can be set to:
- warning
- info
- debug
## TLS Certificate Checking
If the matrix Homeserver does not provide a valid TLS certificate, UVS will fail with the following error message:
> message: 'No response received: [object Object]',
This also applies to self-signed and let's encrypt staging certificates.
To disable certificate validation altogether (INSECURE! Not suitable for production use!) set: `NODE_TLS_REJECT_UNAUTHORIZED=0`
Alternatively, it is possible to inject your own CA certificates into the container by mounting a PEM file with additional trusted CAs into the container and pointing the `NODE_EXTRA_CA_CERTS` environment variable to it.

View File

@ -12,7 +12,7 @@ You can then follow these steps inside the playbook directory:
1. copy the sample configuration file (`cp examples/vars.yml inventory/host_vars/matrix.<your-domain>/vars.yml`)
1. edit the configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) to your liking. You may also take a look at the various `roles/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file.
1. edit the configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`) to your liking. You may also take a look at the various `roles/*/ROLE_NAME_HERE/defaults/main.yml` files and see if there's something you'd like to copy over and override in your `vars.yml` configuration file.
1. copy the sample inventory hosts file (`cp examples/hosts inventory/hosts`)
@ -30,7 +30,7 @@ When you're done with all the configuration you'd like to do, continue with [Ins
### Additional useful services
- [Setting up the Dimension Integration Manager](configuring-playbook-dimension.md) (optional, but recommended; after [installing](installing.md))
- [Setting up the Dimension Integration Manager](configuring-playbook-dimension.md) (optional; [unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299); after [installing](installing.md))
- [Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md) (optional)
@ -51,6 +51,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Configuring Element](configuring-playbook-client-element.md) (optional)
- [Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md) (optional)
- [Storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional)
- [Using an external PostgreSQL server](configuring-playbook-external-postgres.md) (optional)
@ -59,9 +61,11 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Serving your base domain using this playbook's nginx server](configuring-playbook-base-domain-serving.md) (optional)
- [Configure Nginx](configuring-playbook-nginx.md) (optional, advanced)
- [Configure the Traefik reverse-proxy](configuring-playbook-traefik.md) (optional, advanced)
- [Using your own webserver, instead of this playbook's nginx proxy](configuring-playbook-own-webserver.md) (optional, advanced)
- (Deprecated) [Configure the Nginx reverse-proxy](configuring-playbook-nginx.md) (optional, advanced)
- [Using your own webserver, instead of this playbook's default reverse-proxy](configuring-playbook-own-webserver.md) (optional, advanced)
- [Adjusting TURN server configuration](configuring-playbook-turn.md) (optional, advanced)
@ -78,6 +82,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Cinny](configuring-playbook-client-cinny.md) - a web client focusing primarily on simple, elegant and secure interface (optional)
- [Setting up SchildiChat](configuring-playbook-client-schildichat.md) - a web client based on [Element](https://element.io/) with some extras and tweaks (optional)
### Authentication and user-related
@ -99,6 +105,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (optional, advanced)
- [Matrix User Verification Service](configuring-playbook-user-verification-service.md) (optional, advanced)
### Bridging other networks
@ -106,6 +114,10 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md) (optional)
- [Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md) (optional)
- [Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md) (optional)
- [Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md) (optional)
- [Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (optional)
@ -120,6 +132,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md) (optional)
- [Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md) (optional)
- [Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md) (optional)
- [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md) (optional)
@ -161,6 +175,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
### Bots
- [Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) - a bot through which you can talk to the [ChatGPT](https://openai.com/blog/chatgpt/) model(optional)
- [Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) - a bot to remind you about stuff (optional)
- [Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) - a bot to create and manage registration tokens to invite users (optional)
@ -173,6 +189,8 @@ When you're done with all the configuration you'd like to do, continue with [Ins
- [Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) - a moderation tool/bot (optional)
- [Setting up Draupnir](configuring-playbook-bot-draupnir.md) - a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer (optional)
- [Setting up Buscarron](configuring-playbook-bot-buscarron.md) - a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room (optional)
@ -185,8 +203,14 @@ When you're done with all the configuration you'd like to do, continue with [Ins
### Other specialized services
- [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers (optional)
- [Setting up the Sliding Sync Proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like Element X) (optional)
- [Setting up the Sygnal push gateway](configuring-playbook-sygnal.md) (optional)
- [Setting up the ntfy push notifications server](configuring-playbook-ntfy.md) (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)

View File

@ -46,6 +46,8 @@ These services are not part of our default installation, but can be enabled by [
- [mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry) - the [mautrix-telegram](https://github.com/mautrix/telegram) bridge to [Telegram](https://telegram.org/) (optional)
- [mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry) - the [mautrix-gmessages](https://github.com/mautrix/gmessages) bridge to [Google Messages](https://messages.google.com/) (optional)
- [mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry) - the [mautrix-whatsapp](https://github.com/mautrix/whatsapp) bridge to [Whatsapp](https://www.whatsapp.com/) (optional)
- [mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry) - the [mautrix-facebook](https://github.com/mautrix/facebook) bridge to [Facebook](https://facebook.com/) (optional)

View File

@ -125,7 +125,7 @@ This is similar to the [EMnify/matrix-synapse-auto-deploy](https://github.com/EM
- this one installs everything in a single directory (`/matrix` by default) and **doesn't "contaminate" your server** with files all over the place
- this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up nginx for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)
- this one **doesn't necessarily take over** ports 80 and 443. By default, it sets up [Traefik](https://doc.traefik.io/traefik/) for you there, but you can also [use your own webserver](configuring-playbook-own-webserver.md)
- this one **runs everything in Docker containers**, so it's likely more predictable and less fragile (see [Docker images used by this playbook](container-images.md))
@ -262,7 +262,7 @@ matrix_server_fqn_element: "element.YOUR_BASE_DOMAIN"
# Feel free to use `dimension.matrix.YOUR_BASE_DOMAIN`, if you'd prefer that.
matrix_server_fqn_dimension: "dimension.YOUR_BASE_DOMAIN"
# This is where you access Jitsi (if enabled via `matrix_jitsi_enabled: true`; NOT enabled by default).
# This is where you access Jitsi (if enabled via `jitsi_enabled: true`; NOT enabled by default).
#
# Feel free to use `jitsi.matrix.YOUR_BASE_DOMAIN`, if you'd prefer that.
matrix_server_fqn_jitsi: "jitsi.YOUR_BASE_DOMAIN"
@ -317,12 +317,12 @@ If you've installed [Jitsi](configuring-playbook-jitsi.md) (not installed by def
Yes, we can stop installing Docker ourselves. Just use this in your `vars.yml` file:
```yaml
matrix_playbook_docker_installation_enabled: true
matrix_playbook_docker_installation_enabled: false
```
### I run another webserver on the same server where I wish to install Matrix. What now?
By default, we install a webserver for you (nginx), but you can also use [your own webserver](configuring-playbook-own-webserver.md).
By default, we install a webserver for you ([Traefik](https://doc.traefik.io/traefik/)), but you can also use [your own webserver](configuring-playbook-own-webserver.md).
### How is the effective configuration determined?
@ -336,12 +336,14 @@ Configuration variables are defined in multiple places in this playbook and are
### What configuration variables are available?
You can discover the variables you can override in each role (`role/matrix*/defaults/main.yml`).
You can discover the variables you can override in each role (`roles/*/*/defaults/main.yml`).
As described in [How is the effective configuration determined?](#how-is-the-effective-configuration-determined), these role-defaults may be overriden by values defined in `group_vars/matrix_servers`.
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`).
### I'd like to adjust some configuration which doesn't have a corresponding variable. How do I do it?
The playbook doesn't aim to expose all configuration settings for all services using variables.
@ -352,7 +354,9 @@ See [What configuration variables are available?](#what-configuration-variables-
Besides that, each role (component) aims to provide a `matrix_SOME_COMPONENT_configuration_extension_yaml` (or `matrix_SOME_COMPONENT_configuration_extension_json`) variable, which can be used to override the configuration.
Check each role's `role/matrix*/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`).
## Installation
@ -461,15 +465,8 @@ After verifying that everything still works after the Postgres upgrade, you can
### How do I debug or force SSL certificate renewal?
SSL certificate renewal normally happens automatically via [systemd timers](https://wiki.archlinux.org/index.php/Systemd/Timers).
SSL certificates are managed automatically by the [Traefik](https://doc.traefik.io/traefik/) reverse-proxy server.
If you're having trouble with SSL certificate renewal, you can inspect the renewal logs using:
If you're having trouble with SSL certificate renewal, check the Traefik logs (`journalctl -fu matrix-traefik`).
- `journalctl -fu matrix-ssl-lets-encrypt-certificates-renew.service`
- *or* by looking at the log files in `/matrix/ssl/log/`
To trigger renewal, run: `systemctl start matrix-ssl-lets-encrypt-certificates-renew.service`. You can then take a look at the logs again.
If you're using the integrated webserver (`matrix-nginx-proxy`), you can reload it manually like this: `systemctl reload matrix-nginx-proxy`. Reloading also happens periodically via a systemd timer.
If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (`matrix-nginx-proxy`) you may also need to reload/restart it, to make it pick up the renewed SSL certificate files.
If you're [using your own webserver](configuring-playbook-own-webserver.md) instead of the integrated one (Traefik), you should investigate in another way.

View File

@ -49,6 +49,7 @@ To use DNS SRV record validation, you need to:
- ensure that you are serving the Matrix Federation API (tcp/8448) with a certificate for `<your-domain>` (not `matrix.<your-domain>`!). Getting this certificate to the `matrix.<your-domain>` server may be complicated. The playbook's automatic SSL obtaining/renewal flow will likely not work and you'll need to copy certificates around manually. See below.
For more details on [how to configure the playbook to work with SRV delegation](howto-srv-server-delegation.md)
### Obtaining certificates

View File

@ -0,0 +1,206 @@
# Server Delegation via a DNS SRV record (advanced)
**Reminder** : unless you are affected by the [Downsides of well-known-based Server Delegation](howto-server-delegation.md#downsides-of-well-known-based-server-delegation), we suggest you **stay on the simple/default path**: [Server Delegation](howto-server-delegation.md) by [configuring well-known files](configuring-well-known.md) at the base domain.
This guide is about configuring Server Delegation using DNS SRV records (for the [Traefik](https://doc.traefik.io/traefik/) webserver). This method has special requirements when it comes to SSL certificates, so various changes are required.
## Prerequisites
SRV delegation while still using the playbook provided Traefik to get / renew the certificate requires a wildcard certificate.
To obtain / renew one from [Let's Encrypt](https://letsencrypt.org/), one needs to use a [DNS-01 challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) method instead of the default [HTTP-01](https://letsencrypt.org/docs/challenge-types/#http-01-challenge).
This means that this is **limited to the list of DNS providers supported by Traefik**, unless you bring in your own certificate.
The up-to-date list can be accessed on [traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers)
## The changes
### Federation Endpoint
```yaml
# To serve the federation from any domain, as long as the path match
matrix_nginx_proxy_container_labels_traefik_proxy_matrix_federation_rule: PathPrefix(`/_matrix`)
```
This is because with SRV federation, some servers / tools (one of which being the federation tester) try to access the federation API using the resolved IP address instead of the domain name (or they are not using SNI). This change will make Traefik route all traffic for which the path match this rule go to the federation endpoint.
### Tell Traefik which certificate to serve for the federation endpoint
Now that the federation endpoint is not bound to a domain anymore we need to explicitely tell Traefik to use a wildcard certificate in addition to one containing the base name.
This is because the matrix specification expects the federation endpoint to be served using a certificate comatible with the base domain, however, the other resources on the endpoint still need a valid certificate to work.
```yaml
# To let Traefik know which domains' certificates to serve
matrix_nginx_proxy_container_labels_additional_labels: |
traefik.http.routers.matrix-nginx-proxy-matrix-federation.tls.domains.main="example.com"
traefik.http.routers.matrix-nginx-proxy-matrix-federation.tls.domains.sans="*.example.com"
```
### Configure the DNS-01 challenge for let's encrypt
Since we're now requesting a wildcard certificate, we need to change the ACME challenge method. To request a wildcard certificate from Let's Encrypt we are required to use the DNS-01 challenge.
This will need 3 changes:
1. Add a new certificate resolver that works with DNS-01
2. Configure the resolver to allow access to the DNS zone to configure the records to answer the challenge (refer to [Traefik's documentation](https://doc.traefik.io/traefik/https/acme/#providers) to know which environment variables to set)
3. Tell the playbook to use the new resolver as default
We cannot just disable the default resolver as that would disable SSL in quite a few places in the playbook.
```yaml
# 1. Add a new ACME configuration without having to disable the default one, since it would have a wide range of side effects
devture_traefik_configuration_extension_yaml: |
certificatesResolvers:
dns:
acme:
# To use a staging endpoint for testing purposes, uncomment the line below.
# caServer: https://acme-staging-v02.api.letsencrypt.org/directory
email: {{ devture_traefik_config_certificatesResolvers_acme_email | to_json }}
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
storage: {{ devture_traefik_config_certificatesResolvers_acme_storage | to_json }}
# 2. Configure the environment variables needed by Rraefik to automate the ACME DNS Challenge (example for Cloudflare)
devture_traefik_environment_variables: |
CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted
LEGO_DISABLE_CNAME_SUPPORT=true
# 3. Instruct the playbook to use the new ACME configuration
devture_traefik_certResolver_primary: dns
```
## Adjust Coturn's configuration
The last step is to alter the generated Coturn configuration.
By default, Coturn is configured to wait on the certificate for the `matrix.` subdomain using an [instantiated systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Service%20Templates) using the domain name as the parameter for this service. However, we need to serve the wildcard certificate, which is incompatible with systemd, it will try to expand the `*`, which will break and prevent Coturn from starting.
We also need to indicate to Coturn where the wildcard certificate is.
**⚠ WARNING ⚠** : On first start of the services, Coturn might still fail to start because Traefik is still in the process of obtaining the certificates. If you still get an error, make sure Traefik obtained the certificates and restart the Coturn service (`just start-group coturn`).
This should not happen again afterwards as Traefik will renew certificates well before their expiry date, and the Coturn service is setup to restart periodically.
```yaml
# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things
matrix_coturn_systemd_required_services_list: ['docker.service']
# This changes the path of the loaded certificate, while maintaining the original functionality, we're now loading the wildcard certificate.
matrix_coturn_container_additional_volumes: |
{{
(
[
{
'src': (matrix_ssl_config_dir_path + '/live/*.' + matrix_domain + '/fullchain.pem'),
'dst': '/fullchain.pem',
'options': 'ro',
},
{
'src': (matrix_ssl_config_dir_path + '/live/*.' + matrix_domain + '/privkey.pem'),
'dst': '/privkey.pem',
'options': 'ro',
},
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-nginx', 'other-nginx-non-container'] and matrix_coturn_tls_enabled else []
)
+
(
[
{
'src': (devture_traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/certificate.crt'),
'dst': '/certificate.crt',
'options': 'ro',
},
{
'src': (devture_traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/privatekey.key'),
'dst': '/privatekey.key',
'options': 'ro',
},
] 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 []
)
}}
```
## Full example of a working configuration
```yaml
# Choosing the reverse proxy implementation
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
devture_traefik_config_certificatesResolvers_acme_email: redacted@example.com
# To serve the federation from any domain, as long as the path match
matrix_nginx_proxy_container_labels_traefik_proxy_matrix_federation_rule: PathPrefix(`/_matrix`)
# To let Traefik know which domains' certificates to serve
matrix_nginx_proxy_container_labels_additional_labels: |
traefik.http.routers.matrix-nginx-proxy-matrix-federation.tls.domains.main="example.com"
traefik.http.routers.matrix-nginx-proxy-matrix-federation.tls.domains.sans="*.example.com"
# Add a new ACME configuration without having to disable the default one, since it would have a wide range of side effects
devture_traefik_configuration_extension_yaml: |
certificatesResolvers:
dns:
acme:
# To use a staging endpoint for testing purposes, uncomment the line below.
# caServer: https://acme-staging-v02.api.letsencrypt.org/directory
email: {{ devture_traefik_config_certificatesResolvers_acme_email | to_json }}
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
storage: {{ devture_traefik_config_certificatesResolvers_acme_storage | to_json }}
# Instruct thep laybook to use the new ACME configuration
devture_traefik_certResolver_primary: "dns"
# Configure the environment variables needed by Traefik to automate the ACME DNS Challenge (example for Cloudflare)
devture_traefik_environment_variables: |
CF_API_EMAIL=redacted
CF_ZONE_API_TOKEN=redacted
CF_DNS_API_TOKEN=redacted
LEGO_DISABLE_CNAME_SUPPORT=true
# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart Coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things
matrix_coturn_systemd_required_services_list: ['docker.service']
# This changes the path of the loaded certificate, while maintaining the original functionality, we're now loading the wildcard certificate.
matrix_coturn_container_additional_volumes: |
{{
(
[
{
'src': (matrix_ssl_config_dir_path + '/live/*.' + matrix_domain + '/fullchain.pem'),
'dst': '/fullchain.pem',
'options': 'ro',
},
{
'src': (matrix_ssl_config_dir_path + '/live/*.' + matrix_domain + '/privkey.pem'),
'dst': '/privkey.pem',
'options': 'ro',
},
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-nginx', 'other-nginx-non-container'] and matrix_coturn_tls_enabled else []
)
+
(
[
{
'src': (devture_traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/certificate.crt'),
'dst': '/certificate.crt',
'options': 'ro',
},
{
'src': (devture_traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/privatekey.key'),
'dst': '/privatekey.key',
'options': 'ro',
},
] 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 []
)
}}
```

View File

@ -20,19 +20,19 @@ Before doing the actual import, **you need to upload your Postgres dump file to
## Importing
To import, run this command (make sure to replace `<server-path-to-postgres-dump.sql>` with a file path on your server):
To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):
```sh
ansible-playbook -i inventory/hosts setup.yml \
--extra-vars='server_path_postgres_dump=<server-path-to-postgres-dump.sql> postgres_default_import_database=matrix' \
--tags=import-postgres
just run-tags import-postgres \
--extra-vars=server_path_postgres_dump=SERVER_PATH_TO_POSTGRES_DUMP_FILE \
--extra-vars=postgres_default_import_database=matrix
```
**Notes**:
- `<server-path-to-postgres-dump.sql>` must be a file path to a Postgres dump file on the server (not on your local machine!)
- `SERVER_PATH_TO_POSTGRES_DUMP_FILE` must be a file path to a Postgres dump file on the server (not on your local machine!)
- `postgres_default_import_database` defaults to `matrix`, which is useful for importing multiple databases (for dumps made with `pg_dumpall`). If you're importing a single database (e.g. `synapse`), consider changing `postgres_default_import_database` accordingly
- after importing a large database, it's a good idea to run [an `ANALYZE` operation](https://www.postgresql.org/docs/current/sql-analyze.html) to make Postgres rebuild its database statistics and optimize its query planner. You can easily do this via the playbook by running `just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze` (see [Vacuuming PostgreSQL](maintenance-postgres.md#vacuuming-postgresql) for more details).
## Troubleshooting
@ -86,7 +86,7 @@ In this case you can use the command suggested in the import task to clear the d
# systemctl start matrix-postgres
```
Now on your local machine run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-postgres` to prepare the database roles etc.
Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc.
If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database.
```
@ -97,9 +97,9 @@ Once the database is clear and the ownership of the tables has been fixed in the
Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)
```
/usr/bin/env docker run --rm --name matrix-postgres-import --log-driver=none --user=998:1001 --cap-drop=ALL --network=matrix --env-file=/matrix/postgres/env-postgres-psql --mount type=bind,src=/migration/synapse_dump.sql,dst=/synapse_dump.sql,ro --entrypoint=/bin/sh docker.io/postgres:14.1-alpine -c "cat /synapse_dump.sql | grep -vE '^(CREATE|ALTER) ROLE (matrix)(;| WITH)' | grep -vE '^CREATE DATABASE (matrix)\s' | psql -v ON_ERROR_STOP=1 -h matrix-postgres --dbname=synapse"
/usr/bin/env docker run --rm --name matrix-postgres-import --log-driver=none --user=998:1001 --cap-drop=ALL --network=matrix --env-file=/matrix/postgres/env-postgres-psql --mount type=bind,src=/migration/synapse_dump.sql,dst=/synapse_dump.sql,ro --entrypoint=/bin/sh docker.io/postgres:15.0-alpine -c "cat /synapse_dump.sql | grep -vE '^(CREATE|ALTER) ROLE (matrix)(;| WITH)' | grep -vE '^CREATE DATABASE (matrix)\s' | psql -v ON_ERROR_STOP=1 -h matrix-postgres --dbname=synapse"
```
### Hints
To open psql terminal run `/usr/local/bin/matrix-postgres-cli`
To open psql terminal run `/matrix/postgres/bin/cli`

View File

@ -3,24 +3,28 @@
Run this if you'd like to import your database from a previous default installation of Synapse.
(don't forget to import your `media_store` files as well - see [the importing-synapse-media-store guide](importing-synapse-media-store.md)).
While this playbook always sets up PostgreSQL, by default a Synapse installation would run
using an SQLite database.
While this playbook only supports running Synapse in combination with PostgreSQL, a Synapse instance installed manually usually defaults to using an SQLite database.
If you have such a Synapse setup and wish to migrate it here (and over to PostgreSQL), this command is for you.
If you have such a Synapse setup and wish to migrate it to one managed by the playbook (and over to PostgreSQL), this documentation page is for you.
## Prerequisites
Before doing the actual import, **you need to upload your SQLite database file to the server** (any path is okay).
Before doing the actual import:
- **ensure you have NOT started Synapse yet**. That is, make sure you have followed the [Installing step](installing.md), but haven't run the playbook's `start` tag yet. If you had started your new Synapse instance, it may have already initialized your Postgres database and importing onto it may not work. In such cases, you may need to clean up the `synapse` database first.
- **ensure you have uploaded your SQLite database file to the server** (any path is okay)
- if you're using the integrated Postgres server (**by default, you are** using it, unless you've explicitly switched to [Using an external PostgreSQL server](configuring-playbook-external-postgres.md)), **make sure Postgres is started** by running `just start-group postgres`
## Importing
Run this command (make sure to replace `<server-path-to-homeserver.db>` with a file path on your server):
ansible-playbook -i inventory/hosts setup.yml --extra-vars='server_path_homeserver_db=<server-path-to-homeserver.db>' --tags=import-synapse-sqlite-db
```sh
just run-tags import-synapse-sqlite-db --extra-vars=server_path_homeserver_db=<server-path-to-homeserver.db>
```
**Notes**:
- `<server-path-to-homeserver.db>` must be a file path to a `homeserver.db` **file on the server** (not on your local machine!).
- `<server-path-to-homeserver.db>` must be replaced with a file path to a `homeserver.db` **file on the server** (not on your local machine!).
- if the SQLite database is from an older version of Synapse, the **importing procedure may run migrations on it to bring it up to date**. That is, your SQLite database file may get modified and become unusable with your older Synapse version. Keeping a copy of the original is probably wise.

View File

@ -2,7 +2,7 @@
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 `make roles`. `make roles` is a shortcut (a `roles` target defined in [`Makefile`](Makefile) and executed by the [`make`](https://www.gnu.org/software/make/) utility) which ultimately runs [ansible-galaxy](https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html) to download Ansible roles. If you don't have `make`, you can also manually run the `roles` commands seen in the `Makefile`.
**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`.
## Playbook tags introduction
@ -17,7 +17,7 @@ Here are some playbook tags that you should be familiar with:
- `install-all` - like `setup-all`, but skips uninstallation tasks. Useful for maintaining your setup quickly when its components remain unchanged. If you adjust your `vars.yml` to remove components, you'd need to run `setup-all` though, or these components will still remain installed
- `setup-SERVICE` (e.g. `setup-bot-postmoogle`) - runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/*/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag).
- `setup-SERVICE` (e.g. `setup-bot-postmoogle`) - runs the setup tasks only for a given role, but does not start/restart services. You can discover these additional tags in each role (`roles/**/tasks/main.yml`). Running per-component setup tasks is **not recommended**, as components sometimes depend on each other and running just the setup tasks for a given component may not be enough. For example, setting up the [mautrix-telegram bridge](configuring-playbook-bridge-mautrix-telegram.md), in addition to the `setup-mautrix-telegram` tag, requires database changes (the `setup-postgres` tag) as well as reverse-proxy changes (the `setup-nginx-proxy` tag).
- `install-SERVICE` (e.g. `install-bot-postmoogle`) - like `setup-SERVICE`, but skips uninstallation tasks. See `install-all` above for additional information.
@ -57,7 +57,7 @@ Proceed to [Maintaining your setup in the future](#2-maintaining-your-setup-in-t
If you will be importing data into your newly created Matrix server, install it, but **do not** start its services just yet.
Starting its services or messing with its database now will affect your data import later on.
To do the installation **without** starting services, run only the `setup-all` tag:
To do the installation **without** starting services, run only the `install-all` tag:
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=install-all
@ -88,6 +88,8 @@ Feel free to **re-run the setup command any time** you think something is off wi
Note that if you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with `--tags=setup-all` instead of `--tags=install-all`. See [Playbook tags introduction](#playbook-tags-introduction)
A way to invoke these `ansible-playbook` commands with less typing in the future is to use [just](https://github.com/casey/just) to run them: `just install-all` or `just setup-all`. See [our `justfile`](../justfile) for more information.
## 3. Finalize the installation

View File

@ -5,7 +5,7 @@
# Migrating to new server
1. Prepare by lowering DNS TTL for your domains (`matrix.DOMAIN`, etc.), so that DNS record changes (step 4 below) would happen faster, leading to less downtime
2. Stop all services on the old server and make sure they won't be starting again. Execute this on the old server: `systemctl disable --now matrix*`
2. Stop all services on the old server and make sure they won't be starting again. Execute this on the old server: `systemctl disable --now matrix*` (you might have to cd to /etc/systemd/system/ first)
3. Copy directory `/matrix` from the old server to the new server. Make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)!
4. Make sure your DNS records are adjusted to point to the new server's IP address
5. Remove old server from the `inventory/hosts` file and add new server.

View File

@ -16,7 +16,7 @@ Table of contents:
## Getting a database terminal
You can use the `/usr/local/bin/matrix-postgres-cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server.
You can use the `/matrix/postgres/bin/cli` tool to get interactive terminal access ([psql](https://www.postgresql.org/docs/11/app-psql.html)) to the PostgreSQL server.
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above tool will not be available.
@ -34,17 +34,22 @@ When in doubt, consider [making a backup](#backing-up-postgresql).
## Vacuuming PostgreSQL
Deleting lots data from Postgres does not make it release disk space, until you perform a `VACUUM` operation.
Deleting lots data from Postgres does not make it release disk space, until you perform a [`VACUUM` operation](https://www.postgresql.org/docs/current/sql-vacuum.html).
To perform a `FULL` Postgres [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html), run the playbook with `--tags=run-postgres-vacuum`.
You can run different `VACUUM` operations via the playbook, with the default preset being `vacuum-complete`:
Example:
- (default) `vacuum-complete`: stops all services temporarily and runs `VACUUM FULL VERBOSE ANALYZE`.
- `vacuum-full`: stops all services temporarily and runs `VACUUM FULL VERBOSE`
- `vacuum`: runs `VACUUM VERBOSE` without stopping any services
- `vacuum-analyze` runs `VACUUM VERBOSE ANALYZE` without stopping any services
- `analyze` runs `ANALYZE VERBOSE` without stopping any services (this is just [ANALYZE](https://www.postgresql.org/docs/current/sql-analyze.html) without doing a vacuum, so it's faster)
```bash
ansible-playbook -i inventory/hosts setup.yml --tags=run-postgres-vacuum,start
```
**Note**: for the `vacuum-complete` and `vacuum-full` presets, you'll need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`). These presets also stop all services (e.g. Synapse, etc.) while the vacuum operation is running.
**Note**: this will automatically stop Synapse temporarily and restart it later. You'll also need plenty of available disk space in your Postgres data directory (usually `/matrix/postgres/data`).
Example playbook invocations:
- `just run-tags run-postgres-vacuum`: runs the default `vacuum-complete` preset and restarts all services
- `just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze`: runs the `analyze` preset with all services remaining operational at all times
## Backing up PostgreSQL
@ -78,9 +83,11 @@ Upgrades must be performed manually.
This playbook can upgrade your existing Postgres setup with the following command:
ansible-playbook -i inventory/hosts setup.yml --tags=upgrade-postgres
```sh
just run-tags upgrade-postgres
```
**Warning: If you're using Borg Backup keep in mind that there is no official Postgres 15 support yet.**
**Warning: If you're using Borg Backup keep in mind that there is no official Postgres 16 support yet.**
**The old Postgres data directory is backed up** automatically, by renaming it to `/matrix/postgres/data-auto-upgrade-backup`.
To rename to a different path, pass some extra flags to the command above, like this: `--extra-vars="postgres_auto_upgrade_backup_data_path=/another/disk/matrix-postgres-before-upgrade"`
@ -99,63 +106,15 @@ Example: `--extra-vars="postgres_dump_name=matrix-postgres-dump.sql"`
## Tuning PostgreSQL
PostgreSQL can be tuned to make it run faster. This is done by passing extra arguments to Postgres with the `matrix_postgres_process_extra_arguments` variable. You should use a website like https://pgtune.leopard.in.ua/ or information from https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server to determine what Postgres settings you should change.
PostgreSQL can be [tuned](https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server) to make it run faster. This is done by passing extra arguments to the Postgres process.
**Note**: the configuration generator at https://pgtune.leopard.in.ua/ adds spaces around the `=` sign, which is invalid. You'll need to remove it manually (`max_connections = 300` -> `max_connections=300`)
The [Postgres Ansible role](https://github.com/devture/com.devture.ansible.role.postgres) **already does some tuning by default**, which matches the [tuning logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) done by websites like https://pgtune.leopard.in.ua/.
You can manually influence some of the tuning variables . These parameters (variables) are injected via the `devture_postgres_postgres_process_extra_arguments_auto` variable.
### Here are some examples:
Most users should be fine with the automatically-done tuning. However, you may wish to:
These are not recommended values and they may not work well for you. This is just to give you an idea of some of the options that can be set. If you are an experienced PostgreSQL admin feel free to update this documentation with better examples.
- **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
Here is an example config for a small 2 core server with 4GB of RAM and SSD storage:
```
matrix_postgres_process_extra_arguments: [
"-c shared_buffers=128MB",
"-c effective_cache_size=2304MB",
"-c effective_io_concurrency=100",
"-c random_page_cost=2.0",
"-c min_wal_size=500MB",
]
```
- **turn automatically-performed tuning off**: override it like this: `devture_postgres_postgres_process_extra_arguments_auto: []`
Here is an example config for a 4 core server with 8GB of RAM on a Virtual Private Server (VPS); the paramters have been configured using https://pgtune.leopard.in.ua with the following setup: PostgreSQL version 12, OS Type: Linux, DB Type: Mixed type of application, Data Storage: SSD storage:
```
matrix_postgres_process_extra_arguments: [
"-c max_connections=100",
"-c shared_buffers=2GB",
"-c effective_cache_size=6GB",
"-c maintenance_work_mem=512MB",
"-c checkpoint_completion_target=0.9",
"-c wal_buffers=16MB",
"-c default_statistics_target=100",
"-c random_page_cost=1.1",
"-c effective_io_concurrency=200",
"-c work_mem=5242kB",
"-c min_wal_size=1GB",
"-c max_wal_size=4GB",
"-c max_worker_processes=4",
"-c max_parallel_workers_per_gather=2",
"-c max_parallel_workers=4",
"-c max_parallel_maintenance_workers=2",
]
```
Here is an example config for a large 6 core server with 24GB of RAM:
```
matrix_postgres_process_extra_arguments: [
"-c max_connections=40",
"-c shared_buffers=1536MB",
"-c checkpoint_completion_target=0.7",
"-c wal_buffers=16MB",
"-c default_statistics_target=100",
"-c random_page_cost=1.1",
"-c effective_io_concurrency=100",
"-c work_mem=2621kB",
"-c min_wal_size=1GB",
"-c max_wal_size=4GB",
"-c max_worker_processes=6",
"-c max_parallel_workers_per_gather=3",
"-c max_parallel_workers=6",
"-c max_parallel_maintenance_workers=3",
]
```
- **add additional tuning parameters**: define your additional Postgres configuration parameters in `devture_postgres_postgres_process_extra_arguments_custom`. See `devture_postgres_postgres_process_extra_arguments_auto` defined in the Postgres role's [default configuration file](https://github.com/devture/com.devture.ansible.role.postgres/blob/main/defaults/main.yml) for inspiration

View File

@ -29,7 +29,9 @@ After deleting data, you may wish to run a [`FULL` Postgres `VACUUM`](./maintena
[rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state) can be used to optimize some `_state` tables used by Synapse. If your server participates in large rooms this is the most effective way to reduce the size of your database.
This tool should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first.
**Note**: besides running the `rust-synapse-compress-state` tool manually, you can also enable its `synapse-auto-compressor` tool by [Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md). The automatic tool will run on a schedule every day and you won't have to compress state manually ever again.
`rust-synapse-compress-state` should be safe to use (even when Synapse is running), but it's always a good idea to [make Postgres backups](./maintenance-postgres.md#backing-up-postgresql) first.
To ask the playbook to run rust-synapse-compress-state, execute:
@ -70,8 +72,10 @@ You should then be able to browse the adminer database administration GUI at htt
Synapse's presence feature which tracks which users are online and which are offline can use a lot of processing power. You can disable presence by adding `matrix_synapse_presence_enabled: false` to your `vars.yml` file.
If you have enough compute resources (CPU & RAM), you can make Synapse better use of them by [enabling load-balancing with workers](configuring-playbook-synapse.md#load-balancing-with-workers).
Tuning Synapse's cache factor can help reduce RAM usage. [See the upstream documentation](https://github.com/matrix-org/synapse#help-synapse-is-slow-and-eats-all-my-ram-cpu) for more information on what value to set the cache factor to. Use the variable `matrix_synapse_caches_global_factor` to set the cache factor.
Tuning your PostgreSQL database will also make Synapse run significantly faster. See [maintenance-postgres.md##tuning-postgresql](maintenance-postgres.md##tuning-postgresql).
[Tuning your PostgreSQL database](maintenance-postgres.md#tuning-postgresql) could also improve Synapse performance. The playbook tunes the integrated Postgres database automatically, but based on your needs you may wish to adjust tuning variables manually. If you're using an [external Postgres database](configuring-playbook-external-postgres.md), you will aslo need to tune Postgres manually.
See also [How do I optimize this setup for a low-power server?](faq.md#how-do-i-optimize-this-setup-for-a-low-power-server).

View File

@ -10,8 +10,8 @@ To upgrade services:
- 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 `make roles`
- download the upstream Ansible roles used by the playbook by running `just roles`
- re-run the [playbook setup](installing.md) and restart all serivces: `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start`
- 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).

View File

@ -20,9 +20,11 @@ If your distro runs within an [LXC container](https://linuxcontainers.org/), you
- The [Ansible](http://ansible.com/) program being installed on your own computer. It's used to run this playbook and configures your server for you. Take a look at [our guide about Ansible](ansible.md) for more information, as well as [version requirements](ansible.md#supported-ansible-versions) and alternative ways to run Ansible.
- the [passlib](https://passlib.readthedocs.io/en/stable/index.html) Python library installed on the computer you run Ansible. On most distros, you need to install some `python-passlib` or `py3-passlib` package, etc.
- [`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.
- [`make`](https://www.gnu.org/software/make/) for running `make roles`, etc. (see [`Makefile`](../Makefile)), although you can also run these commands manually (without `make`)
- [`just`](https://github.com/casey/just) for running `just roles`, 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).

View File

@ -9,21 +9,29 @@ Table of contents:
- [Managing users via a Web UI](#managing-users-via-a-web-ui)
- [Letting certain users register on your private server](#letting-certain-users-register-on-your-private-server)
- [Enabling public user registration](#enabling-public-user-registration)
- [Adding/Removing Administrator privileges to an existing user](#addingremoving-administrator-privileges-to-an-existing-user)
- [Adding/Removing Administrator privileges to an existing Synapse user](#addingremoving-administrator-privileges-to-an-existing-synapse-user)
## Registering users manually
You can do it via this Ansible playbook (make sure to edit the `<your-username>` and `<your-password>` part below):
```sh
just register-user <your-username> <your-password> <admin access: yes or no>
# Example: `just register-user john secret-password yes`
```
**or** by invoking `ansible-playbook` manually:
```sh
ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=<your-username> password=<your-password> admin=<yes|no>' --tags=register-user
```
**or** using the command-line after **SSH**-ing to your server (requires that [all services have been started](#starting-the-services)):
```
/usr/local/bin/matrix-synapse-register-user <your-username> <your-password> <admin access: 0 or 1>
```sh
/matrix/synapse/bin/register-user <your-username> <your-password> <admin access: 0 or 1>
```
**Note**: `<your-username>` is just a plain username (like `john`), not your full `@<username>:<your-domain>` identifier.
@ -58,13 +66,24 @@ and running the [installation](installing.md) procedure once again.
If you're opening up registrations publicly like this, you might also wish to [configure CAPTCHA protection](configuring-captcha.md).
## Adding/Removing Administrator privileges to an existing user
## Adding/Removing Administrator privileges to an existing Synapse user
The script `/usr/local/bin/matrix-change-user-admin-status` may be used to change a user's admin privileges.
* log on to your server with ssh
* execute with the username and 0/1 (0 = non-admin | 1 = admin)
To change the admin privileges for a user, you need to run an SQL query like this against the `synapse` database:
```sql
UPDATE users SET admin=ADMIN_VALUE WHERE name = '@USER:DOMAIN'
```
/usr/local/bin/matrix-change-user-admin-status <username> <0/1>
```
where:
- `ADMIN_VALUE` being either `0` (regular user) or `1` (admin)
- `USER` and `DOMAIN` pointing to a valid user on your server
If you're using the integrated Postgres server and not an [external Postgres server](configuring-playbook-external-postgres.md), you can launch a Postgres into the `synapse` database by:
- running `/matrix/postgres/bin/cli` - to launch [`psql`](https://www.postgresql.org/docs/current/app-psql.html)
- running `\c synapse` - to change to the `synapse` database
You can then proceed to run the query above.
**Note**: directly modifying the raw data of Synapse (or any other software) could cause the software to break. You've been warned!

View File

@ -32,6 +32,7 @@ Possibly outdated list of roles where self-building the Docker image is currentl
- `matrix-bridge-mautrix-googlechat`
- `matrix-bridge-mautrix-telegram`
- `matrix-bridge-mautrix-signal`
- `matrix-bridge-mautrix-gmessages`
- `matrix-bridge-mautrix-whatsapp`
- `matrix-bridge-mx-puppet-steam`
- `matrix-bot-mjolnir`

View File

@ -12,7 +12,7 @@
## Uninstalling using a script
Installing places a `/usr/local/bin/matrix-remove-all` script on the server.
Installing places a `/matrix/bin/remove-all` script on the server.
You can run it to to have it uninstall things for you automatically (see below). **Use with caution!**
@ -25,8 +25,6 @@ If you prefer to uninstall manually, run these commands (most are meant to be ex
- delete the Matrix-related systemd `.service` and `.timer` files (`rm -f /etc/systemd/system/matrix*.{service,timer}`) and reload systemd (`systemctl daemon-reload`)
- delete some helper scripts (`rm -f /usr/local/bin/matrix*`)
- delete some cached Docker images (`docker system prune -a`) or just delete them all (`docker rmi $(docker images -aq)`)
- delete the Docker networks: `docker network rm matrix matrix-coturn` (might have been deleted already if you ran the `docker system prune` command)

View File

@ -1,6 +1,6 @@
# Updating users passwords
## Option 1 (if you are using the default matrix-postgres container):
## Option 1 (if you are using the integrated Postgres database):
You can reset a user's password via the Ansible playbook (make sure to edit the `<your-username>` and `<your-password>` part below):
@ -36,7 +36,7 @@ Use the Synapse User Admin API as described here: https://github.com/matrix-org/
This requires an [access token](obtaining-access-tokens.md) from a server admin account. *This method will also log the user out of all of their clients while the other options do not.*
If you didn't make your account a server admin when you created it, you can use the `/usr/local/bin/matrix-change-user-admin-status` script as described in [registering-users.md](registering-users.md).
If you didn't make your account a server admin when you created it, you can learn how to switch it now by reading about it in [Adding/Removing Administrator privileges to an existing Synapse user](registering-users.md#addingremoving-administrator-privileges-to-an-existing-synapse-user).
### Example:
To set @user:domain.com's password to `correct_horse_battery_staple` you could use this curl command:

View File

@ -37,6 +37,7 @@
# Keep some URIs free for different proxy/location
ProxyPassMatch ^/.well-known/matrix/client !
ProxyPassMatch ^/.well-known/matrix/server !
ProxyPassMatch ^/.well-known/matrix/support !
ProxyPassMatch ^/_matrix/identity !
ProxyPassMatch ^/_matrix/client/r0/user_directory/search !
@ -46,11 +47,11 @@
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
ProxyPass /_synapse/client http://127.0.0.1:8008/_synapse/client retry=0 nocanon
ProxyPassReverse /_synapse/client http://127.0.0.1:8008/_synapse/client
# Proxy Admin API (necessary for Synapse-Admin)
# ProxyPass /_synapse/admin http://127.0.0.1:8008/_synapse/admin retry=0 nocanon
# ProxyPassReverse /_synapse/admin http://127.0.0.1:8008/_synapse/admin
# Proxy Synapse-Admin
# ProxyPass /synapse-admin http://127.0.0.1:8766 retry=0 nocanon
# ProxyPassReverse /synapse-admin http://127.0.0.1:8766
@ -64,6 +65,7 @@
Header always set Content-Type "application/json"
Header always set Access-Control-Allow-Origin "*"
</Location>
# Map /.well-known/matrix/server for server discovery
Alias /.well-known/matrix/server /matrix/static-files/.well-known/matrix/server
<Files "/matrix/static-files/.well-known/matrix/server">
@ -72,6 +74,16 @@
<Location "/.well-known/matrix/server">
Header always set Content-Type "application/json"
</Location>
# Map /.well-known/matrix/support for support discovery
Alias /.well-known/matrix/support /matrix/static-files/.well-known/matrix/support
<Files "/matrix/static-files/.well-known/matrix/support">
Require all granted
</Files>
<Location "/.well-known/matrix/support">
Header always set Content-Type "application/json"
</Location>
<Directory /matrix/static-files/.well-known/matrix/>
AllowOverride All
# Apache 2.4:

View File

@ -1,112 +1,10 @@
(cors) {
@cors_preflight method OPTIONS
handle @cors_preflight {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Allow-Methods "HEAD, GET, POST, PUT, PATCH, DELETE"
header Access-Control-Allow-Headers "Content-Type, Authorization"
header Access-Control-Max-Age "3600"
}
}
matrix.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
@identity {
path /_matrix/identity/*
}
@noidentity {
not path /_matrix/identity/*
}
@search {
path /_matrix/client/r0/user_directory/search/*
}
@nosearch {
not path /_matrix/client/r0/user_directory/search/*
}
@static {
path /matrix/static-files/*
}
@nostatic {
not path /matrix/static-files/*
}
@wellknown {
path /.well-known/matrix/*
}
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
# Cache
header @static {
# Cache
Cache-Control "public, max-age=31536000"
defer
}
# identity
handle @identity {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
# search
handle @search {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
handle @wellknown {
encode zstd gzip
root * /matrix/static-files
header Cache-Control max-age=14400
header Content-Type application/json
header Access-Control-Allow-Origin *
file_server
}
# If you have other well-knowns already handled by your base domain, you can replace the above block by this one, along with the replacement suggested in the base domain
#handle @wellknown {
# # .well-known is handled by base domain
# reverse_proxy https://DOMAIN.tld {
# header_up Host {http.reverse_proxy.upstream.hostport}
#}
matrix.example.tld {
handle {
encode zstd gzip
reverse_proxy localhost:8008 {
reverse_proxy localhost:81 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
@ -114,13 +12,12 @@ matrix.DOMAIN.tld {
}
}
matrix.DOMAIN.tld:8448 {
matrix.example.tld:8448 {
handle {
encode zstd gzip
reverse_proxy 127.0.0.1:8048 {
reverse_proxy 127.0.0.1:8449 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
@ -128,142 +25,16 @@ matrix.DOMAIN.tld:8448 {
}
}
element.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
import cors https://*.DOMAIN.tld
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# If using integrations that add frames to Element, such as Dimension and its integrations running on the same domain, it can be a good idea to limit sources allowed to be rendered
# Content-Security-Policy frame-src https://*.DOMAIN.tld
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
handle {
encode zstd gzip
reverse_proxy localhost:8765 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
#dimension.DOMAIN.tld {
#
# # creates letsencrypt certificate
# # tls your@email.com
#
# import cors https://*.DOMAIN.tld
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
# # Only allow same base domain to render this website in a frame; Can be removed if the client (Element for example) is hosted on another domain (clickjacking protection)
# Content-Security-Policy frame-ancestors https://*.DOMAIN.tld
# # X-Robots-Tag
# X-Robots-Tag "noindex, noarchive, nofollow"
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy localhost:8184 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#jitsi.DOMAIN.tld {
#
# creates letsencrypt certificate
# tls your@email.com
#
# import cors https://*.DOMAIN.tld
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
#
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
#
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
# # Only allow same base domain to render this website in a frame; Can be removed if the client (Element for example) is hosted on another domain
# Content-Security-Policy frame-ancestors https://*.DOMAIN.tld
#
# # Disable some features
# Feature-Policy "accelerometer 'none';ambient-light-sensor 'none'; autoplay 'none';camera 'none';encrypted-media 'none';focus-without-user-activation 'none'; geolocation 'none';gyroscope #'none';magnetometer 'none';microphone 'none';midi 'none';payment 'none';picture-in-picture 'none'; speaker 'none';sync-xhr 'none';usb 'none';vr 'none'"
#
# # Referer
# Referrer-Policy "no-referrer"
#
# # X-Robots-Tag
# X-Robots-Tag "none"
#
# # Remove Server header
# -Server
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy 127.0.0.1:13080 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#DOMAIN.com {
example.tld {
# Uncomment this if you are following "(Option 3): Setting up reverse-proxying of the well-known files from the base domain's server to the Matrix server" of https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-well-known.md#option-3-setting-up-reverse-proxying-of-the-well-known-files-from-the-base-domains-server-to-the-matrix-server
# @wellknown {
# path /.well-known/matrix/*
# }
#
# handle @wellknown {
# reverse_proxy https://matrix.DOMAIN.com {
# header_up Host {http.reverse_proxy.upstream.hostport}
# }
# }
# # If you have other well-knowns already handled by your base domain, you can replace the above block by this one, along with the replacement suggested in the matrix subdomain
# # handle /.well-known/* {
# # encode zstd gzip
# # header Cache-Control max-age=14400
# # header Content-Type application/json
# # header Access-Control-Allow-Origin *
# #}
#
# # Configration for the base domain goes here
# # handle {
# # header -Server
# # encode zstd gzip
# # reverse_proxy localhost:4020
# # }
#}
@wellknown {
path /.well-known/matrix/*
}
handle @wellknown {
reverse_proxy https://matrix.example.tld {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
}

View File

@ -0,0 +1,269 @@
(cors) {
@cors_preflight method OPTIONS
handle @cors_preflight {
header Access-Control-Allow-Origin "{args.0}"
header Access-Control-Allow-Methods "HEAD, GET, POST, PUT, PATCH, DELETE"
header Access-Control-Allow-Headers "Content-Type, Authorization"
header Access-Control-Max-Age "3600"
}
}
matrix.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
@identity {
path /_matrix/identity/*
}
@noidentity {
not path /_matrix/identity/*
}
@search {
path /_matrix/client/r0/user_directory/search/*
}
@nosearch {
not path /_matrix/client/r0/user_directory/search/*
}
@static {
path /matrix/static-files/*
}
@nostatic {
not path /matrix/static-files/*
}
@wellknown {
path /.well-known/matrix/*
}
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
# Cache
header @static {
# Cache
Cache-Control "public, max-age=31536000"
defer
}
# identity
handle @identity {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
# search
handle @search {
reverse_proxy localhost:8090 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
handle @wellknown {
encode zstd gzip
root * /matrix/static-files
header Cache-Control max-age=14400
header Content-Type application/json
header Access-Control-Allow-Origin *
file_server
}
# If you have other well-knowns already handled by your base domain, you can replace the above block by this one, along with the replacement suggested in the base domain
#handle @wellknown {
# # .well-known is handled by base domain
# reverse_proxy https://DOMAIN.tld {
# header_up Host {http.reverse_proxy.upstream.hostport}
#}
handle {
encode zstd gzip
reverse_proxy localhost:8008 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
}
matrix.DOMAIN.tld:8448 {
handle {
encode zstd gzip
reverse_proxy 127.0.0.1:8048 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
}
element.DOMAIN.tld {
# creates letsencrypt certificate
# tls your@email.com
import cors https://*.DOMAIN.tld
header {
# Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Enable cross-site filter (XSS) and tell browser to block detected attacks
X-XSS-Protection "1; mode=block"
# Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
X-Content-Type-Options "nosniff"
# Disallow the site to be rendered within a frame (clickjacking protection)
X-Frame-Options "DENY"
# If using integrations that add frames to Element, such as Dimension and its integrations running on the same domain, it can be a good idea to limit sources allowed to be rendered
# Content-Security-Policy frame-src https://*.DOMAIN.tld
# X-Robots-Tag
X-Robots-Tag "noindex, noarchive, nofollow"
}
handle {
encode zstd gzip
reverse_proxy localhost:8765 {
header_up X-Forwarded-Port {http.request.port}
header_up X-Forwarded-Proto {http.request.scheme}
header_up X-Forwarded-TlsProto {tls_protocol}
header_up X-Forwarded-TlsCipher {tls_cipher}
header_up X-Forwarded-HttpsProto {proto}
}
}
#dimension.DOMAIN.tld {
#
# # creates letsencrypt certificate
# # tls your@email.com
#
# import cors https://*.DOMAIN.tld
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
# # Only allow same base domain to render this website in a frame; Can be removed if the client (Element for example) is hosted on another domain (clickjacking protection)
# Content-Security-Policy frame-ancestors https://*.DOMAIN.tld
# # X-Robots-Tag
# X-Robots-Tag "noindex, noarchive, nofollow"
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy localhost:8184 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#jitsi.DOMAIN.tld {
#
# creates letsencrypt certificate
# tls your@email.com
#
# import cors https://*.DOMAIN.tld
#
# header {
# # Enable HTTP Strict Transport Security (HSTS) to force clients to always connect via HTTPS
# Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
#
# # Enable cross-site filter (XSS) and tell browser to block detected attacks
# X-XSS-Protection "1; mode=block"
#
# # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
# X-Content-Type-Options "nosniff"
# # Only allow same base domain to render this website in a frame; Can be removed if the client (Element for example) is hosted on another domain
# Content-Security-Policy frame-ancestors https://*.DOMAIN.tld
#
# # Disable some features
# Feature-Policy "accelerometer 'none';ambient-light-sensor 'none'; autoplay 'none';camera 'none';encrypted-media 'none';focus-without-user-activation 'none'; geolocation 'none';gyroscope #'none';magnetometer 'none';microphone 'none';midi 'none';payment 'none';picture-in-picture 'none'; speaker 'none';sync-xhr 'none';usb 'none';vr 'none'"
#
# # Referer
# Referrer-Policy "no-referrer"
#
# # X-Robots-Tag
# X-Robots-Tag "none"
#
# # Remove Server header
# -Server
# }
#
# handle {
# encode zstd gzip
#
# reverse_proxy 127.0.0.1:13080 {
# header_up X-Forwarded-Port {http.request.port}
# header_up X-Forwarded-Proto {http.request.scheme}
# header_up X-Forwarded-TlsProto {tls_protocol}
# header_up X-Forwarded-TlsCipher {tls_cipher}
# header_up X-Forwarded-HttpsProto {proto}
# }
# }
#}
#DOMAIN.com {
# Uncomment this if you are following "(Option 3): Setting up reverse-proxying of the well-known files from the base domain's server to the Matrix server" of https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-well-known.md#option-3-setting-up-reverse-proxying-of-the-well-known-files-from-the-base-domains-server-to-the-matrix-server
# @wellknown {
# path /.well-known/matrix/*
# }
#
# handle @wellknown {
# reverse_proxy https://matrix.DOMAIN.com {
# header_up Host {http.reverse_proxy.upstream.hostport}
# }
# }
# # If you have other well-knowns already handled by your base domain, you can replace the above block by this one, along with the replacement suggested in the matrix subdomain
# # handle /.well-known/* {
# # encode zstd gzip
# # header Cache-Control max-age=14400
# # header Content-Type application/json
# # header Access-Control-Allow-Origin *
# #}
#
# # Configration for the base domain goes here
# # handle {
# # header -Server
# # encode zstd gzip
# # reverse_proxy localhost:4020
# # }
#}

View File

@ -1,12 +1,20 @@
# Caddyfile
# Caddy reverse-proxy fronting the playbook's integrated Traefik reverse-proxy
This directory contains sample files that show you how to do reverse-proxying using Caddy2.
This directory contains a sample config that shows you how to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with your own [Caddy](https://caddyserver.com/) reverse-proxy.
## Config
| Variable | Function |
| ------------------ | -------- |
| tls your@email.com | Specify an email address for your [ACME account](https://caddyserver.com/docs/caddyfile/directives/tls) (but if only one email is used for all sites, we recommend the email [global option](https://caddyserver.com/docs/caddyfile/options) instead) |
| tls | To enable [tls](https://caddyserver.com/docs/caddyfile/directives/tls) support uncomment the lines for tls |
| Dimension | To enable Dimension support uncomment the lines for Dimension and set your data |
| Jitsi | To enable Jitsi support uncomment the lines for Jitsi and set your data |
## Prerequisite configuration
To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.<your-domain>/vars.yml`).
## Using the Caddyfile
You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile.
In both cases make sure to replace all the `example.tld` domains with your own domain.
This example does not include additional services like element, but you should be able copy the first block and replace the matrix subdomain with the additional services subdomain. I have not tested this though.
# Caddyfile.deprecated
This can be used as a [Caddy](https://caddyserver.com/) reverse-proxy without intermediary playbook managed reverse proxy. However, this setup is not supported by the playbook anymore. Instead [front the integrated reverse-proxy webserver with another reverse-proxy](../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) as described above.

View File

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

17
examples/nginx/README.md Normal file
View File

@ -0,0 +1,17 @@
# Nginx reverse-proxy fronting the playbook's integrated Traefik reverse-proxy
This directory contains a sample config that shows you how to use the [nginx](https://nginx.org/) webserver to front the integrated [Traefik](https://traefik.io/) reverse-proxy webserver with another reverse-proxy.
## Prerequisite configuration
To get started, first follow the [front the integrated reverse-proxy webserver with another reverse-proxy](../../docs/configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) instructions and update your playbook's configuration (`inventory/host_vars/matrix.<your-domain>/vars.yml`).
## Using the nginx configuration
Copy the [matrix.conf](matrix.conf) file to your nginx server's filesystem, modify it to your needs and include it in your nginx configuration (e.g. `include /path/to/matrix.conf;`).
This configuration **disables SSL certificate retrieval**, so you will **need to obtain SSL certificates manually** (e.g. by using [certbot](https://certbot.eff.org/)) and set the appropriate path in `matrix.conf`. In the example nginx configuration, a single certificate is used for all subdomains (`matrix.DOMAIN`, `element.DOMAIN`, etc.). For your setup, may wish to change this and use separate `server` blocks and separate certificate files for each host.
Also note that your copy of the `matrix.conf` file has to be adapted to whatever services you are using. For example, remove `element.domain.com` from the `server_name` list if you don't use [Element](../../docs/configuring-playbook-client-element.md) web client or add `dimension.domain.com` to it if you do use the [Dimension](../../docs/configuring-playbook-dimension.md) integration manager.

View File

@ -0,0 +1,96 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# 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
# if you don't use those, you can remove them
# if you use e.g. dimension on dimension.example.com, add dimension.example.com to the server_name list
server_name example.com matrix.example.com element.example.com;
location / {
# note: do not add a path (even a single /) after the port in `proxy_pass`,
# otherwise, nginx will canonicalise the URI and cause signature verification
# errors.
proxy_pass http://localhost:81;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
access_log /var/log/nginx/matrix.access.log;
error_log /var/log/nginx/matrix.error.log;
# 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
client_max_body_size 50M;
}
# 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
# TODO: adapt the path to your ssl certificate for the domains listed on server_name
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
# settings for matrix federation
server {
# For the federation port
listen 8448 ssl http2 default_server;
listen [::]:8448 ssl http2 default_server;
server_name matrix.example.com;
location / {
proxy_pass http://localhost:8449;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
access_log /var/log/nginx/matrix.access.log;
error_log /var/log/nginx/matrix.error.log;
# 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
client_max_body_size 50M;
}
# 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
# TODO: adapt the path to your ssl certificate for the domains listed on server_name
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
# ensure using https
# TODO: remove server blocks that you don't use / add server blocks for domains you do use
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name example.com;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = matrix.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name matrix.example.com;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = element.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name element.example.com;
listen 80;
return 404; # managed by Certbot
}

View File

@ -21,6 +21,11 @@ matrix_homeserver_implementation: synapse
# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`).
matrix_homeserver_generic_secret_key: ''
# By default, the playbook manages its own Traefik (https://doc.traefik.io/traefik/) reverse-proxy server.
# It will retrieve SSL certificates for you on-demand and forward requests to all other components.
# For alternatives, see `docs/configuring-playbook-own-webserver.md`.
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
# This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains.
#
# In case SSL renewal fails at some point, you'll also get an email notification there.
@ -29,10 +34,26 @@ matrix_homeserver_generic_secret_key: ''
# you won't be required to define this variable (see `docs/configuring-playbook-ssl-certificates.md`).
#
# Example value: someone@example.com
matrix_ssl_lets_encrypt_support_email: ''
devture_traefik_config_certificatesResolvers_acme_email: ''
# A Postgres password to use for the superuser Postgres user (called `matrix` by default).
#
# The playbook creates additional Postgres users and databases (one for each enabled service)
# using this superuser account.
matrix_postgres_connection_password: ''
devture_postgres_connection_password: ''
# By default, we configure Coturn's external IP address using the value specified for `ansible_host` in your `inventory/hosts` file.
# If this value is an external IP address, you can skip this section.
#
# If `ansible_host` is not the server's external IP address, you have 2 choices:
# 1. Uncomment the line below, to allow IP address auto-detection to happen (more on this below)
# 2. Uncomment and adjust the line below to specify an IP address manually
#
# By default, auto-detection will be attempted using the `https://ifconfig.co/json` API.
# Default values for this are specified in `matrix_coturn_turn_external_ip_address_auto_detection_*` variables in the Coturn role
# (see `roles/custom/matrix-coturn/defaults/main.yml`).
#
# If your server has multiple IP addresses, you may define them in another variable which allows a list of addresses.
# Example: `matrix_coturn_turn_external_ip_addresses: ['1.2.3.4', '4.5.6.7']`
#
# matrix_coturn_turn_external_ip_address: ''

27
flake.lock Normal file
View File

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1683777345,
"narHash": "sha256-V2p/A4RpEGqEZussOnHYMU6XglxBJGCODdzoyvcwig8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "635a306fc8ede2e34cb3dd0d6d0a5d49362150ed",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

20
flake.nix Normal file
View File

@ -0,0 +1,20 @@
{
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
outputs = { self, nixpkgs, ... }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
in
{
devShell.x86_64-linux = pkgs.mkShell {
buildInputs = with pkgs; [
just
python311Packages.ansible-core
python311Packages.ansible-lint
python311Packages.passlib
];
LC_ALL = "C.UTF-8";
LC_CTYPE = "C.UTF-8";
};
};
}

View File

@ -0,0 +1,11 @@
jitsi_architecture: "{{ matrix_architecture }}"
jitsi_hostname: "{{ matrix_server_fqn_jitsi }}"
jitsi_uid: "{{ matrix_user_uid }}"
jitsi_gid: "{{ matrix_user_gid }}"
devture_systemd_service_manager_services_list_auto: |
{{
([{'name': (jitsi_identifier + '-jvb.service'), 'priority': 4100, 'groups': ['matrix', 'jitsi', 'jitsi-jvb']}] if jitsi_enabled else [])
}}
matrix_playbook_docker_installation_enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
#!/usr/bin/env bash
# This is a bash script for generating strong passwords for the Jitsi role in this ansible project:
# https://github.com/spantaleev/matrix-docker-ansible-deploy
function generatePassword() {
openssl rand -hex 16
}
echo "# If this script fails, it's likely because you don't have the openssl tool installed."
echo "# Install it before using this script, or simply create your own passwords manually."
echo ""
JICOFO_AUTH_PASSWORD=$(generatePassword)
JVB_AUTH_PASSWORD=$(generatePassword)
JIBRI_RECORDER_PASSWORD=$(generatePassword)
JIBRI_XMPP_PASSWORD=$(generatePassword)
echo "# Paste these variables into your inventory/host_vars/matrix.DOMAIN/vars.yml file:"
echo ""
echo "matrix_jitsi_jicofo_auth_password: $JICOFO_AUTH_PASSWORD"
echo "matrix_jitsi_jvb_auth_password: $JVB_AUTH_PASSWORD"
echo "matrix_jitsi_jibri_recorder_password: $JIBRI_RECORDER_PASSWORD"
echo "matrix_jitsi_jibri_xmpp_password: $JIBRI_XMPP_PASSWORD"

35
jitsi_jvb.yml Normal file
View File

@ -0,0 +1,35 @@
---
- name: "Set up additional Jitsi JVB servers"
hosts: "jitsi_jvb_servers"
become: true
roles:
- role: galaxy/com.devture.ansible.role.playbook_help
- role: galaxy/com.devture.ansible.role.systemd_docker_base
- when: matrix_playbook_docker_installation_enabled | bool
role: galaxy/geerlingguy.docker
vars:
docker_install_compose: false
tags:
- setup-docker
- setup-all
- setup-additional-jitsi-jvb
- install-docker
- install-all
- when: devture_docker_sdk_for_python_installation_enabled | bool
role: galaxy/com.devture.ansible.role.docker_sdk_for_python
tags:
- setup-docker
- setup-all
- setup-additional-jitsi-jvb
- install-docker
- install-all
- custom/matrix-base
- galaxy/jitsi
- custom/matrix-common-after
- when: devture_systemd_service_manager_enabled | bool
role: galaxy/com.devture.ansible.role.systemd_service_manager

60
justfile Normal file
View File

@ -0,0 +1,60 @@
# Shows help
default:
@just --list --justfile {{ justfile() }}
# Pulls external Ansible roles
roles:
#!/usr/bin/env sh
if [ -x "$(command -v agru)" ]; then
agru
else
rm -rf roles/galaxy
ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force
fi
# Updates requirements.yml if there are any new tags available. Requires agru
update:
@agru -u
# Runs ansible-lint against all roles in the playbook
lint:
ansible-lint
# Runs the playbook with --tags=install-all,ensure-matrix-users-created,start and optional arguments
install-all *extra_args: (run-tags "install-all,ensure-matrix-users-created,start" extra_args)
# Runs installation tasks for a single service
install-service service *extra_args:
just --justfile {{ justfile() }} run \
--tags=install-{{ service }},start-group \
--extra-vars=group={{ service }} \
--extra-vars=devture_systemd_service_manager_service_restart_mode=one-by-one {{ extra_args }}
# Runs the playbook with --tags=setup-all,ensure-matrix-users-created,start and optional arguments
setup-all *extra_args: (run-tags "setup-all,ensure-matrix-users-created,start" extra_args)
# Runs the playbook with the given list of arguments
run +extra_args:
ansible-playbook -i inventory/hosts setup.yml {{ extra_args }}
# Runs the playbook with the given list of comma-separated tags and optional arguments
run-tags tags *extra_args:
just --justfile {{ justfile() }} run --tags={{ tags }} {{ extra_args }}
# Runs the playbook in user-registration mode
register-user username password admin_yes_or_no *extra_args:
ansible-playbook -i inventory/hosts setup.yml --tags=register-user --extra-vars="username={{ username }} password={{ password }} admin={{ admin_yes_or_no }}" {{ extra_args }}
# Starts all services
start-all *extra_args: (run-tags "start-all" extra_args)
# Starts a specific service group
start-group group *extra_args:
@just --justfile {{ justfile() }} run-tags start-group --extra-vars="group={{ group }}" {{ extra_args }}
# Stops all services
stop-all *extra_args: (run-tags "stop-all" extra_args)
# Stops a specific service group
stop-group group *extra_args:
@just --justfile {{ justfile() }} run-tags stop-group --extra-vars="group={{ group }}" {{ extra_args }}

View File

@ -1,12 +0,0 @@
---
- name: "Set up additional Jitsi JVB servers"
hosts: "jitsi_jvb_servers"
become: true
roles:
- role: galaxy/com.devture.ansible.role.playbook_help
- role: galaxy/com.devture.ansible.role.systemd_docker_base
- custom/matrix-base
- custom/matrix-jitsi
- custom/matrix-common-after

View File

@ -1,113 +0,0 @@
---
- name: "Set up a Matrix server"
hosts: "{{ target if target is defined else 'matrix_servers' }}"
become: true
roles:
# Most of the roles below are not distributed with the playbook, but downloaded separately using `ansible-galaxy` via the `make roles` command (see `Makefile`).
- role: galaxy/com.devture.ansible.role.playbook_help
- role: galaxy/com.devture.ansible.role.systemd_docker_base
- role: custom/matrix_playbook_migration
- when: matrix_playbook_docker_installation_enabled | bool
role: galaxy/geerlingguy.docker
vars:
docker_install_compose: false
tags:
- setup-docker
- setup-all
- when: devture_docker_sdk_for_python_installation_enabled | bool
role: galaxy/com.devture.ansible.role.docker_sdk_for_python
tags:
- setup-docker
- setup-all
- when: devture_timesync_installation_enabled | bool
role: galaxy/com.devture.ansible.role.timesync
tags:
- setup-timesync
- setup-all
- custom/matrix-base
- custom/matrix-dynamic-dns
- custom/matrix-mailer
- custom/matrix-postgres
- custom/matrix-redis
- custom/matrix-corporal
- custom/matrix-bridge-appservice-discord
- custom/matrix-bridge-appservice-slack
- custom/matrix-bridge-appservice-webhooks
- custom/matrix-bridge-appservice-irc
- custom/matrix-bridge-appservice-kakaotalk
- custom/matrix-bridge-beeper-linkedin
- custom/matrix-bridge-go-skype-bridge
- custom/matrix-bridge-mautrix-facebook
- custom/matrix-bridge-mautrix-twitter
- custom/matrix-bridge-mautrix-hangouts
- custom/matrix-bridge-mautrix-googlechat
- custom/matrix-bridge-mautrix-instagram
- custom/matrix-bridge-mautrix-signal
- custom/matrix-bridge-mautrix-telegram
- custom/matrix-bridge-mautrix-whatsapp
- custom/matrix-bridge-mautrix-discord
- custom/matrix-bridge-mx-puppet-discord
- custom/matrix-bridge-mx-puppet-groupme
- custom/matrix-bridge-mx-puppet-steam
- custom/matrix-bridge-mx-puppet-slack
- custom/matrix-bridge-mx-puppet-twitter
- custom/matrix-bridge-mx-puppet-instagram
- custom/matrix-bridge-sms
- custom/matrix-bridge-heisenbridge
- custom/matrix-bridge-hookshot
- custom/matrix-bot-matrix-reminder-bot
- custom/matrix-bot-matrix-registration-bot
- custom/matrix-bot-maubot
- custom/matrix-bot-buscarron
- custom/matrix-bot-honoroit
- custom/matrix-bot-postmoogle
- custom/matrix-bot-go-neb
- custom/matrix-bot-mjolnir
- custom/matrix-cactus-comments
- custom/matrix-synapse
- custom/matrix-synapse-reverse-proxy-companion
- custom/matrix-dendrite
- custom/matrix-conduit
- custom/matrix-synapse-admin
- custom/matrix-prometheus-node-exporter
- custom/matrix-prometheus-postgres-exporter
- custom/matrix-prometheus
- custom/matrix-grafana
- custom/matrix-registration
- custom/matrix-client-element
- custom/matrix-client-hydrogen
- custom/matrix-client-cinny
- custom/matrix-jitsi
- custom/matrix-ldap-registration-proxy
- custom/matrix-ma1sd
- custom/matrix-dimension
- custom/matrix-etherpad
- custom/matrix-email2matrix
- custom/matrix-sygnal
- custom/matrix-ntfy
- custom/matrix-nginx-proxy
- custom/matrix-coturn
- custom/matrix-aux
- custom/matrix-postgres-backup
- custom/matrix-backup-borg
- custom/matrix-user-creator
- custom/matrix-common-after
- when: devture_systemd_service_manager_enabled | bool
role: galaxy/com.devture.ansible.role.systemd_service_manager
# This is pretty much last, because we want it to better serve as a "last known good configuration".
# See: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2217#issuecomment-1301487601
- when: devture_playbook_state_preserver_enabled | bool
role: galaxy/com.devture.ansible.role.playbook_state_preserver
tags:
- setup-all
- role: galaxy/com.devture.ansible.role.playbook_runtime_messages

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