Discourseで複数のサイトを管理するためにCloudPanelを使用する

手順を説明したチュートリアルはこちらから直接ご覧いただけます…

(Hetznerの)専用サーバーに、まっさらなDiscourseインスタンスをインストールしました(現時点ではサーバーにはそれしかありません)。

このサーバーで、クライアントのためにGhostブログやWordPressサイトもホストできるように、リバースプロキシとしてCloudPanelを使用したいと考えています。

このチュートリアルを読み、また、以下の他の投稿も参考にしましたが、可能であるように思えます。

しかし、リバースプロキシに関する学習曲線につまずいています。

CloudPanelを使ってサイトを簡単にインストール・管理することはできます。

しかし、CloudPanelとDiscourseを連携させるための正しい順序や手順が明確ではありません。

この投稿で手順を文書化したいと思います。

どなたか、手順を教えていただけますか?

まず、これらのガイドのいずれかに従い、Discourse を別のポートに移動し、SSL および Let’s Encrypt テンプレートを削除して再構築します。次に、リバース プロキシにそのポートを使用するように指示します。

「いいね!」 3

CloudPanel を最初にインストールし、インターフェイスでリバースプロキシを作成した場合…


…または Vhost Editor で…

…その後 Discourse をインストールできますか?

それとも、Discourse を 最初に インストールする必要がありますか、または何らかの点で推奨されますか?

最もシンプルで直感的な方法(私のような他の単純な人々のために :slight_smile: )の手順を提供したいと思います。

どちらでも構いません。

  • Discourse がポート 80/443 を使用しない場合。競合が発生するとリバースプロキシがクラッシュします。
  • Discourse が SSL を使用しない場合。ただし、ポート 80 をリバースプロキシがバックエンドに使用するポートに公開します。

したがって、「どちらでも構いません」とは、リバースプロキシを開始する前に Discourse をバックエンドとしてセットアップする必要があり、その時点では到達不能になる可能性があることを意味します。

「いいね!」 1

これは単純な人向けのセットアップではありません。リバースプロキシがどのように機能するか、そしてDiscourseを手動でどのように設定するか、両方を理解する必要があります。シンプルでも直感的でもありません。

初心者向けの標準インストールをサポートするだけでも十分に困難です。システム管理について何も知らない人々のために、それらの指示が機能するようにするために、非常に多くの時間が費やされてきました。

「いいね!」 2

「システム管理について何も知らない人でも、これらの手順が機能するように、非常に多くの時間を費やしてきました。」

@pfaffman 今後、その時間を短縮するお手伝いができれば幸いです!

「いいね!」 1

containers/app.yml はインストーラーによって作成されるファイルですか? (リポジトリ https://github.com/discourse/discourse_docker に見つかりません。)

standalone.yml ファイルを編集して app.yml に名前を変更しました。

そのファイルを containers/ に配置してから ./discourse-setup を実行すれば機能するはずですか?

(app.yml の設定を正しく構成したと仮定します)

そうです。

Discourse に比較的最近参加した者として、これを正しく行う方法は次のようになります。

  • リバースプロキシを一時的に無効にします。
  • SSL/Lets Encrypt を無効にして Discourse をインストールします。
  • :80 で正常に動作するインストールを確認します。
  • Discourse のポートを 81 または別の非標準ポートに変更するか、さらに良いのはソケットを使用します。
  • リバースプロキシを再度起動し、Discourse のインストールに対して設定します (https カプセル化を含む)。
  • force_https を有効にします。

上記のリバースプロキシなしで Discourse をインストールしない場合、トラブルシューティングが実質的に困難になるほど、問題が発生する可能性のある領域が多すぎます。

「いいね!」 1

セットアップには discourse-setup を使用できません。編集した場合は、以下を実行してください。

./launcher rebuild app

「いいね!」 2

奇跡中の奇跡――やりました! 皆さんのご協力に感謝します! 手順については、上記のトピック投稿に記載します。

「いいね!」 2

OK、ちょっと(小さいと思いますが)行き詰まっています…

2つ目のDiscourseインスタンスを作成するには、app2.yml を作成・編集し、2つ目のDiscourse用の server_name.conf を作成・編集して、DISCOURSE_HOSTNAME と server_name を変更します。

しかし、その後… app2 をどのようにビルドすればよいのでしょうか?試したのは以下の通りです。

service nginx restart

./launcher stop app

./launcher rebuild app2

そして

./discourse-setup (最初のインスタンスをインストールしたときに ./discourse setup を使用し、その後 app.yml を編集して、最初のインスタンスではうまくいきました。)

この手順で2つ目のURLにDiscourseは表示されましたが、最初のインスタンスからデータを取得しているようです。

何か理解できていないことがあります。2つ目のドメインに2つ目のサイトをビルドする適切な方法は何でしょうか?

「いいね!」 2

リバースプロキシは、2番目のドメインをリッスンし、トラフィックを別のポートにルーティングするように設定されていますか?

「いいね!」 2

/var/discourse/standalone となっているディレクトリを別のもの(standalone2?)に変更する必要があります。

Postgresを1つだけ実行するために、2コンテナセットアップを使用することをお勧めします(Dockerを使用したマルチサイト構成にヒントがあると思います)。ただし、RAMがたくさんある場合は気にする必要はないかもしれません。

「いいね!」 1

すごい。自分一人では決して気づかなかったでしょう。今日一日、あなたは私のヒーローです。

私がここでやっていることは、(クライアントのために)クリエイター向けの多用途Discourseパブリッシングシステムのプロトタイプを、GhostとDiscourseを統合して構築することです。

私はフロントエンド開発者で、今からシステム管理を完全に習得する必要があります。

そのため、マルチサイトと分離コンテナの両方を構築する必要があります。

これが私のサーバーセットアップです。

  1. Hetznerの専用サーバー(CPU 6コア、RAM 64GB、NVMe 2x512GB)

  2. ContaboのVPS(CPU 8コア、RAM 30GB、NVMe 200GB)

「いいね!」 1
「いいね!」 3

それについては何も知りませんが、あなたや他の人があなたのチュートリアルが信頼できると思っているなら、新しい #documentation:sysadmin #how-to #advanced-setup や、その他適切だと思うタグを自由に作成してください :slight_smile:
(1か月後に自動的に削除される前に :stuck_out_tongue:

「いいね!」 3

はい、承知いたしました。CloudPanel で新しいサイトを作成した後、2 番目のインスタンスでは以下の手順で機能しました。

  1. app2.yml を手動で作成および編集し、そのファイル内の standalone をすべて standalone2 に変更する
  2. Vhost ファイル内の standalonestandalone2 に変更する
  3. ./launcher rebuild app2 を実行する

Cloudflare のキャッシュをすべてクリアし、nginx を再起動し、サーバーも再起動したと思います。

重ねて、ご協力いただきありがとうございました。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.