Rocket.Chat auf Ubuntu 16.04: Eigener Chatserver mit Nginx-Proxy
Wichtig: Verwenden Sie in Produktivumgebungen stets eigene Domainnamen, sichere Zertifikate und testen Sie die Konfiguration in einer isolierten Umgebung, bevor Sie Nutzer migrieren.
Ziel und Varianten
Primäre Absicht: Rocket.Chat lokal installieren und per Nginx absichern. Verwandte Varianten: Docker-Deployment, Snap/Marketplace-Installationen, Managed-Hosting, HA-Cluster mit mehreren MongoDB-Knoten.
Kurze Begriffserklärung
- Rocket.Chat: Open-Source-Team-Chat-Plattform.
- ReplicaSet: MongoDB-Replikationsgruppe für Ausfallsicherheit und Oplog.
Voraussetzungen
- Ubuntu 16.04 LTS (Xenial)
- Root-Rechte oder sudo
- Eigene Domain (empfohlen) für HTTPS
- Mindestens 1 GB RAM (mehr für produktive Nutzung)
Übersicht der Schritte
- Abhängigkeiten installieren
- MongoDB installieren
- MongoDB ReplicaSet konfigurieren
- Node.js und npm verwalten
- Rocket.Chat installieren und starten
- Nginx als Reverse-Proxy mit HTTPS konfigurieren
- Testen und Administration
Schritt 1 - Rocket.Chat-Abhängigkeiten installieren
Melden Sie sich per SSH an und wechseln Sie zu root:
ssh [email protected]
sudo suRepositorys aktualisieren:
apt-get updateBenötigte Pakete installieren:
apt-get install curl graphicsmagick build-essentialHinweis: GraphicsMagick wird für Bildoperationen in Nachrichten verwendet.
Schritt 2 - MongoDB installieren
Rocket.Chat benötigt MongoDB. Wir verwenden hier MongoDB 3.2 aus dem offiziellen Repository.
MongoDB-Keyserver hinzufügen:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927Repository hinzufügen (abhängig von lsb_release -sc):
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.listRepository aktualisieren und MongoDB installieren:
apt-get update
apt-get install mongodb-orgMongoDB beim Systemstart aktivieren und starten:
systemctl enable mongod
systemctl start mongodMongoDB läuft standardmäßig auf Port 27017.
Schritt 3 - MongoDB ReplicaSet konfigurieren
Rocket.Chat profitiert von einem ReplicaSet (Oplog). Für kleinere Installationen genügt ein einzelner Knoten im ReplicaSet-Modus.
mongod.conf bearbeiten:
vim /etc/mongod.confSetzen Sie in der Netzsektion die Bind-IP aus (damit nicht nur localhost verwendet wird):
net:
port: 27017
#bindIp: 127.0.0.1Fügen Sie die Replikationskonfiguration hinzu:
#replication:
replication:
oplogSizeMB: 1
replSetName: rs0Speichern, dann MongoDB neu starten:
systemctl restart mongodIm Mongo-Shell das ReplicaSet initiieren:
export LC_ALL=C
mongo
rs.initiate()Erwartete Ausgabe (Beispiel):
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "nyanko-sensei:27017",
"ok" : 1
}Achten Sie darauf, dass “ok” den Wert 1 hat.

Schritt 4 - npm und Node.js installieren
Rocket.Chat benötigt Node.js (historisch Version 4.x für ältere Rocket.Chat-Releases). Hier zeigen wir die Installation und Verwaltung der Node-Version mit dem npm-Paket “n”.
Node.js und npm aus dem Repository installieren:
apt-get install nodejs npmDas Paket “n” global installieren:
npm install -g nNode.js Version 4.5 installieren und setzen:
sudo n 4.5Versionen prüfen:
node --version
npm -v
Wichtig: Aktuelle Rocket.Chat-Versionen benötigen neuere Node.js- und Mongo-Versionen. Prüfen Sie vor einer Produktivinstallation die Rocket.Chat-Dokumentation auf kompatible Versionen.
Schritt 5 - Rocket.Chat-Server installieren
Wir installieren Rocket.Chat unter /var/www/.
Herunterladen und entpacken der aktuellen Version:
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar -xzvf rocket.chat.tgzVerzeichnis erstellen und Bundle umbenennen:
mkdir -p /var/www/
mv bundle Rocket.Chat
mv Rocket.Chat /var/www/In das Rocket.Chat-Verzeichnis wechseln, Abhängigkeiten installieren und Server starten (Beispiel mit lokaler IP):
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
Öffnen Sie im Browser die Adresse http://192.168.1.110:3000 um die Web-Oberfläche zu erreichen.

Schritt 6 - Nginx als HTTPS-Reverse-Proxy konfigurieren
Für sichere Verbindungen empfiehlt sich Nginx als Reverse-Proxy vor Rocket.Chat.
Nginx installieren:
apt-get install nginxSSL-Verzeichnis anlegen:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/Selbstsigniertes Zertifikat erzeugen (für Tests) und Schlüsselberechtigungen setzen:
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.keyKonfiguration für die virtuelle Host-Datei erstellen:
cd /etc/nginx/sites-available/
vim rocket-chatBeispielkonfiguration einfügen (passen Sie server_name und proxy_pass an):
# 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;
}
}Aktivieren und prüfen:
ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat
nginx -t
systemctl restart nginxHinweis: Ersetzen Sie “rocket-chat.co” durch Ihre Domain und verwenden Sie für Produktivsysteme ein gültiges Zertifikat von einer vertrauenswürdigen CA (z. B. Let’s Encrypt).
Schritt 7 - Rocket.Chat mit HTTPS testen
Starten Sie Rocket.Chat mit den für HTTPS relevanten Umgebungsvariablen:
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.jsRufen Sie im Browser https://rocket-chat.co (oder Ihre Domain) auf. Erstellen Sie das erste Admin-Konto über “Register a new account” in der UI.

Folgen Sie dem Registrierungsablauf, bestätigen Sie die SITE-URL und legen Sie Benutzer an.



Nach erfolgreicher Registrierung sehen Sie das Dashboard und können Channels anlegen und Nutzer einladen.

Betrieb, Sicherheit und Best Practices
- Verwenden Sie für produktive Systeme keine selbstsignierten Zertifikate; nutzen Sie Let’s Encrypt oder eine andere CA.
- Trennen Sie Datenbank und Applikation auf verschiedene Hosts für bessere Skalierbarkeit.
- Setzen Sie ein Firewall-Subnetz: Nur Nginx sollte von außen erreichbar sein (Ports 80/443). MongoDB nur intern (27017).
- Automatisieren Sie Rocket.Chat als Systemdienst (systemd unit), damit der Dienst bei Neustart automatisch startet.
Beispiel systemd-Unit (als Ausgangspunkt):
[Unit]
Description=Rocket.Chat server
After=network.target mongod.target
[Service]
Type=simple
Environment=ROOT_URL=https://rocket-chat.co
Environment=MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
Environment=PORT=3000
ExecStart=/usr/bin/node /var/www/Rocket.Chat/main.js
Restart=always
[Install]
WantedBy=multi-user.targetBackup & Wiederherstellung (Kurz)
- Erstellen Sie regelmäßige mongodump-Backups der Rocket.Chat-Datenbank.
- Bewahren Sie Backups außerhalb des Hosts auf (z. B. S3 oder Backup-Server).
- Testen Sie Wiederherstellungen in einer isolierten Umgebung.
Kompatibilität und Migrationshinweise
- Node.js: Ältere Rocket.Chat-Versionen verlangen Node 4.x; neuere Releases benötigen Node 8/10/12+. Prüfen Sie die Release-Notes.
- MongoDB: Verwenden Sie die von Rocket.Chat unterstützte Major-Version (3.2, 3.6, 4.x je nach Release).
- Wenn Sie auf neuere Rocket.Chat-Versionen migrieren, planen Sie Downtime für DB-Migrationen und testen Sie Oplog/ReplicaSet-Konfigurationen vorher.
Sicherheits-Härtung (Actionable Liste)
- Aktivieren Sie HTTPS mit starken Cipher-Suites; deaktivieren Sie TLSv1/TLSv1.1, wenn möglich.
- Setzen Sie HSTS-Header in Nginx.
- Schützen Sie den Admin-Account mit einem starken Passwort und 2FA (sofern unterstützt).
- Beschränken Sie Zugriffe auf MongoDB per Firewall und IP-Whitelist.
- Führen Sie regelmäßige Updates für OS, Node, Rocket.Chat und Nginx durch.
Checklisten (Rollenbasiert)
Administrator:
- DNS-Eintrag für domain -> Server IP
- Firewall Regeln (80/443 offen)
- Systemd-Service erstellen und testen
- Backups planen
DevOps / Operator:
- Monitoring für Node- und Mongo-Prozesse konfigurieren
- Log-Rotation für Nginx und Rocket.Chat implementieren
- Alerting für ReplicaSet-Probleme einrichten
Entwickler:
- OAuth/SAML-Integrationen in einer Testumgebung prüfen
- Integrationen (Bots, Webhooks) in einer Sandbox vorab testen
Troubleshooting - schnelle Lösungen
- Problem: “ok != 1” bei rs.initiate() => Prüfen Sie mongod logs, Netzwerk & bindIp.
- Problem: Websocket-Verbindung bricht ab hinter Nginx => Prüfen Sie proxy_set_header Upgrade/Connection und proxy_http_version 1.1.
- Problem: Login-Probleme nach ROOT_URL-Änderung => In Rocket.Chat Admin UI die SITE-URL bestätigen und ggf. Cache leeren.
Wann diese Anleitung nicht passt
- Wenn Sie einen hochverfügbaren Cluster mit mehreren App-Servern und Multi-Mongo-Knoten benötigen, ist ein Design mit Load-Balancer, mehreren Rocket.Chat-Instanzen und mindestens drei MongoDB-Replikat-Knoten erforderlich.
- Für Container-orchestrierte Umgebungen (Kubernetes) verwenden Sie statt dieser Anleitung ein dediziertes Helm-Chart oder ein Docker-Compose-Setup.
Glossar (ein Satz pro Begriff)
- ReplicaSet: Gruppe von MongoDB-Instanzen, die Daten replizieren und ein Oplog bieten.
- Oplog: Operation Log von MongoDB, das für Replikation und Echtzeit-Updates genutzt wird.
Abschlusszusammenfassung
Diese Anleitung beschreibt die manuelle Installation von Rocket.Chat auf Ubuntu 16.04 inklusive MongoDB ReplicaSet und Nginx-HTTPS-Proxy. Beachten Sie Kompatibilitäten von Node.js und MongoDB mit Ihrer gewählten Rocket.Chat-Version und betreiben Sie das System mit sicheren Zertifikaten, regelmäßigen Backups und Monitoring.
Weiterführende Links
- Offizielle Dokumentation: https://rocket.chat/docs/installation/manual-installation/ubuntu/
Ähnliche Materialien
Podman auf Debian 11 installieren und nutzen
Apt-Pinning: Kurze Einführung für Debian
FSR 4 in jedem Spiel mit OptiScaler
DansGuardian + Squid (NTLM) auf Debian Etch installieren
App-Installationsfehler auf SD-Karte (Error -18) beheben