このガイドでは、Discourseサイトのドメイン名を変更する方法について説明します。これには、DNS変更の設定、設定ファイルの編集、サイト設定の更新、ソーシャルログインや投稿コンテンツの新しいドメイン名への修正に関する情報が含まれます。
このガイドは、GitHubのインストールガイドを使用してインストールされたセルフホスト型Discourseインスタンスを対象としています。Discourseによってホストされている場合は、特定の指示についてhttps://meta.discourse.org/t/configure-your-domain-name-for-hosted-discourse/21827を参照してください。
例えば、Discourseインスタンスのドメイン名を変更したい場合があります。
=BEFORE= → =AFTER=
始めましょう。
事前にDNSのTTLを低く設定する
まず、DNSのTime-To-Live(TTL)設定を60分などの低い値に変更します。これにより、変更がインターネット全体にすばやく伝播するように、実際のドメイン変更の数日前にこれを行う必要があります。
サイト設定から古いドメイン名を削除する
Discourse管理インターフェースの/admin/site_settingsにアクセスし、古いドメイン名を含む設定をすべて検索します。これらの設定を新しいドメイン名に更新します。

DNSレコードの変更
DNS設定を更新して、古いドメインを無効にし、新しいドメインをDiscourseサーバーのIPアドレスに向けるようにします。
app.ymlでサイト名を編集する
app.ymlファイルを手動で編集して、新しいドメイン情報を入力できます。
手動で編集する方法は次のとおりです。
cd /var/discourse
nano containers/app.yml
次の行を見つけて置き換えます。
DISCOURSE_HOSTNAME: 'your.newdomain.com'
コンテンツデリバリーネットワーク(CDN)を使用している場合は、app.yml内の対応する行をコメントアウトして一時的に無効にします。次のコマンドでDiscourseサイトを再構築します。
./launcher rebuild app
あるいは、
./discourse-setupを再度実行し、app.ymlを編集する代わりに新しいドメイン情報を入力することもできます。
新しいドメイン名でサイトが機能することを確認します。
ソーシャルログインの修正
ログイン方法によっては、これを最初に行う必要がある場合があります。そうしないと、名前変更後にログインできなくなる可能性があります。
ソーシャルログインを使用している場合は、新しいドメインを反映するように各プラットフォーム(Twitter、Facebook、Google、GitHub)の資格情報を更新します。Discourseのhow-toカテゴリでガイドを探してください。
投稿内のドメイン名の再マッピング
既存のすべての投稿は、引き続き古いドメインを参照しています。
投稿内の古いドメインへの参照を新しいドメインに変更する必要があります。
./launcher enter app
その後
discourse remap =BEFORE= =AFTER=
次のコマンドで最終確認を行います。
rake posts:rebake
これにより、既存の投稿でドメイン名が再マッピングされ、必要に応じてコンテンツが再生成されます。
CDNを使用している場合は、ドメイン変更後に再度有効化することを忘れないでください。
:small: このフォームをどのように作成したか疑問に思われますか?