her.esy.fun/src/posts/2019-chat.org
Yann Esposito (Yogsototh) f5e1b1f991
🚧 WIP 🚧
2019-10-04 21:41:42 +02:00

2.9 KiB

Chat in 2019

tl;dr: After reviewing and testing many different sefl-hosted chat solution the clear winner is IRC + ZNC (with replay module) + weechat + thelounge + Palaver (on iOS).

The two game changer are:

  • znc replay module (history handled correctly)
  • znc palaver module (push notifications on iOS)

The problem at hand is easy. You want to have a private and public group chat.

In 2019, you have many choices, now add that to, I want to trust my communication by self-hosting the server. And the choices start to be quite reduced.

The main features I wanted was:

  1. self-hostable: so I can trust it
  2. encrypted: also, private communication should stay private
  3. teams: support private team chat
  4. history: replays messages when you were away
  5. multi-platform: desktop, smartphone, web interface
  6. installation: it should not be too hard to install
  7. frugal: neither the server nor clients should use too much resources

Mostly if you are taking a look at modern solutions you might like me be quite disapointed.

Major problem, all recent solution are the opposite of frugal. Both their server and client eat tons of resources just to display text on a screen and download it. I think the real quantity of data a chat application need to deal with (text only) is about maximum a few megabites of text. Still all those application are generally Electron app that are really terrible regarding frugality. In this time of promised Earth doom of the future temperature, we should at least take a bit of care about such things in my opinion.

Also, a frugal applicaiton is most of the time a lot more reactive, passing from instantaneous reaction when compared to sometime half a second lag during typing.

I've used Matrix, and in fact it was really good except; the server is written in python and is clearly not frugal at all. Also I wanted to delete most of the history in the DB, and it was impossible to find a working documentation explaining how to do that correctly and easily (I'm not even sure this is possible). You can easily remove some channels history from the DB, but doing the opposite, keeping the history only of some channel and removing all others doesn't appear to be easy.

I've tried to install mattermost, … Dude, to install mattermost, there is no package, you need to start a shell script as root that will erase and change your nginx configuration…. No seriously…

Rocket.chat, ho…. a nice word about the difference between community version and pro version… no thank you. I prefer something sustained by free software standards.

I tried XMPP, it was OK. But the clients weren't really good.

Finally, IRC + ZNC with replay module is the winner. It was finally, the easiest, best solution.

Really the tw