Hacker News new | ask | show | jobs
by catherd 1827 days ago
Please prove me wrong, but self-hosting an XMPP server isn't something you can just install and have it work, if your definition includes all the XEPs that you actually end up needing and chat working at a level of user friendliness people expect these days.

I spent over 2 days learning what was out there and installing Prosody myself, followed by giving up and hiring a guy with experience to do it for me, and it took him a solid day (spread out over 3) to get the basic system set up and mostly passing the list of recommended XEPs on the compliance tool at https://compliance.conversations.im/. Then it took another week of fiddling around to get everything mostly dialed in. Then we realized that the XMPP clients on iOS were unusable in a business situation (can't navigate to find old group chats, notifications sometimes don't work, message history sometimes didn't work) and had to move to something else.

Federation is a nice feature, but the rest of it needs to work well enough across iOS/Android/browser to not drive people away.

3 comments

Following https://snikket.org/service/quickstart will get you a self-hosted XMPP running in minutes, with all modern messaging features you'd expect to be working out of the box.

On iOS it works with Siskin, Monal and ChatSecure, but you're right that there are some rough edges on that platform. We're working on polishing off those edges for a Snikket iOS client (based on Siskin).

Android is working well, and the plan is to work on a web client after iOS is released. In the meantime, https://conversejs.org/ or another generic XMPP web client can be used to log into a Snikket server.

I think there is nothing to prove, I set up my prosody just by reading the documentation -- eventually https://compliance.conversations.im/ is a great tool to see how well you are doing, and which modules are worth uncommenting lines from the initial config file. I have a functional and working server with just a score of 85%.

The only real pain point could be iOS, but it is the platform the one that makes things extra difficult, see for example what happens with browsers (https://en.wikipedia.org/wiki/Firefox_for_iOS)

> self-hosting an XMPP server isn't something you can just install and have it work

For basic needs ala IRC it should just work out of the box by defining a virtualhost. For respect of advanced features as defined in the XMPP Compliance Suites, it'll need a few more settings but there's good guides:

prosody: https://homebrewserver.club/configuring-a-modern-xmpp-server...

ejabberd: https://www.process-one.net/blog/ejabberd-xmpp-server-useful...

All in all it should take a novice (who has some experience of sysadmin, can deal with DNS records, firewall, etc) a few hours to setup to their taste... Or you could go with Snikket, a XMPP distribution, to have everything pre-configured in a docker container.

> XMPP clients on iOS were unusable

Sorry I don't know about iOS mostly because my acquaintances can't afford Apple devices and/or are not interested in a walled garden where a private company owns all your computations. Though i heard similar stories as yours, but there is progress with Siskin, with some development (eg. OMEMO groupchats) being funded by the Snikket project.

> notifications sometimes don't work

This may have to do with your OS settings. I don't know how iOS handles low power mode but i know for sure some Android distros restrict network queries (apart from the privileged, centralized push notifications service) and there's settings to uncheck for that.

> in a business situation

In a business situation you might find the resources to implement the features you need or pay someone to do it. I understand it may not be the answer you expect, but that's how free-software ecosystems move forward. In this regard, XMPP is not named "eXtensible" without reason.

> it needs to work well enough across iOS/Android/browser to not drive people away

Sure. I think that's the goal for everyone. If there's something that doesn't "work well enough" then it's a bug and should be reported then fixed.

When we did our testing we went through all the iOS settings and more than one user was testing on iOS. It was a client problem, not a settings problem.

Everything here sounds to me like "with a year or two of improvements, non-technical users might not run away screaming". I would love to use a federated chat protocol, but the reality is that XMPP isn't in the same league as other chat programs right now from a feature perspective, ease of installation, client availability, or user friendliness standpoint.

My company tried it, hard, for about 3 weeks. I paid something like $2000 in consultant and employee time to do that test. I was willing to deal with it because it was literally the only option in our case (we needed to avoid google push notifications). Once we realized we could make Zulip work by routing push notifications through a separate service we switched and almost everything about Zulip works smoother and with more useful features. None of these replies are convincing me that XMPP would work any better if I just knew more about how to install it right, etc. Again, I would love to use an open, federated chat protocol, but XMPP isn't useful right now in the ways I need it to be.