This tutorial shows you how to install and configure Prosody XMPP server on Ubuntu 20.04. Prosody is open-source, fast and lightweight.

Nice tutorial.

@gabor
14M

I love Prosody but it took me ages to get it working the way I want :-)) now I haven’t significantly touched my setup in over 6 months and I dare not read this tutorial because I am afraid of what I might learn and that I will want to start tinkering with Prosody again :-)

sseneca
1
edit-2
4M

My current issue with setting up Prosody is with delegation, i.e. having usernames like sseneca@example.com rather than sseneca@xmpp.example.com, even when the server is actually hosted on xmpp.example.com.

My problem is Prosody requires the certificates for the domain you’re identifying as – so in this case, example.com, not xmpp.example.com. But I already host something at example.com, and I don’t have access to its certs (it’s on GitHub Pages). Matrix homeservers OTOH only need the certificates for matrix.example.com, which in my setup makes it significantly easier to run.

@kevincox
14M

Why can’t you get a cert for example.com if you own it? I guess you won’t be able to use an ACME HTTP challenge but you should be able to use DNS, SMTP or even shudders the old fashioned way of manually getting a certificate.

I do like that I can delegate my matrix server to another provider without giving them a cert for my domain but that seems like a minor nit.

sseneca
24M

You’re right, I can (and will) do that. I guess you’re right, it isn’t that big an issue, but it has delayed me setting up a Prosody server for now, which is annoying.

poVoq
creator
04M

Does Matrix even support such kind of DNS SVR record based redirection of user addresses? But IMHO handing over the root certificate to github pages is not the greatest idea anyways. Why not just set up a redirect for the Github page and put it on a subdomain?

sseneca
14M

Matrix supports it both via SRV records as well as via well-known delegation (the latter of which is preferred).

But IMHO handing over the root certificate to github pages is not the greatest idea anyways.

It’s not really “handing over”, I never dealt with them at all, they’re generated by GitHub with Let’s Encrypt automatically.

Why not just set up a redirect for the Github page and put it on a subdomain?

Not sure what you mean?

poVoq
creator
14M

Ah ok good to know.

That is what I meant with handing over, as you don’t have access to them, right?

You could point example.com to your own server and get the root certificate there. In addition instruct your Nginx/Apache to redirect any users going to example.com to a different subdomain like blog.example.com, which in turn points to github pages. Github pages then just requests a cert for that subdomain.

sseneca
14M

Yeah, I don’t, which admittedly is annoying in this case. But on the whole it’s not a big deal imo.

Yes I could do that, but it would require each connection to be processed by nginx on my server, which I don’t want. The only reason I use GitHub Pages for my website is because I don’t want my website to have anything to do with my server.

poVoq
creator
1
edit-2
4M

You could check with your DNS provider. Some have build in redirection services like that, which would still allow you to get the root certificate on your main server (although I think you need to use the Let’s Encrypt DNS validation method then).

sseneca
14M

Oh okay, I’ll check that out.

I did ask the Prosody chatroom about my situation, and they said it was still possible, even without having control of the root domain’s certificates. I think it’s possible to have multiple certs per domain. But like you said, it’d require the DNS validation method (which isn’t that bad).

@kevincox
14M

I used to use XMPP but it appears that it lost the fight. Matrix has come along and has all of the momentum. There are technical reasons for this (more explicit about being a distributed synced log) and marketing reasons for this. However at this point it seems that Matrix is the better horse to bet on. I have moved some of my closest friends to Matrix and most of the rest of my friends are available in-Matrix via bridges. It is really quite nice.

poVoq
creator
1
edit-2
4M

Dunno, to me it seems the opposite. Back in 2018 or so I would have agreed, but more and more Matrix servers are shut down over huge technical issues with Synapse and 3rd party clients in the Matrix ecosystem are having a hard time catching up with specs.

XMPP on the other hand has really improved client wise in recent months, e2ee and video/audio calls (not using Jitsi Meet like Matrix does) is also getting quite good support across many clients.

It hasn’t really resulted in a big influx of users for XMPP though (other than a few Matrix refugees), but Matrix also seems to be quite stagnant with declining user/channel activity in my experience.

In my direct personal surrounding also no one moved to either XMPP or Matrix (despite best efforts). Sadly, Signal, Threema and Telegram seem to still attract most of the people moving away from WhatsApp.

Bilb!
24M

I’m keeping a close eye on the Snikket project (which bundles Prosody as the server). They are trying to provide a suite of similarly-branded XMPP clients and server which provide a common set of features and experience across platforms. In other words, provide a more “product oriented” XMPP platform. So far it uses:

  • Prosody as a server + a new web UI for managing users and handling invites to create accounts on servers,
  • An adapted version of Conversations for their Android app,
  • An adapted version of Siskin.IM for their iOS app.

While I’m a huge fan of what they’re trying to achieve, I’m a bit worried about the strategy. Using preexisting code for each component seems like a win, but they are all made with very different sets of technology. Lua, java, swift, and python projects all need to be worked on simultaneously to add support for any new XEPs because of how important it is to maintain parity of experience on the different platforms. That’s quite a heavy lift if you ask me, but maybe working with the maintainers of those projects is easier than I expect it to be.

@jazzfes
22M

Snikket

Does snikket also allow for calls / video calls?

Bilb!
22M

No, and I don’t see any mention of it on their roadmap.

@jazzfes
12M

Do you know any XMPP options that allow for video calls and are easy to install? For reference re “easy”, I ran a matrix server which worked great as a family Whatsapp replacement until synapse v1.0 (didn’t get to migrate to python3). I also managed to get prosody working for messaging, but not for video calls…

Run It Yourself
!selfhosted

    Overlaps somewhat with /c/floss_replacement and /c/privacy; crossposts welcome

    • 0 users online
    • 4 users / day
    • 5 users / week
    • 9 users / month
    • 70 users / 6 months
    • 684 subscribers
    • 63 Posts
    • 184 Comments
    • Modlog