Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Matrix

Inhaltsverzeichnis

Matrix
#

Deployment
#

Argo 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
#

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.social bereitgestellt.
  • PostgreSQL: Die Datenbank, in der Synapse alle seine Daten speichert.
  • Element: Ein funktionsreicher Web-Client für Matrix, der unter element.kirchner.social erreichbar 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.social erreichbar.
    • Der Synapse-Homeserver ist für Client-Server- und Server-Server-Kommunikation unter matrix.kirchner.social erreichbar. Ein dedizierter EntryPoint synapse auf Port 8448 wird für die Föderation verwendet.
  • Datenbank: Synapse verwendet eine dedizierte PostgreSQL-Datenbank, die als Sidecar-Container läuft.
  • Speicher: Alle persistenten Daten (Synapse-Konfiguration und -Medien, PostgreSQL-DB, Element-Konfiguration) werden auf einem NFS-Share gespeichert. Die Konfiguration von Synapse (homeserver.yaml) und Element (config.json) erfolgt direkt in den auf dem Volume liegenden Dateien.

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. Es muss ein TCP-EntryPoint für den Föderations-Port (8448) konfiguriert sein.
  • cert-manager: Wird für die automatische Bereitstellung von TLS-Zertifikaten benötigt.
  • NFS: Ein NFS-Server wird für das persistente Speichern aller Daten benötigt.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin