VPSにDiscourseをインストールする:よくある質問付きプロセス

Discourseのインストールに関する初心者向けの手順別の詳細プロセス。適切なサーバーの選択から設定、SMTP、DNSの設定まで、正しい順序で全てを行う方法。多くの選択肢があり、分岐も多いこのような手動プロセスのため、多くの不確実性があり、慎重に行わないと多くの設定が失敗するのを耳にしています。これを正しく行いたいと考えており、誰かが間違いを指摘してくれると幸いです。できる限り多くの手順を記述し、行き詰まったら一時停止します。これは、主な疑問を1箇所に包括的にまとめた役立つページになるはずです

目標:月間100人のユーザーから始まるフォーラムのために、セルフホストのVPSにDiscourseをインストールする

1) 利用可能な2つの公式ガイドのうち、シンプルなものを選択しています。どのような問題に直面する可能性がありますか?将来の柔軟性や拡張性には適していないのでしょうか?
シンプルな10分間の基本インストール: 初心者向けDockerインストールガイド
強力、柔軟、大規模/複数サーバーインストール: 上級者向けDockerインストールガイド

2) これは良い設定順序でしょうか? i) VPSの設定とレンタル > ii) SMTP > iii) ドメインとDNS > iv) Discourseのインストール

3.1) ドメインとDNSについて、すでにカスタムドメイン付きのウェブサイトを持っています。サブドメインと子ネームサーバー、どちらを選ぶべきか分かりません。確認しましたが、理解できていません

3.2) 現時点ではありませんが、必要に応じて、Discourseフォーラムはexample.comのような純粋なドメインに接続できますよね(もちろん未使用の場合に限りますが)?必ずforum.example.comのようなサブドメインである必要はないですよね?なぜDiscourseのガイドは「サブドメイン(例:forum.example.com)をサーバーのIPアドレスに指すDNSのAレコードを作成する」としか言っていないのでしょうか?

4.1) SMTPについて:ここで完全に混乱しています。ユーザーログインについて、これが私の目標です Connect User logins from my Wix site for my Discourse forum これを確実にするために、何をすべきでしょうか?
4.2) まだビジネス用メールを設定しておらず、Hostingerから現在設定できます。これはSMTPと大きく関係するのでしょうか?SMTPについて、このフォーラムではMailGun、MailJet、Brevoについて耳にしました。WDYT(どう思いますか)?

5) VPSの選択と設定: ContaboとHetznerは最も安価で、かなり信頼できそうに見えます。より安価なContaboを選んだ場合、何か有用なものを失うでしょうか?安全ですよね?(Hetznerの全設定と比較したかったのですが、データやデビットカード、ACの確認を求められず、設定オプションを見ることができないようです。持っているのは@Lillyのスクリーンショットだけです)
5.1) パネル:ContaboにはWebminとWebmin + LAMPが含まれています。cPanelは高価なアドオンとして表示されています。cPanelは聞いたことがありますが、これは必要ないですよね?
5.2) OS:ContaboにはUbuntuが含まれていますが、それについての言及はありません。これで十分でしょうか?(Digital Oceanの設定には、Ubuntuの横に24.04 (LTS) x64などのオプションが表示されています)

5.3) 多くのアプリが含まれていると表示されています。問題があるものを見つけたら教えてください

5.4) 以下のデフォルトの選択は問題ないでしょうか?アドオンなしでも管理できますよね?

5.5) 設定にはIPv6が表示されていませんが、VPSプランページには「すべてのプランに専用IPv4およびIPv6アドレスが付属します」と広告されています。これが含まれているかどうか疑問に思っています
5.6) Contaboについていくつかの否定的な意見を耳にしました。ここでContaboを経験した人たちはどう思っていますか?

5.7) 以下の良いスペックは最小限のもので、素晴らしい価格です!ただ知っておくために(VPSを変更する場合)、Discourseは2GBを推奨していますが、4GBは不要ではないでしょうか?スナップショットとは何ですか?

Screenshot 2026-07-18 004447

初心者であれば、初心者向けインストールガイドに従ってください。先走らないようにしてください。

個人的には、まずDNSが自分のIPを指すようにし、SMTPが正しく動作すること(APIキーなどが揃っていること)を確認してから、Discourseのセットアップを完了します。DNSが100%正しくない場合、セットアップウィザードがエラーを報告するため、そうなると手遅れになるからです。

プロバイダーがここで何を意味しているのかよくわかりません。もしかしたら「サブドメイン」を指しているのでしょうか?その場合、VPSのIPv4アドレスを追加してください。

はい、アドレスはアドレスです。x.example.comexample.comx.y.example.com、または(少し高度な設定が必要ですが)example.com/x/ にも設定できます。

DiscourseConnectを使用するかどうかに関わらず、サマリーや管理者へのアラートなどにはSMTPが必要です。

[quote=“Gid, post:1, topic:407922”]
[system add-ons]
[/quote]\n問題なさそうです。

Cloudflareを使用している場合、IPv6はおそらく関係ありません。プロキシを一切使用しておらず、IPv6のみ対応のネットワークを持つユーザーがあなたのサイトにアクセスできなくなる可能性はありますが、現在では比較的稀です(多くのISPは「専用」のIPv6と、トラフィックをルーティングできる共有のIPv4を提供しています)。

200Mbpsはそれほど速くありませんが、その他は小〜中規模のフォーラムに完璧です。2GBという推奨値は理由がわかりませんが、8GBであれば十分でしょう。私は小さなサイトを8GB/6vCPUのLXC(オーバーヘッドが低い)で運用していますが、リソース使用率は低く、再構築時のみCPUが50〜60%までスパイクします。

スナップショットは基本的にVMの復元ポイントなので、何か問題が発生した場合にロールバックできます。頻繁なオフサイトDiscourseバックアップ(R2など)がある場合はあまり役立ちませんが、万が一のために「あると良い」機能です。

人々を@メンションしないでください。私は通知に余分なノイズを本当に必要としておらず、それは一般的に悪いフォーラムのエチケットです。もしアクティブにメンションせずにユーザー名を使用したい場合は、バッククォートで囲んでください。そうすれば、彼らに通知を送信しません。人々があなたの投稿を読んで返信したい場合に返信できるようにしてください。ありがとうございます。

新しい取り組みで幸運を祈ります。

今の段階ではこれには近づかないでください。基本的なものに専念しましょう。

  1. Namecheapのようなネームサーバー付きのドメイン名を取得します。または、すでに使用したいものがある場合は:

サブドメインにしてください。これはDiscourseの標準的なインストール方法であり、forum.yoursite.com のようになります。

  1. DiscourseIDを使用したくない場合は、SMTP付きのトランザクションメールサービス(MailgunやResendなど)を取得してください。Resendは無料で、私はそれを使用しています。

  1. 選択したVPSベンダーでSSHアクセス付きのVPSサーバードロプレットを設定します。
  2. ガイドのスクリプトに従ってDiscourseをインストールします。

すでに他で述べたように、エンタープライズWixアカウントを持っていないため、これはおそらく不可能です。まず調査して情報を収集してください。読みこなすことは、優れたDiscourse管理者になるための必須条件です。

シングルサインオン(SSO)は、まだ最も基本的なセルフホスト型インストールの設定方法を学んでいる段階で、考えるべきものではありません。

初期設定実行後に app.yml ファイルを編集するには、サーバーにSSH接続したプロンプトで以下を実行します:

cd /var/discourse
nano containers/app.yml

ここにサンプルの app.yml ファイルがあります:

ユーザー数が少ない小さなフォーラムを運営していない限り、2GBという下限ギリギリの値にはしない方が良いと思います。

いいえ、cPanel は必要ありません。

そのビジネス用メールはトランザクションメールサービスを提供していますか?提供していないものもあります。Mailgun、Brevo、Amazon SES などのサービスを使う方が安全です。

他の方が詳しく説明されていますが、この件に関するドキュメントへのリンクを貼っておきます:Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com)

とはいえ、サブドメインを使うという標準的なデフォルトのオプションを選ぶことをお勧めします。また、メインサイトが既にルートドメイン下にある場合、フォーラムがその組織のものであり、ネット上の無関係なサイトではないことが明確になります。

スナップショットは、VPS 全体の完全なバックアップです。VPS に Discourse のみをホスティングしている場合、何か問題が発生した際に備えて、Discourse のバックアップを定期的に取得することも可能です。

おっと…これは私にとって非常に重要で、セルフホスティングを選んだ理由の一つでした。後で大きな困難なしに解決できるなら問題ありませんが、この通常のセットアップが後でSSO導入の障害になるのでしょうか? 今すぐSSOを設定しなくても、その機能を将来有効にするために今から何か異なる準備をすべきでしょうか?
フォーラムはメインサイトの拡張機能に過ぎず、両者は統一されている必要があります。分離されている場合、私のケースでは多くの問題が生じます。
SSOが唯一の解決策かどうかは分かりませんが、WixサイトとDiscourseフォーラムの間の分離を最小限に抑えたいです。

上で述べた通りです:

そしてここで投稿しました:

MiniOrangeについてご存知ですか? フリープランはユーザー数が非常に限られているように見えますし、そのためベーシックプラン(月額49ドル)になるとあなたにとって高価になる可能性があります:

達成したい目標を計画する際には、調査と慎重な読み込みが不可欠です。

WixのVeloスクリプトの書き方はご存知ですか?

おそらくJavaScriptのソリューション

Discourseからのログイン要求を受け取るために、Wixのサイト上に直接カスタムAPIエンドポイントをセットアップする必要があると思います。Veloモジュールの http-functions.js というファイルにJavaScriptコードが必要そうです。

これにより、Discourseからのユーザーをインターセプトし、リダイレクトしてログイン済みのWixセッションを検証し、署名付きペイロードを生成し、その後安全にフォーラムに戻すことができます。

おそらくこのような形になるでしょう:

import { ok, redirect, badRequest } from 'wix-http-functions';
import { currentMember } from 'wix-members-backend';
import crypto from 'crypto';

// 安全なランダム文字列を秘密鍵として選択

const DISCOURSE_SECRET = "YOUR_SUPER_SECRET_STRING_HERE"; 

export async function get_discourseSso(request) {
    const query = request.query;
    const payload = query.sso;
    const sig = query.sig;

    if (!payload || !sig) {
        return badRequest({ body: "Missing SSO parameters" });
    }

    // Discourseからの受信署名を検証

    const computedSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(payload).digest('hex');
    if (computedSig !== sig) {
        return badRequest({ body: "Invalid cryptographic signature" });
    }

    // ユーザーがWixにログインしているか確認

    const member = await currentMember.getMember({ fieldsets: ['FULL'] });
    
    // 受信ペイロードを解析して一意のトラッキングnonceを取得

    const decodedPayload = Buffer.from(payload, 'base64').toString('ascii');
    const params = new URLSearchParams(decodedPayload);
    const nonce = params.get('nonce');

    if (!member) {
        // ログインしていない場合、まずWixにログインさせ、その後ここに戻ってくる
        const loginUrl = `https://yourwixsite.com{encodeURIComponent(request.url)}`;
        return redirect(loginUrl);
    }

    // Discourse用のユーザーペイロードを構築

    const userPayload = `nonce=${nonce}&email=${encodeURIComponent(member.loginEmail)}&external_id=${member._id}&username=${encodeURIComponent(member.profile.nickname || member._id)}&name=${encodeURIComponent(member.contactDetails.firstName + ' ' + member.contactDetails.lastName)}`;

    // ユーザーペイロードを暗号化して署名
    const base64Payload = Buffer.from(userPayload).toString('base64');
    const returnSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(base64Payload).digest('hex');

    // ログイン済みユーザーとしてDiscourseにリダイレクト
    const discourseReturnUrl = `https://yourforum.com{encodeURIComponent(base64Payload)}&sig=${returnSig}`;
    return redirect(discourseReturnUrl);
}

また、そこにあなたのフォーラムのURLも置き換える必要があります。

DiscourseConnectの構成も必要になりますが、エラーなく実際に動作するセルフホスト型のフォーラムが立ち上がるまでは、これらの作業を行わないでください。

私はこれらの分野の専門家ではなく、Wixについてもほとんど知識がないため、これが動作するソリューションであるという保証はありません。単に複雑さを示すために、提案された方法の例を提示しているだけです。

それを生成したAIは、OpenID/SAMLとDiscourse Connectが全く異なるものであることを理解していないようです。したがって、AIが述べている他の内容も信用しない方が良いでしょう。

これまでの回答をしてくださった皆様に感謝します🙏

担当者2名以上に確認し、確認が取れました。彼らのビジネス用メールはMailGunなどのプロバイダーを必要とせずに、DiscourseのSMTPニーズをカバーします。ただし、マーケティングや大量メール送信には適していないと明記されていました。
彼らのBusiness Starterプラン(1年契約、月額0.79ドル)の主な制限事項:

  • 1日あたりの送信制限: 1日500通。
  • メールあたりの最大受信者数: 200名。
  • 月間送信制限: なし(1日あたりの制限のみ)
    IMAP/SMTPの制限を含む詳細仕様:Hostingerメールのパラメータと制限
上記に関する要約チャット👆 詳細を確認したい方のために

DiscourseのSMTPニーズにHostingerのビジネス用メールプランを検討中で、Mailgunを必要とせずに全てをカバーできるか確認したいとのことですね。喜んで調べてみます…
Discourseの設定にHostingerビジネス用メールのSMTPを使用でき、通常のビジネスコミュニケーションや標準的なフォーラム通知については、MailGunなどの別プロバイダーは必要ありません。
ただし、私たちのSMTPはマーケティングや大量メール送信には設計されていませんという点を覚えておくことが重要です。主にビジネスコミュニケーション用です。高ボリュームのマーケティングキャンペーンや大規模なトランザクショナルメール送信を計画している場合は、MailGunのような専用サービスの方が、それらの特定のニーズには適しています。

Hostingerでビジネス用メールを設定した後、将来大量メール送信が必要になった場合、MailGunを単に使用すればよく、MailGunで新しいメールを移行/登録する必要はないですか?

Mailgunに必要な設定次第です。確認します…
MailgunからSMTPのみを使用してメールを送信する場合、追加のTXTレコードを追加する必要があります。MXレコードは変更されないため、Hostingerのメールプランでメールを受け取り続けることができます。

少し理解できません、もっと詳しく説明できますか?

メールを物理的なポストのように考えてください:
受信(ポストそのもの): メールはMXレコードのためにHostingerに届きます。これらをそのまま維持することで、Hostingerの受信トレイにすべてのメールを受け取り続けることができます。
送信(郵便配達員): メールを送信する方法は複数あっても構いません。ドメインにTXTレコード(SPFとDKIM用)を追加することで、実質的にMailgunにあなたの代わりにメールを送信する「許可」を与えます。
つまり、Mailgunで新しいメールアドレスを移行/登録する必要はありません。日常のビジネスチャットにはHostingerのプロフェッショナルなメールボックスを使い、準備ができ次第、高ボリュームのフォーラム通知やマーケティングメールの「送信エンジン」としてMailgunを使用できます。


ええと.. MiniOrangeは私の求めているものではないようです。サイトを見る限り、サードパーティのIdP(アイデンティティプロバイダー)のようです。既存のWixデータベースをIdPとして使用したいと考えています。

「スクリプト」が何を指すのか正確にはわかりませんが、Wixで多くのフロントエンドおよびバックエンドのVeloコーディングを行い、Veloコード、AI、チュートリアルを使用して多くの機能を一から構築してきました。ただし、私は初心者です。あなたのコードを少し見てみましたが、インストール後に試してみたいと思います。Wixフォーラムについては、良いです(ただしここほど活発ではありません)、その質問はまだ回答されていません。

これまでに完了したこと::check_mark:SMTP用にHostingerでメールを設定(WixでMX、CNAME、TXTなどのDNSレコードを更新) :check_mark:VPSを注文し、プロビジョニングを待機中

モバイルアプリをインストールするようなものではないですよ、ふふ。

そして、自分自身でバックアップを取るのは本当に本当に重要です。さらに、そのバックアップはオフサイト(別場所)に保存してください。これはシステム管理者として自分自身を管理する際の重要な一部です。すべてをホスティングプロバイダーに任せてしまうと、全てを失うリスクがあり、プロバイダーにとってあなたのビジネスの価値は最小限です。一方で、あなたが真のコミュニティを構築しており、人々が自分のメッセージや関係性を大切にしている場合、あなたのデータがあなた自身やコミュニティにとって持つ価値は非常に大きいです。

コミュニティを立ち上げることは、責任を引き受けることを意味します。もしその責任を果たすスキルがない場合、それらをアウトソーシングすべきです。つまり、評判の良い業者にセキュリティ、メンテナンス、継続性、修理、復旧などを任せるために料金を支払うことを意味します。

スナップショットはどのくらいの頻度で取得するのが適切でしょうか? 月1回で週1回のバックアップ、それとも週2回? それともそれはやりすぎでしょうか?

個人的には、スナップショットを使ったことがありません。(追加料金がかかるオプションだと思っていますし、ライブデータベースが稼働している場合に、その有用性がどうなるのか確信が持てません。)

バックアップの頻度について私が考える基準は、バックアップを復元する必要がある時に、自分はどんな気持ちになるかということです。もし、メンバーの会話や投稿が1分間の分失われていたら?それはかなり悲惨な気分になるでしょう。コミュニティに対する責任があり、その作業が失われるのを放置してしまったことになります。

一方で、ディスク容量が限られている場合、ディスクの使用量をバランスよく調整したいものです。実際に行っていること、そして見直すべきかもしれませんが、2日ごとにバックアップを取り、4つのバックアップを保持しています。私のモデレーターチームの一人が、毎夜バックアップディレクトリのコピーを自動的に取得しているので、オフサイトのコピーを持っています。災害が発生した場合、投稿の半分程度を失うことになります。

Contaboのサービスでの悪い経験を経て、OVHcloudのhttps://www.ovhcloud.com/en/vps/を代替手段として検討しています。しかし、これが適さない場合は、Contaboに落ち着くことになります。

1) アプリ付きディストリビューションを選択すると、この限られたオプションのみが表示されます。Ubuntu以外のDockerのオプションはありません。なので、それを避けてUbuntuのみを表示するディストリビューションを選ぶべきでしょうか?これは後でDockerをインストールできることを意味しますか?それとも私には複雑すぎるのでしょうか?(これが決定的な問題であれば、次の質問は無視してください)

2) バックアップについては非常に魅力的です:管理された無料の毎日バックアップ?素晴らしいですよね?

  1. Contaboと比較したOVHcloudの仕様に懸念があります:
    3.1) 2つのvCoreで十分でしょうか?
    3.2) ポートについて聞くべきですか?(Contaboは200Mbit/sを表示していました)
3.3) バンド幅は十分でしょうか?この点について、ContaboとOVHの比較は以下の通りです:

私はOVHcloudをこれらの正確な仕様で使って小さなフォーラムを運営していますが、Debianを使っていますし、とてもよく動いています

へえ!嬉しい知らせですね:) これまでUbuntuばかり見ていたので、必須かと思っていました。公式ガイドでもUbuntuを推奨しているので、私のような初心者にはDebianの方がセットアップや修正、最新アップデート、互換性の確保などでより困難を伴うのか気になります。それとも、そんな心配は不要でしょうか?

生活をシンプルに。Ubuntuを使おう。

標準インストールは30分で完了します :slight_smile:

(投稿は著者によって削除されました)

(投稿は著者によって削除されました)

Dockerがプリインストールされているものを選ばないでください。標準のUbuntuまたはDebianを使用し、スクリプトが残りの作業を行います。

私はUbuntuを強く嫌っており、正直なところ、Debianとの違い(より肥大化していること以外)や、通常のDebianではなくDiscourseで強く推奨される理由がわかりません。あなたがほとんど経験がないように見えるので、標準的なUbuntuインストールガイドに従ってください。

clarificationをありがとう。私が

プリインストールされていないからといって、将来の管理に追加の費用や手間がかかるということではないですよね。

もう一つ見落としていました。他のVPSとは異なり、このVPSにはパネルがありません。これは無料で簡単に解決できますか?