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.

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.

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.

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.

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.

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.

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.

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

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.

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 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:
- 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.