前のプログラマーのドキュメントを読んでみたのですが、ウェブの多くのものが nginx の背後で実行されており、Discourse も nginx の背後でホストする必要があるとのことです。標準のインストールでは私の状況には対応できません。
そして、ドキュメントには以下のように書かれており、その通りに実行しました。
Discourse は Docker コンテナで実行されます。ただし、docker-compose.yml や .conf ファイル経由ではなく、特別な設定が必要です。
**config と docker イメージのビルドに必要な discourse-project/ の GitHub リポジトリはこちら**で見つけることができます。彼らが提供する便利な「discourse-setup」プログラムは無視してください。今回は自分でアプリを設定する必要があります。
- discourse_docker を /var/discourse にクローンします:
git clone https://github.com/discourse/discourse_docker.git /var/discourse - フォルダに移動し、提供されているサンプル設定を使用します:
cd /var/discourse && cp samples/standalone.yml containers/app.yml - 次に、containers/app.yml ファイルを編集します(例:
sudo nanoを使用)。
- ホスティングセクション、メールの SMTP 設定、そして - 重要 - 外部に公開されるのは未使用のポートのみになるように expose セクションに変更が加えられました。
- Discourse を “/forum” のようなパスで実行するには、こちらで説明されているように、さらに変更が必要でした。
- メール認証でもいくつかの問題が発生します。
- メールを送信するサーバーは「サーバーのメール」にあります。しかし、Discourse はメールがホストと同じドメイン、つまり「サーバーのメール」であることを期待しています。
- 解決策はこちらで説明されています。
- また、環境オプションとして「DISCOURSE_SMTP_AUTHENTICATION: login」も使用してください。なぜいつもこうなるのか。。。
- メールを送信するサーバーは「サーバーのメール」にあります。しかし、Discourse はメールがホストと同じドメイン、つまり「サーバーのメール」であることを期待しています。
- 次に、
/var/discourseディレクトリからsudo ./launcher bootstrap appでアプリをビルドします。これにはかなりの時間がかかります。 - その後、
sudo ./launcher start appで Discourse コンテナを開始できるはずです。