Installieren, Konfigurieren und Bereitstellen von Rocket.Chat unter Ubuntu 14.04

Einführung

http://rocket.chat [Rocket.Chat] ist eine Open-Source-Messaging-App, die mit Meteor erstellt wurde. Es unterstützt Videokonferenzen, Dateifreigabe, Sprachnachrichten, verfügt über eine voll funktionsfähige API und vieles mehr. Rocket.Chat ist ideal für diejenigen, die die volle Kontrolle über ihre Kommunikation haben möchten.

In diesem Tutorial werden wir Rocket.Chat auf einem neuen Ubuntu-Server installieren und konfigurieren sowie einen Reverse-Proxy über Nginx einrichten, um die Sicherheit zu erhöhen und den Zugriff auf Rocket.Chat zu vereinfachen. Sobald wir fertig sind, verfügen Sie über eine funktionsfähige Instanz von Rocket.Chat, auf die Sie praktisch von überall aus zugreifen können.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Ubuntu 14.04 Server mit einem empfohlenen Minimum von 1 GB RAM

  • Nicht-Root-Benutzer mit Sudo-Rechten (Initial Server Setup with Ubuntu 14.04 erklärt, wie dies eingerichtet wird. )

  • Eine vollständig registrierte Domain. Sie können eine unter https://namecheap.com [Namecheap] erwerben oder kostenlos unter Freenom herunterladen.

  • Stellen Sie sicher, dass Ihr Domainname so konfiguriert ist, dass er auf Ihren Server verweist. Lesen Sie this tutorial, wenn Sie Hilfe benötigen.

  • Ein SSL-Zertifikat. Erstellen Sie ein selbstsigniertes Zertifikat, https: // www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04[erhalten Sie einen kostenlosen von Let’s Encrypt] oder kaufen Sie einen von einem anderen Anbieter.

Schritt 1 - Abhängigkeiten installieren

In diesem Abschnitt installieren wir einige der Abhängigkeiten von Rocket.Chat, z. B. MongoDB und NodeJS.

Beginnen wir mit der Inbetriebnahme von MongoDB. Zuerst müssen wir einen Keyserver hinzufügen, damit wir auf die Pakete zugreifen können.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Dann müssen wir das zu verwendende Repo einstellen.

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Aktualisieren Sie nun die Paketlisten.

sudo apt-get update

Nachdem das erledigt ist, können wir "+ npm ", " mongodb-org ", " curl " und " graphicsmagick +" installieren. Dies sind alles Abhängigkeiten von Rocket.Chat:

sudo apt-get install npm mongodb-org curl graphicsmagick

Wir müssen ein Paket mit NPM installieren, damit wir die Knotenversion ändern können:

sudo npm install -g n

Verwenden Sie dieses Paket, um die Knotenversion auf + 0.10.40 + zu ändern.

sudo n 0.10.40

Als Nächstes installieren wir Rocket.Chat selbst und nehmen einige Konfigurationsschritte vor.

Schritt 2 - Installieren von Rocket.Chat

Laden Sie zunächst die neueste stabile Version von Rocket.Chat mit + curl + herunter.

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

Erweitern Sie das soeben heruntergeladene Archiv mit dem Befehl + tar +.

tar zxvf rocket.chat.tgz

Dies erweitert das gesamte Archiv in ein Verzeichnis mit dem Namen "+ bundle ". Verschieben wir den Inhalt des " bundle +" - Verzeichnisses in etwas, an das wir uns leichter erinnern können.

mv bundle Rocket.Chat

Wechseln Sie in das Verzeichnis, in dem Rocket.Chat mit NPM installiert wird.

cd Rocket.Chat/programs/server

Installieren Sie Rocket.Chat.

npm install

Gehen Sie zurück in das übergeordnete Verzeichnis + Rocket.Chat +.

cd ../..

Wir müssen einige Umgebungsvariablen einrichten, um Rocket.Chat dabei zu unterstützen, Dinge wie URLs, Ports und mehr im Auge zu behalten.

Stellen Sie zuerst die Variable "+ ROOT_URL +" auf Ihren Domainnamen ein. Dies muss in Form einer URL erfolgen.

export ROOT_URL=https:///

Legen Sie die URL von MongoDB unter der Variablen "+ MONGO_URL +" fest.

export MONGO_URL=mongodb://localhost:27017/rocketchat

Setzen Sie die Variable "+ PORT " auf " 3000 +".

export PORT=3000

Jetzt können Sie Rocket.Chat mit dem folgenden Befehl ausführen:

node main.js

Wenn es keine Fehler gibt, funktioniert es! Stoppen Sie Rocket.Chat vorerst mit + CTRL + C +. Nach der Installation von Rocket.Chat müssen wir Nginx so einrichten, dass der gesamte Datenverkehr mithilfe eines Reverse-Proxys per Proxy übertragen wird. Auf diese Weise wird der Zugriff auf Rocket.Chat vereinfacht und die gesamte Kommunikation mit Ihrem SSL-Zertifikat verschlüsselt.

Schritt 3 - Einrichten eines Reverse Proxy mit Nginx

Installieren Sie zunächst Nginx.

sudo apt-get install -y nginx

Verschieben Sie den privaten Schlüssel Ihres Zertifikats nach "+ / etc / nginx / certificate.key".

sudo cp  /etc/nginx/certificate.key

Wenn Sie beispielsweise ein Let’s Encrypt-Zertifikat erstellt haben, verwenden Sie "+ sudo cp /etc/letsencrypt/live//privkey.pem / etc / nginx / certificate.key +".

Ändern Sie die Berechtigungen des Schlüssels, damit nicht autorisierte Diebe keinen Zugriff erhalten.

sudo chmod 400 /etc/nginx/certificate.key

Kopieren Sie das Zertifikat selbst nach + / etc / nginx / certificate.crt +.

sudo cp  /etc/nginx/certificate.crt

Wenn Sie ein Let’s Encrypt-Zertifikat erstellt haben, ähnelt der Befehl "+ sudo cp /etc/letsencrypt/live//cert.pem / etc / nginx / certificate.crt +".

Wir werden eine völlig neue Konfiguration für Rocket.Chat erstellen, sodass Sie die Standardeinstellung löschen können, um sie ein wenig zu vereinfachen.

sudo rm /etc/nginx/sites-enabled/default

Wenn Sie diese Datei aus irgendeinem Grund in Zukunft benötigen, ist sie weiterhin unter "+ / etc / nginx / sites-available / default +" verfügbar

Erstellen Sie ein neues + / etc / nginx / sites-enabled / default + mit + nano + oder Ihrem bevorzugten Texteditor.

sudo nano /etc/nginx/sites-enabled/default

Zuerst fügen wir einen "+ upstream +" - Block hinzu:

/ etc / nginx / sites-enabled / default

# Upstreams
upstream backend {
   server 127.0.0.1:3000;
}

Erstellen wir darunter einen "+ server " - Block. Der erste Teil teilt Nginx mit, an welchem ​​Port auf Verbindungen gewartet werden soll, in diesem Fall ": 443 ". Außerdem erfahren Sie, wie unser Hostname lautet. Vergessen Sie nicht, "+" durch Ihren Domainnamen zu ersetzen.

/ etc / nginx / sites-enabled / default

server {
   listen 443;
   server_name ;

Darunter teilen wir Nginx mit, wo die Zugriffsprotokolle von Rocket.Chat gespeichert werden sollen, und verweisen auf das SSL-Zertifikat und den Schlüssel, die wir in + / etc / nginx / certificate.key + und + / etc / nginx / certificate.crt + abgelegt haben beziehungsweise.

/ etc / nginx / sites-enabled / default

   error_log /var/log/nginx/rocketchat.access.log;

   ssl on;
   ssl_certificate /etc/nginx/certificate.crt;
   ssl_certificate_key /etc/nginx/certificate.key;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

Und jetzt beenden wir die Konfiguration mit einem + location + Block:

   location / {
       proxy_pass http://: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;
   }
}

Hier ist die vollständige Datei als Referenz:

/ etc / nginx / sites-enabled / default

server {
   listen 443;
   server_name ;
   error_log /var/log/nginx/rocketchat.access.log;

   ssl on;
   ssl_certificate /etc/nginx/certificate.crt;
   ssl_certificate_key /etc/nginx/certificate.key;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

   location / {
       proxy_pass http://: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 schließen Sie die Datei. Starten Sie Nginx abschließend neu, um den Auftrag abzuschließen.

sudo service nginx restart

Überprüfen Sie, ob Nginx ausgeführt wird.

sudo service nginx status

Wenn die folgende Meldung angezeigt wird, ist Nginx aktiv:

* nginx is running

Wenn eine Fehlermeldung angezeigt wird, überprüfen Sie die Protokolle unter "+ / var / log / nginx / rocketchat.access.log " und " / var / log / nginx / access.log " oder die Fehlerprotokolle unter " / var / log / nginx / error.log + . Sie können auch `+ nginx -t + ausführen, um Ihre Nginx-Konfigurationsdatei zu überprüfen. Dort werden die meisten Fehler angezeigt.

Stellen Sie sicher, dass Sie sich noch im Ordner "+ Rocket.Chat +" befinden.

cd ~/Rocket.Chat

Führen Sie dann den folgenden Befehl aus, um Rocket.Chat erneut zu starten.

node main.js

Rocket.Chat sollte jetzt unter "+ https: // +" laufen. Sie können dies überprüfen, indem Sie diese Adresse in Ihrem bevorzugten Browser aufrufen.

Im nächsten Abschnitt konfigurieren wir Rocket.Chat so, dass es beim Booten automatisch mit einem Knotenmodul namens "+ forever-service +" ausgeführt wird.

Schritt 4 - Konfigurieren von Rocket.Chat als Dienst

+ forever-service + generiert automatisch Init-Skripte für Node-Apps wie Rocket.Chat. Zu Beginn müssen wir "+ forever " selbst installieren, wovon " forever-service +" abhängt.

sudo npm install -g forever

Installieren Sie dann "+ forever-service".

sudo npm install -g forever-service

Erstellen Sie einen Service mit + forever-service +:

sudo forever-service install -s main.js -e "ROOT_URL=https:/// MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" rocketchat
  • Das "+ -s " -Flag gefolgt von " main.js " gibt an, dass unser Skript " main.js " heißt, nicht " app.js +" (Standardeinstellung).

  • Das Flag "+ -e " gefolgt von "" ROOT_URL = https: /// MONGO_URL = mongodb: // localhost: 27017 / rocketchat PORT = 3000 "+" übergibt unsere Umgebungsvariablen an forever-service.

  • Schließlich teilt + rocketchat + forever-service mit, wie der Dienst benannt werden soll.

Ausführlichere Informationen zur Syntax von forever-service erhalten Sie, indem Sie "+ forever-service --help +" ausführen.

Jetzt können wir Rocket.Chat starten. Dadurch wird der von "+ forever-service " erstellte " rocketchat +" -Dienst initialisiert.

sudo start rocketchat

Rocket.Chat sollte nun unter der in Schritt 2 festgelegten URL aktiv sein. Stellen Sie sicher, dass Sie hier HTTPS verwenden.

Rocket.Chat sollte fertig sein. Im nächsten Abschnitt fügen wir Rocket.Chat unseren ersten Administrator hinzu und machen eine Tour durch die Benutzeroberfläche.

Schritt 5 - Konfigurieren und Verwenden von Rocket.Chat

Besuchen Sie die URL, für die wir Rocket.Chat eingerichtet haben. Sie sollten so etwas sehen:

Klicken Sie auf * Registrieren Sie ein neues Konto * und geben Sie die Benutzerinformationen für Ihren ersten Administrator ein.

Klicken Sie auf "Senden" und wählen Sie einen Benutzernamen für Ihren neuen Benutzer:

image: https: //assets.digitalocean.com/articles/rocket_chat/sjw3Anc.png [Legen Sie einen Benutzernamen für Ihren neuen Benutzer fest]

Nachdem Sie auf * Diesen Benutzernamen verwenden * geklickt haben, werden Sie zur Startseite weitergeleitet:

Das ist alles! Rechts sehen Sie, dass bereits ein * # allgemeiner * Kanal für Sie erstellt wurde. Wenn Sie darauf klicken, werden Sie in den Chatroom geleitet. Fühlen Sie sich frei, ein bisschen herumzuspielen.

image: https: //assets.digitalocean.com/articles/rocket_chat/JHXi3Au.png

Machen wir jetzt einen Rundgang durch die Benutzeroberfläche. Lassen Sie uns zunächst einen neuen Kanal erstellen, indem Sie auf das kleine Plus-Symbol neben "Kanäle" klicken:

image: https: //assets.digitalocean.com/articles/rocket_chat/2eCYawM.png [Neuen Kanal erstellen]

Nennen Sie es wie Sie möchten:

image: https: //assets.digitalocean.com/articles/rocket_chat/bLTOD84.png [hier Bildbeschreibung eingeben]

Klicken Sie nun auf "Speichern" und Sie werden zu Ihrem neuen Kanal weitergeleitet.

Um auf die Administrationsoberfläche zuzugreifen, klicken Sie auf den kleinen Pfeil neben Ihrem Benutzernamen. Es öffnet sich ein Menü:

image: https: //assets.digitalocean.com/articles/rocket_chat/54LxGdj.png [Über dieses Menü können Sie Ihren Status festlegen und auf Dinge wie das Menü Administration zugreifen.]

Klicken Sie auf * Administration *. Es wird ein zweites Menü angezeigt:

image: https: //assets.digitalocean.com/articles/rocket_chat/LPrzgYZ.png [Dies ist das Administrationsmenü.]

Über dieses Menü können wir jeden Aspekt unserer Rocket.Chat-Installation konfigurieren und verwalten. Im Bereich * Benutzer * können wir die Berechtigungen einzelner Benutzer verwalten und sogar neue einladen. Wir können unserer Installation auch weitere Funktionen hinzufügen, indem wir die Ansicht * Integrations * verwenden.

Fazit

Herzliche Glückwünsche! Sie haben jetzt Ihre eigene Chat-Lösung für Sie und Ihr Team: Rocket.Chat, das auf einem Ubuntu 14.04-Server ausgeführt wird. Es wird so eingestellt, dass es beim Booten automatisch mit "+ forever-service +" gestartet wird, und ist mit einem Nginx-Reverse-Proxy vollständig mit SSL ausgestattet. Möglicherweise möchten Sie jetzt weitere Mitglieder hinzufügen, weitere Kanäle erstellen oder den Abschnitt Integrationen im Menü Verwaltung aufrufen. Habe Spaß!