Die Idee ist gut, doch die Welt noch nicht bereit?

mein öffentliches Langzeit- und verlängertes Kurzzeitgedächtnis

                 

Mattermost auf einem Rasperry Pi

Kürzlich habe ich die Hardware des Servers, auf dem u.a. dieser Blog läuft aufgestockt. Statt einem Raspberry Pi Model B+ läuft hier nun ein Raspberry Pi 3 Model B mit atemberaubendem 1 GB RAM. Da juckte es mir in den Fingern mal zu testen, ob denn nicht auch ein mattermost (Open-Source Slack Alternative) auf dem Raspi läuft. Kurze Antwort: Ja, es funktioniert, die Performance wird gerade getestet (es könnte schneller sein, ist aber noch in Ordnung). Längere Antwort und Anleitung: Einfach weiterlesen.

Das Problem an mattermost auf einem Raspi ist, dass die CPU-Architektur des Raspis offiziell nicht unterstützt wird. Mattermost selbst zu kompilieren ist durch die limitierten Ressourcen des Raspis auch gar nicht so einfach. Glücklicherweise hat das SmartHoneybee auf github mit der Hilfe von Travis CI bereits übernommen. Man kann sich also einfach das Release herunterladen, welches zur CPU-Architektur passt und dann der offiziellen mattermost-Installationsanleitung folgen. Hier die Kurzform der Anleitung auf Deutsch:

MySQL/MariaDB Datenbank einrichten

MySQL bzw. MariaDB installieren und starten:

> sudo apt-get install mariadb-server
> sudo systemctl start mysql

Mit dem bei der Installation vergebenen mysql-Root-Passwort einloggen und einen User für mattermost anlegen:

> mysql -u root -p
MariaDB> create user 'mmuser'@'localhost' identified by 'ein-eigenes-passwort-waehlen';

Die mattermost Datenbank erstellen und dem mmuser Zugriff darauf erlauben:

MariaDB> create database mattermost;
MariaDB> grant all privileges on mattermost.* to 'mmuser'@'localhost';
MariaDB> exit

Mattermost installieren und konfigurieren

Die passende Mattermost-Version herunterladen (hier die passende für den Raspberry Pi 3 Model B), entpacken und nach /opt/mattermost verschieben und nach

> wget https://github.com/SmartHoneybee/ubiquitous-memory/releases/download/v5.8.0/mattermost-v5.8.0-linux-arm.tar.gz
> tar -xvzf mattermost*.gz
> sudo mv mattermost /opt

Einen Systembenutzer (und -gruppe) mattermost erstellen, unter welchem mattermost laufen wird. Deshalb diesem Benutzer und dieser Gruppe Eigentum und Schreibrechte über alle Dateien verschaffen:

> sudo useradd --system --user-group mattermost
> sudo chown -R mattermost:mattermost /opt/mattermost
> sudo chmod -R g+w /opt/mattermost

Nun wird die vorhin eingerichtete Datenbank in die zentrale mattermost Konfigurationsdatei /opt/mattermost/config/config.json eingetragen. Dazu diese Datei öffnen und DriverName auf mysql sowie den Datenbankbenutzer und das Datenbankpassword im langen String der DataSource passend ändern:

"<mmuser>:<ein-eigenes-passwort-waehlen>@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

Mattermost starten und per Weboberfläche weiter konfigurieren

Nun sollten wir mattermost schon starten können:

> cd /opt/mattermost
> sudo -u mattermost ./bin/mattermost

Wenn keine Fehlermeldungen auftauchen können wir mit einem Browser auf <IP-des-Raspis>:8065 gehen und sollten dort ein laufendes mattermost vorfinden. Als erste Konfiguration müssen wir hier ein erstes Team und einen System-Admin festlegen. Danach sollten wir noch folgende Dinge konfigurieren:

  • die URL unter der mattermost laufen soll (System Console > General > Site URL)
  • SMTP-Einstellungen für E-Mail Benachrichtigungen (System Console > Notifications > Email)
  • einen Ort zum Speichern von hochgeladenen Dateien (System Console > Files)

In der offiziellen Dokumentation gibt es noch weitere Details zur Installation (zum Beispiel zur SSL-Einrichtung und zur Erstellung einer systemd unit).

Viel Spaß und Erfolg!

Nachtrag: Plugins installieren

Da die ARM-Architektur leider von Mattermost nicht offiziell unterstützt wird, läuft auch leider keins der Plugins so einfach, wie man es gerne hätte. Der Trick, der bei fast allen Plugins funktionieren sollte, ist folgender: Man muss das Plugin manuell auf dem Raspberry Pi kompilieren (dazu der hoffentlich vollständigen Anleitung im README des jeweiligen Plugins folgen) und diese dann ins entsprechende Plugin-Verzeichnis verschieben. Wenn es ein Plugin neuerer Machart ist, muss man noch manuell die plugin.json Datei anpassen, und zwar so, dass nur ein executable angegeben ist (die cross-platform bundle Option funktioniert leider nicht, da ARM nicht vorgesehen ist):

...
"server": {
        "executable":  "pfad/zur/selbst/kompilierten/ausführbaren/plugin/datei"
    },
...

Durch Eingeben eines Kommentars stimmst Du offensichtlicherweise der Speicherung der eingegebenen Daten (im Rahmen meiner Datenschutzerklärung) zu. Die Kommentarfunktion läuft mit lokal installiertem Isso. Um eine E-Mail zu bekommen, wenn jemand auf Deinen Kommentar antwortet, wird Deine E-Mail-Adresse benötigt und Du musst ein Häkchen setzen.

Alle Schlagwörter: bahn · baustelle · bielefeld · chemnitz · fahrrad · fahrradstadt-wider-willen · fdp · geld · gesellschaft · gnome · gnuplot · hertz · klimakrise · klimawandel · kurztipp · latex · münster · nachhaltigkeit · open-access · open-source · osbn · politik · promenade · raspberry-pi · rechtspopulismus · science · verkehrswende · wissenschaft ·

Ich spende auf Liberapay. Mach mit!