Matrix Synapse installieren: Eine umfassende Anleitung

Matrix ist ein offener Standard für dezentrale und Ende-zu-Ende-verschlüsselte Kommunikation. Es handelt sich um eine Sammlung von Servern und Diensten, die über eine standardisierte API miteinander kommunizieren und sich in Echtzeit synchronisieren. Synapse ist eine Homeserver-Implementierung von Matrix, die es ermöglicht, einen eigenen Chatserver zu betreiben. Dieser Artikel bietet eine detaillierte Anleitung zur Installation und Konfiguration von Matrix Synapse auf verschiedenen Betriebssystemen und mit verschiedenen Konfigurationen.

Einführung

Dieser Artikel führt Sie durch die Installation und Konfiguration von Matrix Synapse, einem dezentralen Messenger-Server. Wir werden verschiedene Aspekte abdecken, von den grundlegenden Voraussetzungen bis hin zur fortgeschrittenen Konfiguration, einschließlich der Einrichtung von SSL-Zertifikaten, Nginx als Reverse-Proxy und der Aktivierung von Audio- und Videoanrufen über einen STUN/TURN-Server.

Voraussetzungen

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Ihr System die folgenden Voraussetzungen erfüllt:

  • Ein Server mit einem aktuellen Betriebssystem (z.B. Debian 12).
  • Eine gültige Domain oder Subdomain, die auf Ihren Server verweist.
  • Grundlegende Kenntnisse der Linux-Befehlszeile.
  • Eine Firewall, die entsprechend konfiguriert ist (TCP-Ports 80, 443 und 22).

Betriebssystem vorbereiten

Firewall konfigurieren

Stellen Sie sicher, dass Ihre Firewall die notwendigen Ports freigibt. Standardmäßig sind dies die TCP-Ports 80 (HTTP), 443 (HTTPS) und 22 (SSH). Passen Sie die Firewall-Regeln gegebenenfalls an.

Aktuelle Paketquellen verwenden

Es ist ratsam, die aktuellsten Paketquellen für Ihr Betriebssystem zu verwenden, um sicherzustellen, dass Sie die neuesten Versionen der benötigten Software erhalten.

Lesen Sie auch: Synapse X: Tutorial für Anfänger

Installation von Matrix Synapse

Paketquelle hinzufügen

Matrix Synapse betreibt eine eigene Paketquelle für die aktuellste Version. Fügen Sie diese Quelle Ihrem System hinzu, um Synapse direkt über den Paketmanager installieren zu können.

# Beispiel für Debian/Ubuntuwget -qO - https://packages.matrix.org/debian/matrix-org.gpg | sudo apt-key add -echo "deb https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.listsudo apt update

Synapse installieren

Nachdem die Paketquelle hinzugefügt wurde, installieren Sie Synapse mit dem Paketmanager.

sudo apt install matrix-synapse

Während der Installation werden Sie nach Ihrer Matrix-Domain gefragt. Geben Sie hier Ihre Domain oder Subdomain ein (z.B. matrix.example.com).

Konfiguration von Synapse

Die Hauptkonfigurationsdatei für Synapse befindet sich unter /etc/matrix-synapse/homeserver.yaml. Diese Datei enthält alle wichtigen Einstellungen für Ihren Matrix-Server.

Registrierungsschlüssel

Um zu verhindern, dass sich "fremde" Benutzer selbstständig registrieren können, benötigen Sie einen Registrierungsschlüssel (Secret). Dieses Secret finden Sie in der Konfigurationsdatei und müssen es unter registration_shared_secret eintragen.

Lesen Sie auch: Installationsanleitung für Synapse X

Datenbank konfigurieren

Standardmäßig verwendet Synapse SQLite als Datenbank. Für größere Installationen wird jedoch die Verwendung von PostgreSQL empfohlen.

PostgreSQL installieren
sudo apt install postgresql postgresql-contrib
Datenbank und Benutzer erstellen

Legen Sie einen Datenbankbenutzer und eine Datenbank für Matrix Synapse an.

sudo -u postgres psqlCREATE USER synapse WITH PASSWORD 'your-password';CREATE DATABASE synapse WITH OWNER synapse;\q

Ersetzen Sie your-password durch ein sicheres Passwort.

Datenbankinformationen in Synapse übernehmen

Übernehmen Sie die Datenbankinformationen in die Matrix-Konfiguration (/etc/matrix-synapse/homeserver.yaml).

database: name: psycopg2 args: user: synapse password: your-password database: synapse host: localhost

Weitere Konfigurationen

Es gibt viele weitere Einstellungsmöglichkeiten in der Konfigurationsdatei. Einige wichtige Optionen sind:

Lesen Sie auch: Synaptische Auswirkungen von Strychnin

  • report_stats: Legt fest, ob anonymisierte Statistiken an Matrix gesendet werden sollen.
  • enable_presence: Aktiviert oder deaktiviert Präsenzanzeigen. Beachten Sie, dass die Aktivierung zu einer höheren CPU-Belastung führen kann.

Nginx als Reverse-Proxy einrichten

Um Matrix über HTTPS mit einem gültigen SSL-Zertifikat zu betreiben, wird Nginx als Reverse-Proxy verwendet.

Nginx installieren

sudo apt install nginx

VHost-Dateien konfigurieren

Richten Sie verschiedene VHost-Dateien ein, um den Traffic entsprechend zu leiten.

# /etc/nginx/sites-available/matrixserver { listen 80; server_name matrix.example.com; return 301 https://$server_name$request_uri;}server { listen 443 ssl; server_name matrix.example.com; ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem; location / { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; client_max_body_size 50M; }}

Standard VHost-Datei entfernen

Entfernen Sie die Standard VHost-Datei, um sicherzustellen, dass diese den Matrix-Serverbetrieb nicht beeinträchtigt.

sudo rm /etc/nginx/sites-enabled/default

Nginx neu starten

Starten Sie Nginx neu, um die Änderungen zu übernehmen.

sudo systemctl restart nginx

SSL-Zertifikate mit Let's Encrypt erstellen

Installieren Sie Certbot, um kostenlose SSL-Zertifikate von Let's Encrypt zu generieren.

sudo apt install certbot python3-certbot-nginx

Erstellen Sie die Zertifikate für Ihre Domain.

sudo certbot --nginx -d matrix.example.com

Certbot konfiguriert Nginx automatisch und aktiviert die neuen TLS-Zertifikate.

STUN/TURN-Server für Audio- und Videoanrufe einrichten

Matrix unterstützt Audio- und Videoanrufe. Damit dies auch netzwerkübergreifend funktioniert, benötigen Sie einen STUN/TURN-Server.

Coturn installieren

Installieren Sie das Coturn-Paket.

sudo apt install coturn

Coturn konfigurieren

Konfigurieren Sie Coturn, indem Sie die /etc/turnserver.conf-Datei bearbeiten.

sudo nano /etc/turnserver.conf

Fügen Sie die folgenden Zeilen hinzu und passen Sie sie an Ihre Bedürfnisse an.

listening-port=3478tls-listening-port=5349listening-ip=your-server-iprelay-ip=your-server-ipexternal-ip=your-server-public-ipfingerprintlt-cred-mechuse-auth-secretstatic-auth-secret=your-secretrealm=your-domain.comtotal-quota=100bps-capacity=0stale-nonce=600

Ersetzen Sie your-server-ip, your-server-public-ip, your-secret und your-domain.com durch Ihre tatsächlichen Werte.

Coturn starten

Starten Sie Coturn und aktivieren Sie den Dienst beim Systemstart.

sudo systemctl start coturnsudo systemctl enable coturn

Synapse für STUN/TURN konfigurieren

Fügen Sie die STUN/TURN-Server-Informationen in die Synapse-Konfiguration ein (/etc/matrix-synapse/homeserver.yaml).

turn_servers: - uris: - 'turn:your-domain.com:3478?transport=udp' - 'turn:your-domain.com:5349?transport=tcp' username: your-username password: your-password

Ersetzen Sie your-domain.com, your-username und your-password durch die entsprechenden Werte.

Benutzer erstellen und anmelden

Benutzer erstellen

Erstellen Sie einen neuen Matrix-Benutzer mit dem register_new_matrix_user Befehl.

sudo -u synapse python3 -m synapse.app.register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Das System fragt nach dem "localpart" (Benutzername) und einem Passwort. Da dies der erste Benutzer ist, den Sie anlegen, geben Sie yes ein, wenn Sie gefragt werden, ob der Benutzer ein Administrator sein soll.

Anmelden

Starten Sie nun einen Matrix-Client (z.B. Element) und melden Sie sich dort an. Geben Sie Ihre Matrix-ID (z.B. @username:matrix.example.com) und Ihr Passwort ein.

Element Webclient installieren

Element ist ein beliebter Open-Source-Client für Matrix.

Element installieren

Sie können Element als Desktop-Anwendung oder als Webclient verwenden. Für den Webclient laden Sie die aktuelle Version von der Element-Webseite herunter und entpacken sie in ein Verzeichnis auf Ihrem Server.

Nginx für Element konfigurieren

Erstellen Sie eine neue Nginx-Konfigurationsdatei für Element.

# /etc/nginx/sites-available/elementserver { listen 80; server_name element.example.com; return 301 https://$server_name$request_uri;}server { listen 443 ssl; server_name element.example.com; ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem; root /var/www/element; # Pfad zum entpackten Element Webclient index index.html; location / { try_files $uri $uri/ =404; }}

Ersetzen Sie element.example.com durch Ihre Domain und /var/www/element durch den Pfad zum entpackten Element Webclient.

SSL-Zertifikate für Element erstellen

sudo certbot --nginx -d element.example.com

Nginx neu starten

sudo systemctl restart nginx

Fehlerbehebung

  • Zugriffsprobleme: Stellen Sie sicher, dass die Firewall-Regeln korrekt konfiguriert sind und dass Nginx richtig läuft.
  • SSL-Zertifikatsprobleme: Überprüfen Sie, ob die SSL-Zertifikate korrekt installiert und konfiguriert sind.
  • Datenbankverbindungsprobleme: Stellen Sie sicher, dass die Datenbank läuft und dass die Verbindungsinformationen in der Synapse-Konfiguration korrekt sind.
  • STUN/TURN-Probleme: Überprüfen Sie, ob Coturn läuft und dass die Konfiguration korrekt ist. Verwenden Sie ein STUN/TURN-Testtool, um die Verbindung zu überprüfen.

Tipps und Tricks

  • Regelmäßige Updates: Halten Sie Synapse und alle zugehörigen Komponenten (z.B. PostgreSQL, Nginx, Coturn) auf dem neuesten Stand, um Sicherheitslücken zu vermeiden und von neuen Funktionen zu profitieren.
  • Monitoring: Überwachen Sie Ihren Server, um sicherzustellen, dass er ordnungsgemäß funktioniert und ausreichend Ressourcen zur Verfügung stehen.
  • Backups: Erstellen Sie regelmäßig Backups Ihrer Synapse-Datenbank und Konfigurationsdateien, um Datenverluste zu vermeiden.
  • Sicherheit: Achten Sie auf die Sicherheit Ihres Servers und Ihrer Synapse-Installation. Verwenden Sie sichere Passwörter, aktivieren Sie die Zwei-Faktor-Authentifizierung und halten Sie Ihre Software auf dem neuesten Stand.

Zusätzliche Konfigurationen

Deaktivieren der Präsenzanzeige

Die Präsenzanzeige kann zu einer hohen CPU-Last führen. Um sie zu deaktivieren, bearbeiten Sie die /etc/matrix-synapse/homeserver.yaml-Datei und setzen Sie enable_presence auf false.

IP-Adressbereiche für URL-Reviews ausschließen

Um zu verhindern, dass Inhalte von Nachrichten über Google-/Apple-Push-Services geleitet werden, stellen Sie sicher, dass include_content auf false gesetzt ist.

SAML-Authentifizierung

Synapse unterstützt SAML (Security Assertion Markup Language) ab Version 1.1.0. Dies ermöglicht die Integration mit bestehenden Identitätsanbietern.

Migration von SQLite zu PostgreSQL

Wenn Sie von SQLite zu PostgreSQL migrieren möchten, führen Sie die folgenden Schritte aus:

  1. Sichern Sie Ihre SQLite-Datenbank.
  2. Installieren und konfigurieren Sie PostgreSQL wie oben beschrieben.
  3. Stoppen Sie den Synapse-Server.
  4. Konvertieren Sie die SQLite-Datenbank in PostgreSQL. Es gibt verschiedene Tools, die dies ermöglichen.
  5. Passen Sie die Synapse-Konfiguration an, um PostgreSQL zu verwenden.
  6. Starten Sie den Synapse-Server.

tags: #wie #installiere #ich #synapse