これは、非表示のサイト設定、それらを有効にする方法、および調整を検討する理由に関する 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_value
your_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_設定名: 値というパターンに従います。たとえば、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: はい、ほとんどの設定は、データ削除が関与しない限り元に戻すことができます。