隠しサイト設定の使用

:bookmark: これは、非表示のサイト設定とは何か、それらを有効にする方法、およびそれらを調整する理由についての #ハウツー ガイドです。

:person_raising_hand: 必要なユーザーレベル: 管理者
:warning: 重要: 一部のステップにはコンソールアクセスが必要です。

Discourse において、非表示のサイト設定とは、標準の管理ダッシュボードインターフェースから容易には表示またはアクセスできない設定オプションを指します。これらの設定はバックエンド構成の一部であり、サイトのさまざまな高度な機能や潜在的に重要な影響を与える機能を制御できます。

これらの非表示設定には、一般的なユースケースやベストプラクティスに基づいて最適なパフォーマンスとセキュリティを確保するように事前に設定されたデフォルト値が用意されています。

非表示設定は、その影響を完全に理解していない管理者による誤設定を防ぐために、デフォルトの設定インターフェースから隠されています。これらは以下のような場合に意図されています。

  • Discourse の内部構造を深く理解している管理者。
  • 特殊または非常に具体的なサイト設定が必要な特定のケース。
  • 一般使用の準備ができていないテスト用または実験的な機能。

非表示設定を変更したい管理者は、通常、デフォルト構成が自らのニーズに完全に合致していないため、これを変更する必要があります。

:warning: 非表示設定に関する重要な注意点:

Discourse の非表示サイト設定を不注意に調整すると、セキュリティの脆弱性、パフォーマンスへの悪影響、ユーザーエクスペリエンスの低下、またはデータ損失など、さまざまな問題を引き起こす可能性があります!

非表示のサイト設定は、知識豊富な Discourse 管理者のみが変更すべきです。設定を変更する前に、その機能と変更の影響を必ず理解してください。可能な限り、重要な構成変更はステージング環境または開発環境で実装してください。広範または重要な変更を行う前に、何か問題が発生した場合にフォーラムの状態を復元できるよう、バックアップが最新であることを確認してください。

非表示のサイト設定を編集する方法

オプション 1: Rails コンソール

非表示のサイト設定を変更するには、通常、Discourse インストールのバックエンドと直接対話できるコマンドラインツールである Rails コンソールを使用する必要があります。Rails コンソールを介して設定を調整するには、以下の手順に従ってください。

  1. Rails コンソールへのアクセス:
cd /var/discourse
./launcher enter app
rails c
  1. 設定の変更:
SiteSetting.your_setting_name = new_value

your_setting_name を変更したい設定の名前に、new_value を設定したい値に置き換えてください。

  1. コンソールからの退出:
exit

オプション 2: app.yml での環境変数の設定

環境変数を使用して非表示のサイト設定を調整することもできます。app.yml ファイルは、Docker ベースの Discourse デプロイメントで使用される設定ファイルです。通常、Discourse インストールの /containers ディレクトリに配置されています。環境変数を追加または変更する方法は以下の通りです。

  1. app.yml ファイルへのアクセス:
    お好みのテキストエディタで app.yml ファイルを開きます。
nano /var/discourse/containers/app.yml
  1. 環境変数の追加:
    環境変数は app.yml ファイルの env セクションで設定できます。パターンは DISCOURSE_SETTING_NAME: value です。例えば、max_category_nesting 設定を 3 に環境変数で設定するには、以下のようにします。
env:
  DISCOURSE_MAX_CATEGORY_NESTING: 3
  1. コンテナの再ビルド:
    app.yml ファイルへの変更を保存した後、変更を適用するために Discourse Docker コンテナを再ビルドします。
cd /var/discourse
./launcher rebuild app

非表示設定を有効にする理由

Discourse で非表示のサイト設定を有効または調整することで、管理者は特定の技術要件を満たすためにフォーラムの設定を深くカスタマイズし、パフォーマンスを向上させ、セキュリティとコンプライアンスを確保できます。これにより、きめ細かく調整されたユーザーエクスペリエンスと運用効率をサポートします。

非表示のサイト設定の例:

  • Badge SQL: enable_badge_sql を有効にすると、サイト管理者はバッジの基準にカスタム SQL クエリを作成でき、複雑な条件に基づいたバッジ割り当ての柔軟性が提供されます。
  • S3 バックアップ設定: include_s3_uploads_in_backups を使用して S3 アップロードをバックアップに含めることで、高度なバックアップ戦略を実行できます。
  • 検索レート制限: rate_limit_search_user などの設定で検索レート制限を調整し、高使用率の状況でのスロットリングを防止します。

よくある質問 (FAQ)

Q: 非表示設定を UI で表示することはできますか?
A: Discourse の非表示設定は、安全性と複雑さの理由から、UI を介して直接設定することはできません。

Q: 各非表示設定に関する情報はどこで確認できますか?
A: 各設定の詳細情報は、非表示のサイト設定リファレンスガイド および Discourse ソースコード、具体的には GitHub リポジトリsite_settings.yml ファイル内で確認できます。一部の設定に関する追加情報は、Discourse Meta フォーラムでも利用可能です。

Q: 環境変数を通じて行われた変更はアップデート後も維持されますか?
A: はい、app.yml またはシステムの永続的なプロファイルで設定された場合、これらの設定は他の構成によって上書きされない限り、アップデート後も維持されます。

Q: どの設定を環境変数で制御できるかどうかわかりません。
A: 一般的に、Discourse のサイト設定はすべて DISCOURSE_ プレフィックスを付けて環境変数として設定できます。

Q: 環境変数を通じて機密情報を設定しても安全ですか?
A: 環境変数は一般的に構成管理にとって安全とされています。ただし、共有環境や不安全な環境で公開されないようにしてください。

Q: サイト設定を切り替える際に再ビルドが必要ですか?
A: ほとんどの場合、Rails コンソールを介してサイト設定を切り替える際に Discourse 設定の再ビルドは不要です。これらの変更は通常、即座に、またはインスタンスの更新時に反映されます。ただし、システムの基盤部分に影響を与える特定の設定については、変更を適用するために再起動または再ビルドが必要になる場合があります。app.yml ファイルで行われた変更については、変更を反映させるために Discourse コンテナの再ビルドが必要です。

Q: 設定の変更を簡単に元に戻すことはできますか?
A: はい、データ削除を伴わない限り、ほとんどの設定は元に戻すことができます。

追加リソース

「いいね!」 8