Riot Webclient selbst hosten

Der bekannteste Client für Matrix. Dieser ist für Android, iOS, Desktops (Windows, macOS, Linux) oder als Webapp verfügbar. Diese Webapp lässt sich auch selbst hosten und bietet einem noch mehr Kontrolle.

Grundvoraussetzungen

Die Riot Webapp ist sehr genügsam. Sie benötigt nur einen Webserver (in diesem Fall Ngnix) zur Veröffentlichung, mehr nicht. Sie lässt sich auch problemlos auf dem selben Server betreiben, welcher die Matrix Synapse hostet.

Installation

In dieser Anleitung wird die Riot-Webapp in das Verzeichnis „/opt/riot“ installiert. Dies ist aber nicht zwingend erforderlich, solang die Pfade in der Ngnix-Konfiguration angepasst werden. Als Basis dient wieder ein Ubuntu Server 18.04 LTS.

Die aktuellsten Installationsfiles sind in dem Repository auf Github zu finden.
https://github.com/vector-im/riot-web/releases

wget https://github.com/vector-im/riot-web/releases/download/v1.5.12/riot-v1.5.12.tar.gz

Das heruntergeladene Archiv muss entpackt und in das gewünschte Verzeichnis verschoben werden.

tar -xzf riot-v*.tar.gz
mv riot-v*/ /opt/riot/

Anschließend müssen die Berechtigungen auf das Verzeichnis angepasst werden, sodass Ngnix dies verwalten kann.

chown -R www-data:www-data /opt/riot/

Die Konfiguration der Riot Webapp erfolgt mit JSON-Files in dem Riot-Verzeichnis. Eine Bespiel-Config liefert das Archiv mit und muss in die „produktive“ Konfiguration kopiert werden.

cp /opt/riot/config.sample.json /opt/riot/config.json

Hier müssen nicht zwingend Anpassungen vorgenommen werden. Der Aufbau und der Verwendung der Datei ist einfach und mit etwas Englischkenntnissen selbsterklärend. 😉

Konfiguration Ngnix

Die Anpassungen des Ngnix halten sich hier ebenfalls in Grenzen. Der Webclient sollte aber natürlich mit HTTPS abgesichert werden. Hier kann wieder ein Zertifikat von Lets Encrypt verwendet werden.

„riot.conf“ aus „/etc/ngnix/sites-available“ inkl. Umleitung von HTTP zu HTTPS

server {
    listen 80;
    server_name riot.rockstar-cloud.de;
    return 301 https://$host$request_uri;
}
server {
    listen 443;
    server_name riot.rockstar-cloud.de;
    ssl_certificate           /etc/letsencrypt/live/example.de/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/example.de/privkey.pem;
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    root /opt/riot;
    index index.html index.htm;
    location / {
            try_files $uri $uri/ =404;
    }
    access_log    /var/log/nginx/riot.access.log;
  }

Betrieben von WordPress | Theme: Baskerville 2 von Anders Noren.

Nach oben ↑