Discourse Chat - Rocket.Chat Integration

Ich möchte Rocket.Chat Community Edition auf meiner Website installieren und dann die Discourse Chat-Integration für Rocket.Chat verwenden. Ich habe diese Anleitung durch eine Diskussion mit OpenAI O3 erstellt. Kann jemand bestätigen, dass die folgenden Schritte korrekt sind, um die Docker Rocket.Chat-Instanz bereitzustellen? Ich versuche nur, keine unvorhergesehenen Folgen zu verursachen, weil ich nicht weiß, wie ich das richtig mache.

Danke!


Schritt 1: Konfigurieren Sie Ihre DNS in Cloudflare

  1. Melden Sie sich bei Cloudflare an und fügen Sie einen A-Eintrag (oder CNAME) für chat.website.com hinzu, der auf die IP-Adresse Ihres Servers zeigt.
  2. Stellen Sie sicher, dass der Cloudflare-Proxy aktiviert ist, wenn Sie dessen Sicherheits- und Leistungsfunktionen nutzen möchten.

Schritt 2: Richten Sie die Rocket.Chat-Bereitstellung ein

  1. SSHen Sie auf Ihren Server und erstellen Sie ein Verzeichnis für Rocket.Chat (falls noch nicht geschehen):
    bash
    Kopieren
    mkdir -p /opt/rocket.chat
    cd /opt/rocket.chat
  2. Erstellen Sie in diesem Verzeichnis eine Datei docker-compose.yml mit folgendem Inhalt:
    yaml
    Kopieren
    version: “3.8”

services:
rocketchat:
image: rocket.chat:latest
restart: unless-stopped
environment:
- PORT=3000
- ROOT_URL=http://chat.website.com
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- MONGO_OPLOG_URL=mongodb://mongo:27017/local?replicaSet=rs0
depends_on:
- mongo
ports:
- “3000:3000”
volumes:
- rocketchat_data:/app/uploads
networks:
- common

mongo:
image: mongo:4.0
restart: unless-stopped
command: mongod --smallfiles --oplogSize 128 --replSet rs0
volumes:
- mongo_data:/data/db
networks:
- common

volumes:
rocketchat_data:
mongo_data:

networks:
common:
external: false
Hinweise:
• Die ROOT_URL ist auf Ihre Subdomain gesetzt (hier wird HTTP verwendet, da Cloudflare und Caddy TLS extern verwalten).
• Beide Dienste sind mit einem benutzerdefinierten Netzwerk namens common verbunden. Dies stellt sicher, dass Ihr Caddy-Container den Servicenamen rocketchat auflösen kann, wenn Anfragen weitergeleitet werden.


Schritt 3: Initialisieren Sie das MongoDB Replica Set

  1. Starten Sie den Rocket.Chat-Stack:
    bash
    Kopieren
    docker-compose up -d
  2. Rufen Sie die Container-ID oder den Namen für MongoDB ab:
    bash
    Kopieren
    docker ps
  3. Verbinden Sie sich mit MongoDB:
    bash
    Kopieren
    docker exec -it <mongo_container_id_or_name> mongo
  4. Führen Sie in der Mongo-Shell Folgendes aus:
    js
    Kopieren
    rs.initiate()
  5. Beenden Sie die Shell mit exit.
    Dieser Schritt initialisiert das Replica Set, das Rocket.Chat für Echtzeitoperationen verwendet.

Schritt 4: Aktualisieren Sie Ihre Caddy-Konfiguration
Da Caddy bereits in seinem eigenen Container läuft, aktualisieren Sie seine Caddyfile, um einen neuen Site-Block für Rocket.Chat hinzuzufügen. Bearbeiten Sie Ihre Caddyfile (z. B. unter /pfad/zu/ihrer/Caddyfile) und fügen Sie hinzu:
caddy
Kopieren
http://chat.website.com {
reverse_proxy rocketchat:3000
}
Wichtig:
• Die Direktive reverse_proxy verwendet den Servicenamen rocketchat – dies erfordert, dass der Caddy-Container sich im selben Docker-Netzwerk wie die Rocket.Chat-Container befindet.
• Wenn Ihr Caddy-Container über Docker Compose verwaltet wird, können Sie ihn mit demselben common-Netzwerk verbinden. Fügen Sie beispielsweise in der docker-compose-Datei Ihres Caddy-Containers hinzu:
yaml
Kopieren
networks:

  • common
    Stellen Sie sicher, dass das Netzwerk deklariert ist (oder verbinden Sie den Container manuell).
    Da Sie Cloudflare für DNS und Let’s Encrypt verwenden und bereits über Ihre funktionierende Konfiguration ohne E-Mail-Direktive verfügen, sind keine Änderungen bezüglich TLS erforderlich.

Schritt 5: Laden Sie Caddy neu und überprüfen Sie die Einrichtung

  1. Laden Sie Caddy neu:
    Wenn Sie Caddy über Docker ausführen, starten Sie den Container neu, damit er die neue Caddyfile-Konfiguration übernimmt:
    bash
    Kopieren
    docker restart <caddy_container_name>
  2. Testen Sie Ihre Bereitstellung:
    Öffnen Sie einen Webbrowser und navigieren Sie zu http://chat.website.com. (Cloudflare verwaltet das HTTPS-Zertifikat.) Sie sollten die Rocket.Chat-Einrichtungsseite sehen.
  3. Schließen Sie die Einrichtung ab:
    Folgen Sie den Anweisungen auf dem Bildschirm, um die Konfiguration von Rocket.Chat abzuschließen.

Zusätzliche Anpassung
Wenn Sie weitere Umgebungsvariablen hinzufügen müssen (z. B. SMTP-Einstellungen oder benutzerdefinierte Volumes) oder spezifische Netzwerkanforderungen haben, lassen Sie es mich wissen, damit die Anleitung weiter verfeinert werden kann.


Diese Anleitung sollte Ihnen helfen, Rocket.Chat Community Edition mit Docker Compose auf einer Subdomain bereitzustellen, die von Cloudflare verwaltet wird, wobei Caddy (in seinem eigenen Container) als Reverse-Proxy verwendet wird.