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.
Datum | Änderungen |
---|---|
15.04.2020 | Erstellung dieser Anleitung |
06.05.2020 | Erweiterung der Konfiguration |
23.12.2022 | Docker Compose v2, Änderung der Docker Compose Datei an die aktuelle Version. Danke an @goover |
29.05.2023 | Anpassung an neue Traefik Anleitung, Update auf Discourse 3 |
28.08.2023 | Kapitel 4 – Plugins hinzugefügt. Danke an @mcules |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
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.
nano /opt/containers/discourse/docker-compose.yml
version: '2' services: postgresql: image: 'docker.io/bitnami/postgresql:15' user: "1001" environment: #- ALLOW_EMPTY_PASSWORD=yes - POSTGRESQL_USERNAME=bn_discourse - POSTGRESQL_PASSWORD=bn_securepass - POSTGRESQL_DATABASE=bitnami_discourse volumes: - './postgresql_data:/bitnami/postgresql' networks: - default redis: image: 'docker.io/bitnami/redis:7.0' user: root environment: - REDIS_PASSWORD=password123 volumes: - './redis_data:/bitnami/redis' networks: - default discourse: image: 'docker.io/bitnami/discourse:3' labels: - "traefik.enable=true" - "traefik.http.routers.discourse.entrypoints=websecure" - "traefik.http.routers.discourse.rule=(Host(`discourse.euredomain.de`))" - "traefik.http.routers.discourse.tls=true" - "traefik.http.routers.discourse.tls.certresolver=http_resolver" - "traefik.http.routers.discourse.service=discourse" - "traefik.http.services.discourse.loadbalancer.server.port=3000" - "traefik.docker.network=proxy" - "traefik.http.routers.discourse.middlewares=default@file" networks: - proxy - default depends_on: - postgresql - redis volumes: - './discourse_data:/bitnami' environment: - POSTGRESQL_CLIENT_POSTGRES_USER=bn_discourse - POSTGRESQL_CLIENT_POSTGRES_PASSWORD=bn_securepass - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=bitnami_discourse - POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS=hstore,pg_trgm - DISCOURSE_HOST=discourse.euredomain.de - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=bn_discourse - DISCOURSE_DATABASE_PASSWORD=bn_securepass - DISCOURSE_DATABASE_NAME=bitnami_discourse - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=password123 - DISCOURSE_USERNAME=user - DISCOURSE_PASSWORD=password12345 - DISCOURSE_EMAIL=eure@email.de sidekiq: image: 'docker.io/bitnami/discourse:3' depends_on: - discourse volumes: - './sidekiq_data:/bitnami' command: '/opt/bitnami/scripts/discourse-sidekiq/run.sh' environment: - DISCOURSE_HOST=discourse.euredomain.de - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=bn_discourse - DISCOURSE_DATABASE_PASSWORD=bn_securepass - DISCOURSE_DATABASE_NAME=bitnami_discourse - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=password123 networks: - default networks: proxy: external: true
Notwendige Anpassungen:
- eure URL eingeben bei Traefik
- 2x DISCOURSE_HOST = selbe Domain wie bei Traefik
- DISCOURSE_USERNAME, DISCOURSE_PASSWORD, DISCOURSE_EMAIL anpassen nach euren Wünschen. Wichtig ist, dass das Passwort MINDESTENS 10 Stellen haben muss.
3. Discourse starten
Wie gewohnt starten wir nun Discourse mittels folgendem Befehl:
docker compose -f /opt/containers/discourse/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: password12345)
4. Plugins hinzufügen
Plugins kopiert ihr einfach in folgendes Verzeichnis:
discourse_data/discourse/plugins/
Anschließend müsst ihr Discourse noch neu starten und sie sollten funktionieren. (Hinweis von @mcules).
5. Quellen
https://github.com/bitnami/containers/tree/main/bitnami/discourse
https://github.com/bitnami/containers/blob/main/bitnami/discourse/docker-compose.yml
Moin,
installation läuft ohne Probleme. Habe auch Zugriff auf die Seite, aber sobald ich mich anmelde kommt folgende Fehlermeldung:
Außerdem sagt mir Firefox, dass die Verbindung nicht sicher ist. Im traefik dashboard sieht aber alles gut aus.
Jemand eine Idee woran das liegt?
Viele Grüße
2B
War jemand in der Lage, mit dieser Anleitung Plugins zu installieren? Irgendwie kann ich da keine installieren
Diese Anleitung geht leider nicht mehr. Man bekommt nur Errors.
Nach langen hin und her, geht für mich diese docker-compose.yml
https://gist.github.com/gOOvER/bcd28ea5d8575bb636d4ef37e4729bca
Evtl kannst ja mal drüberschauen 🙂
Hallo, danke für die Anleitung. Ist folgende Codezeile gewünscht? =D
3. Discourse starten
Wie gewohnt starten wir nun Grafana mittels folgendem Befehl:
docker-compose -f /opt/containers/grafana/docker-compose.yml up
Ich glaube da sollte nicht Grafana sondern Discourse stehen oder? =)
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