[Matrix] Matrix Synapse v. 1.12x (latest)

Quellen: matrix u. wiki

Mit Hilfe dieser Anleitung installieren Sie Matrix Synapse basierend auf Debian 12 oder Ubuntu Server 24.04 LTS, dem Webserver nginx, der Datenbank PostgreSQL, Zertifikaten von Let’s Encrypt SSL und abgesichert durch ufw und fail2ban.

Vorbereitungen

Zuerst stellen wir sicher, dass das ServerbBetriebssystem Debian 12 bzw. Ubuntu 24.04 LTS einen aktuellen Stand aufweist:

sudo -s
apt update && apt full-upgrade && apt autoremove && apt autoclean

Nach einem Neustart des Servers

reboot now

melden wir uns erneut mit sudo-Berechtigungen an.

sudo -s

Bevor wir mit der eigentlichen Installation fortfahren härten wir das System durch die ufw (Firewall) und fail2ban (Intrusion detection, alternativ crowdsec).

apt install -y ufw fail2ban

Die Firewall wird mit Ausnahme der TCP-Ports 80, 443 (nginx) und 22 (SSH, bitte ggf. anpassen) keine weiteren eingehenden Verbindungen zulassen:

apt install -y ufw
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp
ufw logging medium && ufw default deny incoming

Aktivieren Sie letztendlich noch die Firewall (ufw) und starten dann beide Dienste, fail2ban und ufw, neu:

ufw enable
systemctl restart fail2ban.service ufw.service

Installation Matrix Synapse

Wir können nun mit der Installation des Matrix Servers beginnen und stellen zu Beginn sicher, dass die nachfolgenden Pakete installiert sind:

apt install -y \
apt-transport-https bash-completion bzip2 ca-certificates cron curl dialog \
dirmngr ffmpeg ghostscript git gpg gnupg gnupg2 htop jq libfile-fcntllock-perl \
libfontconfig1 libfuse2 locate lsb-release nodejs npm net-tools rsyslog screen smbclient \
socat software-properties-common ssl-cert tree unzip vim wget zip

Im Anschluß daran erweitern wir die Standard-Paketquellen (Repositories) und fügen den notwendigen Schlüssel zum System hinzu.


Hinzufügen des Matrix-GPG-Keys:

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

Hinzufügen des Matrix-Repositories:

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

Das System ist nun vorbereitet, so dass Matrix Synapse mit folgendem Befehl installiert werden kann:

apt update && apt install -y matrix-synapse-py3

Im Rahmen der Installation werden Sie zuerst nach ihrer Matrix-Domain (bspw. matrix.ihredomain.de) gefragt und dann

nach der Zustimmung zum Versandt anonymer Statistiken.

Nach wenigen Momenten ist die Installation dann bereits schon abgeschlossen. Nach der Installation stellen wir zudem sicher, dass Matrix auch nach einem Serverneustart automatisch gestartet wird:

systemctl enable matrix-synapse.service && systemctl restart matrix-synapse.service

Konfiguration Matrix Synapse

Die Basiskonfiguration des Matrix-Servers findet sich in dieser Datei wider:

/etc/matrix-synapse/homeserver.yaml

von der wie uns zuerst eine Sicherungskopie anlegen:

cp /etc/matrix-synapse/homeserver.yaml /etc/matrix-synapse/homeserver.yaml.bak

Weitere für uns relevante Anpassungen werden persistent in die Datei

/etc/matrix-synapse/conf.d/server_name.yaml

aufgenommen, welche wir vorab ebenfalls sichern.

cp /etc/matrix-synapse/conf.d/server_name.yaml /etc/matrix-synapse/conf.d/server_name.yaml.bak

Wir benötigen ein sogenanntes Secret (Registrierungsschlüssel), welches in der Konfigurationsdatei (server_name.yaml) hinterlegt wird. Erzeugt wird es mit diesem Befehl:

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Kopieren Sie sich dieses Secret um es unter „registration_shared_secret: J45ga…xyz“ in die Konfiguration zu übernehmen. Öffnen Sie die Konfigurationsdatei

nano /etc/matrix-synapse/conf.d/server_name.yaml

und ersetzen diese vollständig mit nachfolgendem Inhalt.

# This file is autogenerated, and will be recreated on upgrade if it is deleted.
# Any changes you make will be preserved.

# The domain name of the server, with optional explicit port.
# This is used by remote servers to connect to this server,
# e.g. matrix.org, localhost:8080, etc.
# This is also the last part of your UserID.
#
server_name: matrix.ihredomain.de
public_baseurl: https://matrix.ihredomain.de
max_upload_size: 50M
url_preview_enabled: true
url_preview_ip_range_blacklist:
  - '127.0.0.0/8'
  - '10.0.0.0/8'
  - '172.16.0.0/12'
  - '192.168.0.0/16'
  - '100.64.0.0/10'
  - '192.0.0.0/24'
  - '169.254.0.0/16'
  - '192.88.99.0/24'
  - '198.18.0.0/15'
  - '192.0.2.0/24'
  - '198.51.100.0/24'
  - '203.0.113.0/24'
  - '224.0.0.0/4'
  - '::1/128'
  - 'fe80::/10'
  - 'fc00::/7'
  - '2001:db8::/32'
  - 'ff00::/8'
  - 'fec0::/10'
enable_registration: false
registration_shared_secret: J45ga...xyz
enable_metrics: false
report_stats: false
include_content: false
smtp_host: ihr.mailserver.de
smtp_port: 587
smtp_user: "SMTP-Benutzer"
smtp_pass: "SMTP-Passwort"
require_transport_security: true
#turn_uris: ["turn:coturn.ihredomain.de:443?transport=udp", "turn:coturn.ihredomain.de:443?transport=tcp"]
#turn_shared_secret: "IhrGeheimerSchlüssel"

Suchen Sie nach den nachfolgenden Parametern (STRG+W) und ändern die rot markierten Werte ab:

public_baseurl: https://matrix.ihredomain.de/
^ Name / die URL des Matrix Synapse-Servers: die URL unter der der Server aufgerufen wird.

max_upload_size: 50M
^ Maximale Uploadgröße in MB
url_preview_enabled: true
^ Im Chat verteilte ("gepostete") URLs werden mit einer Vorschau angezeigt
url_preview_ip_range_blacklist:
^ IP-Adress-Bereiche, die von den URL-Reviews ausgeschlossen werden (müssen). Ergänzend zu den "Default-Netzen" sollten hier auch alle lokalen IP-Adressen des Servers ausgeschlossen werden!
enable_registration: false
Verhindert/erlaubt, dass sich "fremde" Benutzer bei Ihnen selbstständig registrieren können. Möchten Sie Ihren Server hingegen als öffentliche Instanz (public) betreiben und die Registrierung Dritter ermöglichen, so setzen Sie diesen Wert bitte auf true.
registration_shared_secret: J45ga...xyz
^Registrierung des Administratorkontos und der Benutzerkonten muss der zu Beginn generierte  Registrationsschlüssel (das Secret) angegeben werden.
enable_metrics: false
report_stats: false
^ diese beiden Werte verhindern das Sammeln und Übermitteln jeglicher Metriken.
smtp_host: ihr.mailserver.de
smtp_port: 587
smtp_user: "SMTP-Benutzer"
smtp_pass: "SMTP-Passwort"
require_transport_security: true
^ Soll der Matrix-Server E-Mails versenden können (bspw. Passwort Wiederherstellung), so werden diese SMTP-Einstellungen benötigt.
include_content: false
^ Relevanter Datenschutzaspekt - sofern include_content auf true gesetzt wäre, würden Inhalte von Nachrichten über die Google-/Apple-Push-Services geleitet. Vorausgesetzt, dass Sie das nicht möchten, stellen wir diese Option auf false. Die Push-Benachrichtigungen funktionieren damit weiterhin, jedoch ohne dabei Inhalte der Nachrichten an Google oder Apple zu übermitteln.

Es gibt noch sehr viel mehr Einstellungsmöglichkeiten in der Konfigurationsdatei, doch für unseren Start sind wir vorerst am Ende angelangt. Starten wir also Matrix neu:

systemctl restart matrix-synapse.service

und fahren mit der Einrichtung von PostgreSQL fort.

PostgreSQL für Matrix Synapse konfigurieren

Standardmäßig wird SQLite als Datenbank verwendet. Davon raten wir ab und richten daher PostgreSQL als Datenbankbackend ein:

apt update && apt install -y postgresql python3-psycopg2

Legen Sie einen Datenbankbenutzer und eine Datenbank für Matrix Synapse an. Um das tun zu können melden wir uns als postgres-Benutzer an

su - postgres

und rufen dann die psql-Kommandozeile auf

psql

Legen Sie den Datenbank-Benutzer an, passen aber den rot markierten Namen sowie das rot markierte Passwort an:

CREATE USER "matrixdbuser" WITH PASSWORD 'matrix-db_p0sswort';

Abschließend wird die Datenbank erzeugt:

CREATE DATABASE matrixdb
ENCODING 'UTF8'
LC_COLLATE='C'
LC_CTYPE='C'
template=template0
OWNER matrixdbuser;

Die Vorbereitungen sind nun abgeschlossen, so dass wir PostgreSQL wieder verlassen können (mit „\q“):

\q

Verlassen wir auch den postgreSQL-Benutzer

exit

Übernehmen wir nun die Datenbankinformationen in die Matrix-Konfiguration. Öffnen Sie dafür die Basiskonfigurationsdatei,

nano /etc/matrix-synapse/homeserver.yaml

deaktivieren das Datenbankbackend „SQLite“

#database:
#  name: sqlite3
#  args:
#    database: /path/to/homeserver.db

und ergänzen die postgreSQL- Datenbankinformationen:

database:
  name: psycopg2
#  txn_limit: 10000
  args:
    user: matrixdbuser
    password: matrix-db_p0sswort
    database: matrixdb
    host: localhost
    port: 5432
    cp_min: 5
    cp_max: 10

Um diese Änderungen zu aktivieren starten wir Matrix neu

systemctl restart matrix-synapse.service

Konfiguration von coturn für STUN/TURN

Matrix unterstützt auch Audio- und Videoanrufe. Damit dies auch netzwerkübergreifend funktioniert, wird in den meisten Fällen ein STUN/TURN-Server benötigt. STUN (Session Traversal Utilities for NAT) sorgt einfach ausgedrückt dafür, dass ein Client aus dem LAN seine öffentliche IP-Adresse ermitteln kann. TURN (Traversal Using Relays around NAT) sorgt wiederum dafür, dass Clients ohne eine direkte Verbindung Daten austauschen können. Ein TURN-Server wirkt hier dann als Relay Server.

Wie sie einen stun/coturn-Server einrichten, das beschreiben wir hier.

Sofern Sie Ihren eigenen coturn-Server verwenden möchten, so muss die Matrix-Konfiguration erneut geöffnet und angepasst werden:

nano /etc/matrix-synapse/conf.d/server_name.yaml

Ersetzen Sie Ihre coturn-Domain, ggf. den Port sowie das dazugehörige coturn-shared-secret und entfernen vor jeder Zeile das ‚#‘-Zeichen:

turn_uris: ["turn:coturn.ihredomain.de:443?transport=udp", "turn:coturn.ihredomain.de:443?transport=tcp"]
turn_shared_secret: "IhrGeheimerSchlüssel"

Um diese Änderungen zu aktivieren starten wir Matrix abermals neu:

systemctl restart matrix-synapse.service

Konfiguration des Webservers nginx für Matrix Synapse

Beginnen wir mit der Installation und Einrichtung von nginx. Dafür fügen wir dem Server die Quelle und den Schlüssel von nginx hinzu:

Nur Ubuntu Server (X86_64):

apt install -y ubuntu-keyring

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

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

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Nur Debian Server (X86_64):

apt install -y debian-archive-keyring

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

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

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx

Ab hier geht es wieder sowohl für Denian als auch für Ubuntu 22/24.x weiter:

Nach einer Aktualisierung kann direkt mit der Installation des Webservers begonnen werden:

apt update && apt install -y nginx

Um auch diesen Dienst automatischen starten zu lassen aktivieren wir den Autostart:

systemctl enable nginx.service

Mit Blick auf die späteren Anpassungen des vHosts wird die Standardkonfiguration gesichert und eine neue nginx-Konfigurationsdatei erstellt:

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
touch /etc/nginx/nginx.conf && nano /etc/nginx/nginx.conf

Kopieren Sie den gesamten nachfolgenden Inhalt in die Datei:

user www-data;
worker_processes auto;
pid /var/run/nginx.pid;
events {
  worker_connections 2048;
  multi_accept on;
  use epoll;
  }
http {
  log_format criegerde escape=json
  '{'
    '"time_local":"$time_local",'
    '"remote_addr":"$remote_addr",'
    '"remote_user":"$remote_user",'
    '"request":"$request",'
    '"status": "$status",'
    '"body_bytes_sent":"$body_bytes_sent",'
    '"request_time":"$request_time",'
    '"http_referrer":"$http_referer",'
    '"http_user_agent":"$http_user_agent"'
  '}';
  server_names_hash_bucket_size 64;
  access_log /var/log/nginx/access.log criegerde;
  error_log /var/log/nginx/error.log warn;
  set_real_ip_from 127.0.0.1;
  real_ip_header X-Forwarded-For;
  real_ip_recursive on;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  sendfile on;
  send_timeout 3600;
  tcp_nopush on;
  tcp_nodelay on;
  open_file_cache max=500 inactive=10m;
  open_file_cache_errors on;
  keepalive_timeout 65;
  reset_timedout_connection on;
  server_tokens off;
  resolver 176.9.93.198 176.9.1.117 valid=30s;
  resolver_timeout 5s;
  include /etc/nginx/conf.d/*.conf;
  }

Speichern Sie die Datei und schließen Sie diese, um im Anschluß den Webserver neu zu starten:

systemctl restart nginx.service

Vorbereitend für die SSL Zertifikate und die Webverzeichnisse legen wir drei Ordner an und setzen die notwendigen Berechtigungen:

mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs
chmod -R 775 /var/www/letsencrypt
chmod -R 770 /etc/letsencrypt && chown -R www-data:www-data /var/www/ /etc/letsencrypt

Für das Zertifikatshandling erstellen wir nun einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu:

adduser acmeuser --gecos "" --disabled-password
usermod -aG www-data acmeuser

Diesem technischen Benutzer erteilen wir noch die notwendigen Berechtigungen, um bei einer Zertifikatserneuerung den notwendigen Webserverstart initiieren zu können.

touch /etc/sudoers.d/acmeuser
cat <<EOF >/etc/sudoers.d/acmeuser
acmeuser ALL=NOPASSWD: /bin/systemctl reload nginx.service
EOF

Wechseln Sie in die Shell des neuen Benutzers (acmeuser) um die Zertifikatssoftware zu installieren und verlassen diese Shell direkt im Anchluß wieder:

su - acmeuser
curl https://get.acme.sh | sh
exit

Passen Sie die entsprechenden Datei- und Verzeichnisberechtigungen an, um die neuen Zertifikate darin speichern zu können:

chmod -R 775 /var/www/letsencrypt && chmod -R 770 /etc/letsencrypt && chown -R www-data:www-data /var/www/ /etc/letsencrypt

Setzen Sie Let’s Encrypt als Standard CA für Ihren Server

su - acmeuser -c ".acme.sh/acme.sh --set-default-ca --server letsencrypt"

Wir richten nun verschiedene vhost, also Serverkonfigurationsdateien, ein und modifizieren die Standard vhost-Datei. Sichern die dafür die Standard vhost-Datei namens „default.conf“ und legen leere vHost-Dateien zum Konfigurieren an.

[ -f /etc/nginx/conf.d/default.conf ] && mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
touch /etc/nginx/conf.d/default.conf
touch /etc/nginx/conf.d/http.conf
touch /etc/nginx/conf.d/matrix.ihredomain.de.conf

Somit ist durch die leere „default.conf“ Datei auch bei späteren Aktualisierungen des Webservers sichergestellt, dass diese Standardkonfiguration den Matrix-Serverbetrieb nicht beeinflußt. Erstellen Sie jetzt die globale vhost-Datei, um die http-Standardanfragen permanent auf https umzuleiten und zudem die SSL-Zertifikatskommunikation mit Let’sEncrypt zu ermöglichen.

nano /etc/nginx/conf.d/http.conf

Kopieren Sie alle nachfolgenden Zeilen in die Datei http.conf und passen die rot markierten Werte entsprechend Ihres Systems an:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name matrix.ihredomain.de;
root /var/www;
location ^~ /.well-known/acme-challenge {
default_type text/plain;
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}

Speichern und schließen Sie diese Datei und bearbeitendann die eigentliche Matrix- vHost-Datei, die sämtliche Konfigurationen für den Betrieb des Matrix Synapse Servers enthält.

nano /etc/nginx/conf.d/matrix.ihredomain.de.conf

fügen Sie den nachfolgenden Inhalt komplett ein und ersetzen die Domain an den rot markierten Stellen:

server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name matrix.ihredomain.de;
# Wir nutzen zu Beginn sogenannte "self-signed-certificates'
# um bei Let's Encrypt TLS-Zertifikate anfragen zu können:
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
#ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;
#ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;
#ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;
#ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;
#ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384';
ssl_ecdh_curve X448:secp521r1:secp384r1;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload;" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Robots-Tag none always;
add_header X-Download-Options noopen always;
add_header X-Permitted-Cross-Domain-Policies none always;
add_header Referrer-Policy no-referrer always;
add_header X-Frame-Options "SAMEORIGIN" always;
fastcgi_hide_header X-Powered-By;
access_log off;
error_log off;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
location /_matrix {
proxy_pass http://127.0.0.1:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 50M;
}
location /.well-known/matrix/server {
return 200 '{"m.server": "matrix.ihredomain.de:443"}';
add_header Content-Type application/json;
}
location /.well-known/matrix/client {
return 200 '{"m.homeserver": {"base_url": "https://matrix.ihredomain.de"}}';
add_header Content-Type application/json;
add_header "Access-Control-Allow-Origin" *;
}
}

Speichern und schließen Sie diese Datei und erweitern dann die Server- und Systemsicherheit durch die Möglichkeit des sicheren Schlüsselaustauschs mittels eines Diffie-Hellman Schlüssels (dhparam.pem):

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

Das Generieren kann – in Abhängigkeit von der Systemleistung – einige Minuten dauern. Erst wenn das Generieren abgeschlossen ist, starten wir den Webserver durch.

systemctl restart nginx.service

und wechseln dann erneut in die Shell des neuen acmeuser-Benutzers

su - acmeuser

Beantragen Sie nun die SSL-Zertifikate von Let’s Encrypt und ersetzen dabei matrix.ihredomain.de mit Ihrer eigenen Domain :

acme.sh --issue -d matrix.ihredomain.de --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
acme.sh --issue -d matrix.ihredomain.de --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"

Verlassen Sie die Shell des acme-Benutzers

exit

Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren die neuen, vollwertigen und bereits gültigen TLS-Zertifikate von Let’s Encrypt.

sed -i '/ssl-cert-snakeoil/d' /etc/nginx/conf.d/matrix.ihredomain.de.conf
sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/matrix.ihredomain.de.conf

Um die neuen Zertifikate nutzen zu können wird der Webserver neu gestartet

systemctl restart nginx.service

Um sowohl die SSL-Zertifikate automatisch zu erneuern, als auch den notwendigen Webserverneustart zu initiieren, wurde automatisch ein Cronjob angelegt.

crontab -l -u acmeuser

Ob Matrix erfolgreich eingerichtet wurde, können Sie durch den Aufruf folgender URL testen:

https://matrix.ihredomain.de/_matrix/static/

Matrix stellt ein dezentrales System dar, es spielt also die Server-Server-Kommunikation (Federation) eine entscheidende Rolle. Ob bereits alles korrekt eingerichtet wurde, kann der Matrix Federation Tester prüfen und aufzeigen (2x Success):

Eine weitere Übersicht zeigt Ihnen diese URL:

https://federationtester.matrix.org/api/report?server_name=matrix.ihredomain.de

Diese sollte weder Fehler noch Errors aufweisen.

Auch die verwendete Version lässt sich prüfen, entweder über

dpkg -s matrix-synapse-py3 | grep '^Version:'


oder über den Aufruf der URL https://matrix.ihredomain.de/_matrix/federation/v1/version

Somit ist gewährleistet, dass das Federation-Feature von Matrix ordnungsgemäß funktioniert.

Matrix Synapse Benutzer anlegen und den Element-Client verbinden

Als nächstes legen wir einen Adminbenutzer sowie weitere Matrix-Benutzer an:

register_new_matrix_user -c /etc/matrix-synapse/conf.d/server_name.yaml http://localhost:8008

Danach fragt das System nach dem „localpart“. Dies ist quasi der Benutzername auf der Instanz (dazu später mehr). Im Anschluss wird dann ein Passwort und eine Bestätigung gefordert. Ganz am Ende kann dieser Benutzer durch die Eingabe von yes zum Administrator der Matrix-Instanz gemacht werden.
Auf diese Art und Weise lassen sich also beliebig viele Benutzer (mit oder ohne Administrationsberechtigungen) anlegen.

Starten Sie nun den Client (weitere Informatinen zu Element) und melden sich dort an. Wählen Sie Ihren Server aus

und melden sich dann mit den zuvor generierten Benutzer(n) an

und fangen an, sich frei durch die „Matrix“ zu bewegen.

Mein Geschäftspartner Jan Rehr hat zudem auf Codeberg einige Skripte veröffentlicht.

die Ihnen die Administration des Matrix-Servers erleichtern werden. Viel Spaß wünscht Ihnen das Team von Carsten Rieger IT-Services

Carsten Rieger IT-Services | Slogan