Dept of communities
Ubuntu Matrix homeserver just went live π
Nils announces
Even if we are formally still in testing phase until the end of the Ubuntu 24.04 cycle, the Ubuntu Matrix homeserver reached a state in which we can consider it live.
Although Ubuntu used to be IRC-only, we are now adopting Matrix to cater to a wider, diverse audience, including less technical users and younger generations. Matrix allows us to do so while staying true to the values that brought us Ubuntu, Linux and FOSS. When selecting the tools we use, we are always focused on open-source, privacy and freedom respecting software. We believe that Matrix offers all the modern features we need without compromising our values. Moreover, Matrix will make it easier for us to interact with neighboring communities such as Fedora and KDE.
There is still a lot of work to do, but we want to take a moment to thank the Ubuntu and Matrix communities for their great effort and dedication to this project.
You can read more about it on this Discourse thread and of course, you can now join our Ubuntu community from any Matrix federated server. A good start is the Ubuntu Community Space
Dept of Status of Matrix π‘οΈ
Josh Simmons reports
We are bowled over by the level of support weβve received since launching our new fundraiser!
Weβre now up to 162 Individual Members, 114 of which are brand new supporters. To top things off, weβve doubled the number of organizational members, adding Fairkom, IndieHosters, and XWiki, and have received a donation from the Thunderbird project.
This is extremely encouraging, though we still have a long way to go to fill the gap in our budget, and are looking forward to larger organizations stepping up to the plate.
If your organization uses Matrix or believes in the values of open source, open standards, privacy, and decentralization: this is your call to action. Help us secure the future of Matrix and join the Foundation today.
Dept of Spec π
Andrew Morgan (anoa) says
Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.
MSC Status
New MSCs:
- MSC4103: Make threaded read receipts opt-in in /sync
- MSC4102: Clarifying precedence in threaded and unthreaded read receipts in EDUs
- MSC4101: Hashes for unencrypted media
- MSC4100: Scoped signing keys
- MSC4099: Participation based authorization for servers in the Matrix DAG
MSCs in Final Comment Period:
- MSC4041: http header Retry-After for http code 429 (merge)
- MSC2530: Body field as media caption (merge)
Accepted MSCs:
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
After adding two new members to the Spec Core Team last week, we had a number of tasks to ensuring our infrastructure and processes supported adding new members.
At this point the GitHub team has the new members, updating the matrix.org about page and all ongoing proposed FCP comments have been updated (so that they can vote for FCP!). Kudos to the team for making the process all relatively pain-free (and even documenting it!).
Exciting things to come as folks get up to speed.
Random MSC of the Week
The random MSC of the week is... MSC3468: MXC to Hashes!
This MSC is working towards a noble goal; deduplicating media, as well as allowing a server-agnostic way to reference them (a hash). It does so by redefining MXC URIs as these hashes, rather than the
mxc://{serverName}/{mediaId}
format they are today.The proposal also adds two new endpoints to both the Client-Server API and the Server-Server API. One for asking the server for a hash given an old-style MXC URI, and another for "cloning" a remote piece of media (downloading it to your local homeserver instance).
This work joins other MSCs in solving media retention, redaction, and resiliency, namely:
- MSC3911: Linking media to events
- MSC3916: Authentication for media
- MSC2846: Decentralizing media through CIDs
So do check them all out if you're interested in the problem space!
Dept of Servers π’
Synapse (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Andrew Morgan (anoa) says
This week Synapse v1.101.0 was released. With it came a fix for a performance regression in v1.100.0, as well as some other minor changes.
Coming up are a few performance changes courtesy of @erikjohnston, stemming from work to continue scaling matrix.org as we take on new users. This includes:
- Avoid dropping the entire event cache when purging room history (#16905)
- Reducing duplicate server key requests over federation (#16894)
...and more. Smaller servers will benefit from these changes as well. Thanks Erik!
Coming up are further performance fixes, along with more bugfixes, including a potential fix for a class of stuck notifications related to threads.
Thank you to all our contributors and those who test our release candidates! π
matrix-media-repo (website)
Matrix media repository with multi-domain in mind.
TravisR reports
MMR v1.3.4 has landed! The changelog is a bit longer than usual, but still very much worth the read. Here's the highlights:
Dendrite homeservers can now have their media imported. This has only been tested on a monolithic setup so far, but folks have had success with the legacy polylith as well. Give it a go and please report bugs π
Media can now be exported to Synapse. If you're migrating from EMS to self-hosted and don't want to use MMR, run the
import_to_synapse
tool to recover your media. This is particularly recommended for the relatively small EMS hosts which are migrating, as MMR is more designed for large servers and hosting providers.ARM Docker images are available from the new GHCR registry. See changelog for details π
CDN support has started landing through media redirects. Set
publicBaseUrl
on an S3 datastore and requesters will be redirected (if they opt-in to redirects). CDN support is planned to be expanded to include upload-to-url, authenticated media, and optimizations in thumbnail handling to reduce bandwidth usage. Stay tuned for updates!Plus the usual bug fixes and improvements. For community support on running MMR, please visit #media-repo:t2bot.io.
Dept of Clients π±
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
Doug announces
- Version 1.5.6 is available on TestFlight (with 1.5.7 due shortly).
- Typing indicators have been added, with a combined Presence setting for disabling these and read receipts.
- The app will now ask for your recovery key after you signed in but there are no other sessions to verify against.
- You can now copy a link without copying the entire message.
- We have improved our logic for sending read receipts when there are reactions and other hidden events.
Dept of SDKs and Frameworks π§°
Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
Emma [it/its] says
Not much to report on this week (yet to be committed and pushed π ) Mostly spent time working on LibDMSpace (abstraction for organising DMs into a space), see MatrixUtils repo for that!
Changes
- Fixed powerlevel checks
- Bug fix in initial sync detection in order to fix all responses getting logged to console
- AddChildById wrapper for spaces
- Added syncfilter for command listener in bot extensions
And, as always:
- The code is available at cgit.rory.gay!
- All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
- Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
- Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!
Matrix Widget Toolkit
Milton Moura announces
After the cooldown from FOSDEM '24, where we presented NeoDateFix in the Matrix devroom and had a blast meeting and discussing awesome ideas with other Matrix-minded people, we at Nordeck have been busy working on new features for our Widgets.
This week, we are excited to announce that the Matrix Widget Toolkit now has support for accessing the Media Repository via the Widget API, aka, File Upload Support.
The groundwork for this started midway last year, when we contributed the implementations for the Matrix React SDK and the Matrix Widget API, based on our proposed MSC4039: Access the Content repository with the Widget API, which were released in Element Web v1.11.46 back in October 2023.
Demo / Example
As this feature now lands in the toolkit, we provide an example widget that you can try out for yourself by creating a new room and following these instructions, which showcases how you can upload images and reference them in a room using custom events.
This not only includes the media repository image upload example but also several other samples of what you can do with the Matrix Widget Toolkit, such as manipulating room state events, read, observe and send message events, search the user directory, etc.
Features
We use this toolkit as the basis for our widgets, as it provides several reusable packages that are specific to Widget development, such as:
- a more convenient wrapper for the Widget API
- a set of React components that make it straight-forward to integrate the Widget API in your web app
- a themable and accessible MUI package for implementing Widgets that have a consistent user interface when embedded within Element Web
- mocked objects for improved testing support
- and finally, a base container image to host widgets in a production environment.
Stay tuned for more exciting Widget-land updates from us in the following weeks! As usual, if you have any questions or feedback, you can reach us at #nordeck:matrix.org.
Trixnity (website)
Multiplatform Kotlin SDK for Matrix
Benedict reports
Another small release in Trixnity:
features/improvements:
- added MatrixRegex (currently containing user regex). Thanks to @adambrangenberg
bugfixes:
- fix missing RoomRoomUserReceiptsRepository declaration
Dept of Services π
Matrix Room Search
Aine says
Matrix Rooms Search got stats timeline!
MRS is global Matrix Federation search engine we've built at etke.cc.
The
/stats
endpoint was updated - now it includesdetails
with online/indexable servers, and parsed/indexed rooms. Plus, the newtimeline
key was added withdetails
per date.The timeline is updated on each full reindex (on daily basis in case of the demo instance matrixrooms.info).
Alongside the new MRS endpoint, we've added visual representation on the MatrixRooms.info/stats page.
Check the source code, and stay tuned in #mrs:etke.cc room!
π Today marks 3 years of etke.cc! π
Your matrix server on your conditions
Aine announces
The etke.cc managed Matrix hosting service was launched on the 12th of February 2021 and has turned 3 years old today!
Below, we'd like to show you what improvements have happened over the last year and what's coming ahead for us.
New payment model, more services, more server regions
In case you've missed our large news announcement from December 2023, it's not too late to learn about it now.
To summarize, we have:
- switched to a new payment/pricing model, which is more sustainable
- launched many of new components and services (see below) and will continue to launch new ones
- completely reworked order form - easier for you and for us - a quicker turnaround time when deploying servers
- began offering more powerful servers (using Hetzner Cloud's CPX line) and in more geographic locations - including the U.S.
We encourage you to read the our original news announcement for more details about these changes.
New component additions
In the past year, we have launched many new Matrix-related and non-Matrix components.
If you'd like to use one or more of the components seen below, contact us and we'll install it to your existing server.
New Matrix-related components
All of the Matrix components described below are new additions to our stack. Some are installed by default to all servers managed by us, as part of our base Matrix components stack.
- (free) Sliding-sync - assists next-generation clients like Element X in talking to the homeserver in an optimized manner. This component is installed by default to all servers as part of our base Matrix components stack.
- (free) Encrypted Bridges - we now offer a checkbox on our order form that globally enables encryption for all bridges that support it. This is experimental and may not work well for some bridges, so we don't recommend it to everyone.
- (free) The synapse_auto_compressor tool, which runs in the background and periodically compresses the (Postgres) database for the Synapse homeserver, so that it runs optimally. This component is installed by default to all servers as part of our base Matrix components stack.
- (free) We've switched to exim-relay for delivering emails (optionally via an SMTP relay) and wired all email-sending components (the Synapse Matrix homeserver and other addons) to it.
- (free addition to our $5/mo bridge pack) a Google Messages bridge (powered by
mautrix-gmessages
). The old Google Chat bridge still continues to work.- (+$1/mo) the SchildiChat web-based Matrix client - an Element-web fork offering more customization.
- (+$3/mo) ChatGPT - a Large-Language-Model (LLM) bot that you can talk to via Matrix, based on OpenAI's ChatGPT (Requires a separately-obtained OpenAI API key)
- (+$2/mo) S3 storage support for the Synapse homeserver - for infinite Matrix media storage (Requires a separately obtained AWS S3-compatible object store of your choice)
- (+$5/mo) Synapse workers - a multi-process homeserver setup to more efficiently handle many users and large rooms (Requires a powerful server - 8+ GB of RAM)
We've also replaced our Signal bridge (
mautrix-signal
) offering with the new bridge implementation (complete rewrite from Python to Golang).New non-Matrix-related components
- (+$1/mo) [previously-offered and making a comeback] the Miniflux RSS reader
- (+$1/mo) [previously-offered and making a comeback] the Radicale CalDAV/CardDAV server
- (+$1/mo) [previously-offered and making a comeback] the Uptime Kuma monitoring system
- (+$1/mo) [brand new] the Linkding bookmark manager
- (+$2/mo) [brand new] the Vaultwarden password manager (a lightweight Bitwarden-compatible server which can be used with the Bitwarden client apps)
- (+$2/mo) [brand new] the Firezone - a VPN server based on WireGuard with a Web UI
- (+$3/mo) [brand new] the GoToSocial ActivityPub server (a lightweight Mastodon alternative)
New or discontinued etke.cc services
Dedicated support
On the services front, we're now offering a Dedicated support tier for $100/mo. This is an addition to the free Basic support tier that we offer to all etke.cc customers.
The dedicated support tier is useful when your product relies on Matrix and you may require quicker help in case of outages. The main differences with the Basic tier are the dedicated Matrix chat room with etke.cc developers and the higher priority of your requests relative to others.
Matrix Rooms Search
We've developed the Matrix Rooms Search tool (naturally, as AGPLv3-licensed free-software). Anyone can run their instance and index the global Matrix Federation.
MRS provides a search across room names, topics, etc., allowing for better discoverability of rooms across all of Matrix.
We're making Matrix Rooms Search available to etke.cc customers in 2 ways:
- The MatrixRooms.info website
- Pre-configured as an alternative Rooms Directory in Element
More domain choices
To those who don't wish to use their own custom domain for their server, we've been offering hosting on etke.cc-owned domains like
my-business.etke.host
.At the expense of some independence (afforded by having your own custom domain), using etke.cc-owned domains allows people to avoid dealing with domains, DNS, and the cost that comes with that.
We now offer hosting on these additional domains:
onmatrix.chat
kupo.email
matrix.town
matrix.fan
ma3x.chat
When making a new order, you can claim your subdomain on any of these domains and get your Matrix server deployed more quickly and easily (no DNS configuration required on your side).
Discontinuing our Custom Consulting/Development service
We used to offer a Custom Consulting/Development service - helping people with custom deployments or integrations on top of Matrix.
We have discontinued this service in order to free up time and let us focus on improving etke.cc for everyone. This is part of the reason why we have so many major improvements to announce in this birthday post.
Improved internals
Besides the many new components, services and tools, we've also done a lot of internal work - improving reliability and performance.
Below are some of the important internal changes we've done:
- The Scheduler:
- Automatic HTTP, DNS, and port checks, including federation tests, on
run ping
andrun maintenance
- Cumulative alerts - we combine multiple failure alerts into a single message that we deliver via Matrix and email
- Improved deliverability of emails, thanks to sending them via Postmark
- Full overhaul of the agent/worker (injector) part making it blazing-fast and decreasing the delay (to milliseconds) between receiving a command from the user and executing it
- Huge refactoring of the codebase
- Many automation improvements, allowing us to more quickly and easily install new servers
- Server Maintenance:
- Automatic Postgres database vacuuming on each maintenance run
- Automatic Postgres database tuning (based on PGTune's calculaton logic) which takes into account your server's configuration and installed components
- Networking: reworked Matrix stack networking for improved security, performance and ease of plugging-in new services (we've migrated from nginx to Traefik)
- Emails: we've also configured DKIM, SPF and rDNS for customers hosted on our (Hetzner Cloud) servers - this improves outgoing email deliverability for big providers like Google (see New Gmail protections for a safer, less spammy inbox)
Free-software work
We've also done a lot of work on a new free-software (AGPLv3) Ansible mega-playbook - mash-playbook, which currently includes 80+ components. Many of these began their life at etke.cc, while others were developed by us (or by the community) later on. Some of these components will be offered as addon components to etke.cc customers in the future. There are no technical difficulties to offering all of them immediately, but supporting a new component is not so simple - it requires documentation, commitment, support-staff training, etc.
Components from mash-playbook and the matrix-docker-ansible-deploy playbook are at the core of our automation (etke/ansible), powering all servers managed by us.
As part of our work over the past year, we have also developed and released as free-software (AGPLv3) the following new tools:
- MRS - Matrix Rooms Search, the backend that powers our MatrixRooms.info service (discussed above)
- A.G.R.U - a command-line tool like ansible-galaxy, but faster
- ansible-ssh - a command-line tool (wrapper around
ssh
) that makes it easy to SSH into hosts found in an Ansible inventory file- radicale-auth-matrix - an adapter that connects Radicale's user authentication system to Matrix
Numbers
- We've installed 243 new Matrix servers
- Pushed 461 updates and enhancements to the automation framework used as the service core
- Posted 60 updates in the announcements room, so you're always up-to-date with what we're working on
If you're curious to travel back in time, here are posts from previous etke.cc birthdays:
Dept of Guides π§
Matrix Client Tutorial
uhoreg announces
My Matrix Client Tutorial now has a simple demo program showing how to use the encryption routines. Non-encryption-related, I've also added support for the
Retry-After
header as per MSC4041, which is currently in FCP. Next up, I plan on going through the encryption section again to do some cleaning things up and filling in some missing details. After that, I'll probably write about the media repository, so that I can write about encrypted media.
Matrix Federation Stats
Aine reports
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
8757
Matrix federateable servers have been discovered by matrixrooms.info,2490
(28.4%
) of them are publishing their rooms directory over federation. The published directories contain20629
rooms.Stats timeline is available on MatrixRooms.info/stats
Dept of Ping π
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
#ping:maunium.net
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | ari.lt | 251 |
2 | fostered.uk | 276.5 |
3 | maunium.net | 278 |
4 | nerdhouse.io | 280.5 |
5 | arva.net | 382 |
6 | matrix.its-tps.fr | 448 |
7 | aguiarvieira.pt | 491 |
8 | littlevortex.net | 533 |
9 | midnightthoughts.space | 659 |
10 | brothertec.eu | 717.5 |
#ping-no-synapse:maunium.net
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | ari.lt | 127.5 |
2 | aguiarvieira.pt | 142 |
3 | nerdhouse.io | 156.5 |
4 | chatinamatrix.xyz | 158 |
5 | spritsail.io | 179 |
6 | fostered.uk | 195.5 |
7 | matrix.its-tps.fr | 198 |
8 | inu.is | 206 |
9 | dendrite.s3cr3t.me | 226.5 |
10 | littlevortex.net | 471 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.
Support us