Rocket.Chat Server mit Nginx auf Ubuntu 20.04 installieren

Rocket.chat ist eine webbasierte Chat-Anwendung, die in JavaScript geschrieben ist und das Meteor Full-Stack-Framework verwendet. Es handelt sich dabei um eine Open-Source-Plattform für die Chat-Zusammenarbeit, mit der Sie sicher in Echtzeit über mehrere Geräte hinweg kommunizieren können. Sie ist selbst gehostet und unterstützt Sprach- und Video-Chat, Videokonferenzen, Dateifreigabe und vieles mehr. Die Client-Anwendung ist für alle Plattformen verfügbar, einschließlich Windows, MacOS, Linux, Android und iOS.

In diesem Tutorial zeigen wir Ihnen, wie Sie Rocket.Chat auf dem Ubuntu 20.04 Server installieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domain-Name, der auf Ihre Server-IP zeigt.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald Ihr System aktualisiert ist, installieren Sie weitere erforderliche Abhängigkeiten mit dem folgenden Befehl:

apt-get install nginx gnupg2 git unzip build-essential curl software-properties-common graphicsmagick -y

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Node.js installieren

Als nächstes müssen Sie Node.js Version 12 in Ihrem System installieren. Standardmäßig ist sie im Standard-Repository von Ubuntu 20.04 nicht verfügbar. Daher müssen Sie das offizielle Repository von Node.js zu Ihrem System hinzufügen. Sie können es mit dem folgenden Befehl hinzufügen:

curl -sL https://deb.nodesource.com/setup_12.x | bash -

Sobald das Repository hinzugefügt ist, installieren Sie Node.js mit dem folgenden Befehl:

apt-get install nodejs -y

Nach der Installation von Node.js überprüfen Sie die installierte Version von Node.js mit dem folgenden Befehl:

node -v

Sie sollten die folgende Ausgabe erhalten:

v12.19.0

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren und Konfigurieren von MongoDB

Als nÃ?chstes mÃ?ssen Sie den MongoDB-Server in Ihrem System installieren. Standardmäßig ist die neueste Version von MongoDB nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Daher müssen Sie das MongoDB-Repository in Ihrem System hinzufügen. Laden Sie zuerst den GPG-Schlüssel herunter und fügen Sie ihn mit dem folgenden Befehl hinzu:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

Sie sollten die folgende Ausgabe erhalten:

Executing: /tmp/apt-key-gpghome.Ku2thT4UnL/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key <packaging@mongodb.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Als nächstes fügen Sie das offizielle MongoDB-Repository mit dem folgenden Befehl hinzu:

add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Sobald das Repository hinzugefügt ist, installieren Sie die MongoDB mit dem folgenden Befehl:

apt-get install mongodb-org -y

Nachdem Sie MongoDB installiert haben, starten Sie den MongoDB-Dienst und ermöglichen es ihm, beim Systemneustart zu starten:

systemctl start mongod
systemctl enable mongod

Als nächstes müssen Sie die Standardkonfigurationsdatei von MongoDB bearbeiten und den Replikat-Satz definieren. Sie können dies mit dem folgenden Befehl tun:

nano /etc/mongod.conf

Fügen Sie die folgenden Zeilen hinzu:

replication:
  replSetName: "replica01"

Speichern und schließen Sie die Datei und starten Sie den MongoDB-Dienst neu, um die Konfiguration zu übernehmen:

systemctl restart mongod

Melden Sie sich dann bei der MongoDB-Shell an und aktivieren Sie die Replik mit dem folgenden Befehl:

mongo
> rs.initiate()

Sie sollten die folgende Ausgabe erhalten:

{
	"info2" : "no configuration specified. Using a default configuration for the set",
	"me" : "127.0.0.1:27017",
	"ok" : 1,
	"operationTime" : Timestamp(1605081439, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1605081439, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}

Verlassen Sie anschließend die MongoDB-Shell mit dem folgenden Befehl:

> exit

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Rocket.Chat installieren

Als nächstes müssen Sie einen neuen Benutzer für Rocket.Chat erstellen und ihn zur Gruppe www-data hinzufügen. Sie können dies mit dem folgenden Befehl tun:

useradd -m -U -r -d /opt/rocket rocket --shell /bin/bash
usermod -a -G rocket www-data

Geben Sie als nächstes die richtigen Rechte für das Verzeichnis /opt/rocket:

chmod 750 /opt/rocket

Als nächstes wechseln Sie den Benutzer zu Rocket.Chat und laden die neueste Version von Rocket.Chat mit dem folgenden Befehl herunter:

su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit folgendem Befehl:

tar -xvzf rocket.chat.tgz

Als nächstes benennen Sie das extrahierte Verzeichnis mit Rocket.Chat mit folgendem Befehl um:

mv bundle Rocket.Chat

Als nächstes ändern Sie das Verzeichnis in Rocket.Chat-Server und installieren alle Abhängigkeiten von Node.js mit folgendem Befehl:

cd Rocket.Chat/programs/server
npm install

Sobald alle Abhängigkeiten installiert sind, können Sie den Benutzer von Rocket.Chat mit folgendem Befehl verlassen:

exit

Erstellen Sie eine Systemdienstdatei für Rocket.Chat

Als nächstes müssen Sie eine Systemdatei erstellen, um den Dienst Rocket.Chat zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/rocketchat.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://rocket.yourdomain.com PORT=3000
ExecStart=/usr/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie den systemd-Dämon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie anschließend den Dienst Rocket.Chat und aktivieren Sie ihn beim Systemneustart mit folgendem Befehl:

systemctl start rocketchat
systemctl enable rocketchat

Sie können nun den Status des Rocket.Chat-Dienstes mit folgendem Befehl überprüfen:

systemctl status rocketchat

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

? rocketchat.service - Rocket.Chat server
     Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 07:58:01 UTC; 24s ago
   Main PID: 19951 (node)
      Tasks: 11 (limit: 4691)
     Memory: 508.7M
     CGroup: /system.slice/rocketchat.service
             ??19951 /usr/bin/node /opt/rocket/Rocket.Chat/main.js

Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |      MongoDB Version: 4.0.21                             |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |       MongoDB Engine: wiredTiger                         |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |             Platform: linux                              |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |         Process Port: 3000                               |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |             Site URL: http://rocket.yourdomain.com  |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |     ReplicaSet OpLog: Enabled                            |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |          Commit Hash: e37d7ba8ed                         |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |        Commit Branch: HEAD                               |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |                                                          |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? +----------------------------------------------------------+

Nginx für Rocket.Chat konfigurieren

Als nächstes müssen Sie Nginx als Reverse-Proxy für Rocket.Chat konfigurieren. Dazu erstellen Sie eine Nginx-Konfigurationsdatei für den virtuellen Host mit dem folgenden Befehl:

nano /etc/nginx/sites-available/rocketchat.conf

Fügen Sie die folgenden Zeilen hinzu:

upstream myrocketchat {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name rocket.yourdomain.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://myrocketchat/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Speichern und schließen Sie die Datei und aktivieren Sie dann den virtuellen Host Nginx mit dem folgenden Befehl:

ln -s /etc/nginx/sites-available/rocketchat.conf /etc/nginx/sites-enabled/

Überprüfen Sie dann Nginx auf Systemfehler mit dem folgenden Befehl:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart nginx

Sie können den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 07:59:39 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 20034 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 20047 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 20051 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??20051 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??20052 nginx: worker process
             ??20053 nginx: worker process

Nov 11 07:59:39 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 11 07:59:39 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf Rocket.Chat

Zu diesem Zeitpunkt ist Rocket.Chat installiert und konfiguriert. Es ist an der Zeit, auf die Webschnittstelle von Rocket.Chat zuzugreifen. Öffnen Sie Ihren Webbrowser und greifen Sie über die URL http://rocket.yourdomain.com.You auf den Rocket.Chat zu. Sie werden auf die folgende Seite weitergeleitet:

Assistent zur Einrichtung von Rocket.chat

Geben Sie Ihren Admin-Namen, Ihre E-Mail-Adresse und Ihr Passwort ein und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

Informationen zur Organisation

Geben Sie Ihren Organisationstyp, Namen, Branche, Größe, Land an und klicken Sie auf die Schaltfläche “ Weiter“. Sie sollten die folgende Seite sehen:

Server-Informationen

Geben Sie den Namen Ihrer Website, die Sprache, den Servertyp an und klicken Sie auf die Schaltfläche “ Weiter“. Sie sollten die folgende Seite sehen: Geben Sie Ihren Website-Namen, Name, Branche, Größe, Servertyp an und klicken Sie auf die Schaltfläche Weiter:

Server registrieren

Akzeptieren Sie die Bedingungen und Datenschutzbestimmungen und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen: Geben Sie Ihren Site-Namen, Ihre Sprache, Ihren Servertyp an und klicken Sie dann auf die Schaltfläche Weiter.

Rocket.Chat-Server bereit

Klicken Sie auf die Schaltfläche Gehe zu Ihrem Arbeitsbereich. Sie werden zum Dashboard von Rocket.chat auf der folgenden Seite weitergeleitet:

Rocket.Chat-Dashboard

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben Rocket.Chat mit Nginx als Reverse-Proxy erfolgreich installiert und konfiguriert. Sie können Rocket.Chat jetzt in der Produktionsumgebung installieren und mit Ihren Freunden und Ihrer Familie chatten.

Das könnte dich auch interessieren …