Discourseをローカルにインストールする方法

Discourse をプロジェクトのフォーラム候補として検討しています。
実際にスタックを動かす手順が複雑なことに少し驚いています。

GitHub には この 手順書があります。これには SMTP サーバーとドメインが必要です。

また、ホスト上で直接スタックをインストールする方法を解説した別の ガイド も目にしました。依存関係のセットアップはすべて Docker に任せるのが好ましいと考えています :slight_smile:
さらに混乱した点として、最初のガイドでは SMTP サーバーと DNS の必要性が強く強調されているのに対し、このガイドでは全く言及されていないことです。

すべて Docker 化されている以上、Docker Compose を実行するだけで Discourse とデータベース(PostgreSQL のようです)のコンテナを起動できるはずだと思いました(おそらくキャッシュ用など、Discourse が必要とする他のコンテナも)。そして本番環境では、おそらく Kubernetes でホストする予定です(あるスレッドで読んだところ、そう簡単ではないようです)。

何か見落としていることはありますか?

「いいね!」 1

また、Docker を使わない方法(興味がある場合、または上記があまりに遅いと感じる場合):

「いいね!」 2

開発用インストールか、本番用インストールをお考えですか?後者であれば、Discourse 公式の標準インストールをご覧ください。k8s 環境での実行も可能ですが、コンテナを構築するには ./launcher を使用する必要があるため、簡単ではありません。また、ダウンタイムなしで完全なアップグレードを行うには、直感的には明らかではないいくつかの手順が必要です。手軽に始めたい場合は、VM を立ち上げるのがおすすめです(Ubuntu や Debian が動作している場合、さらに簡単です)。

本番環境では、メール送信機能が必要です。開発環境の場合は、もちろん不要です。

「いいね!」 1

@merefield Docker のリンクをありがとうございます。それは機能し、私が想像していたプロセスに近いものです。ただし、すべてが 1 つのコンテナにパッケージ化されているのは少し奇妙ですね。それに、確かに遅いです。

驚いたことに、git clone で discourse をクローンし、cd discourse とすると、シェルが非常に遅くなります。これは初めて経験しました :slight_smile: 。このリポジトリには大量のファイルが含まれているのか、あるいは何か別の理由があるのでしょうが、なぜそれがシェルに影響するのかはわかりません。

@pfaffman 本番環境に近いインストール方法も試してみたいです。プロセスがどのようになるか把握したいからです。VM 上でのインストールでも構いません。ただし、SMTP サーバーとドメインについてはどうすればよいでしょうか?ガイドではこれらについて非常に厳格に規定されており、必須であると明記されています。

それも問題ないのですが、いくつかの点が完全に理解できていません:

  • なぜ実際にドメインが必要なのでしょうか?localhost ではだめなのでしょうか?
  • メールサーバーは、Discourse で使用するドメインと同じドメインを指す必要がありますか?
  • ガイドではサブドメインについても言及されています。なぜサブドメインなのでしょうか?例えば、Azure で VM をセットアップする場合、VM にはすでに何らかの DNS が割り当てられています(例:myvm.westeurope.cloudapp.azure.com のような)。これでは不十分なのでしょうか?
「いいね!」 1

本番環境用であり、HTTPS が必要なのでドメイン名が必要です。Azure のドメインでも問題ありません。

メールサーバーのドメイン名とホスト名を同一にする必要はありません。以前、discourse-setup が通知メールアドレスの入力を促すように変更されました。

サブドメインとは、x.com のような直接使用ではなく、y.x.com のようにするのを指します。これはかなり確立された慣行です。

こんにちは、マルシンさん。

Discourse のドメイン名に関するご懸念は、私も同じです。なぜ localhost だけでは不十分なのでしょうか?

私はチームで遊ぶために Discourse をインストールしたのですが、DNS がなければ動作しません。サーバーの hosts ファイルに localhost を DNS リソースとして追加して解決しようと試みましたが、成功しませんでした。

パブリックドメインなしで Discourse を実行したことがある方はいますか?

いいえ。開発環境をインストールするだけならホスト名は不要ですが、localhost のみで動作します。チームで利用したい場合はホスト名が必要です。チームがいるなら、おそらくドメイン名はお持ちでしょう?会社で使っているドメインのサブドメインを作成するか、12ドルでホスト名を購入するか、無料トライアルを利用してください。

私たちにとって、ディスカッションは公開されたものである必要はありません。内部のディスカッションボードを望んでいます。他の人々と同じく、localhost では失敗し、テスト実行を試みるだけでインストールが失敗します。これは非常に不快で、よく知られた標準的な「docker-compose up -d --build」の代わりに奇妙なスクリプトが使われていることは、少なくとも驚くべきことです。この製品を使うかどうか迷っています。あまりにも真面目に受け止めているように見えるからです。少なくとも、ランチャーを作成した人はそう思っているようです。

「いいね!」 1

あるいは、docker-compose が実用的なユーティリティとして登場する前に記述されたものであり、現在も何千ものサイトで機能しているため、変更を加えるとごく特殊なケースを理由にそれらすべてが機能しなくなるリスクがあるのかもしれません。

サーバーが外部世界にアクセスできる場合、https 関連の機能を無効化することはそれほど難しくはありません。ただし、私はしばらくその作業をしていません。

「いいね!」 1

@pfaffman 2015年にdocker-composeがリリースされた際も、まさに同じことが起こりました。健全な懐疑論に直面しました。

私の組織には公開サーバーはありません。discourse(正直なところ、.comなしで利用可能な最良のソリューションです)を導入することは可能でしょうか?

ドメイン名は必要ですが、パブリック IP である必要はありません。サーバーがインターネットにアクセスできる(Discourse やその関連ファイルをダウンロードできる)のであれば、Let’s Encrypt の設定を無効にしても動作するはずです。yml ファイル内の SSL および Let’s Encrypt のテンプレートを削除するだけでよいと思いますが、discourse-setup は使用できなくなります。standalone サンプルをコピーして、手動で編集してください。

なお、メールサーバーは引き続き必要です。

Mac M1で簡単にできたらいいのに

「いいね!」 2

M1 ProでDiscourseをローカル開発モードで問題なく実行しています。

「いいね!」 3

いくつかの理由で必要です。FreeNomでドメインを無料で取得することもできますが、FreeNomがデータやユーザー情報をどのように処理するかについては多くの論争があるため、そのルートを選択する場合は注意してください。

「いいね!」 2