Hinweise zum Setup des Matrix Servers Synapse, der Webclients, Apps und des Identity- und Dimension-Servers.
Bei Matrix sind die User-IDs nach dem Schema "@user:beispiel.de" aufgebaut, der Homeserver an sich ist unter "matrix.beispiel.de" erreichbar. Diese Werte "beispiel.de" und "matrix.beispiel.de" durch die eigenen Werte in den Anleitungen weiter unten ersetzen.
Synapse#
Matrix Synapse bei Hostsharing installieren: https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren
Matrix Synapse auf Ubuntu Server 18.04 installieren:#
1. Ubuntu-Packete von Matrix-Machern
Quelle: https://github.com/matrix-org/synapse/blob/master/INSTALL.md#debianubuntu
Bei der Installation wird der "server name" abgefragt, hier "beispiel.de" angeben, der Teil der Account-Namen wird.
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
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
sudo apt update
sudo apt install matrix-synapse-py3
2. Postgres 10 aus Ubuntu-Paketen installieren
sudo apt install postgres
3. Postgres in Synapse konfigurieren
Quelle: https://github.com/matrix-org/synapse/blob/master/docs/postgres.md
Postgres Nutzer anlegen
sudo su - postgres createuser --pwprompt synapse_user
Datenbank initial anlegen, wichtig wg. Zeichensatz:
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse_user;
In der homeserver.yaml mit vorher vergebenem Passwort konfigurieren:
database:
name: psycopg2
args:
user: synapse_user
password: <pass>
database: synapse
host: localhost
cp_min: 5
cp_max: 10
4. Reverse-Proxy für Synapse konfigurieren
Quelle: https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.md
Apache-VHost für matrix.beispiel.de unter /etc/apache2/sites-available/matrix.beispiel.de.conf anlegen
Die Zertifikatsconfig ist nur angedeutet, hier via präferierter Methode SSL-Zertifikate (LetsEncrypt) angeben.
<VirtualHost *:443>
SSLEngine on
ServerName matrix.beispiel.de;
AllowEncodedSlashes NoDecode
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
SSLCertificateFile ...
SSLCertificateKeyFile ...
</VirtualHost>
Sowohl "AllowEncodedSlashes NoDecode" als auch "nocanon" sind zwingend notwendig.
Dann den VHost aktivieren:
sudo a2ensite matrix.beispiel.de.conf sudo systemctl reload apache2
5. Synapse-Föderations-Konfiguration
Quelle: https://github.com/matrix-org/synapse/blob/master/docs/federate.md
Unter beispiel.de im Verzeichnis .well-known/matrix folgende Dateien "server" und "client" anlegen:
.well-known/matrix/server:
{
"m.server": "matrix.beispiel.de:443"
}
.well-known/matrix/client:
{
"m.homeserver": {
"base_url": "https://matrix.beispiel.de"
}
}
Außerdem via .htaccess noch folgende Header setzen, damit die Dateien in Riot-Web ankommen:
Header set Access-Control-Allow-Origin "*" Header set Content-Type "application/json"
Jetzt kann das Setup mit dem Federation Tester geprüft werden, dort beispiel.de eingeben:
https://federationtester.matrix.org
Riot-Webclient#
Riot-Web ist eine statische html/js-Anwendung, daher keine Anforderungen außer einem Webserver (apache, nginx, ...):
- Aktuelles Release von https://github.com/vector-im/riot-web/releases
herunterladen und im Webspace (zB /var/www/riot) auspacken
- vhost für /var/www/riot anlegen
- config.sample.json in config.json kopieren und anpassen: https://github.com/vector-im/riot-web/blob/develop/docs/config.md
Identity-Server#
Integration-Server Dimension#
- Aktueller NodeJS und NPM
- Offizielle Anleitung: https://github.com/turt2live/matrix-dimension/blob/master/docs/installing.md
- User "dimension" auf eigenem Homeserver anlegen, access token via riot oder aus der access_tokens Tabelle aus der Synapse-Datenbank holen.