User Tools

Site Tools


matrix

FIXME

Matrix

  • technische Daten, etc.

1 Überblick

  • 1.1 Was ist Matrix?
  • 1.2 warum
  • 1.3 Abgrenzung zu anderen Diensten

2 Struktur

  • wo server
  • wo client
  • wie login
  • wer login

3 TODO liste

  • Wir könnten in Betracht ziehen die Container nicht unter root laufen zu lassen sondern unter nicht privelegierten Benutzern um die Sicherheit zu erhöhen
  • Der Server hat die kleinste Größe die es bei Hetzner gibt(1 vCPU, 2GB Ram, 20GB SSD). Dies wird wahrscheinlich auf Dauer nicht ausreichen. Ein Hochskalieren sollte aber leicht möglich sein.
  • Der Turn Server ist ohne verschlüsselung. Die Lets Encrypt Zertifikate können vermutlich nicht verwendet werden: https://matrix-org.github.io/synapse/latest/setup/turn/coturn.html (Weiter unten, nach “issue” suchen). Wir könnten für den Turn Server ein Zerossl Zertifikat statt eines von lets encrypt nutzen. Wir könnten auch in Betracht ziehen komplett (sprich reverse-proxy auch) auf Zerossl zu wechseln damit wir nicht “doppelgleisig fahren”.

4 Technik

4.2 Reverse-Proxy

Als Reverse Proxy wird NGINX in einem Docker-Container genutzt. Unter dem Pfad /opt/reverse-proxy

Die TLS-Zertifikate werden als Volume über einen relativen Pfad zu Certbot eingebunden.

So wird der Traffic weitergeleitet:

  • Traffic auf port 80 (http):
    • Unter dem Pfad /.well-known/acme-challenge/ wird der Inhalt des Challenge Verzeichnis (siehe Certbot) ausgeliefert
    • Alles andere unter port 80 kriegt eine 301 Weiterleitung auf https
  • Auf Port 443 und 8448 (https):
    • Alles unter /_matrix oder /_synapse/client wird an den synapse-Container weitergeleitet
    • /.well-known/matrix/server liefert eine JSON Datei die andere Matrix Server anweist auf Port 443 anzufragen (wird das noch benötigt?)
    • alles andere wird an den element-web Container weitergeleitet

4.3 Certbot

Certbot ist in einem docker-container im Pfad /opt/certbot Die TLS-Zertifikate liegen in einem Unterordner, genauso wie Challenge Dateien

4.4 Element Web

Ein Container der die static files für den element-web client bereitstellt

Im Unterordner /opt/element-web

4.5 Turn Server

Im Unterordner /opt/turn-server läuft ein eturnal Container der im network mode “host” läuft und entsprechend auf chat.rote.tools einen turn server bereitstellt

bisheriger Artikel

Matrix ist ein dezentrales Chatsystem. Als Alternativen wurden RocketChat und Mattermost diskutiert. Es wurde sich aufgrund der unten stehenden Argumente für Matrix entschieden

Ziel ist es ein Chatsystem zu haben, welches an SSO angeknüpft ist und einen Gruppensync mitliefert. So sollen Personen/Accounts automagisch Chatgruppen hinzugefügt werden. Das erstellen von neuen Gruppen soll dabei nicht ausgeschlossen werden. Als weitere wichtige Funktion gelten Threads

RocketChat

Ist voraussichtlich günstiger als Mattermost bzw. hat verschiedene Features, welche bei Mattermost hinter einer Paywall sind. Zusätzlich ist es recht einfach aufzusetzen. Es wurden aber bei Lukas und Michelle schlechte Erfahrungen gemacht, da die Performance auf den Endgeräten sehr heterogen ist und ein hoher Supportaufwand bestehen kann. SSO ist bereits in der kostenlosen Variante mit drin. Zu zahlen sind für die Push Notifications und der Gruppensync. Der genaue Preis ist unbekannt, da erst kürzlich das Modell umgestellt wurde.

Mattermost

Ist teurer als RocketChat, ist aber was den Umfang insbesondere von Automagisierungen deutlich umfangreicher. Michelle versucht seit April eine Lizenz für die Jusos Thüringen zu erhalten und hat bis heute keine Antwort. Die Kosten wären ca. 250 USD für 3 Jahre self.hosted Lizenz bis 1.000 Nutzer:innen. Das inkludiert nur das “Professional” Paket und somit keinen Gruppensync.

Matrix

Großer Vorteil, dass es vollständig kostenlos ist, bisher aber keine Threads hatte. Das scheint inzwischen gefixt. Bzgl. der Automagisierungen könnte man einiges durch Bots lösen.

matrix.txt · Last modified: 2023/01/12 19:36 by jokro7cf

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki