I recently went through the hassle of deciding on something small for my family + company circle. Mainly considered XMPP and Matrix, and went with Matrix. Didn't know there was such a thing as "always-on" on IRC tho.
I recently went through the hassle of deciding on something small for my family + company circle. Mainly considered XMPP and Matrix, and went with Matrix. Didn't know there was such a thing as "always-on" on IRC tho.
It's a server feature and might be unique to Ergo. It's a per-user setting (with a global default) and when it's on the user always appears to be online so you can type at them any time like you would with other DM systems. The v3 chathistory support ensures that they don't miss messages. For clients that don't support chathistory the server can replay any unseen messages.
It's a lot like what bouncers provide but integrated and very easy to enable for everybody so no extra steps required for my users.
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 :)
That IMAP auth trick is really awesome thinking BTW, kudos!
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.
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.
curl example.com/.well-known/matrix/client
responded with an incorrect base_url.