Rocket.Chat ist eine Open-Source-Teamkommunikationsplattform, eine selbst gehostete Slack-Alternative. Es wurde mit dem Meteor-Framework entwickelt und bietet verschiedene Funktionen, darunter Helpdesk-Chat, Dateifreigabe, Videokonferenzen, Sprachnachrichten, API und mehr.
Rocket.Chat ist eine perfekte Lösung für Unternehmen und Communities, die ihr eigenes Chat-System hosten möchten.
In diesem Tutorial zeigen wir Ihnen, wie Sie Rocket.Chat auf einem Ubuntu 18.04-Server bereitstellen und Nginx als SSL-Reverse-Proxy konfigurieren.
Voraussetzungen #
Bevor Sie mit diesem Lernprogramm fortfahren, vergewissern Sie sich, dass Sie die folgenden Voraussetzungen erfüllen.
- Ubuntu 18.04-Server. Laut den offiziellen Rocket.Chat-Systemanforderungen benötigen Sie mindestens 1 GB RAM.
- Ein Domänenname, der auf Ihre Server-IP-Adresse verweist. Wir verwenden
chat.example.com
. - Nginx installiert, indem Sie diesem Tutorial folgen.
- Sie haben ein SSL-Zertifikat für Ihre Domain installiert. Sie können ein kostenloses SSL-Zertifikat von Let’s Encrypt generieren, indem Sie diesem Tutorial folgen.
Installieren von Node.js #
Beginnen Sie mit der Aktualisierung Ihrer Systempaketliste:
sudo apt update
Installieren Sie Node.js, npm und alle anderen Abhängigkeiten, die zum Erstellen von npm-Paketen aus der Quelle erforderlich sind:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
Zum Zeitpunkt der Erstellung dieses Artikels ist die empfohlene Node.js-Version für Rocket.Chat Node.js v8.11.3.
Wir werden n
verwenden , ein npm-Paket, mit dem wir die Node.js-Versionen interaktiv verwalten können.
Geben Sie die folgenden Befehle aus, um n
zu installieren und die empfohlene Node.js-Version:
sudo npm install -g inherits n
sudo n 8.11.3
Installieren von MongoDB #
MongoDB ist eine dokumentenorientierte NoSQL-Datenbank und wird von Rocket.Chat als Datenspeicher verwendet.
Wir werden MongoDB aus den offiziellen MongoDB-Repositories installieren.
Importieren Sie den öffentlichen Schlüssel von MongoDB und aktivieren Sie das offizielle MongoDB-Repository mit dem folgenden Befehl:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Sobald das apt-Repository aktiviert ist, aktualisieren Sie die Paketliste und installieren Sie MongoDB, indem Sie Folgendes eingeben:
sudo apt update
sudo apt install mongodb-org
Aktivieren und starten Sie nach Abschluss der Installation den MongoDB-Dienst:
sudo systemctl start mongod
sudo systemctl enable mongod
Neuen Systembenutzer # erstellen
So erstellen Sie einen neuen Benutzer und eine neue Gruppe mit dem Namen rocket
, das die Rocket.Chat-Instanz ausführt, geben Sie Folgendes ein:
sudo useradd -m -U -r -d /opt/rocket rocket
Fügen Sie die www-data
hinzu Benutzer in die neue Benutzergruppe und ändern Sie /opt/rocket
Verzeichnisberechtigungen, damit Nginx auf die Rocket.Chat-Installation zugreifen kann:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Installation von Rocket.Chat #
Wechseln Sie zur Benutzerrocket
:
sudo su - rocket
Die folgenden Befehle gehen davon aus, dass Sie derzeit als Benutzer rocket
arbeiten .
Laden Sie die neueste stabile Version von Rocket.Chat mit Curl herunter:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Sobald der Download abgeschlossen ist, extrahieren Sie das Archiv und benennen Sie das Verzeichnis in Rocket.Chat
um :
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Wechseln Sie in den Rocket.Chat/programs/server
Verzeichnis und installieren Sie alle erforderlichen npm-Pakete:
cd Rocket.Chat/programs/server
npm install
Um unsere Installation zu testen, bevor wir eine systemd-Einheit erstellen und einen Reverse-Proxy mit Nginx einrichten, setzen wir die erforderlichen Umgebungsvariablen und starten den Rocket.Chat-Server
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Wechseln Sie zurück in den Rocket.Chat
Verzeichnis und starten Sie den Rocket.Chat
Server, indem Sie die folgenden Befehle ausgeben:
cd ../../
node main.js
Wenn es keine Fehler gibt, sollten Sie die folgende Ausgabe sehen:
➔ +---------------------------------------------+
➔ | SERVER RUNNING |
➔ +---------------------------------------------+
➔ | |
➔ | Rocket.Chat Version: 0.71.1 |
➔ | NodeJS Version: 8.11.3 - x64 |
➔ | Platform: linux |
➔ | Process Port: 3000 |
➔ | Site URL: http://0.0.0.0:3000/ |
➔ | ReplicaSet OpLog: Disabled |
➔ | Commit Hash: e73dc78ffd |
➔ | Commit Branch: HEAD |
➔ | |
➔ +---------------------------------------------+
Stoppen Sie den Rocket.Chat-Server mit CTRL+C
.
Wechseln Sie zurück zu Ihrem sudo-Benutzer, indem Sie exit
eingeben und fahren Sie mit den nächsten Schritten fort.
Erstellen Sie eine Systemd-Einheit #
Um Rocket.Chat als Dienst auszuführen, erstellen wir einen rocketchat.service
Unit-Datei in /etc/systemd/system/
Verzeichnis.
sudo nano /etc/systemd/system/rocketchat.service
Fügen Sie den folgenden Inhalt ein:
/etc/systemd/system/rocketchat.service[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=https://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben, und starten Sie den Rocket.Chat-Dienst, indem Sie Folgendes ausführen:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Überprüfen Sie den Dienststatus, indem Sie Folgendes eingeben:
sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Aktivieren Sie schließlich den Rocket.Chat-Dienst so, dass er beim Booten automatisch mit dem folgenden Befehl gestartet wird:
sudo systemctl enable rocketchat
Richten Sie einen Reverse-Proxy mit Nginx ein #
Wenn Sie unseren Anleitungen zum Installieren von Nginx unter Ubuntu 18.04 und zum Sichern von Nginx mit Let’s Encrypt unter Ubuntu 18.04 gefolgt sind, sollte Nginx bereits installiert und mit einem SSL-Zertifikat konfiguriert sein.
Jetzt müssen wir einen neuen Nginx-Serverblock für die Rocket.Chat-Installation erstellen.
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:
sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name chat.example.com;
include snippets/letsencrypt.conf;
return 301 https://chat.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
include snippets/ssl.conf;
access_log /var/log/nginx/chat.example.com-access.log;
error_log /var/log/nginx/chat.example.com-error.log;
location / {
proxy_pass http://rocketchat_backend/;
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;
}
}
Aktivieren Sie den neuen Serverblock, indem Sie einen symbolischen Link von der Datei zum Verzeichnis „sites-enabled“ erstellen:
sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/
Laden Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl reload nginx
Rocket.Chat konfigurieren #
Öffnen Sie Ihren Browser und geben Sie Folgendes ein:http://chat.example.com
.
Vorausgesetzt, die Installation ist erfolgreich, wird Ihnen der Rocket.Chat-Einrichtungsassistent angezeigt, der Sie durch die Einrichtung Ihres ersten Administratorbenutzers, die Konfiguration Ihrer Organisation und die Registrierung Ihres Servers führt, um kostenlose Push-Benachrichtigungen und mehr zu erhalten.
Im ersten Abschnitt des Ersteinrichtungsassistenten werden Sie aufgefordert, Ihren Admin-Benutzer einzurichten:
Wenn Sie mit der Eingabe der Admin-Informationen fertig sind, klicken Sie auf Continue
Schaltfläche und geben Sie im nächsten Schritt Ihre Organisationsinformationen ein:
Im dritten Abschnitt des Ersteinrichtungsassistenten werden Sie aufgefordert, die Serverinformationen einzugeben:
Im nächsten Schritt werden Sie gefragt, ob Sie die vorkonfigurierten Gateways und Proxys von Rocket.Chat verwenden möchten. Wenn Sie diese Option auswählen, erhalten Sie Zugriff auf den Rocket.Chat Apps-Marktplatz und andere Funktionen wie Push-Benachrichtigungen funktionieren sofort .
Treffen Sie Ihre Wahl, klicken Sie auf Continue
klicken, und Sie werden auf die folgende Seite weitergeleitet, die anzeigt, dass Ihr Arbeitsbereich einsatzbereit ist:
Klicken Sie auf Go to your workspace
und Sie werden zum Rocket.Chat-Dashboard weitergeleitet, das als Admin-Benutzer angemeldet ist.