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:

MSCs in Final Comment Period:

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:

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:

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 πŸš€

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 includes details with online/indexable servers, and parsed/indexed rooms. Plus, the new timeline key was added with details 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.

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).

  • (+$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.

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:

  1. The MatrixRooms.info website
  2. 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 and run 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:

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 contain 20629 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

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.

RankHostnameMedian MS
1ari.lt251
2fostered.uk276.5
3maunium.net278
4nerdhouse.io280.5
5arva.net382
6matrix.its-tps.fr448
7aguiarvieira.pt491
8littlevortex.net533
9midnightthoughts.space659
10brothertec.eu717.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.

RankHostnameMedian MS
1ari.lt127.5
2aguiarvieira.pt142
3nerdhouse.io156.5
4chatinamatrix.xyz158
5spritsail.io179
6fostered.uk195.5
7matrix.its-tps.fr198
8inu.is206
9dendrite.s3cr3t.me226.5
10littlevortex.net471

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