Manchmal möchten Sie noch nicht, dass die allgemeine Öffentlichkeit auf Ihre Discourse-Instanz zugreifen kann, etwa wenn Sie eine Site für eine Migration vorbereiten.
HINWEIS: Ich hatte kürzlich einige Probleme mit der Basic-Auth, bei denen einige statische Ressourcen nicht geladen wurden. Es könnte einfacher sein, Ihre Site einfach für login_required zu konfigurieren, indem Sie DISCOURSE_LOGIN_REQUIRED: true im env-Abschnitt Ihrer app.yml hinzufügen.
Die folgende Einrichtung zeigt ein einfaches Browser-Bestätigungsdialogfeld, das nach Benutzername und Passwort fragt und für alle Besucher gilt, das erforderlich ist, bevor sie auf die Site zugreifen können.
Hinweis: Benutzer müssen dennoch die normale Discourse-Registrierung und -Anmeldung durchführen.
Basic-Auth-Anmeldedaten
Verschlüsseltes Passwort generieren
htpasswd -bn =username= =password=
Hinweis: Sie benötigen dafür htpasswd. In Ubuntu/Debian befindet es sich in apache2-utils. Wenn Sie Zugriff auf einen anderen Rechner mit installiertem htpasswd haben, können Sie es dort einfach ausführen. Wenn Ihr Ziel lediglich darin besteht, Suchmaschinen fernzuhalten, gibt es keinen Grund, nicht das hier angegebene Beispiel-Passwort zu verwenden.
Verschlüsseltes Benutzername/Passwort hier einfügen
Zu app.yml hinzufügen
# basic auth
after_bundle_exec:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic on"
to: "auth_basic on"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic_user_file /etc/nginx/htpasswd"
to: "auth_basic_user_file /etc/nginx/htpasswd"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "location = /srv/status {"
to: "location = /srv/status {
auth_basic off;"
- file:
path: "/etc/nginx/htpasswd"
contents: |
=auth_string=
Der Abschnitt after_bundle_exec ändert die Konfiguration von nginx innerhalb des Discourse-Containers. Wenn Sie bereit sind, live zu gehen, löschen Sie einfach diesen Abschnitt und bauen Sie neu auf.