Artikel mit Tag ejabberd

Kaiwa - ein moderner Webclient für XMPP Chats

XMPP Client-Server Strukturen sind immer noch häufig zu finden. Dies gilt nicht nur für den privaten Bereich , auch im Firmenumfeld wird XMPP, früher bekannt als Jabber, zur Kommunikation eingesetzt.

Bekannte Clients in diesem Bereich sind sicherlich Pidgin, Jitsi oder Gaim. Da der Trend in den letzten Jahren jedoch in Richtung Webclients geht, wirkt XMPP im Vergleich zu Slack, Hipchat, Mattermost wie aus den 90ern.

Kaiwa-Chat

Ein XMMP Server lässt sich mit relativ einfachen Mitteln um ein schickes Web Frontend erweitern.

Viele setzten bisher wahrscheinlich auf jappix.org. Dieses XMPP Web Frontend funktionierte mit Hilfe von Plug-Ins auf gängigen Servern wie Prosody, Ejabbered oder Openfire. Auch Candy ist in diesem Zusammenhang vielen sicherlich ein Begriff. Doch solle es heute nicht um diese Varianten gehen.

Kaiwa - XMPP im Browser Tab

Eine weitere Möglichkeit ein Web Frontend für XMPP umzusetzen bietet Kaiwa. Das Frontend ist ein Fork von OTalk.

Es hat einen modernen Look und bietet mit Funktionen wie Gruppenchats, privaten Unterhaltungen, Desktop Notifikationen, LDAP oder Multimedia Einbettung, alles was ein grundsolider Webclient benötigt.

Zusätzlich zum Web Frontend, lässt sich Kaiwa auch als normaler Desktop Client installieren.

Doch vor der Anwendung muss zunächst das System an sich installiert werden.

Installation Kaiwa Frontend bei vorhandenem XMPP Server

Voraussetzung für einen funktionalen Chat ist NodeJS. Der Installationsvorgang sollte aus vergangenen Artikeln bekannt sein.

curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash -

apt-get install nodejs

Darauf folgenden die nötigen Pakete, so wie der Git Download.

sudo apt-get install uuid-dev

git clone https://github.com/digicoop/kaiwa.git

cd kaiwa/

cp dev_config.example.json dev_config.json

npm install


Als nächstes erfolgt der Start des Servers. Dieser kann mit einfachen Mitteln auch als Dienst im Hintergrund laufen (z.B. Script unter /etc/init), dies wäre aber Thema für einen eigenen Artikel, darum hier nur der Server Start.

node server

kaiwa

Startet der Server ohne Probleme kann unter http://xmppserver:8000/login die Weboberfläche aufgerufen werden.

Da bie dieser Konfiguration noch auf der laufende bzw. vorhandene Server eingetragen werden muss, sollte zunächst ein Blick in die Konfig geworfen werden.

Installation mit Openfire XMPP Server

Bei einem Betrieb mit Openfire müssen folgende Schritte unternommen werden.

Zum einen die Aktivierung des Websocket Plugins über die Oberfläche (Port 7443)

openfire-websocket

Zum anderen, sollten selbstsignierte Zertifikate im Einsatz sein, muss der Websocket Adresse noch vertraut werden.

Dazu einfach im Browser aufrufen und das Zertifikat als vertrauenswürdig einstufen (https://xmppserver:7443/ws/)

Die Kaiwa Konfiguration unter dev_config.json sollte je nach XMPP Server wie folgt gestaltet werden.

Openfire

{
    "isDev": true,
    "http": {
        "host": "localhost",
        "port": 8000
    },
    "session": {
        "secret": "geheimgeheim"
    },
    "server": {
        "name": "Kaiwa",
        "domain": "xmppserver",
        "wss": "wss://xmppserver:7443/ws/",
        "muc": "",
        "startup": "",
        "admin": ""
}

Installation mit ejabberd XMPP Server

Ist ein ejabberd Server im Einsatz werden folgende Konfigurations Zeilen benötigt.

ejabberd

{
   "isDev": true,
   "http": {
       "host": "localhost",
       "port": 8000
   },
   "server": {
       "domain": " xmppserver.de",
       "wss": "wss:// xmppserver :5280/websocket/"
   }
}

Fazit

Durch eine moderne Oberfläche wirkt manch altbackener Client gleich viel frischer.  Die hier gezeigte Methode mit Kaiwa in Verbindung mit NodeJS bietet eine schnelle Möglichkeit vorhandene Strukturen zu modernisieren.

Auch neue Strukturen lassen sich schnell Aufbauen. Kaiwa steht als fertiges Docker Image mit Prosody und NodeJS zur Verfügung und bietet somit einen leichten Einstieg.

Kaiwa