Die Mitarbeiter der Firma wollen (und sollen) online kommunizieren, aber die Firma möchte keinen Chat Service wie beispielsweise Slack nutzen, bei dem nicht klar ist, wo die Daten gespeichert werden und wer alles darauf zugreifen kann. Es sollte ein selbst gehostetes System sein, bei dem die Daten im eigenen Hause gespeichert werden.
Eine mögliche Lösung wäre ein Jabber Server (siehe auch Ein eigenes Messenger System mit Jabber/XMPP).
Eine Alternative ist die Chatanwendung Zulip.
Das Startup Zulip wurde Anfang 2014 in seiner Beta Phase vom Cloud Speicher Anbieter Dropbox gekauft. Im September 2015 wurde die Software dann von Dropbox als Open Source Projekt veröffentlicht. Zulip ist Slack sehr ähnlich und zeichnet sich unter anderem durch weitreichende Integrationsmöglichkeiten für Tools, die in der Softwareentwicklung genutzt werden, aus.
Ausser diesen Integrationen bietet Zulip
- Themenspezifische Gruppenchats (Streams)
- Die Speicherung aller Nachrichten und in einem Stream auch im Nachhinein lesbar und durchsuchbar
- Privatchats
- Statusanzeige: Wer ist online
- Automatische Inline-Darstellung von in den Chat kopierten Links (Bilder, Videos, Tweets)
- Dateiupload per Drag and Drop
- Benachrichtigungen per @name
- Gruppenweite Benachrichtungen per @all
- E-Mail- und Desktop Benachrichtigungen
- Emojis
- Syntax Highlighting bei Code
- Die Bearbeitung von Chat-Nachrichten
- Gruppen, die nur per Einladung zugänglich sind
- Die Darstellung markierter Nachrichten in einer Liste (Favoriten)
- Mobile Apps für Android und iOS
- Desktop Apps für Windows, OSX und Linux
Um das System nutzen zu können, muss ein eigener Zulip Server aufgesetzt werden.
Es existiert ein Installationsscript für Ubuntu 14.04 Trusty das ich auch in diesem Blogbeitrag nutze. Das Script geht davon aus, dass Zulip die einzige Anwendung auf dem Server ist. Ein eventuell bereits laufender Apache Web Server auf Port 80 sollte gestoppt werden, Zulip nutzt Nginx.
Die Servervoraussetzungen für ein kleines Team sind 2 GB Hauptspeicher, bei mehr als 50 Nutzern sollten es mindestens 4 GB oder sein. Viel Speicher ist selten eine schlechte Wahl!
Die Chats sind verschlüsselt. Letsencrypt Zertifikate können genutzt werden.
Installation
Die Installation erfolgt als root User. Logge dich auf der Konsole ein. Der Befehl
sudo -i
schaltet dauerhaft root ein.
Codepaket laden
Wechsle in das /root Verzeichnis, lade und überprüfe das Codepaket, entpacke es und verschiebe die Dateien in das /root/zulip Verzeichnis.
cd /root wget https://www.zulip.com/dist/releases/zulip-server-1.3.10.tar.gz echo "3d96694abc878056bb6436d24b381e1776f3f70e zulip-server-1.3.10.tar.gz" | sha1sum -c tar -xf zulip-server-1.3.10.tar.gz mv zulip-server-1.3.10 zulip
SSL Zertifikate
Zulip setzt HTTPS voraus. Zertifikatserzeugung mit Letsencrypt oder anderen Anbietern funktioniert „wie immer“, ist aber abhängig vom Zertifikatsanbieter.
Wenn du kein Zertifikat „zur Hand“ hast, findest du hier die Befehle für ein selbst unterschriebenes Zertifikat. Die Abhörsicherheit, verglichen mit signierten Zertifikaten, ist die Gleiche, die Browserwarnung für selbst zertifizierte Zertifikate kann in diesem Fall von deinem Team ignoriert werden.
apt-get install openssl openssl genrsa -des3 -passout pass:x -out server.pass.key 4096 openssl rsa -passin pass:x -in server.pass.key -out zulip.key rm server.pass.key openssl req -new -key zulip.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey zulip.key -out zulip.combined-chain.crt rm server.csr cp zulip.key /etc/ssl/private/zulip.key cp zulip.combined-chain.crt /etc/ssl/certs/zulip.combined-chain.crt
Installationscript
Wechsle in das /root/zulip Verzeichnis und starte das Installationsscript.
cd /root/zulip ./scripts/setup/install
Die Installation kann ein paar Minuten dauern.
Konfiguration
Bevor der Server gestartet werden kann, müssen in der Datei /etc/zulip/settings.py ein paar Einstellungen getätigt werden.
Zulip ist standardmässig so organisiert, dass alle Nutzer aus einer Domain kommen und sich mit Ihrer E-Mail Adresse registrieren müssen. Diese Einstellungen können natürlich verändert werden, aber gerade der Standard passt hervorragend auf Firmenstrukturen.
Daher muss der Parameter ADMIN_DOMAIN mit deinem Domainnamen versehen werden und es muss mindestens ein AUTHENTICATION_BACKEND ausgewählt werden (in meinem Fall E-Mail/Paswort).
Im weiteren Verlauf der Konfigurationsdatei muss ein SMTP Server angegeben werde, damit E-Mails verschickt werden können.
EMAIL_HOST = 'mail.seafolly.ch' EMAIL_HOST_USER = 'hagen@seafolly.ch' EMAIL_PORT = 587 EMAIL_USE_TLS = True DEFAULT_FROM_EMAIL = "Hagen (Zulip) <hagen@seafolly.ch>" NOREPLY_EMAIL_ADDRESS = "noreply@seafolly.ch"
Jetzt sind die Änderungen in der /etc/zulip/settings.py erledigt. Damit der E-Mail Versand funktioniert, muss in der Datei /etc/zulip/zulip-secrets.conf noch das Passwort für den E-Mail Versand hinterlegt werden. Einfach am Ende der Datei
email_password = geheim email_host_password = geheim
eintragen.
Datenbank initialisieren
Auf der Basis der Konfigurationsdateien kann nun die Datenbank initialisiert werden.
su zulip -c /home/zulip/deployments/current/scripts/setup/initialize-database
Damit ist die Installation beendet und der Zulip Server läuft. Für den produktiven Einsatz solltest du noch das Zulip in Production README lesen und dich in die Zulip Annoucement Mailing Liste eintragen um Nachrichten über Updates u erhalten.
Mit dem Befehl
su zulip -c /home/zulip/deployments/current/scripts/restart-server
kann der Zulip Server nach Konfigurationsänderungen neu gestartet werden.
Beim Aufruf im Browser erwartet dich folgendes Bild:
Registrierung
Jeder Chatteilnehmer muss sich mit einer E-Mail Adresse registrieren, deren Domain mit der in der Konfiguration definierten Domain übereinstimmt.
Der Server verschickt eine E-Mail an die angegebene Adresse mit einem Bestätigungslink.
Nack Klicken des Links wird man zur Eingabe eines Namens und des gewünschten Passworts aufgefordert:
Nach dem Klick auf den Register Button erfolgt eine kleine Tour die die Zusammenhänge zwischen Streams und Topics zeigt.
Drei Streams sind bereits vorkonfiguriert (engineering, social und zulip).
Das Einzige, was nun noch fehlt, sind deine Arbeitskollegen (It’s lonely in here! Invite some coworkers).
Ausser der gut funktionierenden Webversion gibt es auch native Apps für Windows, OSX, Linux, iOS und Android!
Fazit
Um es mal kurz zu machen – es läuft!
Links
tl;dr: Zulip ist eine Open Source Group Chat Anwendung mit zahlreichen Integrationsmöglichkeiten, die auf einem eigenen Server installiert wird und über zahlreiche Clients angesprochen werden kann.
Schreibe einen Kommentar