Wenn Sie nach einer selbst gehosteten Open-Source-Chat-Plattform suchen, kann Rocketchat die beste Option sein. Rocket Chat kann als Alternative zu verschiedenen Kommunikationskanälen wie Slack, Mattermost usw. verwendet werden. Rocket Chat bietet verschiedene Funktionen wie Gruppenchats, Videokonferenzen und Sie können Live-Chat mit anderen Plattformen integrieren. In diesem Artikel erfahren wir, wie Sie ein selbst gehostetes Rocketchat-System mit SSL-Zertifikaten von let’s encrypt einrichten.
Voraussetzungen
- Neuer Ubuntu-Server
- Root-Zugriff oder sudo-privilegiertes Konto
- Ein Domainname, auf den die Server-IP verweist
- Internetverbindung zum Herunterladen von Anwendungen
Installieren Sie erforderliche Pakete und Abhängigkeiten
Aktualisieren Sie vor der Installation der Pakete das Ubuntu-System mit dem folgenden Befehl
$ sudo apt-get update -y
Sobald die Systemaktualisierung abgeschlossen ist, konfigurieren Sie apt mit dem folgenden Befehl, um MongoDB-Pakete zu installieren.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Ausgabe :
Um Node.js so zu konfigurieren, dass es mit apt installiert werden kann Paket-Manager führen Sie den folgenden Befehl aus.
$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Ausgabe:
Installieren Sie nun die Build-Tools Nodejs, MongoDB und graphicsmagick :
$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
Ausgabe :
Installieren Sie nun inherits und n und die von Rocketchat benötigte Node-Version.
$ sudo npm install -g inherits n && sudo n 12.18.4
Führen Sie den folgenden Befehl aus, um die installierte Version von Nodejs zu überprüfen.
$ node --version
Ausgabe:
v12.18.4
Installieren Sie Rocketchat
Wir haben die erforderlichen Abhängigkeiten bereits installiert. In diesem Schritt laden wir nun die Rocket Chat-Anwendung herunter und installieren sie auf Ubuntu 20.04.
Laden Sie die neueste Version von Rocketchat mit dem folgenden Befehl herunter.
$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Ausgabe :
Extrahieren Sie die heruntergeladene Anwendung. Sie können Ihr bevorzugtes Verzeichnis zum Speichern der extrahierten Datei auswählen. In diesem Beispiel habe ich die Datei in /tmp extrahiert Verzeichnis.
$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp
Installieren Sie nun Rocketchat. In diesem Artikel /opt Verzeichnis wird für die Installation verwendet. Sie können ein beliebiges Verzeichnis bevorzugen.
$ cd /tmp/bundle/programs/server && npm install
Ausgabe:
$ sudo mv /tmp/bundle /opt/Rocket.Chat
Konfigurieren Sie den Rocket.Chat-Dienst
Erstellen Sie einen RocketChat-Benutzer, legen Sie die richtige Berechtigung für das Rocket.Chat-Anwendungsverzeichnis fest und erstellen Sie den Rocket.Chat-Dienst.
$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Führen Sie zum Erstellen von rocketchat.service den folgenden Befehl auf Ihrem Terminal aus
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service [Service] ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocketchat Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000 [Install] WantedBy=multi-user.target EOF
Beispiel:
Jetzt müssen wir eine MongoDB-Speicher-Engine und -Replikation einrichten. Aktivieren und starten Sie danach mongoDB als:
$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
$ mongo --eval "printjson(rs.initiate())"
Ausgabe :
Starten und aktivieren Sie nun den Rocket.Chat-Dienst mit dem folgenden Befehl:
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Überprüfen Sie den Status des Rocket.Chat-Dienstes“
$ sudo systemctl status rocketchat
Ausgabe:
Nginx-Installation und Reverse-Proxy-Konfiguration
Um den nginx-Reverse-Proxy für Rocket.Chat zu konfigurieren, installieren Sie nginx mit dem folgenden Befehl
$ sudo apt install nginx
Erstellen Sie eine virtuelle nginx-Hostkonfiguration für Rocketchat.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
Fügen Sie nun den folgenden Inhalt ein und speichern Sie die Datei
upstream backend { server 127.0.0.1:3000; } server { listen 80; server_name your_rocketchat_domain_name; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; location / { proxy_pass http://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; } }
Überprüfen Sie die nginx-Konfigurationsdatei
$ sudo nginx -t
Starten Sie den Nginx-Dienst neu und aktivieren Sie ihn
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
Greifen Sie jetzt auf Ihre Rocketchat-Domain zu als
http://ihre_rocketchat_domain
Sie erhalten einen Web-Setup-Assistenten, schließen ihn ab und beginnen mit der Verwendung von Rocket.Chat
Nginx als SSL-Reverse-Proxy
Wir haben Rocket.Chat nur mit HTTP-Reverse-Proxy konfiguriert. Um nginx als SSL-Reverse-Proxy zu konfigurieren, benötigen Sie Zertifikatsdateien. Bearbeiten Sie die nginx vhost-Datei und fügen Sie den folgenden Inhalt ein.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend { server 127.0.0.1:3000; } server { listen 443 ssl; Server_name your_rocketchat_domain_name; client_max_body_size 200M; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; ssl_certificate /etc/nginx/certificate.crt; ssl_certificate_key /etc/nginx/private.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://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-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
Hinweis:
Generieren oder erwerben Sie ein SSL-Zertifikat und zeigen Sie im folgenden Konfigurationsparameter auf das Verzeichnis Ihrer Zertifikatsdatei.
ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]
Überprüfen Sie die nginx-Konfigurationsdatei
sudo nginx -t
Starten Sie den nginx-Dienst neu
sudo systemctl restart nginx
Auf Rocketchat zugreifen
Sobald der Reverse-Proxy konfiguriert ist, können Sie auf Ihren Rocket.Chat zugreifen, indem Sie die folgende URL verwenden:
https://you_rocket_chat_domain
Sie erhalten den Rocket.Chat-Web-Setup-Assistenten. Schließen Sie die Einrichtung ab und beginnen Sie mit der Nutzung Ihres selbst gehosteten Rocket.Chat.
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man selbst gehosteten Rocket-Chat auf Ubuntu 20.04 installiert und konfiguriert. Außerdem habe ich behandelt, wie man nginx für den Reverse-Proxy mit Let’s encrypt SSL-Zertifikaten installiert und konfiguriert.