Ich zeige euch hier, wie ihr die Chatplattform Rocket.Chat in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.

Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.

Als Grundlage meiner Anleitung dient die offizielle Anleitung von Rocket.Chat.

1. Ordner anlegen

Zuerst legen wir uns passende Ordner-Strukturen an.

mkdir -p /opt/containers/rocketchat/{uploads,data/db}

2. Docker Compose anlegen

Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Konfiguration angeschaut und sehr viel abändern müssen, damit diese lauffähig wird.

cd /opt/containers/rocketchat/
nano docker-compose.yml

Inhalt

version: '2'

services:
  rocketchat:
    image: rocketchat/rocket.chat:latest
    command: >
      bash -c
        "for i in `seq 1 30`; do
          node main.js &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
    volumes:
      - ./uploads:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=http://localhost:3000
      - MONGO_URL=mongodb://mongo:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
      #- MAIL_URL=smtp://smtp.email
    depends_on:
      - mongo
    networks:
      - default
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.rocketchat.entrypoints=http"
      - "traefik.http.routers.rocketchat.rule=Host(`chat.euredomain.de`)"   # Hier eure URL eingeben #
      - "traefik.http.middlewares.rocketchat-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.rocketchat.middlewares=rocketchat-https-redirect"
      - "traefik.http.routers.rocketchat-secure.entrypoints=https"
      - "traefik.http.routers.rocketchat-secure.rule=Host(`chat.euredomain.de`)"    # Hier eure URL eingeben #
      - "traefik.http.routers.rocketchat-secure.tls=true"
      - "traefik.http.routers.rocketchat-secure.tls.certresolver=http"
      - "traefik.http.routers.rocketchat-secure.service=rocketchat"
      - "traefik.http.services.rocketchat.loadbalancer.server.port=3000"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.rocketchat-secure.middlewares=secHeaders@file"


  mongo:
    image: mongo:4.0
    restart: unless-stopped
    volumes:
     - ./data/db:/data/db
    command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
    networks:
      - default


  # this container's job is just run the command to initialize the replica set.
  # it will run the command and remove himself (it will not stay running)
  mongo-init-replica:
    image: mongo:4.0
    command: >
      bash -c
        "for i in `seq 1 30`; do
          mongo mongo/rocketchat --eval \"
            rs.initiate({
              _id: 'rs0',
              members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    depends_on:
      - mongo
    networks:
      - default

networks:
  proxy:
    external: true

Notwendige Anpassungen:

  1. 2x eure Domain bei Traefik anpassen (chat.euredomain.de“)

Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.

Wenn ihr Rocket.Chat auf eurer „Hauptdomain“ haben wollt, so gebt ihr folgendes ein:

"traefik.http.routers.rocketchat.rule=Host(`www.euredomain.de`,`euredomain.de`)"
"traefik.http.routers.rocketchat-secure.rule=Host(`www.euredomain.de`,`euredomain.de`)"

3. Rocket.Chat starten

Rocket.Chat startet ihr wie gewohnt mit folgendem Befehl:

docker-compose -f /opt/containers/rocketchat/docker-compose.yml up

4. Rocket.Chat Login

Nun müsst ihr ein paar Minuten warten.

Wenn ihr nun auf „chat.euredomain.de“ geht, dann solltet ihr auf diese Webseite kommen. Hier legt ihr nun den Administrator an.

Anschließend könnt ihr noch Infos über eure Firma eingeben. Dies ist jedoch alles FREIWILLIG.

Nun legt ihr noch einen Seitennamen fest.

Jetzt müsst ihr noch euren Server Modus wählen.

Jetzt habt ihr es geschafft und könnt Rocket.Chat nutzen.

5. Quellen

https://docs.rocket.chat/installation/docker-containers/docker-compose

https://rocket.chat/install/

Teile diesen Beitrag
Christian

Categories:

3 Kommentare

  1. Hi Christian,

    Wow! Vielen Dank für das super Tutorial!

    Hat sofort fuktioniert. Endlich habe ich RocketChat auf Docker am laufen :).

    DANKE

  2. Wie sieht es mit der Sicherheit der Daten aus bei Rocket Chat mit eigenem Server laut Anleitung hier? Werden diese durch fremde Systeme geleitet oder bleiben die auf dem eigenen Server?
    Wir suchen gerade für den Verein nach einer DSGVO sicheren Lösung nachdem Diskussionen wegen Whatsapp aufkommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Spenden

Persönliche Informationen

Spendensumme: 2€