Rocket.Chat und MongoDB in Debian 12 mit Docker Compose
Schlüsselpunkte:
- Du kannst Rocket.Chat und MongoDB im Debian LXC Container mit Docker Compose einrichten, indem du eine
docker-compose.yml
-Datei erstellst und den Container startest. Die Installation ist einfach und kann mit einem Replica-Set für MongoDB ergänzt werden. In folgendem Beispiel führen wie die Befehle als root aus.
Vorbereitung: Docker installieren
- 1) Installiere Docker und Docker Compose auf deinem Debian 12 LXC Server.
- 2) Autostart aktivieren: Damit der Docker-Dämon auch nach einem Debian LinuX Neustart läuft..
- 3) Installierte Version prüfen: zB.: Docker v28.1 - Compose v2.35
- 4) Teste mit hello-world deinen ersten Docker Container.
- 5) Update regelmäßig jeweils dein Debian 12 inkl. Docker.
Vorbereitung zur Rocket.Chat Installation
Schritte zur Installation
- 6) Verzeichnis erstellen: Erstelle das
/opt/rocketchat
Verzeichnis und lege diedocker-compose.yml
YAML Konfigdatei an, sowie ein./data
und ein./upload
Unterverzeichnis. - 7) Container starten: Führe im
/opt/rocketchat
Verzeichnisdocker-compose up -d
aus, um die Container im Hintergrund zu starten. - 8) WordOps Server: Konfiguriere deinen https://chat.ihredomain.at NGINX Proxy-Server für deine Domain und verbinde ihn mit dem Rocket.Chat Docker Port (3000).
- 9) Zugriff prüfen: Öffne einen Browser und gehe zu https://chat.ihredomain.at um Rocket.Chat zu testen und einen Administrator-Benutzer einzurichten.
Hinweise
- Die Daten werden lokal in dem
/opt/rocketchat/data
Docker-Volume gespeichert, was Persistenz gewährleistet, wenn Docker nach einem Rocket.Chat-Update neu gestartet wird. - Dieses Setup ist gut für eine Entwicklungsumgebung. Für eine Produktionsumgebung empfehlen wir zusätzlich - wie unten gezeigt - die Initialisierung eines MongoDB-Replica-Sets, damit die Sicherheit und Skalierbarkeit gewährleistet wird.
🐾 Schritt für Schritt
# 1) Installiere Docker und Docker Compose auf deinem Debian 12:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 2) Damit läuft der Docker-Dämon auch nach einem Debian LinuX Neustart:
systemctl is-enabled docker && systemctl restart docker
systemctl is-enabled containerd && systemctl restart containerd
# 3) Zeigt dir die installierte Version an. (zB.: Docker v28.1 - Compose v2.35)
docker --version && docker compose
# 4) Teste mit deinen ersten Docker Container:
docker run hello-world
# 5) Update jeweils dein Debian 12 inkl. Docker:
apt update && apt dist-upgrade && apt autoremove && apt clean
Weiter geht es mit einer kompakte Anleitung für die Rocket.Chat-Installation, in Debian 12 mit bereits funktionierendem Docker/Docker-Compose:
6) Projektverzeichnis & Docker-Compose-Datei erstellen
mkdir -p /opt/rocketchat/{data,uploads} && cd /opt/rocketchat
nano docker-compose.yml
Füge den Inhalt aus dem nächsten Block in die docker-compose.yml Datei ein:
Inhalt der docker-compose.yml Konfigurationsdatei:
version: '3.8'
services:
rocketchat:
image: rocket.chat:latest
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000" # Nur lokal gebunden (Reverse-Proxy später optional)
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
- ROOT_URL=http://localhost:3000 # Für lokalen Zugriff
- PORT=3000
volumes:
- ./uploads:/app/uploads
depends_on:
- mongo
mongo:
image: mongo:6.0
restart: unless-stopped
volumes:
- ./data/db:/data/db # Persistente DB-Daten
command: mongod --oplogSize 128 --replSet rs0 --storageEngine=wiredTiger
mongo-init:
image: mongo:6.0
command: >
bash -c "for i in `seq 1 30`; do
mongo mongo/rocketchat --eval 'rs.initiate({_id: \"rs0\", members: [{_id: 0, host: \"mongo:27017\"}]})' &&
exit 0;
sleep 1;
done; exit 1"
depends_on:
- mongo
7) Container starten & Replica-Set initialisieren
# Container im Hintergrund starten
docker compose up -d
# Logs des Initialisierungs-Scripts prüfen (MongoDB-Replica-Set)
docker compose logs mongo-init
Erwartete Ausgabe:"ok": 1
im Log, bestätigt das erfolgreiche Replica-Set.
8) NGINX Server in WordOps einrichten
- Konfiguriere deinen https://chat.ihredomain.at NGINX Proxy-Server für deine Domain und verbinde ihn mit dem Rocket.Chat Docker Port (3000).
9) Rocket.Chat-Installation abschließen
- Auf Rocket.Chat zugreifen:
Öffne im Browser https://chat.ihredomain.at - Admin-Account erstellen:
- Erster Nutzer wird automatisch Administrator.
- Benutzername, E-Mail und Passwort festlegen.
- Instanz konfigurieren:
Folge dem Setup-Assistenten (Organisationsname, Sprache, etc.).
Manuelle Replica-Set-Initialisierung (falls nötig)
Falls der mongo-init
-Container fehlschlägt:
# Shell im MongoDB-Container öffnen
docker compose exec mongo mongosh --eval "rs.initiate()"
Wichtige Hinweise
- Datenpersistenz:
- MongoDB-Daten liegen unter
/opt/rocketchat/data/db
. - Uploads (Dateien, Avatare) unter
/opt/rocketchat/uploads
.
- MongoDB-Daten liegen unter
- Backup:
- Stoppe MongoDB-Container:
docker compose stop mongo
- Sichere
/opt/rocketchat/data/db
und/opt/rocketchat/uploads
.
- Stoppe MongoDB-Container:
- Lokaler Zugriff:
Standardmäßig hört Rocket.Chat nur auflocalhost:3000
.
Für Zugriff von anderen Rechnern:- In
docker-compose.yml
beiports
127.0.0.1:3000:3000
durch3000:3000
ersetzen. - Firewall anpassen:
ufw allow 3000/tcp
.
- In
Updates:
cd /opt/rocketchat
docker compose pull # Neue Images ziehen
docker compose up -d # Container aktualisieren
Fehlerbehebung
- ROOT_URL-Mismatch:
Stelle sicher, dassROOT_URL
indocker-compose.yml
exakt der aufgerufenen URL entspricht (inkl. Port).
MongoDB-Verbindungsfehler:
Prüfe, ob das Replica-Set aktiv ist:
docker compose exec mongo mongosh --eval "rs.status()"
Container startet nicht:
docker compose logs rocketchat # Letzte Fehlermeldungen anzeigen
Fertig! Rocket.Chat läuft nun lokal auf Port 3000. Für Produktionseinsatz empfiehlt sich ein Reverse-Proxy (Nginx/Caddy) mit HTTPS – aber das hast du ja bereits im Blick. 😉