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 updateSynapse installieren
Nachdem die Paketquelle hinzugefügt wurde, installieren Sie Synapse mit dem Paketmanager.
sudo apt install matrix-synapseWä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-contribDatenbank 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;\qErsetzen 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: localhostWeitere 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 nginxVHost-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/defaultNginx neu starten
Starten Sie Nginx neu, um die Änderungen zu übernehmen.
sudo systemctl restart nginxSSL-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-nginxErstellen Sie die Zertifikate für Ihre Domain.
sudo certbot --nginx -d matrix.example.comCertbot 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 coturnCoturn konfigurieren
Konfigurieren Sie Coturn, indem Sie die /etc/turnserver.conf-Datei bearbeiten.
sudo nano /etc/turnserver.confFü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=600Ersetzen 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 coturnSynapse 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-passwordErsetzen 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:8008Das 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.comNginx neu starten
sudo systemctl restart nginxFehlerbehebung
- 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:
- Sichern Sie Ihre SQLite-Datenbank.
- Installieren und konfigurieren Sie PostgreSQL wie oben beschrieben.
- Stoppen Sie den Synapse-Server.
- Konvertieren Sie die SQLite-Datenbank in PostgreSQL. Es gibt verschiedene Tools, die dies ermöglichen.
- Passen Sie die Synapse-Konfiguration an, um PostgreSQL zu verwenden.
- Starten Sie den Synapse-Server.
tags: #wie #installiere #ich #synapse