Bio
2021 年 6 月 15 日午後 7:35
1
こんにちは、
Discourse のフォーラム(ユーザー、トピック、カテゴリなどを含む)を 2 つ別々に作成しようとしています。しかし、新しいインスタンスを取得し、同じドメインで異なるサブドメインを使ってホストしようとすると、現在の Discourse インスタンスが取り込まれてアクセスできなくなってしまいます。
例えば、現在の Discourse が discourse.example.com で動作している場合、2 番目の Discourse を discourse2.example.com で起動しようとすると、既存のインスタンスが動作しなくなり、2 番目の URL には何も表示されません。ただし、discourse.example.com で最初の Discourse を再構築すると、最初のインスタンスが復元されます。
セットアップ中は、Discourse ホスト名以外に最初の設定と同じ設定をすべて適用しました。なぜこのようなことが起こるのか、また discourse2.example.com のために新しいインスタンスをどのように作成すればよいか、ご教示いただけますでしょうか。
Benjamin_D
(Benjamin Decotte)
2021 年 6 月 15 日午後 8:17
3
または、以下のようにすることも可能です。
Discourseと同じマシンで他のウェブサイトを実行したい場合は、Dockerコンテナの前に追加のNGINXまたはHAProxyプロキシを設定する必要があります。
注意:これは上級者向けです
このガイドはDiscourseが既に動作していることを前提としています。動作していない場合、設定が正しく機能しているかどうかを判断するのが困難になる可能性があります。
他のサーバーがポート80または443を使用している場合、./discourse-setupを使用してDiscourseを設定することはできません。お気に入りのテキストエディタでsamples/standalone.ymlをコピーして編集する必要があります。
コンテナ外にnginxをインストールする
まず、コンテナが実行中でないことを確認します:
cd /var/discourse
./launcher stop app
次に、nginxとcertbotをインストールします:
sudo apt-get update && sudo apt-get install nginx certbot python3-certbot…
この特定のケースでは、他のウェブサイトは Discourse です。
Bio
2021 年 6 月 21 日午後 4:28
5
ご提案をいただき、ありがとうございます。これらの2つのウェブサイトを組み合わせて、2番目のDiscourseインスタンスを構築することができました。
https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247(@angusさんの回答が特に役立ちました)
https://chowdri.medium.com/how-to-install-multiple-discourse-on-one-server-150db95602bb
これら2つのサイトは非常に類似した手順を示していますが、2番目のサイトは最初のリンクに対する初心者向けの補足として機能します。同じことを試みる方は、システムを設定する際に両方を読むことを強くお勧めします。
現在、私の2番目のDiscourseサイトは「不安全」と表示されています(sudo nginx -tを実行した際に「ファイルが見つかりません」というエラーを回避するため、/var/discourse/shared/standalone/sslから前のインスタンスの証明書のコピーを使用しました)。2番目のDiscourseサイトをhttpsで安全にする方法をご教示いただけないでしょうか(1番目のサイトには問題ありません)。ご多忙中とは存じますが、何卒よろしくお願いいたします。
manuel
(Manuel Kostka)
2021 年 6 月 21 日午後 5:27
6
@pfaffman のチュートリアル(@itsbhanusharma さんが上記で共有してくれました)を試してみませんか?これで証明書の手配が自動的に済みます。私も実際に何度かこのチュートリアルに従って設定しましたが、いまだにその簡素さに驚かされます!
正直なところ、欠点もあります。何でも簡単にできるせいで、些細な作業でもついつい追加のインスタンスを立ち上げてしまうことになってしまうのです。今では7個になってしまい、もっと必要になりそうです
Bio
2021 年 6 月 23 日午後 4:11
7
ご提案ありがとうございます。試してみているのですが、ガイドのいくつかの点で困っています。
データベースのパスワードが見つかりません(あるいは、ファイル内で何に使用されるのかも不明です)。
元の app.yml ファイルには after_postgres セクションが含まれていなかったため、他のセクション(after_ssl、after_db_migrate など)に合わせるようにフックの下に追加しました。もしこの配置が誤っている場合はお知らせください。このような作業は初めてです。
http://www.yamllint.com/ で YAML ファイルの構文を確認すると、after_postgres セクションを hooks セクションの下に置いた行で (<unknown>): did not find expected key while parsing a block mapping というエラーが表示されます。
もし @manuel さんが上記のガイドに従って行った手順を詳しく説明していただければ、大変助かります。
manuel
(Manuel Kostka)
2021 年 6 月 23 日午後 9:05
8
実は、私は常に2コンテナ構成で実施しており、それについては問題なく動作しています。./discourse-setup --two-containerでDiscourseをインストールし、その後 web_only.yml と data.yml の両方を調整すれば、簡単にこれを達成できます。
もし1コンテナ構成で再度試してみたいものの、その手順が不明確な場合は、トピックに投稿して具体的な問題を指摘するのが最も良い方法かもしれません。実は、これらのファイルの仕組み自体も私にはよくわかりません。だからこそ、シンプルなアプローチがあり、ようやく開発用に複数のインスタンスを起動できるようになったことにとても嬉しく思っています。開発において非常に便利なのもう一点は、追加のインスタンスですでにプラグインがインストールされていることです。
構文エラーについてですが、インデントにタブ文字を使っていませんでしたか?この形式は非常に厳格なのです。
Bio
2021 年 6 月 23 日午後 9:24
9
いいえ、タブは使用していませんし、ガイドからのコピー&ペーストでタブが入ったとも思いません(ただし、簡易的に確認しただけです)。できれば2コンテナ構成は避けたいので、ガイド内で助けを求めて投稿します。ご協力いただき、本当にありがとうございます!