# Matrix (Element + Synapse) Matrix steht in erster Linie für ein auf HTTP basierendes offenes Protokoll für Messaging. Dieses Protokoll wird durch verschiedene Server- und Client-Implementierungen umgesetzt. Hier wurden Matrix-Synapse als Server und Element als Client getestet. Im Vergleich zu anderen Lösungen ist Grundbestandteil des Protokolls die sog. Föderierung, womit alle Matrix-Server, egal wer sie betreibt, untereinander kommunizieren können. Das Protokoll ist vergleichbar mit dem dezentralen Ansatz von E-Mail-Servern. Matrix-Server leiten Nachrichten zu dem jeweils zuständigen Matrix-Server weiter, bei dem der:die Benutzer:in registriert ist. Die Föderation kann für einen Server aber auch deaktiviert werden, um die Kommunikation auf eine Organisation zu beschränken. Aktuell können nur 1-zu-1 Videoanrufe direkt über Matrix/Element durchgeführt werden, für Gruppentelefonate wird momentan eine Jitsi-Integration verwendet. Hier ist aber auch eine native Umsetzung bereits in der Testphase. Durch das offene Matrix-Protokoll gibt es noch eine Vielzahl an weiteren Implementierungen und Erweiterungen für Räume (Extensions) oder sog. Bots und Bridges, die weitere Funktionen oder Anbindungen zu anderen Messenger-Plattformen ermöglichen. Die Qualität der Erweiterungen kann aber stark schwanken. Ein häufiges Problem in der praktischen Anwendung von Element als Client ist, dass User:innen vergessen ihre Passphrase für die Wiederherstellung von E2E-Encryption-Keys zu speichern. Dadurch ist schon häufiger User:innen ihre gesamte Historie abhanden gekommen. ## Allgemeine Informationen - Website: [matrix.org](https://matrix.org) , [element.io](https://element.io) - Demo: - [Hersteller](https://app.element.io/?pk_vid=d4b162e0e6c511851631808451ab93fb) - [local-it](chat.demo.local-it.org) demo : demo - Source Code: [Synapse](https://github.com/matrix-org/synapse), [Element](https://github.com/vector-im) - Dokumentation: [Synapse](https://matrix-org.github.io/synapse/latest/) - Lizenz: Apache License 2.0 - Programmiersprache (Framework): Python ### Kernfunktionen (Spezialisierung der Plattform) * Chat ### Erweiterte Funktionen (nicht spezialisiert darauf) * Integrationen von Bots, Widgets wie z.B. Jitsi oder Bridges zu anderen Messengern möglich * Umfragen * Räume in Spaces organisieren ## Technisch ### Installation - coop-cloud recipe: [Synapse](https://git.coopcloud.tech/coop-cloud/matrix-synapse), [Element](https://git.coopcloud.tech/coop-cloud/element-web) - Docker: Synapse: [Image](https://hub.docker.com/r/matrixdotorg/synapse), [Dockerfile](https://github.com/matrix-org/synapse/tree/develop/docker) - Docker-Compose: [synapse](https://github.com/matrix-org/synapse/blob/develop/contrib/docker/docker-compose.yml) - Healthcheck: noch nicht im compose, aber im Dockerfile gibt es einen - Secrets: ja - Konfiguration via: homeserver.yaml - API-Dokumentation: [übersicht](https://matrix.org/faq/#what-does-matrix-provide%3F) - Abhängigkeiten: - App: [python > 3.7](https://github.com/matrix-org/synapse/blob/develop/pyproject.toml) - Datenbank: postgres - SMTP / Email: möglich - Installationshinweise: - [federationstester](https://federationtester.matrix.org/) ### Authentifizierung & SSO openid-connect, saml, cas ### Entwicklung - Maintainership: The Matrix.org Foundation C.I.C. , Ort - Contributors: 385 (Synapse) - Letzte Änderung: 07.06.22 - Letzter Release / Zyklus: [1.60.0](https://github.com/matrix-org/synapse/releases/tag/v1.60.0) - Erweiterbarkeit: viele Bots, Integrationen, Bridges vorhanden - Geplante Entwicklung / Roadmap: ? Überprüft am: 07.06.22 ### sonstiges - Import / Export von Userdaten: - einzelne chats können per element exportiert werden, oder per api - auf Datenbank ebene vmtl etwas schwerer weil die Secret Keys benötigt werden - Migration auf eine andere Domain nicht ohne weiteres möglich, da Username daraus abgeleitet wird.