Chat Server · 15 min read · Nov 01, 2025

So installieren und erstellen Sie einen Chat-Server mit Matrix Synapse und Element auf Ubuntu 22.04

Matrix ist ein offener Standard für dezentrale und Ende-zu-Ende-verschlüsselte Kommunikation. Es ist eine Sammlung von Servern und Diensten, die über eine standardisierte API, die in Echtzeit synchronisiert, miteinander kommunizieren. Es verwendet Heimserver, um Kontoinformationen und Chatverläufe zu speichern. Wenn ein Heimserver ausfällt, können andere Server aufgrund der Natur der Dezentralisierung weiterhin ohne Probleme kommunizieren. Sie können einen von jemand anderem gehosteten Matrix-Heimserver verwenden oder Ihren eigenen hosten, um die Kontrolle über Ihre Daten zu behalten.

In diesem Tutorial lernen Sie, wie Sie einen Chat-Server mit Synapse, einer Heimserver-Implementierung von Matrix, installieren und erstellen. Element ist ein Matrix-Webclient, der mit dem Matrix React SDK erstellt wurde. Dies ermöglicht es Ihnen, Matrix-Chat im Web anzubieten. Sie können den Server auch mit jedem anderen Matrix-Client Ihrer Wahl verwenden. Wir werden auch den Coturn-Server installieren, um Sprach- und Videoanrufe zu ermöglichen. Der Coturn-Dienst ist optional, wenn Sie nicht daran interessiert sind, ihn zu verwenden.

Voraussetzungen

  1. Ein Server, der Ubuntu 22.04 ausführt.
  2. Ein Nicht-Sudo-Benutzer mit Root-Rechten.
  3. Die unkomplizierte Firewall (UFW) ist aktiviert und läuft.
  4. Vollständig qualifizierte Domainnamen (FQDN) für Matrix, Element und Coturn, die auf Ihren Server zeigen. Wir werden matrix.example.com, element.example.com und coturn.example.com für die drei Dienste verwenden.
  5. Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update && sudo apt upgrade

Schritt 1 - Firewall konfigurieren

Bevor Sie Pakete installieren, besteht der erste Schritt darin, die Firewall zu konfigurieren, um die Ports für HTTP, HTTPS und Synapse zu öffnen.

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas sehen, das wie folgt aussieht.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Öffnen Sie die HTTP-, HTTPS- und Synapse-Ports in der Firewall.

$ sudo ufw allow 8448
$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status erneut, um zu bestätigen.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall                  
8448                       ERLAUBEN    Überall                  
80/tcp                     ERLAUBEN    Überall                  
443                        ERLAUBEN    Überall                  
OpenSSH (v6)               ERLAUBEN    Überall (v6)             
8448 (v6)                  ERLAUBEN    Überall (v6)             
80/tcp (v6)                ERLAUBEN    Überall (v6)             
443 (v6)                   ERLAUBEN    Überall (v6)

Schritt 2 - Matrix Synapse installieren

Fügen Sie den Matrix GPG-Schlüssel hinzu.

$ sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg

Fügen Sie das Matrix APT-Repository hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list

Aktualisieren Sie die System-Repository-Liste.

$ sudo apt update

Installieren Sie Matrix Synapse.

$ sudo apt install matrix-synapse-py3

Während der Installation werden Sie nach dem Servernamen gefragt, der Teil Ihrer Matrix-ID ist. Geben Sie Ihren Matrix-Domainnamen anstelle dessen ein. Dies wird als Ihre Heimserver-Adresse fungieren.

Sie werden auch gefragt, ob Sie anonymisierte Statistiken über Ihren Heimserver an Matrix zurücksenden möchten. Geben Sie N ein, um abzulehnen.

Sie können diese Einstellungen später in der Datei /etc/matrix-synapse/conf.d/server_name.yaml ändern.

Der Dienst von Matrix Synapse wird während der Installation aktiviert und gestartet. Überprüfen Sie den Status des Dienstes.

$ sudo systemctl status matrix-synapse
? matrix-synapse.service - Synapse Matrix-Heimserver
     Geladen: geladen (/lib/systemd/system/matrix-synapse.service; aktiviert; Hersteller-Voreinstellung: aktiviert)
     Aktiv: aktiv (laufend) seit Mo 2022-09-26 09:38:38 UTC; vor 1min 19s
    Prozess: 12926 ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-key>   Haupt-PID: 12931 (python)
      Aufgaben: 8 (Limit: 2238)
     Speicher: 87.3M
        CPU: 4.180s
     CGroup: /system.slice/matrix-synapse.service
             ??12931 /opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/

Sep 26 09:38:36 matrix matrix-synapse[12926]: Generating signing key file /etc/matrix-synapse/homeserver.signing.key
Sep 26 09:38:37 matrix matrix-synapse[12931]: Dieser Server ist so konfiguriert, dass er 'matrix.org' als seinen vertrauenswürdigen Schlüsselserver über die
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'trusted_key_servers' Konfigurationsoption verwendet. 'matrix.org' ist eine gute Wahl für einen Schlüssel
Sep 26 09:38:37 matrix matrix-synapse[12931]: server, da er langlebig, stabil und vertrauenswürdig ist. Einige Administratoren möchten jedoch
Sep 26 09:38:37 matrix matrix-synapse[12931]: möglicherweise einen anderen Server für diesen Zweck verwenden.
Sep 26 09:38:37 matrix matrix-synapse[12931]: Um diese Warnung zu unterdrücken und weiterhin 'matrix.org' zu verwenden, sollten Administratoren
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'suppress_key_server_warning' auf 'true' in homeserver.yaml setzen.
Sep 26 09:38:37 matrix matrix-synapse[12931]: --------------------------------------------------------------------------------
Sep 26 09:38:38 matrix matrix-synapse[12931]: Konfiguration fehlt macaroon_secret_key
Sep 26 09:38:38 matrix systemd[1]: Started Synapse Matrix-Heimserver.

Schritt 3 - PostgreSQL installieren und konfigurieren

Wir werden das offizielle APT-Repository von PostgreSQL verwenden, um zu installieren. Führen Sie den folgenden Befehl aus, um den PostgreSQL GPG-Schlüssel hinzuzufügen.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Aktualisieren Sie das System-Repository.

$ sudo apt update

Jetzt können Sie PostgreSQL mit dem folgenden Befehl installieren.

$ sudo apt install postgresql postgresql-contrib

Überprüfen Sie den Status des PostgreSQL-Dienstes.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Geladen: geladen (/lib/systemd/system/postgresql.service; aktiviert; Hersteller-Voreinstellung: aktiviert)
     Aktiv: aktiv (beendet) seit Mo 2022-09-26 09:41:36 UTC; vor 2min 14s
    Prozess: 15586 ExecStart=/bin/true (Code=beendet, Status=0/ERFOLG)
   Haupt-PID: 15586 (Code=beendet, Status=0/ERFOLG)
        CPU: 1ms

Sep 26 09:41:36 matrix systemd[1]: Starting PostgreSQL RDBMS...
Sep 26 09:41:36 matrix systemd[1]: Finished PostgreSQL RDBMS.

Sie können sehen, dass der Dienst standardmäßig aktiviert und ausgeführt wird.

Melden Sie sich beim postgres-Systemkonto an.

$ sudo -su postgres

Erstellen Sie einen neuen Datenbankbenutzer und eine Datenbank für PostgreSQL.

$ createuser --pwprompt synapse
$ createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse

Verlassen Sie das postgres-Konto.

$ exit

Schritt 4 - Nginx installieren

Für die Produktionsumgebung wird empfohlen, den Synapse-Server mit einem Nginx-Proxy auszuführen.

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositories.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.0

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 5 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core
$ sudo snap refresh core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d matrix.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/matrix.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppen-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 6 - Matrix Synapse konfigurieren

Sie können den Matrix-Server über die Datei /etc/matrix-synapse/homeserver.yaml konfigurieren, aber es wird nicht empfohlen, da sie nach jedem Upgrade überschrieben wird. Für die Produktionsnutzung sollten Sie Konfigurationsdateien im Ordner /etc/matrix-synapse/conf.d ablegen.

Die Installation von Synapse hat zwei Konfigurationsdateien im Ordner /etc/matrix-synapse/conf.d erstellt.

$ ls /etc/matrix-synapse/conf.d
report_stats.yaml  server_name.yaml

Erstellen Sie eine neue Konfigurationsdatei für die Datenbank und öffnen Sie sie zur Bearbeitung.

$ sudo nano /etc/matrix-synapse/conf.d/database.yaml

Fügen Sie die folgenden Zeilen im Editor ein. Ersetzen Sie das Feld your-password durch das PostgreSQL-Benutzerpasswort, das Sie in Schritt 3 erstellt haben. Ersetzen Sie localhost durch die IP-Adresse Ihres Servers, wenn Sie die Datenbank woanders hosten.

database:
  name: psycopg2
  args:
    user: synapse
    password: 'your-password'
    database: synapsedb
    host: localhost
    cp_min: 5
    cp_max: 10

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Erstellen Sie einen geheimen Registrierungsschlüssel. Der Schlüssel sollte gesichert werden, da er es jedem ermöglicht, einen neuen Benutzer zu registrieren, selbst wenn die Registrierung deaktiviert ist.

$ echo "registration_shared_secret: '$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)'" | sudo tee /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

Standardmäßig aktiviert Synapse Anwesenheitsindikatoren, die anzeigen, ob eine Person online ist. Dies kann zu einer hohen CPU-Auslastung führen, daher können Sie es deaktivieren. Erstellen Sie eine neue Konfigurationsdatei dafür.

$ sudo nano /etc/matrix-synapse/conf.d/presence.yaml

Fügen Sie die folgende Zeile im Editor ein.

presence:
  enabled: false

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Starten Sie den Synapse-Dienst neu, um die Änderungen anzuwenden.

Erstellen Sie einen neuen Matrix-Benutzer. Sie werden nach Ihrem Benutzernamen und Passwort gefragt. Da dies der erste Benutzer ist, den wir erstellen, geben Sie yes ein, wenn Sie gefragt werden, ob der Benutzer ein Administrator sein soll.

$ register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
Neuer Benutzer localpart [navjot]: navjot
Passwort: 
Passwort bestätigen: 
Administrator machen [nein]: ja
Sende Registrierungsanfrage...
Erfolg!

Wenn Sie die öffentliche Registrierung öffnen möchten, erstellen Sie eine neue Konfigurationsdatei.

$ sudo nano /etc/matrix-synapse/conf.d/registration.yaml

Fügen Sie die folgenden Zeilen ein.

enable_registration: true

Standardmäßig erlaubt Synapse keine Registrierungen ohne E-Mail-Verifizierung. Um die E-Mail-Verifizierung zu aktivieren, fügen Sie die folgenden Zeilen ein.

registrations_require_3pid:
  - email

email:
  smtp_host: mail.example.com
  smtp_port: 587

  # Wenn der Mailserver keine Authentifizierung hat, überspringen Sie diese 2 Zeilen
  smtp_user: '[email protected]'
  smtp_pass: 'password'

  # Optional, erfordert Verschlüsselung mit STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Beispiel-Chat'  # definiert den Wert für %(app)s in notif_from und E-Mail-Betreff
  notif_from: "%(app)s <[email protected]>"

Um die E-Mail-Verifizierung zu deaktivieren, fügen Sie stattdessen die folgende Zeile ein.

enable_registration_without_verification: true

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Starten Sie Synapse neu, um die Konfiguration anzuwenden.

$ sudo systemctl restart matrix-synapse

Schritt 7 - Nginx konfigurieren

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/synapse.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/synapse.conf

Fügen Sie den folgenden Code ein.

# HTTPS erzwingen
server {
    # Client-Port
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Client-Port
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Föderationsport
    listen 8448 ssl http2 default_server;
    listen [::]:8448 ssl http2 default_server;

    access_log  /var/log/nginx/synapse.access.log;
    error_log   /var/log/nginx/synapse.error.log;

    # TLS-Konfiguration
    ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/matrix.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location ~ ^(/_matrix|/_synapse/client) {
            proxy_pass http://localhost:8008;
            proxy_http_version 1.1;

            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;

            # Nginx erlaubt standardmäßig nur Datei-Uploads bis zu 1M in der Größe
            # Erhöhen Sie client_max_body_size, um max_upload_size in homeserver.yaml zu entsprechen
            client_max_body_size 50M;
    }
}

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben, wenn Sie fertig sind.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Schritt 8 - Coturn installieren

Sie müssen einen Traversal Using Relays around NAT (TURN)-Server installieren, um Sprach- und Videoanrufe zu ermöglichen. Zu diesem Zweck werden wir das Coturn-Paket installieren. Wenn Sie diese Funktionalität nicht benötigen, können Sie diesen Schritt überspringen.

Ubuntu 22.04 wird nicht mit dem Coturn-Paket ausgeliefert, da ein Fehlerproblem aufgetreten ist, das inzwischen behoben wurde. Es gibt jedoch eine andere Möglichkeit, Coturn über ein inoffizielles Repository zu installieren. Optional können Sie auch Docker verwenden, um Coturn zu installieren, aber wir werden diese Methode nicht verwenden, da sie außerhalb des Rahmens dieses Tutorials liegt.

Fügen Sie das inoffizielle Coturn-Repository hinzu.

$ sudo add-apt-repository ppa:ubuntuhandbook1/coturn

Installieren Sie Coturn.

$ sudo apt install coturn

Öffnen Sie die TURN- und UDP-Ports.

$ sudo ufw allow 3478
$ sudo ufw allow 5349
$ sudo ufw allow 49152:65535/udp

Generieren Sie ein SSL-Zertifikat für Turn ( turn.example.com).

$ sudo certbot certonly --nginx -d turn.example.com

Generieren Sie ein Authentifizierungsgeheimnis und speichern Sie es in der Konfigurationsdatei.

$ echo "static-auth-secret=$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)" | sudo tee /etc/turnserver.conf

Öffnen Sie die Konfigurationsdatei zur Bearbeitung.

$ sudo nano /etc/turnserver.conf

Fügen Sie die folgenden Zeilen darunter ein.

use-auth-secret
realm=turn.example.com
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem

# VoIP ist UDP, kein Bedarf für TCP
no-tcp-relay

# Erlauben Sie keinen Verkehr zu privaten IP-Bereichen
no-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
denied-peer-ip=::1
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

# Begrenzen Sie die Anzahl der Sitzungen pro Benutzer
user-quota=12
# Begrenzen Sie die Gesamtzahl der Sitzungen
total-quota=1200

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Starten Sie Coturn neu, um die Konfiguration anzuwenden.

$ sudo systemctl restart coturn

Erstellen Sie eine neue Synapse-Konfigurationsdatei für Coturn.

$ sudo nano /etc/matrix-synapse/conf.d/turn.yaml

Fügen Sie die folgenden Zeilen ein. Ersetzen Sie den Wert turn_shared_secret durch den Wert von static-auth-secret aus der Datei extbackslash etc extbackslash turnserver.conf.

turn_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_shared_secret: 'static-auth-secret'
turn_user_lifetime: 86400000
turn_allow_guests: True

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Starten Sie Synapse neu, um die Änderungen anzuwenden.

$ sudo systemctl restart matrix-synapse

Schritt 9 - Zugriff auf Matrix

Sie können auf Matrix Chat über den Webclient von Element unter https://app.element.io zugreifen. Klicken Sie auf die Schaltfläche Anmelden, um fortzufahren.

Element Web-Login-Seite

Klicken Sie auf den Link Bearbeiten unter Heimserver. Geben Sie matrix.example.com als Ihren Heimserver ein.

Element-Client benutzerdefinierter Heimserver

Wenn der Client Ihren Heimserver korrekt erkennt, wird die Grenze und der Text grün, andernfalls wird er rot angezeigt. Klicken Sie auf Weiter, um fortzufahren.

Element benutzerdefinierter Heimserver-Login

Klicken Sie auf die Schaltfläche Anmelden, um sich anzumelden. Sie werden aufgefordert, ein sicheres und verschlüsseltes Backup zu erstellen.

Matrix sicheres Backup

Wählen Sie die Option Geben Sie eine Sicherheitsphrase ein, um eine Sicherheitsphrase zu erstellen, die jedes Mal erforderlich ist, wenn Sie sich anmelden. Klicken Sie auf Weiter, um fortzufahren.

Element Sicherheitsphrase

Geben Sie eine Sicherheitsphrase ein und klicken Sie auf die Schaltfläche Weiter, um fortzufahren. Sie werden aufgefordert, sie auf dem nächsten Bildschirm erneut zu bestätigen.

Element Sicherheitsphrase bestätigen

Geben Sie die Phrase erneut ein und klicken Sie auf die Schaltfläche Weiter, um fortzufahren.

Element Sicherheits-Schlüssel-Popup

Sie erhalten eine Reihe von Sicherheits-Schlüsseln, die Sie verwenden können, wenn Sie Ihre Sicherheitsphrase vergessen. Klicken Sie auf die Schaltfläche Herunterladen, um sie zu speichern.

Klicken Sie auf die Schaltfläche Weiter, um fortzufahren.

Element Passwort überprüfen

Sie werden nach Ihrem Kontopasswort gefragt. Geben Sie das Passwort ein und klicken Sie auf die Schaltfläche Weiter, um die Einrichtung des verschlüsselten Backups abzuschließen.

Element Web-Client-Dashboard

Wir haben einen Gruppen-Chatraum mit dem Namen Howtoforge erstellt, wie oben gezeigt.

Schritt 10 - Element installieren

Installieren Sie das Paket jq, um den JSON-Textprozessor zu installieren.

$ sudo apt install jq

Erstellen Sie ein Verzeichnis für Element.

$ sudo mkdir -p /var/www/element

Erstellen Sie eine neue Datei, um die neueste Element-Version abzurufen.

$ sudo nano /var/www/element/update.sh

Fügen Sie die folgenden Zeilen hinzu.

#!/bin/sh
set -e

install_location="/var/www/element"
latest="
$(curl -s https://api.github.com/repos/vector-im/element-web/releases/latest | jq -r .tag_name)"

cd "$install_location"

[ ! -d "archive" ] && mkdir -p "archive"
[ -d "archive/element-${latest}" ] && rm -r "archive/element-${latest}"
[ -f "archive/element-${latest}.tar.gz" ] && rm "archive/element-${latest}.tar.gz"

wget "https://github.com/vector-im/element-web/releases/download/${latest}/element-${latest}.tar.gz" -P "archive"
tar xf "archive/element-${latest}.tar.gz" -C "archive"

[ -L "${install_location}/current" ] && rm "${install_location}/current"
ln -sf "${install_location}/archive/element-${latest}" "${install_location}/current"
ln -sf "${install_location}/config.json" "${install_location}/current/config.json"

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Machen Sie die Datei ausführbar.

$ sudo chmod +x /var/www/element/update.sh

Führen Sie das Skript aus, um Element herunterzuladen.

$ sudo /var/www/element/update.sh

Schritt 11 - Element konfigurieren

Kopieren Sie die gleiche Element-Konfigurationsdatei.

$ sudo cp /var/www/element/current/config.sample.json /var/www/element/config.json

Öffnen Sie die Konfigurationsdatei zur Bearbeitung.

$ sudo nano /var/www/element/config.json

Suchen Sie die folgenden Zeilen.

"m.homeserver": {
    "base_url": "https://matrix-client.matrix.org",
    "server_name": "matrix.org"
},

Ändern Sie die Standardadresse des Matrix-Heimservers in Ihren Heimserver und entfernen Sie die Variable server_name.

"m.homeserver": {
    "base_url": "https://matrix.example.com",
    "server_name": "matrix.element.com"  
},

Wenn Sie Ihren eigenen Namen anstelle von Element im Titel der Website verwenden möchten, ändern Sie den Markennamen.

"brand": "Howtoforge Beispiel-Chat",

Setzen Sie die Variable disable_guests auf true, um Gästen die Nutzung von Element zu verwehren.

"disable_guests": true,

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Generieren Sie ein SSL-Zertifikat für den Element-Client.

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

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/element.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/element.conf

Fügen Sie die folgenden Zeilen ein.

server {
    listen 80;
    listen [::]:80;
    server_name element.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name element.example.com;

    root /var/www/element/current;
    index index.html;

    access_log  /var/log/nginx/element.access.log;
    error_log   /var/log/nginx/element.error.log;

    add_header Referrer-Policy "strict-origin" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    # TLS-Konfiguration
    ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/element.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
}

Speichern Sie die Datei, indem Sie Strg + X drücken und bei Aufforderung Y eingeben.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Sie können auf den Element-Client über die URL https://element.example.com in Ihrem Browser zugreifen. Melden Sie sich an und Sie werden zum App-Dashboard weitergeleitet.

Element Selbstgehostetes Dashboard

Fazit

Damit endet unser Tutorial zur Installation des Matrix Synapse Chat-Servers zusammen mit Coturn und dem Element-Webclient unter Verwendung von Nginx als Proxy-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.