7.7 KiB
2022
For matrix-docker-ansible-deploy, 2022 started with breaking the Synapse monopoly by adding support for the Dendrite Matrix homeserver in early January. This required various internal changes so that the Ansible playbook would not be Synapse-centric anymore. This groundwork paved the way for continuing in this direction and we added support for Conduit in August.
When it comes to the matrix-docker-ansible-deploy
Ansible playbook, 2022 was the year of the non-Synapse homeserver implementation. In practice, none of these homeserver implementations seem ready for prime-time yet and there is no migration path when coming from Synapse. Having done our job of adding support for these alternative homeserver implementations, we can say that we're not getting in the way of future progress. It's time for the Dendrite developers to push harder (development-wise) and for the Synapse developers to take a well-deserved long (infinite) break, and we may get to see more people migrating away from Synapse in the next year(s).
Support for the following new bridges was added:
- Postmoogle for bi-directional email bridging, which supersedes my old and simplistic email2matrix one-way bridge-bot
- mautrix-discord
- go-skype-bridge
- matrix-appservice-kakaotalk
Support for the following new bots was added:
Support for the following new components and services was added:
- Borg backup
- Cactus Comments
- Cinny client support
- ntfy notifications
- matrix-ldap-registration-proxy
- matrix_encryption_disabler support
- synapse-s3-storage-provider to stop the Synapse media store from being a scalability problem. This brought along another feature - an easier way to customize the Synapse container image without having to fork and self-build all of it from scratch
Besides these major user-visible changes, a lot of work also happened under the hood:
- we made major improvements to Synapse workers - adding support for stream writers and for running multiple workers of various kinds (federation senders, pushers, background task processing workers, etc.)
- we improved the compatibility of (Synapse + workers) with the rest of the playbook by introducing a new
matrix-synapse-reverse-proxy-companion-service
service - we started splitting various Ansible roles out of the Matrix playbook and into independent roles (e.g.
matrix-postgres
-> com.devture.ansible.role.postgres), which could be included in other Ansible playbooks. In fact, these roles already power a few interesting other sibling playbooks:- gitea-docker-ansible-deploy, for deploying a Gitea (self-hosted Git service) server
- nextcloud-docker-ansible-deploy, for deploying a Nextcloud groupware server
- vaultwarden-docker-ansible-deploy, for deploying a Vaultwarden password manager server (unofficial Bitwarden compatible server)
These sibling playbooks co-exist nicely with one another due to using Traefik for reverse-proxying, instead of trying to overtake the whole server by running their own nginx reverse-proxy. Hopefully soon, the Matrix playbook will follow suit and be powered by Traefik by default.
Last, but not least, to optimize our etke.cc managed Matrix hosting service's performance (but also individual Ansible playbook runs for people self-hosting by themselves using the playbook), we've improved playbook runtime 2-5x by employing various Ansible tricks.