これは、非表示のサイト設定、それらを有効にする方法、および調整する理由についての how-to ガイドです。
必要なユーザーレベル:管理者
重要:一部の手順ではコンソールアクセスが必要です。
Discourse では、非表示のサイト設定とは、標準の管理者ダッシュボードインターフェイスからは容易に表示またはアクセスできない構成オプションを指します。これらの設定は、サイトのさまざまな高度な機能や影響力のある可能性のある機能を制御できるバックエンド構成の一部です。
これらの非表示設定には、一般的なユースケースとベストプラクティスに基づいて最適なパフォーマンスとセキュリティを確保するために設定されたデフォルト値が事前に構成されています。
非表示設定は、管理者がその影響を完全に理解していない場合に誤って誤設定するのを防ぐために、デフォルトの設定インターフェイスから隠されています。これらは以下を対象としています。
- Discourse の内部構造を深く理解している管理者。
- 例外的または非常に特定のサイト構成が必要な場合。
- 一般的な使用準備ができていないテストまたは実験的な機能。
非表示設定の変更を希望する管理者は、通常、デフォルトの構成がニーズに完全に一致しないために、そのようにします。
非表示設定に関する重要事項:
Discourse の非表示サイト設定の調整は、注意して行わないと、セキュリティの脆弱性、パフォーマンスへの悪影響、ユーザーエクスペリエンスの低下、またはデータ損失など、さまざまな問題を引き起こす可能性があります。
非表示サイト設定は、知識のある Discourse 管理者のみが変更する必要があります。設定を変更する前に、それが何をするのか、そして変更がもたらす影響を理解していることを確認してください。可能な場合は、ステージングまたは開発環境で大幅な構成変更を実装してください。広範または重要な変更を行う前に、問題が発生した場合にフォーラムの状態を復元できるように、バックアップが最新であることを確認してください。
非表示サイト設定の編集方法
オプション 1:Rails コンソール
非表示サイト設定を変更するには、通常、Discourse インストールのバックエンドと直接対話できるコマンドラインツールである Rails コンソールを使用する必要があります。Rails コンソール経由で設定を調整するには、次の手順に従います。
-
Rails コンソールへのアクセス:
cd /var/discourse ./launcher enter app rails c -
設定の変更:
SiteSetting.your_setting_name = new_valueyour_setting_nameを変更したい設定の名前に、new_valueを設定したい値に置き換えてください。 -
コンソールの終了:
exit
オプション 2:app.yml で環境変数を設定する
環境変数を使用して非表示サイト設定を調整することもできます。app.yml ファイルは、Discourse の Docker ベースのデプロイメントで使用される構成ファイルです。通常、Discourse インストールの /containers ディレクトリにあります。環境変数の追加または変更方法は次のとおりです。
-
app.ymlファイルへのアクセス:
好みのテキストエディターでapp.ymlファイルを開きます。nano /var/discourse/containers/app.yml -
環境変数の追加:
環境変数は、app.ymlファイルのenvセクションで構成できます。これらはDISCOURSE_SETTING_NAME: valueのパターンに従います。たとえば、max_category_nesting設定を環境変数経由で3に設定するには、次のようにします。env: DISCOURSE_MAX_CATEGORY_NESTING: 3 -
コンテナの再構築:
app.ymlファイルへの変更を保存した後、Discourse Docker コンテナを再構築して変更を適用します。cd /var/discourse ./launcher rebuild app
非表示設定を有効にする理由
Discourse で非表示サイト設定を有効または調整することにより、管理者はフォーラムのセットアップを深くカスタマイズして、特定の技術要件を満たし、パフォーマンスを向上させ、セキュリティとコンプライアンスを確保できます。これにより、細かく調整されたユーザーエクスペリエンスと運用効率がサポートされます。
非表示サイト設定の例:
- バッジ SQL:
enable badge sqlを有効にすると、サイト管理者はバッジの基準にカスタム SQL クエリを作成でき、複雑な条件に基づいてバッジを割り当てる柔軟性が得られます。 - 投稿の永久削除:
can permanently deleteを有効にすると、コンプライアンスまたはプライバシー上の懸念から投稿を永久に削除できます。 - 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:はい、データ削除を伴う場合を除き、ほとんどの設定は元に戻すことができます。