Matrix Messenger: So baust du einen Homeserver für Matrix Chat

Keine Lust mehr mit Facebook oder Apple dein Leben zu teilen? Ich zeige dir, wie du für Chats mit deinen Freunden, Geschäftspartnern und deiner Familie einen selbst gehosteten Matrix Messenger baust, der die Privatsphäre akzeptiert - für nur 5 US Dollar pro Monat.

Habe unseren Matrix Homeserver ähnlich eingerichtet und möchte nach meinen Erfahrungen der letzten Monaten nichts anderes mehr nutzen.

Messenger mit Matrix

Matrix ist der Name eines quelloffenen Messenger Software Protokolls für Echtzeitkommunikation. Software, die auf Matrix aufsetzt, kann proprietäre Dienste wie WhatsApp oder auch Slack ersetzen.

Weltweit wird Matrix von mehr als 43 Mio. Menschen verwendet. Die Software wird vorangetrieben von der nicht gewinnorientierten Matrix.org Foundation mit Sitz in UK.

Das Matrix Messenger Universum ist ein dezentrales, sogenanntes föderiertes System, in welchem alle Teilnehmer über viele, untereinander vernetzte Server miteinander kommunizieren können.

fediverse

Die bekannteste Messenger Software auf Matrix Basis ist Element. Über Element könnt ihr euch auch ohne einen eigenen Server zu betreiben, kostenlos ein Account für Matrix anlegen. Dafür braucht ihr nur eine E-Mail-Adresse, die Mobilfunk Telefonnummer wird nicht benötigt.

Soweit ausschließlich über einen eigenen Server miteinander kommuniziert wird, sind neben Nachrichten auch Metadaten (wer hat wann mit wem geschrieben) für Dritte unzulänglich. Wird dagegen, wie derzeit in der EU diskutiert, eine Chatkontrolle eingeführt, könnte es auch für Matrix Nutzer:innen kompliziert werden.

Matrix wird von vielen Regierungen und regierungsnahen Institutionen für verschlüsselte Nachrichten genutzt. Für Geheimdienste ist es extem schwer, diese Nachrichten zu entschlüsseln. Entsprechend wird Matrix von Security Experten empfohlen.

Komponenten des Matrix Homeservers

Mit dieser Anleitung werden die im folgenden skizzierten Komponenten des Matrix Homeservers zusammen installiert.

1. Synapse Software

Synapse ist der Referenz Server des Matrix Open Source Projektes. Die Serversoftware basiert auf Python.

2. PostgreSQL

PostgreSQL ist eine relationale Datenbank und bildet die performante Basis für die Datenhaltung unserer Matrix Installation.

3. Caddy

Caddy ist eine Server Software und basiert auf der Programmiersprache Go. Für unseren Homeserver wird Caddy als Reverse Proxy eingesetzt.

4. Element Messenger

Element stellt den Webclient für unseren Homeserver. Du kannst dich so überall auf der Welt mit einem Browser in deinen Messenger Homeserver einloggen und auch andere Matrix Server der Föderation besuchen.

Matrix Messenger installieren

Vorbereitungen

Für die Nutzung dieser Anleitung brauchst ein Account bei DigitalOcean und eine Domain oder Subdomain inkl. Administrationsrechten für DNS.

Wenn du diesen Link für die Anmeldung bei DigitalOcean nutzt, erhältst du eine Gutschrift von 200 US$ über 60 Tage, die du für Matrix oder andere Leistungen nutzen kannst.

Installation

Sobald du ein Konto angelegt hast, kannst du auf dem DigitalOcean Marketplace mit der Installation starten.

matrix marketplace

Im Anschluss wird dein Droplet, ein virtueller Server, konfiguriert. Für einen kleinen Homeserver mit nicht mehr als 5-10 Nutzern reicht das kleinste Droplet für 5 US Dollar/Monat. Du kannst auswählen, in welcher Region dein Server beheimatet sein soll.

droplet auswahl

Im Bereich "Authentication" solltest du ein möglichst komplexes Passwort für den Server Zugang festlegen und auch Monitoring ohne Zusatzkosten dazu buchen. Das gibt dir später die Möglichkeit, deine Systemauslastung im Detail zu überwachen.

passwort droplet

Wenn du fertig bist, kannst du den Installationsprozess starten. Nach Beendigung rechts neben dem Namen des Droplets auf die drei Punkte klicken und die Server Kommando Konsole öffnen, sie öffnet sich in einem neuem Browser Fenster.

droplet progress

Bevor wir uns der Konsole (Terminal) zuwenden, müssen die A-Records für drei Subdomains als DNS Zonen beim Domain Provider eingerichtet werden. In meinem Falle matrix.pagenstedt.de, chat.matrix.pagenstedt.de und matrix.matrix.pagenstedt.de. Die IP Adresse, auf welche die A-Records verweisen sollen, findest du neben deinem Droplet Namen bei DigitalOcean.

dns setup

Anschließend kannst du dich dem Terminal zuwenden. Zunächst einloggen als Root mit dem Befehl

ssh root@ip-adresse

Die „ip-adresse“ dann durch die IP Adresse des Servers ersetzen.

Nach Eingabe deines Server Passworts kannst du mit dem Befehl

./finish-setup"

die Software Installation für Synapse, Caddy, PostgreSQL und Element Web einleiten.

terminal

Du musst bestätigen, dass du die A-Einträge gesetzt hast für die Subdomains.

terminal dns


Im Anschluss wirst du durch den Prozess geführt, insbesondere musst du dein Login für das Admin Account auf dem Matrix Server festlegen.

Wenn alles fertig ist, kannst du mittels chat.deine-subdomain (in meinem Falle chat.matrix.pagenstedt.de) die Weboberfläche von Element aufrufen, die Adresse deines Homeservers angeben (in meinem Falle matrix.matrix.pagenstedt.de) und dich mit deinem Admin Account einloggen. Fertig.

Du bist nun über Matrix unter @nutzername:homeserver erreichbar. 

element browser

Im Bereich "Einstellungen" kannst du die Konfiguration deines Homeservers bearbeiten und auch einen zusätzlichen Sicherheitsschlüssel festlegen.

Wartung und Support

Falls du dich mit dem Terminal auskennst, im Verzeichnis /etc/matrix-synapse/ findet sich die homeserver.yaml. In dieser Konfigurationsdatei findest du viele Einstellungsmöglichkeiten und kannst z.B. auch die Registrierung für Dritte auf deinem Server erlauben oder verbieten. Bearbeiten kannst du die Datei etwa mittels

nano /etc/matrix-synapse/homeserver.yaml

Damit die Änderungen wirksam werden, muss Synapse jeweils neu gestartet werden:

systemctl restart matrix-synapse.service

Für Uprades des Server Betriebssystems Ubuntu, von Synapse und von Caddy verwendest du im Terminal die Befehle:

apt-get updateapt-get upgrade

Für ein Upgrade des Element Frontends auf den neuesten Stand gibst du das Kommando

./upgrade-element <version>

ein.

Wenn du nichts verpassen möchtest, solltest du die Blogs von Matrix und Element abonnieren.

Für Supportfragen kannst du den Synapse Admin Matrix Server besuchen unter #synapse:matrix.org.

Matrix Apps für Mobile und Desktop

Für Matrix Messaging gibt es eine Reihe quelloffener Clients. Für jeden Geschmack und jedes Betriebssystem sollte etwas dabei sein.

Du kannst alle Matrix Apps nutzen, in dem du die Adresse deines Homeservers bei der Anmeldung eingibst zusammen mit deinen Login Daten.

element chat

Element ist der bekannteste Matrix Client und bietet zusätzliche Features und Formatierungsoptionen gegenüber WhatsApp oder Signal:

  • Neben Audio, Video und natürlich Textnachrichten gibt es
  • Reaktionen (ähnlich wie bei Slack),
  • Formatierungen (z.B. Regenbogenfarben oder html) sowie
  • Umfragen.

Element und viele weitere Clients bieten Unterstützung für lokale E2EE Schlüssel inkl. cross-signing. Das bringt enorme Sicherheit und schützt die Privatsphäre.

Es gibt eine Vielzahl von Matrix Apps für unterschiedliche Betriebssysteme, dazu gehören:

  • Element für Linux, macOS, Windows, Android, iOS und Web,
  • FluffyChat für Linux, Android, iOS und Web,
  • Fractal für Linux (leider noch ohne E2EE),
  • SchildiChat für macOS, Linux, Android und Web,
  • NeoChat für Linux.

Ich verwende Element auf dem Desktop für den vollen Funktionsumfang, und das wunderbar hübsch gemachte FluffyChat auf dem iPhone.

Matrix Bridges

Mit Matrix Bridges kannst du andere Messenger oder Social Networks einbinden und dich mit deren Nutzern über einen Client wie Element austauschen. Vorteil: Das Springen zwischen verschiedenen Apps entfällt, du wirst einheitlich benachrichtigt und alle Services sind bequem durchsuchbar.

Bridges gibt es u.a. für folgende Services:

  • WhatsApp
  • Slack
  • RSS
  • SMS
  • Skype
  • Telegram
  • iMessage
  • Discord
  • LinkedIn Messages
  • Facebook Messenger
  • Google Chat

Leider ist es ja kaum möglich, ohne WhatsApp auszukommen, weil alle Welt es benutzt. Wir haben uns deshalb eine Bridge für WhatsApp gebaut, und können so einheitlich über Matrix Apps kommunizieren. Zusätzlich haben wir Signal eingebunden. WhatsApp und Signal müssen zwar weiterhin installiert sein, aber man kann den Apps alle Rechte, Benachrichtigungen und Zugriffe entziehen. Klappt wunderbar und ist furchtbar praktisch.

Würde mich sehr freuen, wenn möglichst viele bald auf Matrix sind.

Solltet ihr Unterstützung bei der Einrichtung und dem Betrieb eures Matrix Servers benötigen, ich helfe im Rahmen meiner freiberuflichen Arbeit als Berater gerne. Nehmt einfach Kontakt auf.

Nachtrag vom 9. Juni 2022:

Wir sind nach nunmehr acht Monaten Matrix mit Synapse Server (5 User, 2 Bridges, diverse Gruppen und Räume) an die 1GB Memory Grenze unseres Servers gestoßen. Also sind wir migriert auf Dendrite, "a second-generation Matrix homeserver written in Go!". Dendrite braucht nun etwa die Hälfte der Ressourcen unseres Servers, und wir kommen wieder gut hin mit dem kleinsten DigitalOcean droplet.

Zuletzt aktualisiert: 30. Mai 2023