Technologieführer

Rocket.Chat auf Ubuntu 16.04: Eigener Chatserver mit Nginx-Proxy

6 min read Anleitung Aktualisiert 21 Oct 2025
Rocket.Chat auf Ubuntu 16.04 mit Nginx installieren
Rocket.Chat auf Ubuntu 16.04 mit Nginx installieren

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

  1. Abhängigkeiten installieren
  2. MongoDB installieren
  3. MongoDB ReplicaSet konfigurieren
  4. Node.js und npm verwalten
  5. Rocket.Chat installieren und starten
  6. Nginx als Reverse-Proxy mit HTTPS konfigurieren
  7. 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 su

Repositorys aktualisieren:

apt-get update

Benötigte Pakete installieren:

apt-get install curl graphicsmagick build-essential

Hinweis: 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 EA312927

Repository 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.list

Repository aktualisieren und MongoDB installieren:

apt-get update
apt-get install mongodb-org

MongoDB beim Systemstart aktivieren und starten:

systemctl enable mongod
systemctl start mongod

MongoDB 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.conf

Setzen Sie in der Netzsektion die Bind-IP aus (damit nicht nur localhost verwendet wird):

net:
    port: 27017
    #bindIp: 127.0.0.1

Fügen Sie die Replikationskonfiguration hinzu:

#replication:
replication:
   oplogSizeMB: 1
   replSetName: rs0

Speichern, dann MongoDB neu starten:

systemctl restart mongod

Im 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.

Screenshot: MongoDB ReplicaSet-Konfiguration und Ausgabe der rs.initiate() Meldung

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 npm

Das Paket “n” global installieren:

npm install -g n

Node.js Version 4.5 installieren und setzen:

sudo n 4.5

Versionen prüfen:

node --version
npm -v

Screenshot: NodeJS-Version mit dem n-Befehl verwalten

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.tgz

Verzeichnis 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

Screenshot: Rocket.Chat-Installation auf Ubuntu

Öffnen Sie im Browser die Adresse http://192.168.1.110:3000 um die Web-Oberfläche zu erreichen.

Screenshot: Rocket.Chat läuft lokal

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 nginx

SSL-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.key

Konfiguration für die virtuelle Host-Datei erstellen:

cd /etc/nginx/sites-available/
vim rocket-chat

Beispielkonfiguration 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 nginx

Hinweis: 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.js

Rufen 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.

Screenshot: Rocket.Chat über HTTPS mit Nginx

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

Screenshot: Registrierung eines Admin-Benutzers

Screenshot: Site-URL Bestätigung

Screenshot: Benutzername bestätigen

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

Screenshot: Rocket.Chat-Administrations-Dashboard

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.target

Backup & 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

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE