Commit Graph

363 Commits

Author SHA1 Message Date
Slavi Pantaleev
d0cda27c97 Fix Synapse cache auto-tuning variables to use bytes, not KB
Fixup for https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3017

This reverts 1cd82cf068 and also multiplies results by `1024`
so as to pass bytes to Synapse, not KB (as done before).

1cd82cf068 was correctly documenting what we were doing (passing KB values),
but that's incorrect.

Synapse's Config Conventions
(https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#config-conventions)
are supposed to clear it up, but they don't currently state what happens when you pass a plain number (without a unit suffix).

Thankfully, the source code tells us:
bc1db16086/synapse/config/_base.py (L181-L206)

> If an integer is provided it is treated as bytes and is unchanged.
>
> String byte sizes can have a suffix of ...
> No suffix is understood as a plain byte count.

We were previously passing strings, but that has been improved in 3d73ec887a.

Regardless, non-suffixed values seem to be treated as bytes by Synapse,
so this patch changes the variables to use bytes.

Moreover, we're moving from `matrix_synapse_memtotal_kb` to
`matrix_synapse_cache_size_calculations_memtotal_bytes` as working with
the base unit everywhere is preferrable.

Here, we also introduce 2 new variables to allow for the caps to be
tweaked:

- `matrix_synapse_cache_size_calculations_max_cache_memory_usage_cap_bytes`
- `matrix_synapse_cache_size_calculations_target_cache_memory_usage_cap_bytes`
2024-02-14 13:39:40 +02:00
Slavi Pantaleev
1cd82cf068 Fix unit inaccuracy in documentation for cache-autotuning-related variables
Related to: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3017
2024-02-14 12:25:34 +02:00
Catalan Lover
9eab0292d4
Increase Synapse caches and enable cache-autotuning by default (#3017)
* Modify Synapse Cache Factor to use Auto Tune

Synapse has the ability to as it calls in its config auto tune caches.

This ability lets us set very high cache factors and then instead limit our resource use.

Defaults for this commit are 1/10th of what Element apparently runs for EMS stuff and matrix.org on Cache Factor and upstream documentation defaults for auto tune.

* Add vars to Synapse main.yml to control cache related config

This commit adds various cache related vars to main.yml for Synapse.

Some are auto tune and some are just adding explicit ways to control upstream vars.

* Updated Auto Tune figures

Autotuned figures have been bumped in consultation with other community members as to a reasonable level. Please note these defaults are more on the one of each workers side than they are on the monolith Side.

* Fix YML Error

The playbook is not happy with the previous state of this patch so this commit hopefully fixes it

* Add to_json to various Synapse tuning related configs

* Fix incorrect indication in homeserver.yaml.j2

* Minor cleanups

* Synapse Cache Autotuning Documentation

* Upgrade Synapse Cache Autotune to auto configure memory use

* Update Synapse Tuning docs to reflect automatic memory use configuration

* Fix Linting errors in synapses main.yml

* Rename variables for consistency (matrix_synapse_caches_autotuning_* -> matrix_synapse_cache_autotuning_*)

* Remove FIX ME comment about Synapse's `cache_autotuning`

`docs/maintenance-synapse.md` and `roles/custom/matrix-synapse/defaults/main.yml`
already contains documentation about these variables and the default values we set.

* Improve "Tuning caches and cache autotuning" documentation for Synapse

* Announce larger Synapse caches and cache auto-tuning

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-02-14 12:02:06 +02:00
chagai95
a27464a546
Update CHANGELOG.md (#3181)
* Update CHANGELOG.md

* Update CHANGELOG.md
2024-02-12 17:35:48 +02:00
Slavi Pantaleev
1160e32126 Fix incorrect variable name for base-domain root-path redirection
Fixes a typo in 76a265f9a1

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3153
2024-02-03 18:48:24 +02:00
Slavi Pantaleev
76a265f9a1 Document new base-domain root-path redirection behavior 2024-02-03 08:06:00 +02:00
Slavi Pantaleev
9a7cb0f716 Fix broken link in changelog entry 2024-01-20 12:45:10 +02:00
Slavi Pantaleev
24394d3ec4 Announce support for specialized Synapse workers
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3100
2024-01-20 12:43:30 +02:00
Slavi Pantaleev
f9e19e9623 Always uninstall matrix-nginx-proxy, if discovered
This changes the behavior of
`matrix_playbook_migration_matrix_nginx_proxy_uninstallation_enabled`
and is against what we initially described in the changelog entry,
but I've discovered some problems when the `matrix-nginx-proxy` service
and container remain running. They need to go.
2024-01-17 17:22:08 +02:00
Slavi Pantaleev
aa0a85b094 Properly switch to element-hq-synapse and introduce variables for customizing that 2024-01-17 08:40:23 +02:00
Slavi Pantaleev
c0afcaa2e3 Replace (almost) all matrix-org/synapse references with element-hq/synapse
Issues and Pull Requests were not migrated to the new
organization/repository, so `matrix-org/synapse/pull` and
`matrix-org/synapse/issues` references were kept as-is.

`matrix-org/synapse-s3-storage-provider` references were also kept,
as that module still continues living under the `matrix-org` organization.

This patch mainly aims to change documentation-related things, not actual
usage in full yet. For polish that, another more comprehensive patch is coming later.
2024-01-17 08:02:47 +02:00
Catalan Lover
8e5c6fbfc9
Draupnir Relicense Changelog Entry 2024-01-16 01:57:14 +01:00
Slavi Pantaleev
8dadcee4bc Goodbye, matrix-nginx-proxy 🪦 2024-01-15 16:52:02 +02:00
Slavi Pantaleev
ad32953e0b Add additional-networks support to matrix-coturn
Not that it seems necessary right now, but it makes it consistent with
all other roles.
2024-01-15 11:18:09 +02:00
Slavi Pantaleev
95e5a5c62e Deprecate direct usage of devture_traefik_additional_entrypoints_auto 2024-01-14 09:23:36 +02:00
Slavi Pantaleev
4698e64bb8 Improve matrix-reminder-bot maintenance announcement wording 2024-01-13 10:33:56 +02:00
Slavi Pantaleev
22dce1d4cc Upgrade matrix-reminder-bot and lock it down via the new allowlist setting 2024-01-13 10:22:06 +02:00
Slavi Pantaleev
ba0a4e864a Replace matrix-mailer with an external role 2024-01-05 17:54:50 +02:00
Slavi Pantaleev
c744d29567 Announce new mautrix-signal bridge
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3041
2024-01-02 16:06:47 +02: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
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
29b62f77a5 Upgrade Postgres (v16.0-5 -> v16.0-6) - adds auto-tuning 2023-10-18 08:24:52 +03: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
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
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
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
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
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
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
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
Joshua
5a44e06e00
Remedy Typo 2023-04-03 18:34:54 +10:00
Slavi Pantaleev
1d00d15482 Switch to exported Jitsi role 2023-04-03 08:53:46 +03:00
Felix Stupp
e29af490c0
CHANGELOG: Add disabled ntfy web app
See #2529
2023-03-22 09:21:29 +00:00
Slavi Pantaleev
14b8efcad2 Replace matrix-prometheus with an external Prometheus role 2023-03-21 07:38:12 +02:00
Slavi Pantaleev
d3a0ef22b6 Announce matrix-synapse-auto-compressor 2023-03-12 10:55:08 +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
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
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
Jan
05b3f6565b
Update CHANGELOG.md
Fix typo in changelog
2023-02-26 17:21:59 +01: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
a45c70fd66 Announce Rageshake support 2023-02-25 14:04:20 +02:00
Slavi Pantaleev
0da308e24d Upgrade com.devture.ansible.role.traefik 2023-02-19 10:20:13 +02:00
Slavi Pantaleev
5df89a44b3 Add support for customizing Synapse templates 2023-02-17 19:37:34 +02:00
Slavi Pantaleev
990a6369e1 Switch to using an external Redis role 2023-02-17 16:23:59 +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
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
1006b8d899 Replace matrix-grafana with an external role 2023-02-15 10:32:24 +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
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
73435dfe10 Announce Traefik support 2023-02-12 15:53:18 +02: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
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
be78b74fbd Switch from matrix-prometheus-postgres-exporter to an external prometheus_postgres_exporter role 2023-02-05 10:32:09 +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
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
9ed2e04d80 Switch from matrix-prometheus-node-exporter to an external prometheus_node_exporter role 2023-01-21 11:07:04 +02:00
Slavi Pantaleev
fb60ba67f6 Announce just 2023-01-13 09:18:27 +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
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
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
Slavi Pantaleev
0d322a5c86 Announce matrix-postgres replacement and /usr/local/bin cleanup 2022-11-28 08:09:57 +02:00
Slavi Pantaleev
8456657f21 Announce install-* tags 2022-11-25 16:15:19 +02:00
Slavi Pantaleev
6f865a7e0b Announce some playbook changes 2022-11-22 09:23:18 +02:00
Slavi Pantaleev
e9e84341a9 Reverse-proxy to Synapse via matrix-synapse-reverse-proxy-companion
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2090
2022-11-20 16:43:33 +02:00
Slavi Pantaleev
13b63eabf0
Merge pull request #2229 from etkecc/make-etherpad-great-again
standalone etherpad
2022-11-05 11:54:51 +02:00
Slavi Pantaleev
805b70bfa3 Announce standalone Etherpad 2022-11-05 11:47:47 +02:00
Slavi Pantaleev
7289992dba Document make roles some more
Improves:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2232
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2217#issuecomment-1304366791
2022-11-05 07:10:04 +02:00
Slavi Pantaleev
c3a7237de7 Initial work on using externally defined roles 2022-11-04 14:58:28 +02:00
Slavi Pantaleev
410a915a8a Move roles/matrix* to roles/custom/matrix*
This paves the way for installing other roles into `roles/galaxy` using `ansible-galaxy`,
similar to how it's done in:

- https://github.com/spantaleev/gitea-docker-ansible-deploy
- https://github.com/spantaleev/nextcloud-docker-ansible-deploy

In the near future, we'll be removing a lot of the shared role code from here
and using upstream roles for it. Some of the core `matrix-*` roles have
already been extracted out into other reusable roles:

- https://github.com/devture/com.devture.ansible.role.postgres
- https://github.com/devture/com.devture.ansible.role.systemd_docker_base
- https://github.com/devture/com.devture.ansible.role.timesync
- https://github.com/devture/com.devture.ansible.role.vars_preserver
- https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages
- https://github.com/devture/com.devture.ansible.role.playbook_help

We just need to migrate to those.
2022-11-03 09:11:29 +02:00
Slavi Pantaleev
63a0e5c4f6 Add warnings to synapse-s3-storage-provider support feature 2022-10-14 17:58:47 +03:00
Slavi Pantaleev
a3759b0466 Announce Synapse customization and synapse-s3-storage-provider support 2022-10-14 17:50:48 +03:00
Slavi Pantaleev
f4804f475a Announce matrix-ldap-registration-proxy
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2038
2022-10-02 09:27:51 +03:00
Jost Alemann
b8b7974b78
fix: typo 2022-09-16 13:13:11 +02:00
Slavi Pantaleev
109e1addb8 Improve reliability when using more than 1 media_repository worker 2022-09-15 10:45:03 +03:00
Slavi Pantaleev
a1fb082618 Add support for running background tasks on a worker 2022-09-15 10:32:51 +03:00
Slavi Pantaleev
5f3f460cda Restore support for appservice and user_dir workers 2022-09-15 10:06:56 +03:00
Slavi Pantaleev
b842447047 Add support for multiple pusher workers 2022-09-15 08:32:55 +03:00
Slavi Pantaleev
ec654ca91e Add support for multiple federation sender workers 2022-09-15 08:13:08 +03:00
Slavi Pantaleev
226c550ffa Add support for stream writer Synapse workers
As stream writer workers are also powered by the `generic_worker`
Synapse app, this necessitated that we provide means for distinguishing
between them and regular `generic_workers`.

I've also taken the time to optimize nginx configuration generation
(more Jinja2 macro usage, less duplication).

Worker names have also changed.
Workers are now named sequentially like this:
- `matrix-synapse-worker-0-generic`
- `matrix-synapse-worker-1-stream-writer-typing`
- `matrix-synapse-worker-2-pusher`

instead of `matrix-synapse-worker_generic_worker-18111` (indexed with a
port number).

People who modify `matrix_synapse_workers_enabled_list` directly will
need to adjust their configuration.
2022-09-15 08:10:04 +03:00
Slavi Pantaleev
c00a8d4099 Announce Cactus Comments support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2089
2022-09-09 14:47:53 +03:00
Slavi Pantaleev
eaf13264e6 Announce Postmoogle email bridge bot
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2043
2022-08-23 14:16:10 +03:00
Slavi Pantaleev
9ab6c99434 Update changelog
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2012
2022-08-10 14:38:35 +03:00
Slavi Pantaleev
81f4e8cffb Announce Conduit support
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2002
2022-08-09 11:37:57 +03:00
Slavi Pantaleev
9d10d5543b Announce mautrix-discord support 2022-07-29 08:10:09 +03:00
Slavi Pantaleev
2e40ad7d4e Announce Kakaotalk support 2022-07-27 09:36:58 +03:00
Slavi Pantaleev
e5238bf7d5 Announce maubot
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1894
2022-07-20 12:55:18 +03:00
Slavi Pantaleev
e94ec75e1a Remove matrix-bridge-mx-puppet-skype role 2022-07-14 18:09:19 +03:00
Slavi Pantaleev
a1d0b58471 Try to do the signald (0.19.0) data migration automatically
Improvement over e4caf3fa81.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921
2022-07-14 11:50:18 +03:00
Slavi Pantaleev
e4caf3fa81 Add note about signald (0.19.0+) upgrade
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1921
2022-07-14 11:35:38 +03:00
Slavi Pantaleev
5a0e977df8 Announce ntfy role 2022-07-05 09:46:26 +03:00
nono-lqdn
5f6ad0f603 Added a note on managing the basic_auth password on external prometheus
servers
2022-06-24 17:45:52 +02:00
Slavi Pantaleev
ba51997f7b (BC Break) Redo how metrics are exposed to external Prometheus servers 2022-06-23 17:55:07 +03:00
Slavi Pantaleev
5e9e8f9e29 Announce go-skype-bridge support 2022-06-13 08:02:31 +03:00