Rocket.Chat ist eine komplette Teamkommunikationsplattform, eine selbst gehostete Slack-Alternative. Es wurde mit Meteor erstellt und bietet verschiedene Funktionen, darunter Helpdesk-Chat, Videokonferenzen, Dateifreigabe, Sprachnachrichten, API und mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie Rocket.Chat auf einem CentOS 7-Server mit Nginx als SSL-Reverse-Proxy installieren und bereitstellen.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- CentOS 7-Server, gemäß den offiziellen Rocket.Chat-Systemanforderungen benötigen Sie mindestens 1 GB RAM.
- Sie sind als Benutzer mit sudo-Berechtigungen angemeldet.
- Sie haben einen Domänennamen, der auf Ihre Server-IP-Adresse verweist. In diesem Artikel verwenden wir
example.com
. - Sie haben Nginx installiert, wenn nicht, können Sie es installieren, indem Sie dieser Anleitung folgen.
- Ein SSL-Zertifikat. Sie können einen kostenlosen von Let’s Encrypt generieren oder einen von einem anderen Anbieter kaufen.
Installieren Sie Abhängigkeiten #
Installieren Sie die folgenden Pakete, die zum Erstellen des erforderlichen npm
erforderlich sind Module:
sudo yum install epel-release curl GraphicsMagick gcc-c++
Als nächstes installieren Sie Node.js
und npm
indem Sie Folgendes eingeben:
sudo yum install -y nodejs npm
Zum Zeitpunkt der Erstellung dieses Artikels ist die empfohlene Node.js-Version für Rocket.Chat Node.js v8.11.3.
Geben Sie die folgenden Befehle aus, um n
zu installieren Dienstprogramm und die empfohlene Version von Node.js:
sudo npm install -g inherits n
sudo n 8.11.3
MongoDB ist eine dokumentenorientierte NoSQL-Datenbank und wird von Rocket.Chat als Datenspeicher verwendet. Rocket.Chat empfiehlt MongoDB Version 3.6.
Wir werden MongoDBusing yum
installieren aus den offiziellen MongoDB-Repositories.
Öffnen Sie den Editor Ihrer Wahl und erstellen Sie die folgende Repository-Datei:
sudo nano /etc/yum.repos.d/mongodb-org.repo
Fügen Sie den folgenden Inhalt in die Datei ein:
/etc/yum.repos.d/mongodb-org.repo[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
Speichern Sie die Datei und schließen Sie Ihren Texteditor.
Führen Sie den folgenden Befehl aus, um MongoDB zu installieren:
sudo yum 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
Erstellen Sie einen neuen Benutzer und eine neue Gruppe, die unsere Rocket.Chat-Instanz ausführen. Der Einfachheit halber nennen wir den Benutzer rocket
:
sudo useradd -m -U -r -d /opt/rocket rocket
Fügen Sie nginx
hinzu Benutzer in die neue Benutzergruppe und ändern Sie /opt/rocket
Verzeichnisberechtigungen, damit Nginx darauf zugreifen kann:
sudo usermod -a -G rocket nginx
sudo chmod 750 /opt/rocket
Installation von Rocket.Chat #
Wechseln Sie zur Benutzer-rocket
indem Sie Folgendes eingeben:
sudo su - rocket
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
Bevor Sie eine systemd-Einheit erstellen und einen Reverse-Proxy mit Nginxit einrichten, sollten Sie testen, ob die Installation erfolgreich war.
Beginnen Sie dazu mit dem Setzen der erforderlichen Umgebungsvariablen:
export PORT=3000
export ROOT_URL=http://example.com:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Als nächstes wechseln Sie wieder 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 |
➔ | |
➔ +---------------------------------------------+
Zu diesem Zeitpunkt ist Rocket.Chat auf Ihrem CentOS 7-Computer installiert. Stoppen Sie den Rocket.Chat-Server mit CTRL+C
und fahren Sie mit den nächsten Schritten fort.
Erstellen Sie eine Systemd-Einheit #
Um Rocket.Chat als Dienst auszuführen, erstellen Sie einen rocketchat.service
Unit-Datei in /etc/systemd/system/
Verzeichnis:
sudo nano /etc/systemd/system/rocketchat.service
Fügen Sie den folgenden Inhalt in die Datei 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=http://example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Speichern und schließen Sie die Datei.
Benachrichtigen Sie systemd, dass eine neue Unit-Datei erstellt wurde, 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 mit dem folgenden Befehl:
sudo systemctl status rocketchat
Die Ausgabe sollte in etwa so aussehen:
● rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
Main PID: 32356 (node)
CGroup: /system.slice/rocketchat.service
└─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Wenn keine Fehler vorliegen, können Sie den Rocket.Chat-Dienst so aktivieren, dass er beim Booten automatisch gestartet wird:
sudo systemctl enable rocketchat
Richten Sie einen Reverse-Proxy mit Nginx ein #
Wenn Sie unseren Anleitungen zum Installieren von Nginx unter CentOS 7 und zum Sichern von Nginx mit Let’s Encrypt unter CentOS 7 gefolgt sind, sollte Nginx bereits installiert und mit einem SSL-Zertifikat konfiguriert sein.
Jetzt müssen wir einen neuen Serverblock für unsere Rocket.Chat-Installation erstellen:
sudo nano /etc/nginx/conf.d/example.com.conf
Fügen Sie den folgenden Inhalt in die Datei ein:
/etc/nginx/conf.d/example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/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;
}
}
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, dass die Installation erfolgreich ist, wird Ihnen der Rocket.Chat-Setup-Assistent angezeigt, der Sie durch die Einrichtung Ihres ersten Admin-Benutzers, 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 die meisten anderen Funktionen wie Push-Benachrichtigungen funktionieren einfach der Box.
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.