Wie man Rocket.Chat Server mit Nginx auf Ubuntu 16.04 installiert
Rocket.Chat ist eine kostenlose und quelloffene Online-Chat-Lösung für die Teamkommunikation, mit der Sie Ihren eigenen Slack wie einen Online-Chat aufbauen können. Rocket.Chat basiert auf Javascript, das mit dem Meteor Full Stack Framework entwickelt wurde. Rocket.Chat ist eine großartige Lösung für Unternehmen, die ihre eigene private Chat-Plattform aufbauen möchten.
In diesem Tutorial zeige ich dir, wie du deinen eigenen Chatserver mit Rocket.Chat erstellen kannst. Ich werde den neuesten Ubuntu LTS 16.04 Server für die Installation und Nginx als Reverse Proxy für die Rocket.Chat Anwendung verwenden.
Voraussetzung
- Ubuntu 16.04.
- Root-Privilegien
Schritt 1 – Installieren der Rocket.Chat-Abhängigkeiten
Melden Sie sich mit ssh (oder dem Terminal) am Server an und geben Sie’sudo su‘ ein, um Root-Zugriff zu erhalten:
ssh vagrant@192.168.1.110 sudo su
Aktualisieren Sie das Ubuntu-Repository:
apt-get update
Als nächstes installieren Sie neue Pakete, die für Rocket.Chat benötigt werden:
apt-get install curl graphicsmagick build-essential
Schritt 2 – MongoDB installieren
Rocket.Chat benötigt MongoDB für die Installation. In diesem Schritt installieren wir MongoDB 3.2 aus dem MongoDB-Repository.
Füge den MongoDB-Schlüsselserver hinzu, damit wir auf die Pakete zugreifen können:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Fügen Sie dann das MongoDB-Repository mit dem folgenden Befehl hinzu:
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Aktualisieren Sie das Repository und installieren Sie MongoDB mit dem Befehl apt:
apt-get update apt-get install mongodb-org
Fügen Sie MongoDB hinzu, um es während des Bootvorgangs auszuführen und starten Sie es:
systemctl enable mongod systemctl start mongod
MongoDB wurde auf Port 27017 gestartet.
Schritt 3 – MongoDB ReplicaSet konfigurieren
Um die Leistung zu verbessern, verwendet Rocket.Chat ein MongoDB ReplicaSet. In diesem Schritt konfigurieren wir ein einfaches MongoDB ReplicaSet, indem wir die MongoDB-Konfigurationsdatei bearbeiten.
Bearbeiten Sie die Datei mongod.conf mit vim:
vim /etc/mongod.conf
Fügen Sie ein „#“ am Anfang von Zeile 24 hinzu, um MongoDB zu deaktivieren, das nur auf dem lokalen Rechner läuft.
net: port: 27017 #bindIp: 127.0.0.1
Fügen Sie die ReplicaSet-Konfiguration unten in Zeile 34 hinzu.
#replication: replication: oplogSizeMB: 1 replSetName: rs0
Speichern und beenden.
Starten Sie den MongoDB-Dienst neu:
systemctl restart mongod
Als nächstes starten Sie die MongoDB-Shell und starten das ReplicaSet:
export LC_ALL=C mongo rs.initiate()
Initiiere Ergebnisse:
{ "info2" : "no configuration specified. Using a default configuration for the set", "me" : "nyanko-sensei:27017", "ok" : 1 }
Wenn das Ergebnis eine andere Zahl ist, dann bedeutet das, dass etwas nicht stimmt.
Schritt 4 – npm und nodejs installieren
In diesem Schritt werden wir nodejs und npm aus dem Ubuntu-Repository installieren. Dann werden wir das n-Paket mit dem Befehl npm installieren, um eine bestimmte nodejs-Version zu erhalten. Die neueste Rocket.Chat-Version benötigt nodejs 4.5.
Installieren Sie nodejs und npm aus dem Ubuntu-Repository:
apt-get install nodejs npm
Als nächstes installieren Sie das n-Paket global auf dem System mit dem Befehl npm:
npm install -g n
Verwenden Sie den Befehl n, um nodejs Version 4.5 herunterzuladen und einzustellen.
sudo n 4.5
Überprüfen Sie abschließend die nodejs-Version:
node --version npm -v
Schritt 5 – Rocket.Chat Server installieren
Wir werden Rocket.Chat (neueste Version) im Verzeichnis /var/wwww/ installieren.
Laden Sie die neueste Version von Rocket.Chat herunter und extrahieren Sie sie:
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz tar -xzvf rocket.chat.tgz
Erstellen Sie ein neues Verzeichnis /var/www/ und benennen Sie das Bundle-Verzeichnis in’Rocket.Chat‘ um und verschieben Sie es dann:
mkdir -p /var/www/ mv bundle Rocket.Chat mv Rocket.Chat /var/www/
Gehen Sie in das Verzeichnis Rocket.Chat, setzen Sie einige erforderliche Umgebungsvariablen und starten Sie den Rocket.Chat-Server.
cd /var/www/Rocket.Chat/ cd programs/server/ npm install
cd ../../
export ROOT_URL=http://192.168.1.110:3000/
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js
Rocket.Chat ist installiert, öffnen Sie Ihren Webbrowser und besuchen Sie die Server-IP-Adresse auf Port 3000. – 192.168.1.110:3000.
Schritt 6 – Nginx als Reverse Proxy für Rocket.Chat installieren und konfigurieren
In Schritt 5 haben wir Rocket.Chat als eigenständige Anwendung installiert. In diesem Tutorial werden wir Rocket.Chat hinter dem Nginx-Webserver auf https-Verbindungen ausführen, um eine sichere und schnelle Einrichtung zu ermöglichen.
Installiere Nginx mit dem Befehl apt:
apt-get install nginx
Erstellen Sie ein neues SSL-Verzeichnis:
mkdir -p /etc/nginx/ssl/ cd /etc/nginx/ssl/
Erzeugen Sie die SSL-Zertifikatsdatei und ändern Sie die Berechtigung der Schlüsseldatei:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocket-chat.crt -keyout /etc/nginx/ssl/rocket-chat.key chmod 400 rocket-chat.key
Als nächstes erstellen Sie eine neue Raketen-Chat-Virtual-Host-Datei im vom Standort verfügbaren Verzeichnis.
cd /etc/nginx/sites-available/ vim rocket-chat
Fügen Sie die neue virtuelle Host-Konfiguration unten ein:
# Upstreams upstream backend { server 127.0.0.1:3000; } # Redirect Options server { listen 80; server_name rocket-chat.co; # enforce https return 301 https://$server_name$request_uri; } # HTTPS Server server { listen 443; server_name rocket-chat.co; error_log /var/log/nginx/rocketchat.access.log; ssl on; ssl_certificate /etc/nginx/ssl/rocket-chat.crt; ssl_certificate_key /etc/nginx/ssl/rocket-chat.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE location / { proxy_pass http://192.168.1.110:3000/; 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 beenden.
Ich werde Rocket.Chat mit dem neuen Domainnamen ‚rocket-chat.co‘ betreiben. Bitte verwenden Sie Ihren eigenen Domainnamen und ersetzen Sie ihn in den Konfigurationsdateien, wo immer er erscheint.
Aktivieren Sie den virtuellen Rocket.Chat-Host und testen Sie die Konfigurationsdatei:
ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat nginx -t
Achten Sie darauf, dass keine Fehlermeldungen vorliegen.
Starten Sie den Nginx-Webserver neu:
systemctl restart nginx
Schritt 7 – Testen von Rocket.Chat
Nginx wurde als Reverse-Proxy für den Rocket.Chat-Server konfiguriert und wir müssen die Umgebungsvariablen aktualisieren, um Rocket.Chat jetzt auszuführen.
Führen Sie Rocket.Chat mit den neuen Variablen unten aus:
cd /var/www/Rocket.Chat/ export ROOT_URL=https://rocket-chat.co export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0 export PORT=3000 node main.js
Öffnen Sie in Ihrem Webbrowser die URL: rocket-chat.co (oder Ihren eigenen Domainnamen) – Sie werden zur https-Verbindung weitergeleitet.
Erstellen Sie Ihr erstes Admin-Konto, indem Sie auf den Link „Neues Konto registrieren“ klicken.
Geben Sie Ihren Namen, Ihre E-Mail-Adresse und Ihr Passwort ein und klicken Sie dann auf „NEUES KONTO REGISTRIEREN„.
Bestätigen Sie, die neue’SITE-URL‘ mit dem Domänennamen zu verwenden. Klicken Sie auf „Ja„.
Registrieren Sie den Benutzernamen, klicken Sie auf‘Diesen Benutzernamen verwenden‚.
Der Admin-Benutzer wurde erstellt und hier ist das Rocket.Chat Dashboard. Du kannst mit dem Chatten beginnen und einen eigenen Kanal für dein Team erstellen.
Rocket.Chat wurde mit dem Nginx Webserver auf ubuntu 16.04 installiert.
Ergebnisse, nachdem wir die neuen Umgebungsvariablen verwendet haben: