Woher kommt %{base_url}?

Hallo zusammen,

ich betreibe einen Discourse-Container mit dem Bitnami-Image. Das Problem, das ich dort erlebe, ist, dass alle Vorlagen example.com für die Variable %{base_url} verwenden und ich dies anscheinend nicht ändern kann.

Ich habe ein Support-Ticket bei Bitnami erstellt, aber während der Suche habe ich im Internet nirgendwo etwas über die base_url-Variable gefunden.

Kann mir jemand dabei helfen, das zu klären? Ich bin sehr verwirrt über diese Variable.

Wir unterstützen keine Installationen mit Bitnami-Images. Die Empfehlung ist, Discourse gemäß der Standard-Installationsanleitung zu installieren, wenn Sie Unterstützung wünschen.

1 „Gefällt mir“

Ich verstehe, aber das ist nicht die Basis, sondern meine Frage: Woher kommt %{base_url} oder worauf basiert es? Ich kann das nicht einmal in der Discourse-Dokumentation oder im Forum finden.

Wie ändere ich die %{base_url} von example.com zu meiner eigenen Domain, damit meine E-Mail-Vorlagen korrekt geparst werden?

Es scheint, als ob bei Ihrer Installation etwas schiefgelaufen ist, wenn diese nicht mit der richtigen Domain gefüllt wird.

Wie bereits erwähnt, ist es für Sie möglicherweise einfacher, die Standardinstallation zu befolgen und ein Backup wiederherzustellen, falls Sie immer noch nicht herausgefunden haben, was schiefgelaufen ist.

1 „Gefällt mir“

Warum wird es beïng populated und nicht einfach als Variable gesetzt?

Sie müssen die Docker Compose YAML bearbeiten, bevor Sie sie abrufen: containers/bitnami/discourse/docker-compose.yml at main · bitnami/containers · GitHub (Zeilen 31 und 51)

Ich weiß, aber eine Änderung nach dem ersten Durchlauf behebt es nicht, daher frage ich mich, ob es vom ersten Durchlauf an erfolgen muss, da ich gerne wissen möchte, ob dieser Host (Name) statisch gesetzt wird oder nicht.

Kompiliert das Bitnami-Container-Image Discourse beim Aktualisieren ebenfalls komplett neu, wie das offizielle?

Die Variable scheint hier definiert zu sein:

Die Variable current_hostname wird hier gesetzt:

Die Variable force_hostname wird hier in der Site-Settings-Vorlage deklariert:

Da sie versteckt ist, kann sie nicht in den Admin-Einstellungen geändert werden. Wie andere Site-Einstellungen nehme ich an, dass sie in der Datenbank gespeichert würde. Ich habe einen Datenbank-Dump unserer Instanz durchsucht und force_hostname ist nicht gesetzt oder überhaupt deklariert. In unserem offiziellen Discourse-Container-YAML haben wir DISCOURSE_HOSTNAME zugewiesen, aber ich vermute, dies ist eine globale Einstellung und keine Site-Einstellung, sodass dies anders erzwungen zu werden scheint.

current_hostname scheint vom aktuellen Verbindungsaufbau, also dynamisch, bezogen zu werden. Aber ich kann nicht genau sehen, wo es definiert ist, wahrscheinlich ein externes Modul/Gem:

Ich bin mir nicht sicher, was das Bitnami-Container-Image mit der Einstellung DISCOURSE_HOST macht, daher könnten Sie zumindest Ihre Datenbank nach force_hostname durchsuchen, bis wir mehr darüber erfahren, wie DISCOURSE_HOSTNAME aus dem offiziellen Container gespeichert und erzwungen wird.

Vielen Dank für Ihre bisherige Unterstützung! Ich habe im Vergleich zu Ihren Erkenntnissen auch darüber nachgedacht, meine Installation als Single Multisite zu konfigurieren. Das könnte vielleicht funktionieren, aber es ist tatsächlich eine Frage des Ausprobierens, um die Dinge zu klären, bei denen ich das Gefühl habe, dass Bitnami nichts an Discourse selbst ändert; warum also dieses Problem.

Ich muss meine Dumps überprüfen.

Kann dies in meinen Datenbank-Dumps nicht finden.

Okay, ich verstehe derzeit nicht, wo/wie beide Discourse-Container-Varianten den Hostnamen intern basierend auf der Container-YAML anwenden.

Enthält die Bitnami-Container-Komposition keinen weiteren Webserver, sondern gibt den Discourse-Webport direkt frei? Der offizielle Container hat einen weiteren Nginx vor Discourse, etwas, das ich eigentlich loswerden wollte, wenn möglich, da wir bereits einen weiteren Apache-Webserver außerhalb des Containers haben.