Erstellen Sie einen Chat-Server mit Matrix Synapse und Riot unter CentOS 7

Matrix ist ein offenes Standardkommunikationsprotokoll für die dezentrale Echtzeitkommunikation. Matrix ist als Heimserver implementiert, die über das Internet verteilt werden. Daher gibt es keinen einzigen Kontroll- oder Fehlerpunkt. Matrix bietet eine RESTful-HTTP-API zum Erstellen und Verwalten der verteilten Chat-Server, die das Senden und Empfangen von Nachrichten, das Einladen und Verwalten von Chatroom-Mitgliedern, das Verwalten von Benutzerkonten und das Bereitstellen erweiterter Chat-Funktionen wie VoIP- und Videoanrufe usw. umfasst. Matrix richtet außerdem ein Sichere Synchronisation zwischen weltweit verteilten Heimservern.

Synapse ist die Implementierung des Matrix-Heimservers, die vom Matrix-Team geschrieben wurde. Das Matrix-Ökosystem besteht aus dem Netzwerk vieler zusammengeschlossener Heimserver, die auf der ganzen Welt verteilt sind. Ein Matrix-Benutzer verwendet einen Chat-Client, um eine Verbindung zum Heimserver herzustellen, der wiederum eine Verbindung zum Matrix-Netzwerk herstellt. Homeserver speichert den Chat-Verlauf und die Anmeldeinformationen des jeweiligen Benutzers.

Voraussetzungen

In diesem Tutorial verwenden wir matrix.example.comals Domainnamen für Matrix Synapse. Ersetzen Sie alle Vorkommen von matrix.example.comdurch Ihren tatsächlichen Domainnamen, den Sie für Ihren Synapse-Heimserver verwenden möchten.

Aktualisieren Sie Ihr Basissystem mithilfe der Anleitung zum Aktualisieren von CentOS 7 . Fahren Sie nach der Aktualisierung Ihres Systems mit der Installation von Python fort.

Installieren Sie die Entwicklungstools

Matrix Synapse benötigt Python 2.7, um zu funktionieren. Python 2.7 ist in allen CentOS-Serverinstanzen vorinstalliert. Sie können die installierte Version von Python überprüfen.

python -V

Sie sollten eine ähnliche Ausgabe erhalten.

[user@vultr ~]$ python -V
Python 2.7.5

Das Ändern der Standardversion von Python kann den YUM-Repository-Manager beschädigen. Wenn Sie jedoch die neueste Version von Python möchten, können Sie eine alternative Installation durchführen, ohne das Standard-Python zu ersetzen.

Installieren Sie die Pakete in der Development toolsGruppe, die zum Kompilieren der Installationsdateien erforderlich sind.

sudo yum groupinstall -y "Development tools"

Installieren Sie einige weitere erforderliche Abhängigkeiten.

sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel 

Installieren Sie Python pip. Pip ist der Abhängigkeitsmanager für Python-Pakete.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Installieren Sie Synapse

Erstellen Sie eine virtuelle Umgebung für Ihre Synapse-Anwendung. Die virtuelle Python-Umgebung wird verwendet, um eine isolierte virtuelle Umgebung für ein Python-Projekt zu erstellen. Eine virtuelle Umgebung enthält ihre eigenen Installationsverzeichnisse und teilt keine Bibliotheken mit globalen und anderen virtuellen Umgebungen.

sudo virtualenv -p python2.7 /opt/synapse

Geben Sie dem aktuellen Benutzer den Besitz des Verzeichnisses an.

sudo chown -R $USER:$USER /opt/synapse/

Aktivieren Sie nun die virtuelle Umgebung.

source /opt/synapse/bin/activate

Stellen Sie sicher, dass Sie über die neueste Version von pipund verfügen setuptools.

pip install --upgrade pip 
pip install --upgrade setuptools

Installieren Sie die neueste Version von Synapse mit pip.

pip install https://github.com/matrix-org/synapse/tarball/master

Die Ausführung des obigen Befehls dauert einige Zeit, da die neueste Version von Synapse und alle Abhängigkeiten aus dem Github-Repository abgerufen und installiert werden.

PostgreSQL installieren und konfigurieren

Synapse verwendet SQLite als Standarddatenbank. SQLite speichert die Daten in einer Datenbank, die als Flatfile auf der Festplatte gespeichert wird. Die Verwendung von SQLite ist sehr einfach, wird jedoch für die Produktion nicht empfohlen, da es im Vergleich zu PostgreSQL sehr langsam ist.

PostgreSQL ist ein objektrelationales Datenbanksystem. Sie müssen das PostgreSQL-Repository in Ihrem System hinzufügen, da die Anwendung im Standard-YUM-Repository nicht verfügbar ist.

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Installieren Sie den PostgreSQL-Datenbankserver.

sudo yum -y install postgresql96-server postgresql96-contrib

Initialisieren Sie die Datenbank.

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Bearbeiten Sie die /var/lib/pgsql/9.6/data/pg_hba.conf, um die MD5-basierte Authentifizierung zu aktivieren.

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

Suchen Sie die folgenden Zeilen und wechseln Sie peerzu trustund idnetzu md5.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            idnet
# IPv6 local connections:
host    all             all             ::1/128                 idnet

Nach der Aktualisierung sollte die Konfiguration folgendermaßen aussehen.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Starten Sie den PostgreSQL-Server und aktivieren Sie ihn beim Start automatisch.

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Ändern Sie das Kennwort für den Standardbenutzer von PostgreSQL.

sudo passwd postgres

Einloggen.

sudo su - postgres

Erstellen Sie einen neuen PostgreSQL-Benutzer für Synapse.

createuser synapse

PostgreSQL bietet die psqlShell zum Ausführen von Abfragen in der Datenbank. Wechseln Sie durch Ausführen zur PostgreSQL-Shell.

psql

Legen Sie ein Kennwort für den neu erstellten Benutzer für die Synapse-Datenbank fest.

ALTER USER synapse WITH ENCRYPTED password 'DBPassword';

Ersetzen Sie es DBPassworddurch ein sicheres Passwort und notieren Sie es, da wir das Passwort später verwenden werden. Erstellen Sie eine neue Datenbank für die PostgreSQL-Datenbank.

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

Verlasse die psqlShell.

\q

Wechseln Sie sudovom aktuellen postgresBenutzer zum Benutzer.

exit

Sie müssen auch die Pakete installieren, die Synapse für die Kommunikation mit dem PostgreSQL-Datenbankserver benötigt.

sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2

Synapse konfigurieren

Für die Synapse ist eine Konfigurationsdatei erforderlich, bevor sie gestartet werden kann. In der Konfigurationsdatei werden die Servereinstellungen gespeichert. Wechseln Sie in die virtuelle Umgebung und generieren Sie die Konfiguration für Synapse.

source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes

Ersetzen Sie ihn matrix.example.comdurch Ihren tatsächlichen Domänennamen und stellen Sie sicher, dass der Servername in die IP-Adresse Ihrer Vultr-Instanz aufgelöst werden kann. Geben --report-stats=yesSie an, ob die Server die Berichte generieren sollen, --report-stats=nound deaktivieren Sie die Generierung von Berichten und Statistiken.

Sie sollten eine ähnliche Ausgabe sehen.

(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates

Standardmäßig ist das homeserver.yamlfür die Verwendung einer SQLite-Datenbank konfiguriert. Wir müssen es ändern, um die zuvor erstellte PostgreSQL-Datenbank zu verwenden.

Bearbeiten Sie die neu erstellte homeserver.yaml.

nano homeserver.yaml

Suchen Sie die vorhandene Datenbankkonfiguration, die SQLite3 verwendet. Kommentieren Sie die Zeilen wie unten gezeigt aus. Fügen Sie außerdem die neue Datenbankkonfiguration für PostgreSQL hinzu. Stellen Sie sicher, dass Sie die richtigen Datenbankanmeldeinformationen verwenden.

# Database configuration
#database:
  # The database engine name
  #name: "sqlite3"
  # Arguments to pass to the engine
  #args:
    # Path to the database
    #database: "/opt/synapse/homeserver.db"


database:
    name: psycopg2
    args:
        user: synapse
        password: DBPassword
        database: synapse
        host: localhost
        cp_min: 5
        cp_max: 10

Die Registrierung eines neuen Benutzers über eine Weboberfläche ist standardmäßig deaktiviert. So aktivieren Sie Anmeldung können Sie einstellen , enable_registrationauf True. Sie können auch einen geheimen Registrierungsschlüssel festlegen, mit dem sich jeder registrieren kann, der über den geheimen Schlüssel verfügt, auch wenn die Registrierung deaktiviert ist.

enable_registration: False

registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"

Speichern Sie die Datei und beenden Sie den Editor. Jetzt müssen Sie Ihren ersten Benutzer registrieren. Bevor Sie jedoch einen neuen Benutzer registrieren können, müssen Sie zuerst die Anwendung starten.

source /opt/synapse/bin/activate && cd /opt/synapse
synctl start

Sie sollten die folgenden Zeilen sehen.

2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')

Registrieren Sie einen neuen Matrix-Benutzer.

register_new_matrix_user -c homeserver.yaml https://localhost:8448

Sie sollten Folgendes sehen.

(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.

Bevor Sie den Homeserver verwenden können, müssen Sie Port 8448 durch die Firewall zulassen. Port 8448wird als gesicherter Verbundport verwendet. Heimserver verwenden diesen Port, um sicher miteinander zu kommunizieren. Über diesen Port können Sie auch den integrierten Matrix-Webchat-Client verwenden.

sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload

Sie können sich jetzt beim Matrix-Webchat-Client anmelden, indem Sie https://matrix.example.com:8448über Ihren bevorzugten Browser aufrufen. Sie sehen eine Warnung zum SSL-Zertifikat, da die verwendeten Zertifikate selbstsigniert sind. Wir werden diesen Web-Chat-Client nicht verwenden, da er veraltet ist und nicht mehr gewartet wird. Versuchen Sie einfach zu überprüfen, ob Sie sich mit dem soeben erstellten Benutzerkonto anmelden können.

Einrichten Verschlüsseln wir Zertifikate

Anstatt ein selbstsigniertes Zertifikat zum Sichern des Verbundports zu verwenden, können wir das kostenlose SSL Let's Encrypt verwenden. Let's Encrypt kostenloses SSL kann über den offiziellen Let's Encrypt-Client namens Certbot bezogen werden.

Installieren Sie Certbot.

sudo yum -y install certbot

Passen Sie Ihre Firewall-Einstellungen an, um den Standard HTTPund die HTTPSPorts durch die Firewall zu lassen. Certbot muss eine HTTPVerbindung herstellen, um die Domänenautorität zu überprüfen.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Um Zertifikate von Let's Encrypt CA zu erhalten, müssen Sie sicherstellen, dass die Domäne, für die Sie die Zertifikate generieren möchten, auf den Server zeigt. Ist dies nicht der Fall, nehmen Sie die erforderlichen Änderungen an den DNS-Einträgen Ihrer Domain vor und warten Sie, bis sich der DNS verbreitet hat, bevor Sie die Zertifikatanforderung erneut stellen. Certbot überprüft die Domänenautorität, bevor die Zertifikate bereitgestellt werden.

Verwenden Sie jetzt den in Certbot integrierten Webserver, um die Zertifikate für Ihre Domain zu generieren.

sudo certbot certonly --standalone -d matrix.example.com

Die generierten Zertifikate werden wahrscheinlich in gespeichert /etc/letsencrypt/live/matrix.example.com/. Das SSL-Zertifikat wird als gespeichert fullchain.pemund der private Schlüssel wird als gespeichert privkey.pem.

Kopieren Sie die Zertifikate.

sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem

sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

Sie müssen den Pfad zu den Zertifikaten und Schlüsseln aus der homeserver.yamlDatei ändern . Bearbeiten Sie die Konfiguration.

nano /opt/synapse/homeserver.yaml

Suchen Sie die folgenden Zeilen und ändern Sie den Pfad.

tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"

# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"

Speichern Sie die Datei und beenden Sie den Editor. Starten Sie den Synapse-Server neu, damit die Änderungen wirksam werden.

source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart

Lassen Sie uns Zertifikate verschlüsseln, die in 90 Tagen ablaufen. Es wird daher empfohlen, die automatische Verlängerung für die Zertifikate mithilfe von Cron-Jobs einzurichten. Cron ist ein Systemdienst, mit dem regelmäßige Aufgaben ausgeführt werden.

Erstellen Sie ein neues Skript zum Erneuern von Zertifikaten und kopieren Sie die erneuerten Zertifikate in das Synapse-Verzeichnis.

sudo nano /opt/renew-letsencypt.sh  

Füllen Sie die Datei.

#!/bin/sh

/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

Geben Sie die Ausführungsberechtigung an.

sudo chmod +x /opt/renew-letsencypt.sh

Öffnen Sie die Cron-Jobdatei.

sudo crontab -e

Fügen Sie am Ende der Datei die folgende Zeile hinzu.

30 5 * * 1 /opt/renew-letsencypt.sh

Der oben genannte Cron-Job wird jeden Montag um 5:30 Uhr ausgeführt. Wenn das Zertifikat abläuft, werden sie automatisch erneuert.

Jetzt können Sie besuchen https://matrix.example.com:8448. Sie werden sehen, dass vor der Verbindung keine SSL-Warnung angezeigt wird.

Richten Sie Nginx mit Let's Encrypt ein

Neben dem gesicherten 8448Verbundport überwacht Synapse auch den ungesicherten Client-Port 8008. Wir werden Nginx nun als Reverse-Proxy für die Synapse-Anwendung konfigurieren.

sudo yum -y install nginx

Erstellen Sie eine neue Konfigurationsdatei.

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

Füllen Sie die Datei mit dem folgenden Inhalt.

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

    listen 443;
    server_name matrix.example.com;

    ssl_certificate           /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/matrix.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

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

    location /_matrix {

      proxy_pass          http://localhost:8008;
      proxy_set_header X-Forwarded-For $remote_addr;

    }
  }

Starten Sie Nginx neu und aktivieren Sie es, damit es beim Booten automatisch gestartet wird.

sudo systemctl restart nginx
sudo systemctl enable nginx

Schließlich können Sie überprüfen, ob auf Synapse über den Reverse-Proxy zugegriffen werden kann.

curl https://matrix.example.com/_matrix/key/v2/server/auto

Sie sollten eine ähnliche Ausgabe erhalten.

[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}

Einrichten des Systemd-Dienstes

Es wird empfohlen, den Systemd-Dienst zum Verwalten des Synapse-Serverprozesses zu verwenden. Durch die Verwendung von Systemd wird sichergestellt, dass der Server beim Systemstart und bei Fehlern automatisch gestartet wird.

Erstellen Sie eine neue Systemd-Servicedatei.

sudo nano /etc/systemd/system/matrix-synapse.service

Füllen Sie die Datei.

[Unit]
Description=Matrix Synapse service
After=network.target

[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse

[Install]
WantedBy=multi-user.target

Jetzt können Sie den Synapse-Server schnell starten.

sudo systemctl start matrix-synapse

So stoppen oder starten Sie den Server mit den folgenden Befehlen.

sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse

Sie können den Servicestatus überprüfen.

sudo systemctl status matrix-synapse

Mit Riot

Der Matrix Synapse-Server ist jetzt auf Ihrem Server installiert und konfiguriert. Da der integrierte Webclient für Matrix veraltet ist, können Sie aus einer Vielzahl von Clientanwendungen auswählen, die für den Chat verfügbar sind. Riot ist der beliebteste Chat-Client, der auf fast allen Plattformen verfügbar ist. Sie können die gehostete Version des Web-Chat-Clients von Riot verwenden oder eine Kopie davon auf Ihrem eigenen Server hosten. Abgesehen davon können Sie auch die Desktop- und mobilen Chat-Clients von Riot verwenden, die für Windows, Mac, Linux, IOS und Android verfügbar sind.

Wenn Sie Ihre eigene Kopie des Riot-Webclients hosten möchten, lesen Sie die Anweisungen zur Installation von Riot auf Ihrem Server. Für gehostete, Desktop- und mobile Clients können Sie Ihren Benutzernamen und Ihr Kennwort verwenden, um sich direkt bei Ihrem Heimserver anzumelden. Wählen Sie einfach my Matrix IDaus dem Dropdown-Menü der Sign InOption und geben Sie den Benutzernamen und das Passwort ein, die Sie bei der Registrierung eines neuen Benutzers erstellt haben. Klicken Sie auf Custom serverund verwenden Sie den Domainnamen Ihrer Synapse-Instanz. Da wir Nginx bereits konfiguriert haben, können wir es nur https://matrix.example.comals Home-Server und https://matrix.orgals Identity-Server-URL verwenden.

Riot Login Beispiel

Riot auf Ihrem eigenen Server einrichten.

Riot ist auch Open Source und kann kostenlos auf Ihrem eigenen Server gehostet werden. Es sind keine Datenbanken oder Abhängigkeiten erforderlich. Da bereits ein Nginx-Server ausgeführt wird, können wir ihn auf demselben Server hosten.

Die Domain oder Subdomain, die Sie für Synapse und Riot verwenden, muss unterschiedlich sein, um Cross-Site-Scripting zu vermeiden. Sie können jedoch zwei Subdomains derselben Domain verwenden. In diesem Tutorial verwenden wir riot.example.comals Domain für die Riot-Anwendung. Ersetzen Sie alle Vorkommen von riot.example.comdurch Ihre tatsächliche Domain oder Subdomain für die Riot-Anwendung.

Laden Sie Riot auf Ihren Server herunter.

cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz

Den Link zur neuesten Version finden Sie immer auf Riot's Github .

Extrahieren Sie das Archiv.

sudo tar -xzf riot-v*.tar.gz

Benennen Sie das Verzeichnis zur Vereinfachung um.

sudo mv riot-v*/ riot/

Da wir Certbot bereits installiert haben, können wir die Zertifikate direkt generieren. Stellen Sie sicher, dass die von Ihnen verwendete Domain oder Subdomain auf den Server zeigt.

sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com

Die generierten Zertifikate werden wahrscheinlich im /etc/letsencrypt/live/riot.example.com/Verzeichnis gespeichert .

Erstellen Sie einen virtuellen Host für die Riot-Anwendung.

sudo nano /etc/nginx/conf.d/riot.conf

Füllen Sie die Datei.

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

    listen 443;
    server_name riot.example.com;

    ssl_certificate           /etc/letsencrypt/live/riot.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/riot.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 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;

  }

Kopieren Sie die Beispielkonfigurationsdatei.

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

Bearbeiten Sie nun die Konfigurationsdatei, um einige Änderungen vorzunehmen.

sudo nano /opt/riot/config.json

Suchen Sie die folgenden Zeilen.

"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",

Ersetzen Sie den Wert der Standard-URL des Heimservers durch die URL Ihres Matrix-Servers. Für die URL des Identitätsservers können Sie die Standardoption verwenden oder den Wert auch dem Matrix-Identitätsserver bereitstellen https://matrix.org.

"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",

Speichern Sie die Datei und beenden Sie sie. Stellen Sie dem Nginx-Benutzer das Eigentum an den Dateien zur Verfügung.

sudo chown -R nginx:nginx /opt/riot/

Starten Sie Nginx neu.

sudo systemctl restart nginx

Sie können auf Riot zugreifen https://riot.example.com. Sie können sich jetzt mit dem zuvor erstellten Benutzernamen und Passwort anmelden. Sie können eine Verbindung mit dem Standardserver herstellen, da wir den Standardmatrixserver für unsere Anwendung bereits geändert haben.

Sie haben jetzt einen Matrix Synapse-Heimserver in Betrieb. Sie haben auch eine gehostete Kopie von Riot, mit der Sie eine Nachricht mit ihrer Matrix-ID, E-Mail-Adresse oder Handynummer an andere Personen senden können. Erstellen Sie zunächst einen Chatraum auf Ihrem Server und laden Sie Ihre Freunde auf Matrix ein, sich dem von Ihnen erstellten Chatraum anzuschließen.



So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein

Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein

Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

Verwenden Sie ein anderes System? Einführung CyberPanel ist eines der ersten Control Panels auf dem Markt, das sowohl Open Source als auch OpenLiteSpeed ​​verwendet. Was ist das?

Installieren Sie eSpeak unter CentOS 7

Installieren Sie eSpeak unter CentOS 7

Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen

So installieren Sie Thelia 2.3 unter CentOS 7

So installieren Sie Thelia 2.3 unter CentOS 7

Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i

So installieren Sie Cockpit unter CentOS 7

So installieren Sie Cockpit unter CentOS 7

Cockpit ist ein kostenloses Open Source-Programm für die Linux-Serververwaltung. Es ist sehr leicht und hat eine schöne, einfach zu bedienende Weboberfläche. Es erlaubt System

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

Gollum ist die Git-basierte Wiki-Software, die als Backend des GitHub-Wikis verwendet wird. Durch die Bereitstellung von Gollum können Sie ein GitHub-ähnliches Wiki-System auf Ihnen hosten

So stellen Sie Google BBR unter CentOS 7 bereit

So stellen Sie Google BBR unter CentOS 7 bereit

BBR (Bottleneck Bandwidth and RTT) ist ein neuer Algorithmus zur Überlastungskontrolle, der von Google zum Linux-Kernel-TCP-Stack hinzugefügt wird. Mit BBR an Ort und Stelle,

So installieren Sie YOURLS unter CentOS 7

So installieren Sie YOURLS unter CentOS 7

YOURLS (Your Own URL Shortener) ist eine Open-Source-Anwendung zur URL-Verkürzung und Datenanalyse. In diesem Artikel werden wir den Installationsprozess behandeln

Richten Sie Nginx-RTMP unter CentOS 7 ein

Richten Sie Nginx-RTMP unter CentOS 7 ein

Verwenden Sie ein anderes System? RTMP eignet sich hervorragend für die Bereitstellung von Live-Inhalten. Wenn RTMP mit FFmpeg gekoppelt ist, können Streams in verschiedene Qualitäten konvertiert werden. Vultr i

So installieren Sie LimeSurvey unter CentOS 7

So installieren Sie LimeSurvey unter CentOS 7

LimeSurvey ist ein kostenloses und Open-Source-Online-Umfragetool, das häufig zum Veröffentlichen von Online-Umfragen und zum Sammeln von Umfrage-Feedback verwendet wird. In diesem Artikel werde ich

Installieren Sie Java SE unter CentOS

Installieren Sie Java SE unter CentOS

Einführung Java ist eine beliebte Softwareplattform, mit der Sie Java-Anwendungen und -Applets in verschiedenen Hardwareumgebungen entwickeln und ausführen können. Es gibt

Installieren von Netdata unter CentOS 7

Installieren von Netdata unter CentOS 7

Verwenden Sie ein anderes System? Netdata ist ein aufstrebender Stern im Bereich der Echtzeitüberwachung von Systemmetriken. Im Vergleich zu anderen Tools der gleichen Art bietet Netdata:

So installieren Sie Just Cause 2 (JC2-MP) Server unter CentOS 7

So installieren Sie Just Cause 2 (JC2-MP) Server unter CentOS 7

In diesem Tutorial erfahren Sie, wie Sie einen Just Cause 2-Multiplayer-Server einrichten. Voraussetzungen Bitte stellen Sie sicher, dass das System vollständig aktualisiert ist, bevor Sie beginnen

So installieren Sie Starbound Server unter CentOS 7

So installieren Sie Starbound Server unter CentOS 7

Verwenden Sie ein anderes System? In diesem Tutorial werde ich erklären, wie ein Starbound-Server unter CentOS 7 eingerichtet wird. Voraussetzungen Sie müssen dieses Spiel besitzen

Installieren und Konfigurieren von ZNC unter CentOS 7

Installieren und Konfigurieren von ZNC unter CentOS 7

ZNC ist ein kostenloser Open-Source-IRC-Bouncer, der permanent mit einem Netzwerk verbunden bleibt, sodass Clients Nachrichten empfangen können, die gesendet werden, während sie offline sind. Thi

So installieren Sie Django unter CentOS 7

So installieren Sie Django unter CentOS 7

Django ist ein beliebtes Python-Framework zum Schreiben von Webanwendungen. Mit Django können Sie Anwendungen schneller erstellen, ohne das Rad neu zu erfinden. Wenn du willst

So richten Sie den ionCube Loader unter CentOS 7 ein

So richten Sie den ionCube Loader unter CentOS 7 ein

ionCube Loader ist eine PHP-Erweiterung, mit der ein Webserver PHP-Dateien ausführen kann, die mit ionCube Encoder codiert wurden und für deren Ausführung erforderlich sind

So installieren Sie PufferPanel (kostenlose Minecraft-Systemsteuerung) unter CentOS 7

So installieren Sie PufferPanel (kostenlose Minecraft-Systemsteuerung) unter CentOS 7

Einführung Installieren Sie in diesem Tutorial PufferPanel auf unserem Vultr VPS. PufferPanel ist ein Open Source-Bedienfeld, das Sie kostenlos verwalten können

So installieren Sie BoltWire CMS unter CentOS 7

So installieren Sie BoltWire CMS unter CentOS 7

Verwenden Sie ein anderes System? Einführung BoltWire ist ein kostenloses und leichtes Content-Management-System, das in PHP geschrieben wurde. Im Vergleich zu den meisten anderen Content Managern

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.