2019-10-07 15:54:11 +00:00
|
|
|
#+TITLE: IRC Cutting Edge
|
2019-10-04 19:41:42 +00:00
|
|
|
#+SUBTITLE: Chatting in 2019
|
|
|
|
#+AUTHOR: Yann Esposito
|
|
|
|
#+EMAIL: yann@esposito.host
|
|
|
|
#+DATE: [2019-08-17 Sat]
|
|
|
|
#+KEYWORDS: self-hosting
|
|
|
|
#+DESCRIPTION: Chat system
|
|
|
|
#+OPTIONS: auto-id:t
|
|
|
|
|
|
|
|
#+begin_notes
|
|
|
|
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)
|
|
|
|
#+end_notes
|
|
|
|
|
|
|
|
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
|
2019-10-07 15:54:11 +00:00
|
|
|
8. *REALLY FREE*: I mean FSF free, not free as in beer.
|
2019-10-04 19:41:42 +00:00
|
|
|
|
|
|
|
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
|
2019-10-07 15:54:11 +00:00
|
|
|
* Tutorial
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: tutorial
|
|
|
|
:END:
|
|
|
|
** Self Host
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: self-host
|
|
|
|
:END:
|
|
|
|
** Install/configure ngircd
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: install-configure-ngircd
|
|
|
|
:END:
|
|
|
|
** Install/configure ZNC
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: install-configure-znc
|
|
|
|
:END:
|
|
|
|
** Install/configure clients
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: install-configure-clients
|
|
|
|
:END:
|
|
|
|
*** thelounge
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: thelounge
|
|
|
|
:END:
|
|
|
|
*** weechat
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: weechat
|
|
|
|
:END:
|
|
|
|
*** limechat
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: limechat
|
|
|
|
:END:
|
|
|
|
*** Palaver
|
|
|
|
:PROPERTIES:
|
|
|
|
:CUSTOM_ID: palaver
|
|
|
|
:END:
|