Anleitung - Matrix Server
von Alec Höfler, 2/28/2022, 6:46:54 PMMatrix (Synapse) Chat-Server installieren
Matrix ist Protokoll Standard für denzentrale, verschlüsselte, self hosted Kommunikation. Durch den Federation-Ansatz kann sich jeder ganz einfach einen eigenen Server mit der eigenen Domain hosten, und mit allen anderen Servern kommunizieren. <br/> Diese Anleitung erklärt kurz und schnell, wie man Synapse, den beliebtesten Matrix-Server, installiert. <br/><br/> Als Basis wird hier eine frische Debian 11 Installation (KVM VM) verwendet. <br/> Beispiel: Matrix Server für domain example.com, Matrix Server hosted auf matrix.example.com <br/> <br/>
Grundsoftware installieren
1apt update 2apt install curl wget python3 net-tools sudo -y 3curl https://get.docker.com |bash 4sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 5sudo chmod +x /usr/local/bin/docker-compose 6systemctl enable --now docker
Installation von Synapse
Ordnerstruktur anlegen
1mkdir matrix && mkdir matrix/synapse_data && mkdir matrix/postgres_data && cd matrix
Downloade die docker-compose Datei und passe sie wenn nötig an
1wget https://s3.itbyhf.xyz/cdn/apps/TMjIGtVKcv/docker-compose.yml
Synapse-Konfiguration generieren<br/> <br/>SYNAPSE_SERVER_NAME setzen!
1docker run -it --rm \ 2 --mount type=bind,src=/root/matrix/synapse_data,dst=/data \ 3 -e SYNAPSE_SERVER_NAME=example.com \ 4 -e SYNAPSE_REPORT_STATS=yes \ 5 matrixdotorg/synapse:latest generate
Nun sollte in /root/matrix/synapse_data die homeserver.yaml Datei sein. Diese einmal mit einem Editor wie vim oder nano öffnen. und folgenden Änderungen vornehmen:
- public_baseurl [ca. Zeile 70] auf die Subdomain des Matrix servers setzen (bspw. matrix.example.com)
1public_baseurl: https://matrix.example.com
- enable_registration [ca. Zeile 1090] sollte für den Anfang auf true gestellt werden.
1enable_registration: true
- <b>Datenbank-Konfiguration:</b> Der Abschnitt
1database: 2 name: sqlite3 3 args: 4 database: /data/homeserver.db
sollte entfernt und durch folgenden ersetzt werden:
1database: 2 name: psycopg2 3 args: 4 user: postgres 5 password: postgres 6 database: synapse 7 host: postgres 8 port: 5432 9 cp_min: 5 10 cp_max: 10
Wenn die docker-compose.yml nicht abgeändert wurde, kann alles so bleiben.
<br/>
Durch docker-compose up -d
postgres wird nun der Datenbank-Container gestartet. Mit docker exec -it -u postgres matrix_postgres_1 bash
jetzt in die Konsole gelangen, und die Datenbank erstellen und die Konsole verlassen:
1createdb --encoding=UTF8 --locale=C --template=template0 --owner=postgres synapse 2exit
Jetzt kann mit docker-compose up -d synapse auch der Matrix Server gestartet werden.<br/> Jetzt fehlen nur noch ein paar Dateien auf der Hauptdomain.<br/> Zuerst muss man dem Webserver von example.com Zugriff haben. Nun die Dateien https://example.com/.well-known/matrix/server und https://example.com/.well-known/matrix/client anlegen.<br/> <b>.well-known/matrix/server</b>
1{ 2 "m.server": "matrix.example.com:443" 3}
<b>.well-known/matrix/client</b>
1{ 2 "m.homeserver": { 3 "base_url": "https://matrix.example.com" 4 }, 5 "m.identity_server": { 6 "base_url": "https://vector.im" 7 } 8}
Jetzt noch für matrix.example.com einen Reverse-Proxy einrichten. Ab Ende einmal alles mit einem Federation-Tester überprüfen.