Was ist Matrix?
Matrix ist ein dezentrales Chat-System. Jeder kann sich einen eigenen Server für seine Community erstellen und sogenannte Federations („Föderationen“) zu anderen Community Servern freigeben.
Alle Daten bleiben lokal auf dem erstellten Server der jeweiligen Community und werden zu keiner anderen Instanz verbreitet. Die einzelnen Clients können wirkliche Ende-zu-Ende Verschlüsselung. D.h. auch der Admin des Community Servers kann keine Nachrichten lesen.
User registrieren
Um unseren Server nutzen zu können, müsst ihr euch vorab registrieren.
Schickt dazu eine Email mit eurem gewünschten Nickname an: matrixregister(at)grainscom.de
Client Download (Element)
Offline Android Download – Version vom 26.10.2022
Client Einstellungen
Wenn ihr den Client nun startet, müsst ihr als erstes den HomeServer anpassen:



Warum Matrix und kein anderes Chat-System?
Es gibt sehr viele Dienste und Programme zum instantanen elektronischen Kommunizieren. Matrix wurde ausgewählt, da es sich durch folgende Eigenschaften auszeichnet:
- Offener Standard (keine technische Sackgasse)
- Kommunikationsprotokoll für föderierte Echtzeitkommunikation (keine isolierte Lösung sondern wie E-Mail mit weltweiter Konnektivität)
- Differenzierte Kommunikation möglich (1:1, frei definierbare Teams, themenspezifisch)
- Dezentralisierte, persistente und interoperable Kommunikation (keine zentralen Kontrollinstanzen, verbindbar mit anderen Protokollen und Tools)
- Datenschutz: Ende-zu-Ende-Verschlüsselung ist Standard in 1:1-Gesprächen und (Gruppen-)Räumen, in letzteren bei Bedarf ausschaltbar
- Web-Anwendung + Desktop-Client + Mobile Apps vorhanden
- Die Kontakte auf dem eigenen Handy werden nicht automatisch an Dritte weitergegeben (kein Adressbuch-Upload)
- Anbindung an bestehende Authentifizierungssysteme
- Bestehende erfolgreiche Sicherheitsauditierung
- Autonomie und Kontrolle: lokal installierbar (Serverstandort Deutschland)
- Erkennen des Anwesenheitsstatus
- Aktive Weiterentwicklung
- Aufstrebende Nutzung durch weitere Wissenschaftseinrichtungen (bspw. viele deutsche Hochschulen)
Ausführliche Informationen: https://matrix.org/faq/#intro
Ausführliches Fachbegriffs-Glossar: https://matrix.org/faq/#definitions
Unsere Planung
Wir werden einen Matrix Server zuerst auf einer nicht Strom-unabhängigen Virtuellen Maschine testen, um den externen Verkehr und die Akzeptanz zu überprüfen. Sobald dieser Server aktiv läuft und ausgiebig getestet wurde, wird eine Collaboration auf dem Raspberry aktiv geschaltet um auch in Krisenfällen den Dienst aktiv am laufen zu erhalten.
Ab hier nur noch für wirklich Technik Interessierte:
Die Installations Anleitung für einen Server (!für User nicht relevant!!)
Voraussetzungen
- Ubuntu 18.04.
- Root-Rechte
- Matrix Domain Name oder Subdomain – matrix.grainscom.de
Was werden wir tun?
- Aktualisierung und Upgrade des Ubuntu 18.04 Systems
- Matrix Synapse installieren
- Matrix-Synapse konfigurieren
- SSL Letsencrypt generieren
- Nginx als Reverse-Proxy für Matrix Synapse installieren und konfigurieren
- Einrichten der UFW Firewall
- Neuen Matrix-Benutzer einrichten
- Prüfung
Schritt 1 – Update- und Upgrade-System
Melden Sie sich bei Ihrem Ubuntu-Server an, aktualisieren Sie das Repository und aktualisieren Sie alle Pakete mit dem folgenden Befehl apt.
sudo apt update
sudo apt upgrade
Und alle ubuntu-Pakete wurden aktualisiert.
Schritt 2 – Matrix Synapse installieren
In diesem Schritt werden wir die Matrix-Synapse-Software mit den Debian-Paketen aus dem offiziellen Matrix-Repository installieren.
Fügen Sie den Matrixschlüssel und das Repository hinzu, indem Sie alle folgenden Befehle ausführen.
wget -qO - https://matrix.org/packages/debian/repo-key.asc | sudo apt-key add -
sudo add-apt-repository https://matrix.org/packages/debian/
Der Befehl aktualisiert das Repository automatisch.

Installieren Sie nun Matrix Synapse mit dem Befehl apt wie unten beschrieben.
sudo apt install matrix-synapse -y
Während der Installation werden Sie nach dem Namen des Matrixservers gefragt – geben Sie den Matrixdomänennamen’matrix.ihredomain.de‘ ein.

Und für den anonymen Datenbericht wählen Sie „Nein“.

Wenn die Installation der Matrix Synapse abgeschlossen ist, starten Sie den Dienst und aktivieren Sie ihn so, dass er jederzeit beim Systemstart gestartet werden kann.
sudo systemctl start matrix-synapse
sudo systemctl enable matrix-synapse
Die Matrixsynapse ist nun mit der Standardkonfiguration auf den Ports’8008′ und’8448′ in Betrieb.
Schritt 3 – Konfigurieren der Matrixsynapse
Nach der Installation der Matrix-Synapse konfigurieren wir sie so, dass sie unter der lokalen IP-Adresse läuft, deaktivieren die Registrierung der Matrix-Synapse und aktivieren das Registrierungs-Shared-Secret.
Bevor wir die Heimserverkonfiguration bearbeiten, müssen wir den gemeinsamen geheimen Schlüssel generieren.
Führen Sie den folgenden Befehl aus.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Und Sie erhalten den generierten Schlüssel. Kopieren Sie den Ergebnisschlüssel.
Nun müssen wir die Heimserver-Konfigurationsdatei ‚homeserver.yaml‘ im Verzeichnis’/etc/matrix-synapse/‘ bearbeiten. Ändern Sie das aktuelle Verzeichnis auf’/etc/matrix-synapse‘ und bearbeiten Sie die Konfigurationsdatei mit vim.
cd /etc/matrix-synapse/
vim homeserver.yaml
Ändern Sie die HTTP- und HTTPS-Listener-Ports’8008′ und’8448′ auf die lokale IP-Adresse’127.0.0.0.0.1′.
port: 8448
bind_addresses:
- '127.0.0.1'
- port: 8008
bind_addresses: ['127.0.0.1']
Deaktivieren Sie die Matrix-Synapse-Registrierung, kommentieren Sie die Konfiguration „registration_shared_secret“ und fügen Sie den erzeugten geheimen Schlüssel ein.
enable_registration: False
registration_shared_secret: "MtkF9JOkNHsRRISyR5L91KAQlrrPhyWX"
Speichern und beenden.
Hinweis:
registration_shared_secret: Wenn set erlaubt die Registrierung durch jeden, der auch das gemeinsame Geheimnis hat, auch wenn die Registrierung deaktiviert ist.
Starten Sie nun die Matrix-Synapse-Dienste neu.
sudo systemctl restart matrix-synapse
geschlossen.
Schritt 4 – Generieren von SSL-Letsencrypt-Zertifikaten
In diesem Tutorial werden wir HTTPS für den Nginx Reverse Proxy aktivieren und die SSL-Zertifikatsdateien aus Letsencrypt generieren.
Installieren Sie das letsencrypt-Tool mit dem folgenden apt-Befehl.
sudo apt install letsencrypt -y
Das Letsencrypt-Tool ist auf dem System installiert, erzeugen Sie nun die SSL-Zertifikatsdateien für den Matrixdomänennamen ‚matrix.hakase-labs.io‘ mit dem Befehl certbot, wie unten gezeigt.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email ihre@email.com -d matrix.ihredomain.de
Das Letsencrypt-Tool generiert SSL-Zertifikatsdateien, indem es den temporären Webserver „Standalone“ zur Überprüfung ausführt.
Und wenn es fertig ist, erhalten Sie das Ergebnis wie unten gezeigt.

SSL-Zertifikatsdateien für den Matrix-Synapsen-Domainnamen ‚matrix.ihredomain.de‘ werden innerhalb des Verzeichnisses ‚/etc/letsencrypt/live/‘ erzeugt.
Schritt 5 – Nginx als Reverse Proxy installieren und konfigurieren
In diesem Schritt installieren wir den Nginx-Webserver und konfigurieren ihn als Reverse-Proxy für den Heimserver, der auf dem Port’8008′ läuft.
Installieren Sie den Nginx-Webserver mit dem folgenden Befehl apt.
sudo apt install nginx -y
Nachdem die Installation abgeschlossen ist, starten Sie den Dienst und ermöglichen Sie ihm, ihn jederzeit beim Systemstart zu starten.
sudo systemctl start nginx
sudo systemctl enable nginx
Als nächstes erstellen wir eine neue virtuelle Host-Konfiguration für den Matrix-Domänennamen ‚matrix.ihredomain.de‘.
Gehen Sie in das Konfigurationsverzeichnis von ‚/etc/nginx‘ und erstellen Sie eine neue virtuelle Hostdatei ‚matrix‘.
cd /etc/nginx/
vim sites-available/matrix
Fügen Sie dort die folgende Konfiguration ein.
server {
listen 80;
server_name matrix.ihredomain.de;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name matrix.ihredomain.de;
ssl_certificate /etc/letsencrypt/live/matrix.ihredomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.ihredomain.de/privkey.pem;
# If you don't wanna serve a site, comment this out
root /var/www/html;
index index.html index.htm;
location /_matrix {
proxy_pass http://127.0.0.1:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Speichern und beenden.
Aktivieren Sie die virtuelle Hostdatei und testen Sie die Konfiguration.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann die Nginx-Dienste neu.
sudo systemctl restart nginx
Die Installation und Konfiguration von Nginx als Reverse-Proxy für den Matrix Synapse Homeserver ist abgeschlossen.

Schritt 6 – Einrichten der UFW Firewall
In diesem Tutorial werden wir nur drei Ports für unsere Dienste öffnen. Wir erlauben nur SSH-, HTTP- und HTTPS-Verbindungen in der UFW-Firewall-Konfiguration.
Fügen Sie die SSH-, HTTP- und HTTPS-Dienste der UFW-Firewall-Konfiguration hinzu, indem Sie den folgenden Befehl ausführen.
ufw allow ssh
ufw allow http
ufw allow https
Aktivieren Sie nun den UFW-Firewall-Service und überprüfen Sie dann den Status.
ufw enable
ufw status
Und Sie erhalten das Ergebnis wie unten gezeigt.
Und wir haben die UFW-Firewall-Konfiguration abgeschlossen.
Schritt 7 – Erstellen eines neuen Matrixbenutzers
Zu diesem Zeitpunkt ist die Installation und Konfiguration des Matrix Synapse Heimserver abgeschlossen. Und in diesem Schritt zeigen wir Ihnen, wie Sie einen neuen Matrixbenutzer vom Kommandozeilen-Server hinzufügen können.
Um einen neuen Matrixbenutzer anzulegen, führen Sie den folgenden Befehl aus.
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://127.0.0.1:8008
Jetzt müssen Sie den Benutzernamen und das Passwort eingeben und entscheiden, ob der Benutzer die Administratorrechte hat oder nicht.
Unten ist das Ergebnis auf meinem System.
Und wir haben einen neuen Matrix-Benutzer namens’test‘ mit Administratorrechten erstellt.
Schritt 8 – Prüfung
Laden Sie die Riot-Desktop-Anwendung für Ihr Betriebssystem herunter und installieren Sie sie.
Öffnen Sie die Riot-Software und Sie erhalten die Matrix-Login-Seite wie unten beschrieben.
Geben Sie den Matrix-Benutzernamen und das Passwort ein, wählen Sie dann die Option „Benutzerdefinierter Server“ und geben Sie den benutzerdefinierten Domänennamen „matrix.grainscom.de“ ein.
Klicken Sie auf die Schaltfläche „Anmelden“.
Und jetzt erhalten Sie das Riot Dashboard.
Der Matrix Synapse Heimserver ist unter der Nginx Reverse-Proxy-HTTPS-Verbindung in Betrieb, und der ‚test‘ Benutzer ist nun über den Riot-Anwendungs-Desktop am Matrix-Homeserver angemeldet.
Matrix-Benutzerkonfiguration.
Matrix-Chat-Benutzer als Gruppe.