Hier zeige ich euch, wie ihr in ein paar Minuten ein modernes Forum erstellt. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.

Danke Moritz K. für deine Unterstützung. Leider hatte ich keine E-Mail Adresse von dir um dir direkt zu danken. Daher kommt mein Dank in Form dieser Anleitung.

Danke an den Nutzer „discourse-tutorial“ für seine Hinweise.

Update

06.05.2020Erweiterung der Konfiguration.
15.04.2020Erstellung dieser Anleitung.

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

Als Grundlage meiner Anleitung dient dient diese Anleitung. Ich habe diese jedoch etwas erweitert und an Traefik angepasst.

1. Ordner anlegen

Zuerst legen wir uns passende Ordner-Strukturen an.

mkdir -p /opt/containers/discourse/{postgresql_data,redis_data,discourse_data,sidekiq_data}

Als nächstes müssen wir noch die Ordnerberechtigung eines Ordners ändern.

chown 1001:1001 /opt/containers/discourse/postgresql_data

2. Docker Compose anlegen

Hier legen wir die Docker Compose an.

cd /opt/containers/discourse/
nano docker-compose.yml
version: '2'
services:
  postgresql:
    image: 'bitnami/postgresql:11'
    user: "1001"
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - '/opt/containers/discourse/postgresql_data:/bitnami/postgresql'
    networks:
      - default
  redis:
    image: 'bitnami/redis:5.0'
    user: root
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - '/opt/containers/discourse/redis_data:/bitnami'
    networks:
      - default
  discourse:
    image: 'bitnami/discourse:2'
    labels:
       - "traefik.enable=true"
       - "traefik.http.routers.discourse.entrypoints=http"
       - "traefik.http.routers.discourse.rule=Host(`discourse.euredomain.de`)"      ## Hier eure Domain eintragen
       - "traefik.http.middlewares.discourse-https-redirect.redirectscheme.scheme=https"
       - "traefik.http.routers.discourse.middlewares=discourse-https-redirect"
       - "traefik.http.routers.discourse-secure.entrypoints=https"
       - "traefik.http.routers.discourse-secure.rule=Host(`discourse.euredomain.de`)"      ## Hier eure Domain eintragen
       - "traefik.http.routers.discourse-secure.tls=true"
       - "traefik.http.routers.discourse-secure.tls.certresolver=http"
       - "traefik.http.routers.discourse-secure.service=discourse"
       - "traefik.http.services.discourse.loadbalancer.server.port=3000"
       - "traefik.docker.network=proxy"
    networks:
      - proxy
      - default
    depends_on:
      - postgresql
      - redis
    volumes:
      - '/opt/containers/discourse/discourse_data:/bitnami'
    environment:
      - POSTGRESQL_HOST=postgresql
      - POSTGRESQL_ROOT_USER=postgres
      - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=bitnami_application
      - POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME=bn_discourse
      - POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD=bitnami1     ### Bitte anpassen
      - DISCOURSE_POSTGRESQL_NAME=bitnami_application
      - DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
      - DISCOURSE_POSTGRESQL_PASSWORD=bitnami1          ### Bitte anpassen
      - DISCOURSE_HOSTNAME=discourse.euredomain.de    ## Hier eure Domain eintragen
      - DISCOURSE_USERNAME=user   ### Bitte anpassen
      - DISCOURSE_PASSWORD=test     ### Bitte anpassen
      - DISCOURSE_EMAIL=eure@email.de   ### Bitte anpassen
  sidekiq:
    image: 'bitnami/discourse:2'
    depends_on:
      - discourse
    volumes:
      - '/opt/containers/discourse/sidekiq_data:/bitnami'
    command: 'nami start – foreground discourse-sidekiq'
    environment:
      - DISCOURSE_POSTGRESQL_NAME=bitnami_application
      - DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
      - DISCOURSE_POSTGRESQL_PASSWORD=bitnami1     ### Bitte anpassen
      - DISCOURSE_HOST=discourse
      - DISCOURSE_PORT=3000
      - DISCOURSE_HOSTNAME=discourse.euredomain.de      ## Hier eure Domain eintragen
    networks:
      - default

networks:
  proxy:
    external: true

Notwendige Anpassungen:

  1. 2x eure URL eingeben bei Traefik
  2. Postgress Datenbank Passwörter
  3. Discourse Username / Passwort / Email des Administators
  4. Wenn ihr wollt, könnt ihr auch noch die Nutzernamen anpassen

3. Discourse starten

Wie gewohnt starten wir nun Grafana mittels folgendem Befehl:

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

Nun sehen wir in der Konsole den aktuellen Fortschritt. Je nach System kann dieser Vorgang bis zu 10 Minuten benötigen.

Anschließend geht ihr auf „discourse.euredomain.de“ und solltet folgendes sehen:

Die Zugangsdaten des Admins lauten:

  • Nutzer: Name, den ihr in der Konfiguration verwendet habt (bei mir: user)
  • Passwort: Passwort, welches ihr in der Konfiguration verwendet habt (bei mir: test)

4. Quellen

https://github.com/bitnami/bitnami-docker-discourse

https://github.com/bitnami/bitnami-docker-discourse/issues/42

https://github.com/bitnami/bitnami-docker-postgresql/issues/184

Teile diesen Beitrag
Christian

Categories:

2 Kommentare

  1. Nevermind:

    https://github.com/bitnami/bitnami-docker-discourse

    Hier ist beschrieben, wie die ENVIRONMENT_VARIABLES gesetzt sein müssen

    DISCOURSE_USERNAME: Discourse application username. Default: user
    DISCOURSE_PASSWORD: Discourse application password. Default: bitnami123
    DISCOURSE_EMAIL: Discourse application email. Default: user@example.com

    Vielleicht hast du ja Lust das in deinem Tutorial zu ergänzen, damit die Leute direkt eine funktionierende Installation haben 🙂

    Liebe Grüße

Schreibe einen Kommentar

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