Federated instant messaging, 100% debianized

Posted on July 15, 2025
Tags: madeof:bits, topic:xmpp, topic:debian

This is an approximation of what I told at my talk Federated instant messaging, 100% debianized at DebConf 25, for people who prefer reading text. There will also be a video recording, as soon as it’s ready :) at the link above.

Communicating is a basic human need, and today some kind of computer-mediated communication is a requirement for most people, especially those in this room.

With everything that is happening, it’s now more important than ever that these means of communication aren’t controlled by entities that can’t be trusted, whether because they can stop providing the service at any given time or worse because they are going to abuse it in order to extract more profit.

If only there was a well established chat system based on some standard developed in an open way, with all of the features one expects from a chat system but federated so that one can choose between many different and independent providers, or even self-hosting.

But wait, it does exist!

I’m not talking about IRC, I’m talking about XMPP!

While it has been around since the last millennium, it has not remained still, with hundred of XMPP Extension Protocols, or XEPs that have been developed to add all of the features that nobody in 1999 imagined we could need in Instant Messaging today, and more, such as IoT devices or even social networks.

There is a myth that this makes XMPP a mess of incompatible software, but there is an XEP for that: XEP-0479: XMPP Compliance Suites 2023, which is a list of XEPs that needs to be supported by Instant Messaging servers and clients, including mobile ones, and all of the recommended ones will mostly just work.

These include conversations.im on android, dino on linux, which also works pretty nicely on linux phones, gajim for a more fully featured option that includes the kitchen sink, profanity for text interface fanatics like me, and I’ve heard that monal works decently enough on the iThings.

One thing that sets XMPP apart from other federated protocols, is that it has already gone through the phase where everybody was on one very big server, which then cut out federation, and we’ve learned from the experience. These days there are still a few places that cater to newcomers, like https://account.conversations.im/, https://snikket.org/ (which also includes tools to make it easier to host your own instance) and https://quicksy.im/, but most people are actually on servers of a manageable size.

My strong recommendation is for community hosting: not just self-hosting for yourself, but finding a community you feel part of and trust, and share a server with them, whether managed by volunteers from the community itself, or by a paid provider.

If you are a Debian Developer, you already have one: you can go to https://db.debian.org/ , select “Change rtc password” to set your own password, wait an hour or so and you’re good to go, as described at the bottom of https://wiki.debian.org/Teams/DebianSocial.

A few years ago it had remained a bit behind, but these days it’s managed by an active team, and if you’re missing some features, or just want to know what’s happening with it, you can join their BoF on Friday afternoon (and also thank them for their work).

But for most people in this room, I’d also recommend finding a friend or two who can help as a backup, and run a server for your own families or community: as a certified lazy person who doesn’t like doing sysadmin jobs, I can guarantee it’s perfectly feasible, about in the same range of difficulty as running your own web server for a static site.

The two most popular servers for this, prosody and ejabberd, are well maintained in Debian, and these days there isn’t a lot more to do than installing them, telling them your hostname, setting up a few DNS entries, and then you mostly need to keep the machine updated and very little else.

After that, it’s just applying system security updates, upgrading everything every couple years (some configuration updates may be needed, but nothing major) and maybe helping some non-technical users, if you are hosting your non-technical friends (the kind who would need support on any other platform).


Question time (including IRC questions) included which server would be recommended for very few users (I use prosody and I’m very happy with it, but I believe ejabberd works also just fine), then somebody reminded me that I had forgotten to mention https://www.chatons.org/ , which lists free, ethical and decentralized services, including xmpp ones.

I was also asked a comparison with matrix, which does cover a very similar target as XMPP, but I am quite biased against it, and I’d prefer to talk well of my favourite platform than badly of its competitor.