Willkommen in der Matrix
Willkommen in der Matrix
Für meine Rollenspielrunden habe ich lange Zeit Discord verwendet. Ich habe dort einen eigenen “Server” aufgesetzt, einige Chat- wie auch Videoräume eingerichtet und es dann einfach für meine Runden genutzt. Discord ist einfach zu benutzen, ich muss mir keine Gedanken über das Hosting machen und es funktioniert auch meistens stabil.
In den letzten Monaten aber wurde immer mehr Werbung in Discord eingeführt. Und Discord hat angekündigt, dass ein System für die Verifikation des Alters kommen wird. Ob das nun bedeutet, dass man seinen Ausweis hochlädt, das Bild gescannt wird oder die Chats per KI durchsucht und bewertet werden, weiß ich nicht. So oder so habe ich aber ein immer schlechteres Gefühl, wenn ich Discord benutze. Also habe ich mich ein wenig nach Alternativen umgeschaut.
Meine Anforderungen
Ich benötige folgende Funktionen in einem Chatclient, damit ich meine Rollenspielrunden leiten kann:
- Es muss Chaträume für den allgemeinen Austausch geben.
- Dateien müssen einfach für die Spieler zur Verfügung gestellt werden können.
- Videochat mit mehreren Personen muss stabil und in guter Qualität funktionieren.
- Der Dienst soll möglichst bei einem Dienstleister in Europa gehostet oder selber auf einem Server bereitgestellt werden
Die Suche
Zuerst habe ich an Teamspeak gedacht. Vor Jahren hatte ich einen kleinen, gemieteten Server. Und ich erinnerte mich, dass es für Sprache genial war. Teamspeak gibt es immer noch. Leider ohne Videochat. So wie ich es sehe, wird diese Funktion auch nicht entwickelt. Also war Teamspeak sofort raus. Ich bin dann auf Matrix gestoßen. Matrix kannte ich schon länger. Im Linux-Umfeld hat Matrix die alten IRC-Chats nahezu vollständig abgelöst. Man kann entweder auf einigen größeren Servern sich eigene Instanzen anlegen (ähnlich wie bei Discord) oder selber einen Matrix-Server aufsetzen und betreiben. Da Matrix mit zum föderierten Netz gehört, können eigene Server durchaus sich mit anderen austauschen. Es muss also nicht jeder zwingend auf dem eigenen Server einen Account haben. Und ich kann mich mit einem Account auf meinem Server auch auf andere Matrix-Server verbinden. Aber auf meinem Server bin ich der Hausherr. Das klingt doch gut. Matrix sollte es also werden.
Die Einrichtung
Hui… Matrix… wo fängt man da an. Es gibt gar nicht den einen Matrix-Server. Es gibt diverse. Begriffe wie Synapse, Livekit, Coturn begegnete ich sofort. Und Element, Fluffychat, Nheko, … Und dann habe ich es zumindest im Ansatz verstanden (glaube ich).
Matrix
Matrix selbst ist das Protokoll. Es umfasst alle Spezifikationen, wie ein Matrix-Server in etwa aufgebaut sein muss, damit er auch mit anderen Matrix-Servern funktioniert. Dazu gibt es dann noch diverse Clients. Die verbinden sich dann mit dem Matrix-Server. Clients haben auch nicht alle denselben Funktionsumfang. Einige können zum Beispiel eigene Emojis anzeigen, andere dafür Videocalls starten… Es ist kompliziert. Ich habe mich dann aber für das Ökosystem von Element (ESS) entschieden. Element ist ein Client. Dazu gehört dann der Server Synapse. Soweit ich es beurteilen kann, ist es der am meisten eingesetzte Server in der Matrixwelt.
Die Einrichtung ist aber doch nicht so einfach wie gedacht. Du siehst meine Anforderungen oben? Videochats bzw. Videocalls… das wird mich fast zur Verzweiflung bringen.
Ich habe mir erstmal einen neuen virtuellen Server besorgt und die ersten DNS-Einträge konfiguriert, die notwendig sind. Dank KI-Unterstützung und einiger Recherche in kagi konnte ich schnell mittels Docker auf dem Server den Communityserver von Element einrichten. Ich konnte mich selber registrieren und die ersten Chaträume anlegen. Das war der einfache Teil. Und hat vielleicht eine Stunde gedauert.
Dann kamen Videocalls…
Uff… ja… Videocalls. Das hätte einfach sein können. Wenn ich nur eine vernünftige Anleitung gefunden hätte, die einfach erklärt, was alles benötigt wird. Aber einfache Anleitungen für Matrix scheint es nicht zu geben. Verstehe mich nicht falsch. Element hat wirklich viele und umfangreiche Dokumentationen. Die sind auch bestimmt super. Aber eine Art Best-Practise-Installation auf einem Debian-System mit Docker habe ich nicht gefunden. Auch keine wirkliche Erklärung, was alles benötigt wird.
Ich habe Stunden benötigt. Habe Yaml-Dateien bearbeitet, getestet, Neustarts durchgeführt und irgendwie hat es nie geklappt. Der Fehler MISSING_MATRIX_RTC_FOCUS hat mich immer wieder beim Start eines Videocalls begrüßt. KI konnte hier auch nur bedingt helfen, denn scheinbar ist diese Funktion noch recht neu. Nach vielen Stunden habe ich dann wohl das Problem gelöst. Es fehlte ein Dienst, der Tokens für die Videocalls ausstellt. Und im Reverseproxy mussten noch einige Konfigurationen geändert werden.
Auf einmal konnte ich in dem Raum für Videocalls einen echten Anruf starten und sah mich selber. Auch die Verbindung über ein zweites Gerät hat geklappt.
Ich dachte, ich wäre fertig.
Matrix ist nicht Matrix… wenn du glaubst, du hast es gelöst…
Ich war auch fertig… mit den Nerven… ich war müde und unkonzentriert. Aber ein letzter Test sollte noch gemacht werden. Ich habe einen zweiten Raum für Videocalls erstellt. Der müsste ja auch funktionieren. Ja… ne… hat es nicht. Das war wirklich spannend. Ich konnte in dem neuen Raum einen Call starten. Aber ich habe nie den Ton oder das Bild des anderen Client gesehen. Habe ich den ersten Raum genommen und dort einen Call gestartet… na… klar… es funktioniert. Ich habe noch einmal meine Firewall geprüft. Ob die Ports korrekt freigegeben sind. Logs geprüft… usw… und es wollte nicht. Bis (und hier muss ich KI mal loben) die KI mir einen guten Tipp gegeben hat. Der Element Client cached scheinbar gerne und viel. Das ist auch grundsätzlich in Ordnung. Aber manchmal cached er auch kaputte Informationen. Der neue Raum muss irgendeine falsche Information im Element Client gehabt haben, sodass die Übertragung des Videosignals nicht funktioniert hat. Als ich im Client den Cache gelöscht habe, klappte der Call sofort. Und auch mit einem dritten und vierten Testraum…
Und jetzt habe ich meinen eigenen Server
Jetzt bin ich also stolzer Besitzer eines eigenen Matrix-Servers. Irgendwie fühlt es sich schon cool an, das überhaupt geschafft zu haben. Heute morgen habe ich mit einem PC, zwei Laptops, Handy und Tablet einen Testcall mit Video gemacht. Der Server hat quasi Däumchen gedreht. Die Qualität der Videos sah sehr gut aus. Zum Audio kann ich nicht viel sagen (fünf Geräte im selben Raum… da sind lieber alle Mikrofone abgeschaltet). Einige Freunde sind auch auf dem Server und testen ein wenig. Jetzt geht es daran, sich über die Konzepte von Spaces, Chats, Gruppen, etc. Gedanken zu machen und für die Rollenspielrunden eine vernünftige Struktur zu erstellen.
Und vielleicht kann ich dann demnächst Discord den Rücken kehren und in der Matrix leben.