Ich mattermoste jetzt …

2017-11-26
Andreas

Vor etwas mehr als einem Jahr schrieb ich schon einmal gegen das allgegenwärtige Slacken und Whats-ge-appe an und habe gezeigt, wie man Rocket.Chat installiert. Aus diversen Gründen bin ich nun schon seit einiger Zeit bei Mattermost gelandet. Es ist an der Zeit, mal ein paar Zeilen über das Wie und Warum zu schreiben …

Chat und Instant Messaging ist in der IT ein recht alter Hut – Compuserve hat das schon 1980 in Form des „CB-Simulators“ angeboten [1]. Langsam aber sicher macht sich das Medium „Chat“ nun jedoch endlich auf, die IT-Welt zu verändern. Aus den alten IRCs und XMPPs sind in den letzten Jahren Lösungen wie Slack, Stride von Atlassian oder Teams von Microsoft entstanden. Im privaten Umfeld sind WhatsApp, Google Hangouts oder iMessage von Apple längst gesetzt. Und die gute alte SMS gibt es auch noch …

Alle sind nirgends …

Persönlich boykottiere ich ja WhatsApp und ich weiß, dass einige – ich würde gern „viele“ schreiben, das wäre aber leider übertrieben – Andere das auch tun. Hangouts und iMessage versammeln die Klientel der Android- bzw. iPhone-Nutzer hinter sich. Nach der SMS-App müsste ich auf meinem Telefon erst suchen. Wenn ich nun also nirgends alle meine Kontakte finde, kann ich auch einen Chat unter meiner eigenen Kontrolle betreiben und diejenigen, mit denen ich kommunizieren möchte, dahin einladen. Damit vermeide ich zudem, mit meinen Daten die Clouds anderer anzureichern.

In der Open-Source-Welt habe ich drei Chat-Server ausgemacht, auf die es sich lohnt einen Blick zu werfen: neben Rocket.Chat sind da noch riot.im und eben Mattermost. Mit allen dreien habe ich schon gearbeitet. Jedoch ist Mattermost für mich in den Punkten „Einfache Installation“, „Einbindung Anderer in meine Chats“ und „täglicher Betrieb“ eindeutiger Punktsieger. 

Mattermost installieren

Univention App Center: Mattermost AppIn „Einmal Kopano to Go, bitte“ habe ich schon beschrieben, wie ich flux einen einen preiswerten Server auf Univention-Basis ins Internet gebeamt habe.  Das Basis-Setup kann man sich dort abgucken, dann geht es hier weiter: Moderne Browser verweigern mit Mattermost gegebenenfalls den Dienst, wenn das Zertifikat des Servers nicht valide (sprich: selbst-signiert oder abgelaufen) ist. Wer kein eigenes Zertifikat besitzt, sollte daher zunächst die App „Let’s Encrypt“ installieren. Man findet diese im App Center von Univention (System- & Domäneneinstellungen -> Software -> App Center).

Dort ist auch die App „Mattermost“ zu finden. Diese kann ebenso einfach per Click installiert werden, auch wenn sie wesentlich umfangreicher ist und das Setup ein paar Augenblicke länger dauert. Während der Installation werden einige Einstellungen abgefragt. Bis auf das zu vergebende Passwort können diese alle auch im Nachhinein noch geändert werden und sollten – so lang man nicht genau weiß was man tut – einfach so gelassen werden wie sie sind. Nach der Installation ist Mattermost über https://<server>:8234 (oder unsicher: http://<server>:8123) erreichbar.

Eine weitere Einstellung wird später noch relevant: Mattermost muss E-Mails versenden können. Weil der Serverdienst in einer Dockerinstanz läuft, kommuniziert er im Subnetz 172.16.0.0/12. Ich habe der Einfachheit halber das Versenden von E-Mails für das lokale Netz nach außen erlaubt, indem ich in der /etc/postfix/main.cf den Eintrag mynetworks wie folgt ergänzt habe:

mynetworks = 127.0.0.0/8 172.16.0.0/12

Mit ’service postfix restart‘ startet der Mailserver neu und sollte nun E-Mails von Mattermost akzeptieren.

Mattermost konfigurieren

Mattermost nach dem ersten Start

Nach der ersten Anmeldung präsentiert sich Mattermost wie oben im Bild zu sehen. Die drei waagerechten Striche neben dem Benutzername „administrator“ öffnen das Menü, in dem die „System Console“ zu finden ist. Da für mich die Standard-Einstellungen für den Mailserver nicht passten empfehle ich, zunächst einmal unter NOTIFICATIONS -> „Email“ nach dem rechten zu schauen. Nach der oben beschriebenen Einstellung im Postfix funktionierten für mich die folgenden Werte sehr gut:

SMTP Server: IP aus „ifconfig docker0“
SMTP Server Port: 25
Enable SMTP Authentication: false
Connection Security: None

Da nur intern kommuniziert wird sehe ich das als verhältnismäßig sicher an. Die „Notification From Address“ habe ich dann noch auf eine existierende Adresse geändert und im Menü unter Email bei „Mobile Push“ die iOS/Android-Apps mit TPNS aktiviert – nur so kommen dort Push-Benachrichtigungen an. Das Aktivieren von „send full message snippet“ ist hier nicht ratsam, da dadurch die Nachrichten unverschlüsselt über einen zentralen Server bei Mattermost direkt versandt werden würden.

Unter GENERAL -> „Localization“ kann die Sprache noch auf Deutsch umgestellt werden. Nach dem Speichern verlässt man mit einem Klick ins Menü -> „Switch to Univention“ die „System Console“ wieder. 

Benutzer einladen

Sofern man keine kommerzielle Version von Mattermost einsetzt, kann man nicht auf das Univention-LDAP zugreifen. Benutzer müssen also von Hand angelegt – oder hier besser: eingeladen – werden. Im Menü klickt man dazu auf „Send Email Invite“ und trägt die Daten des neu anzulegenden Benutzers ein. Dieser erhält dann ein E-Mail mit einem Anmeldelink. Wichtige Notiz: Der Link führt nur dann zum Anlegen eines neuen Accounts, wenn man nicht schon angemeldet ist. 

Da ich nicht als Administrator chatten möchte, habe ich mich zunächst selbst eingeladen und mir einen eigenen Account erstellt. In der System Console unter „Users“ habe ich meinen Benutzer dann in den Rang eines „System Admin“ erhoben. Somit brauche ich den Benutzer „administrator“ nicht mehr. In der „System Console“ unter GENERAL -> „User and Teams“ regeln die ersten beiden Optionen, ob alle Benutzer Teams erstellen und neue Benutzer einladen dürfen. Das sollte man zumindest einmal bewusst entscheiden ;-).

Mattermost benutzen

Mattermost im Alltag (Screenshot)

Im Alltag sieht Mattermost so aus wie oben im Bild zu sehen ist. Ganz links können die verschiedenen Teams gewählt werden, in denen man Mitglied ist. Je Team gibt es „Öffentliche Kanäle“, denen jedes Mitglied eines Teams beitreten kann und „Private Kanäle“, in die man eingeladen werden muss. „Direktnachrichten“ können an einzelne Mitglieder oder an Gruppen geschickt werden. Ist die Maus über einer Nachricht, so werden rechts Optionen für diese Nachricht angezeigt. Hier kann man dann unter anderem die Nachricht löschen, bearbeiten, markieren oder einen Thread aufmachen, um Struktur in einen großen Raum zu bringen. Vermutlich werde ich noch einen gesonderten Post über meine Alltagserfahrungen mit Mattermost schreiben.

Für diesen Beitrag möchte ich nur noch folgendes erwähnen: Ich arbeite zurzeit mit drei Mattermost-Servern. Leider unterstützt die Android-App [2] nur einen Server. Ein Workaround ist, zusätzlich die Beta-App zu installieren [3]. Ich habe aber für mich festgestellt, dass die Notifications per E-Mail vollkommen ausreichend sind. Darin enthalten ist ein Link, der auch auf dem mobilen Chrome ein sehr gut nutzbares Mattermost öffnet. Auf dem Desktop arbeite ich mit der Mattermost-App für Linux [4]. Diese gibt es auch für macOS und Windows und sie kann mit all meinen Servern umgehen.

Weiterführendes

Mattermost kann natürlich auch ohne Univention genutzt werden. Ein Docker-Container findet sich unter [5], Pakete für OpenSUSE, SLES, Debian oder Ubuntu unter [6]. Für einen Zeitraum von einem Monat kann zudem eine kostenfreie Testlizenz für eine kommerzielle Version [7] beantragt werden. Jedes Mattermost ohne gültigen Lizenzschlüssel ist automatisch eine Community-Version, in der alles so nutzbar ist, wie ich es in diesem Beitrag beschrieben habe. 

[1] https://de.wikipedia.org/wiki/Chat
[2] https://play.google.com/store/apps/details?id=com.mattermost.rn
[3] https://play.google.com/store/apps/details?id=com.mattermost.rnbeta
[4] https://about.mattermost.com/download/#mattermostApps
[5] https://about.mattermost.com/download/
[6] https://download.kopano.io/community/mattermost:/
[7] https://kopano.com/request-mattermost-trial/