Matrix #
Deployment #
Quelle #
Die Anwendung wird als generisches app-template Helm-Chart von BJW-S Labs bereitgestellt. Die verwendeten Docker-Images sind matrixdotorg/synapse für den Server und vectorim/element-web für den Client.
Dokumentation #
- Synapse: matrix-org.github.io/synapse
- Element: element.io/help
Funktion #
Dieser Dienst stellt eine vollständige Matrix-Infrastruktur bereit:
- Synapse: Der Homeserver, das Herzstück des Dienstes. Er speichert die Benutzerkonten, die Raum-Historie und kommuniziert mit anderen Homeservern im globalen Matrix-Netzwerk (Föderation). Er wird unter
matrix.kirchner.socialbereitgestellt. - PostgreSQL: Die Datenbank, in der Synapse alle seine Daten speichert.
- Element: Ein funktionsreicher Web-Client für Matrix, der unter
element.kirchner.socialerreichbar ist und sich mit dem lokalen Synapse-Server verbindet.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei sowie Konfigurationsdateien, die auf einem persistenten Volume gespeichert sind.
Wichtige Einstellungen #
- Ingress:
- Der Element-Web-Client ist unter
element.kirchner.socialerreichbar. - Der Synapse-Homeserver ist für Client-Server- und Server-Server-Kommunikation unter
matrix.kirchner.socialerreichbar. Es wird derwebsecure-EntryPoint (Port 443) verwendet.
- Der Element-Web-Client ist unter
- Datenbank: Synapse verwendet eine dedizierte PostgreSQL-Datenbank, die als Sidecar-Container läuft.
- Speicher: Alle persistenten Daten (Synapse-Konfiguration und -Medien, PostgreSQL-DB) werden auf einem Longhorn-Volume (PVC
matrix-synapse) gespeichert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/matrix-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/matrix | kubectl apply -n matrix -f -Abhängigkeiten #
- Traefik: Wird als Ingress-Controller für den externen Zugriff benötigt.
- cert-manager: Wird für die automatische Bereitstellung von TLS-Zertifikaten benötigt.
- Longhorn: Als Storage-Provider für das PersistentVolume.