Discourse インスタンスへの一般公開をまだ望まない場合があります。例えば、移行のためのステージングサイトを作成しているときなどです。
NOTE: 最近、基本認証でいくつかの問題が発生しました。一部の静的アセットが読み込まれないことがありました。app.yml の env セクションに DISCOURSE_LOGIN_REQUIRED: true を追加して、サイトを login_required に設定する方が簡単かもしれません。
以下の設定により、すべての訪問者に対して共通の、ユーザー名とパスワードの入力を求める簡単なブラウザ確認ダイアログが表示され、サイトにアクセスする前にこれが必須となります。
注:ユーザーは通常の Discourse の登録とログインを行う必要があります。
基本認証の資格情報
暗号化されたパスワードの生成
htpasswd -bn =username= =password=
注:これには htpasswd が必要です。Ubuntu/Debian では apache2-utils パッケージに含まれています。htpasswd がインストールされた別のマシンにアクセスできる場合は、そこで実行することもできます。検索エンジンからのアクセスを遮断することが目的のみであれば、ここに示すサンプルパスワードを使用することに問題はありません。
暗号化されたユーザー名/パスワードをここに記述
app.yml に追加
# 基本認証
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=
after_bundle_exec セクションは、Discourse コンテナ内の nginx の設定を変更します。本番環境に公開する準備ができたら、このセクションを削除して再構築するだけです。