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:
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:
Geben Sie Ihren Organisationstyp, Namen, Branche, Größe, Land an und klicken Sie auf die Schaltfläche “ Weiter“. Sie sollten die folgende Seite sehen:
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:
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.
Klicken Sie auf die Schaltfläche Gehe zu Ihrem Arbeitsbereich. Sie werden zum Dashboard von Rocket.chat auf der folgenden Seite weitergeleitet:
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.