this post was submitted on 21 Apr 2024
157 points (97.6% liked)

Selfhosted

40696 readers
320 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I'm looking into hosting one of these for the first time. From my limited research, XMPP seems to win in every way, which makes me think I must be missing something. Matrix is almost always mentioned as the de-facto standard, but I rarely saw arguments why it is better than XMPP?

Xmpp seems way easier to host, requiring less resources, has many more options for clients, and is simpler and thus easier to manage and reason about when something goes wrong.

So what's the deal?

top 50 comments
sorted by: hot top controversial new old
[–] barbara@lemmy.ml 83 points 8 months ago* (last edited 8 months ago) (10 children)

Xmpp is old and has no traction. Matrix is new and there are many people believing in it. There is a lot of money put on matrix. A lot of people want matrix to succeed. Especially companies, agencies and governments love matrix. Jumping on a train that already moves forward is easier than trying to push a standing train.

With xmpp, or signal I've got all my messages on my device. Distributing the info to other devices is difficult. With matrix everything sits on the server and distributes the info to the clients. That's like my file cloud, or my photo cloud or my music server, or my document server. Everything is saved centrally on a server and all is independent of the consumer device. I can use multiple devices and everything sits on the server. That's great for me as a user, it's easy.

Xmpp is scattered which is great on one hand but matrix development is moving very fast. Xmpp can't compete with that.

What's the advantage of xmpp over signal for the end user?

[–] poVoq@slrpnk.net 16 points 8 months ago

It is true that Matrix follows a fat server model, but multi-device usage works perfectly well in XMPP these days.

[–] Socsa@sh.itjust.works 11 points 8 months ago

I can use my published PGP keys with XMPP, for starters. And I can use OMEMO. Matrix supports neither afaik.

load more comments (8 replies)
[–] rglullis@communick.news 54 points 8 months ago* (last edited 8 months ago) (2 children)

has many more options for clients,

The problem of XMPP is here. These options are not uniform among the possible different combinations of servers and clients.

The situation has improved a lot, but there was a point in time where saying "this is my XMPP handle" was far from enough to know if you'd be able to communicate with others, and you'd have to figure out things like:

  • Does the server support MUC?
  • Does the server support E2E? If so, which?
  • Are emojis supported on the server, or do they get converted to ASCII?
  • Can you use audio calls? If so, which codec?
  • If my client supports "share live location", what do you see on your end?

Not to mention that until recently there was no decent XMPP client for iOS. Even today, the best alternative is siskin, which may have its vocal fans but quite frankly is pretty barebones and has a UI that would be considered ugly even in 2010.

Matrix as a protocol is technically worse than XMPP and Synapse is a resource hog compared to Prosody and Ejabberd? Yes, true. But at least I can tell non-technical people to download Element from the App stores and they will have a consistently-not-great-but-acceptable-and-improving experience.

[–] derin@lemmy.beru.co 18 points 8 months ago* (last edited 8 months ago) (3 children)

This is the correct answer, IMO.

I loved using XMPP back in the day, but I struggled talking with people who weren't on the same server as me because of spec and client variations.

While Synapse is a resource hog, it (and Element) - to a certain degree - does the job. Can't wait until sync v3 lands in the main server.

The only issue I have is with one friend who insists on deploying his own version of Synapse, but can't figure out coturn and - as a result - we can't voice chat properly.

Goddammit. Two steps forward, one step backward. 😅

load more comments (2 replies)
[–] mbirth@lemmy.mbirth.uk 5 points 8 months ago (4 children)

But at least I can tell non-technical people to download Element from the App stores and they will have a consistently-not-great-but-acceptable-and-improving experience.

Conversations on Android looks and feels like any other modern messenger and supports basically all the XMPP features there are. And I found Monal on iOS to be pretty usable as well, when I tested it 3 years ago.

[–] poVoq@slrpnk.net 5 points 8 months ago* (last edited 8 months ago)

Yes, Monal is catching up to Siskin fast, but until recently didn't support a/v calls which is why many people still prefer Siskin.

As for a unified system, have a look at https://snikket.org which offers a one-stop solution under a single brand similar to Element. It uses lightly modified versions of Conversations, Siskin and Prosody (as a server) under the hood.

load more comments (3 replies)
[–] poVoq@slrpnk.net 44 points 8 months ago* (last edited 8 months ago) (4 children)

Many people have not used XMPP in years or never and go by hearsay of outdated information.

Matrix on the other hand had several million Euros of venture-capital to fund a marketing campaign.

[–] cyclohexane@lemmy.ml 12 points 8 months ago

This makes matrix even less attractive to me lol. But you're right, that's a very good point.

[–] rglullis@communick.news 9 points 8 months ago (2 children)

several million Euros of venture-capital to fund a marketing campaign.

Citation needed. Matrix was funded by Amdocs initially, then got investment from Automattic and has gotten some contracts from European Governments, but AFAIK there is no "VC investment" and there certainly aren't "millions to fund marketing".

They do have better marketing than any XMPP developer, though. You basically don't hear anything from process.one or the Prosody devs.

[–] poVoq@slrpnk.net 26 points 8 months ago (1 children)

As unpopular as VC funding is in some circles, the Matrix community owes a huge debt of thanks to Element’s investors (Status, Notion, firstminute, Dawn, Automattic, Protocol Labs and Metaplanet) and Amdocs for funding over $50M of work on both Matrix and Element since 2017.

Strait from their blog.

[–] rglullis@communick.news 7 points 8 months ago (18 children)

Ok. I lost track of their funding. Seems like they raised $30M in a series B round in 2021.

Still, look at the timeline. 2021 is not that long ago, and Matrix was already ahead of XMPP in mindshare by then. It's not really fair to say that this money was only spent in marketing, and it is not fair to say that without it XMPP would be making some comeback.

load more comments (18 replies)
load more comments (1 replies)
[–] oldfart@lemm.ee 7 points 8 months ago (1 children)

Thos, exactly this. Whenever I ask the question OP asked, it's always some people who used some ancient client in 2008 and never bothered to try again. And then Matrix came to existence with their marketing and they happily started using it, even though it didn't have any better features

load more comments (1 replies)
load more comments (1 replies)
[–] kevincox@lemmy.ml 29 points 8 months ago (1 children)

I don't think you can pick out any one reason. XMPP is very old and has extensions for a huge variety of features. Many people have experience with older versions which had many major missing features (such as strong multi-device with offline support and server-side history) and a lot of the "hype" has died out long ago.

Matrix is new and made a lot of decisions that really helped its popularity.

  1. Having a HTTP-based client-to-server protocol makes web clients very easy to make.
  2. It is based on sync and merging rather than messages which moves some difficult problems (like multidevice and server-side history) into the core protocol meaning that it works well out of the box.
  3. Having HTTP based protocols make hosting it familiar for many people.
  4. The "default" Element clients have lots of features out of the box, features that for a long time were not always present on XMPP servers or clients. This gives a more consistent experience.

We will see what the history holds. Matrix is still very new and maybe the hype will die out and we end up moving back to XMPP. Or maybe something new. Overall I don't think there are major fundamental differences. I think Matrix making graph sync the core primitive to build off of was a good idea, but in practice I don't think it matters much.

You say that XMPP is much lighter. But I think that is mostly due to Synapse not being very efficient. Other implementations are fairly light. Even then my Synapse is using fairly small amounts of resources. You should also check that you are making an apples-to-apples comparison with large rooms, media and message history like you would typically see in a common Matrix server.

[–] allie@lemmy.mbl.social 15 points 8 months ago (2 children)

You say that XMPP is much lighter. But I think that is mostly due to Synapse not being very efficient. Other implementations are fairly light. Even then my Synapse is using fairly small amounts of resources. You should also check that you are making an apples-to-apples comparison with large rooms, media and message history like you would typically see in a common Matrix server.

I have a Prosody server running with about 10 concurrent users (friends/family). I just checked and it's using 32M of RAM, local storage is in the megabytes. The database I'm using as a backend for message history and such is about 70MB. The only other data is temporary cache for uploaded media, which varies depending on what's uploaded. How does that compare with a typical Matrix server for friends and family?

[–] kevincox@lemmy.ml 7 points 8 months ago* (last edited 8 months ago) (1 children)

My Synapse install is using 94MiB of RAM and 500MiB of database disk space. CPU usage is effectively zero. I only have a 3 active users but decades of conversation history for myself (imported from other services). An uncompressed pg_dump of the data is about 250MiB which is within an order of magnitude of the raw text that I have in it. Nearly all of the conversations are encrypted so it wouldn't compress much.

Given that just running python takes 13MB of RAM it probably isn't using many resources past loading the code. At least at small scale running a Matrix server is not a notable resource burden for most people. A Matrix server written in a more efficient language (like Conduit) would likely be fairly similar to an XMPP server written in the same language. Either way unless you are hosting thousands of users it doesn't seem like this is a major problem for either protocol.

[–] poVoq@slrpnk.net 5 points 8 months ago

It should be noted here that Synapse resource use is highly dependent on the specific usage and can easily blow up if even a single user is joining a lot of large popular rooms on the Matrix network. XMPP has no such issue and scales pretty linear with user number.

[–] mao@lemmy.sdf.org 6 points 8 months ago

How did you manage to convince friends and (especially) family to actually use Matrix? Quite impressive!

[–] BrikoX@lemmy.zip 28 points 8 months ago* (last edited 8 months ago) (8 children)

Google killed XMPP momentum. And while Matrix has many issues it needs to figure out, especially the development being almost exclusively supported by a for-profit company, they seem to slowly (very slowly) work towards more independence.

Matrix did some things right. Going with JSON spec instead of XML, having Element as uniform cross-platform client, offering bridges as a way to stay connected with your family and friends without needing to convince them to move (XMPP offers transports, but they function entirely differently) and offering end-to-end encryption by default.

XMPP in true open source fashion doesn't have any uniformity from user perspective. Different ways to do the same thing on different clients, different clients on different platforms. That is a benefit for a savvy tech nerd, but it's a huge inconvenience for a non-techie family member or friend.

load more comments (8 replies)
[–] allie@lemmy.mbl.social 19 points 8 months ago (3 children)

I've been an XMPP user for decades. I use it daily to talk to all of my friends and most of my immediate family, so I'm certainly an advocate for it.

I think in the simplest terms Matrix gets mentioned more often because it's newer and it's development has largely been driven by a corporation with significant funding. XMPP had similar corporate sponsors years ago, but a lot of them moved on. The XMPP community isn't gone, though, and XMPP development has continued.

As others have said, it's true that XMPP had some difficult issues in the past with various clients only supporting certain extensions (XEPs), which meant what worked on one client may not work on another. This problem isn't nearly as much of an issue nowadays, but it was frustrating in the past. There are official compliance suites that clients and servers can use to ensure they meet the base features for a particular purpose, so that has helped in that regard.

To me, XMPP is preferable because it's a messaging protocol, not a giant graph database of all social interactions. I don't need or want that. The main XMPP server software does handle message history that is synced across all devices, but this is often user configurable and none of that information is needed by or shared with other servers. MUCs are not replicated across the network, but only exist on the server that hosts them. While this does mean that server is a single point of failure, it's much simpler to operate and, at least in my opinion, is better from a privacy perspective.

Traditionally XMPP, albeit with propriety extensions, has been used as the basis for a large number of messaging platforms. Google Talk was XMPP. Facebook Messenger was XMPP. WhatsApp still is XMPP, as far as I know. Kik is also XMPP. Google and Facebook's platforms may still use XMPP, but I don't know for sure. It certainly works as a messaging platform for lots of users, but without all the VC money, development is pretty much only done by volunteers or client developers that offer paid builds of their clients (like Conversations on Android).

[–] EngineerGaming@feddit.nl 6 points 8 months ago

I am hosting both XMPP and Matrix now, and my main concern with Matrix is storage. I am afraid it would eat up the very limited disk space I have on my VPS. Conduit offers no built-in way to clean files up, and media is stored in a weird way that makes it a PITA to see which ones can and cannot be deleted. I now know that neither the database files nor the media can be just deleted.

I sorta like the idea of a chatroom existing on more than one server, but that MUST have been opt-in or at the very least opt-out.

load more comments (2 replies)
[–] Samsy@lemmy.ml 11 points 8 months ago (2 children)

Show me a docker compose file which I can simply start and don't have to mess around more than deploy it, and I will discuss xmpp more often.

[–] cyclohexane@lemmy.ml 14 points 8 months ago (2 children)

Here is a docker compose: https://snikket.org/service/resources/docker-compose.yml

You only two configuration options in the config file: domain and email.

load more comments (2 replies)
load more comments (1 replies)
[–] iso@lemy.lol 11 points 8 months ago (3 children)

I don't think XMPP is simpler than Matrix. With my insufficient knowledge; XMPP servers and clients have different standards. Some supports audio/video calls, some requires encryption while other maybe not etc.

Matrix has a standard set of features and all software around it built for those features. TBH I find Matrix pretty instable lately tho.

[–] taladar@sh.itjust.works 4 points 8 months ago (1 children)

I was under the impression that there is only one Matrix server implementation. Standards are not really required in that situation.

[–] farcaller@fstab.sh 11 points 8 months ago

There's way more and I already tried three implementations while trying to get a set of features I need. It's a wild west out there and the resource usage is way higher than e.g. hosting Prosody. Seemingly it has to do with chatrooms being a full mesh, but my single user server consumes about 700mb RSS and 2.4 gb VSZ which is kinda high.

load more comments (2 replies)
[–] onlinepersona@programming.dev 8 points 8 months ago (2 children)

Matrix clients are simple, easy, and nice to look at. The matrix server might need more resources, but it comes with everything out of the box. There's no need to fiddle with extensions and their weird naming, and hope that the other server/client also supports the extension. Also, are there bridges to other protocols?

I remember trying to get encryption working on Pidgin and it was all around a bad experience.

XMPP might be as powerful or more powerful than matrix, but nothing about it screams modern. It's like IRC for Gen X'ers.

Anti Commercial-AI license

[–] poVoq@slrpnk.net 9 points 8 months ago (6 children)

You are basing your experience on Pidgin, which is the worst possible choice for an XMPP client that hasn't been updated in over a decade. Other XMPP clients are relatively modern looking and easy to use, including encryption (probably easier than Matrix for most users).

load more comments (6 replies)
load more comments (1 replies)
[–] Lemongrab@lemmy.one 7 points 8 months ago

If the goal is to make a similar experience to discord, we should make a desktop/android client which changes the way the info is shown. I boil down discords main features this: 1-to-1 call/text, modern messenger features (emojis, text, audio, video, link embeds), servers with the option for channels and always on voice chats, group chats (weird overlap with servers). Always on voice chats should be as simple as disabling notifying or dialing members. Is it not just that simple to get a heavily reduced version of discord? Maybe noisetorch for noise cancelation.

[–] Decronym@lemmy.decronym.xyz 5 points 8 months ago* (last edited 8 months ago) (2 children)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
Git Popular version control system, primarily for code
HTTP Hypertext Transfer Protocol, the Web
IoT Internet of Things for device controllers
VPS Virtual Private Server (opposed to shared hosting)
XMPP Extensible Messaging and Presence Protocol ('Jabber') for open instant messaging

4 acronyms in this thread; the most compressed thread commented on today has 8 acronyms.

[Thread #699 for this sub, first seen 22nd Apr 2024, 03:05] [FAQ] [Full list] [Contact] [Source code]

load more comments (2 replies)
[–] bradboimler@startrek.website 5 points 8 months ago* (last edited 8 months ago)

I think it has more to do with Matrix is kinda becoming the standard for secure open source messaging server but I do agree with you I would just use what works for you personally.

load more comments
view more: next ›