Hacker News new | ask | show | jobs
by th0th 542 days ago
Not really, I didn't have any delivery-related issues, and didn't get any complaints from other people as well. I have mixed feelings towards Matrix due to;

1. The only stable and maintained implementation is "matrix-synapse" and it is written in Python.

2. The most commonly used client is "element", and it is governed by the same people. So it feels we are the mercy of a single company.

I wanted hard to go with a more established protocol like XMPP but failed to get a server running properly :)

3 comments

Not sure if you tried prosody[0], but I found it rather powerful and simple to configure, including multiuser chat(muc) and peering. It's written in lua and has a module system so it's easy to extend. In particular I used the dovecot auth module[1] so users could login with their email credentials and I could manage a single user repo.

0. https://prosody.im/

1. https://modules.prosody.im/mod_auth_dovecot

Yep, Prosody was one of my failed attempts :P I am running everything on a kubernetes cluster, so a maintained helm chart is the first thing I check when running something. I didn't have much luck with XMPP servers with this.

That IMAP auth trick is really awesome thinking BTW, kudos!

Ah interesting, I haven't tried running it on k8s yet. Migrating my mail stack over to k8s has been on my todo list for a little while; should probably get around to it since dovecot and postfix have supported inet sockets for user/domain db and auth for ~12 years now.

Dovecot is really great, and a ton of stuff supports using it as a sasl auth backend (postfix being an important one). I made a simple facade service that feeds it and postfix from couchdb via its dict backend[0] and postfix's tcp_tables[1], then point everything at dovecot for auth. Couch document IDs map really well to email/user, domain, and sieve script lookups; helluva lot simpler than setting up and managing LDAP.

0. https://doc.dovecot.org/2.3/configuration_manual/dict/

1. https://www.postfix.org/tcp_table.5.html

I've been running XMPP/ejabberd for a decade, it's a single service embarking everything you need, including what it takes to do A/V calls (NAT traversal & al.). Nonetheless, it's also the quietest and lowest-profile piece of server software I've ever used. I don't need a container for that, but if you want, there's an official docker image for it. Without going to host millions of concurrent users and needing to distribute the service across multiple physical servers via clustering, I don't see what good an "helm chart" does for you, but then you do you.
Ive been running matrix for small company/group for almost 10years. No need to use Synapse as there are many other solid servers (and have been for years). Matrix (the company) software like Synapse and Denderite (their “performant” server in go) are aimed at mega servers that federate and the features revolve around that.

If you want to selfhost just make it easy and get Conduit. Its single binary and uses embedded db (rocksdb or sqlite). I cant say about federation but for private chat server this has been solid for me for years. I still run it with sqlite (worse than rocksdb) and with 30 very active people its more responsive than Synapse ever was.

What clients do you use to connect to it? I just setup a Conduit server and can connect from my Mac via https://app.element.io as well as the official MacOS app, but the iPhone apps cannot find it somehow. Does that work for you too?
Nevermind. I think I got it. My server name was set incorrectly so that

curl example.com/.well-known/matrix/client

responded with an incorrect base_url.

Have you seen https://snikket.org ?
Yes, Snikket was also one of my failed attempts. Maybe it's me, I don't know.