このガイドでは、Discourse で利用可能なさまざまな読み取り専用モード、それらを有効化および無効化する方法、および各モードを使用するシナリオについて説明します。
必要なユーザーレベル:管理者
Discourse で活気のあるオンライン コミュニティを管理するには、管理者がユーザーの活動を一時的に制限する必要がある場合があります。これらの状況は、サーバーのメンテナンスの実行、バックアップの促進、またはサーバーの移行など、さまざまな場合があります。このような時期には、ユーザー アクセスを完全に停止することなく、フォーラムの活動を制限することが重要です。
Discourse は、管理者がサイト内のさまざまな種類の対話を一時的にフリーズするために有効にできる、さまざまな読み取り専用モードを提供しています。
このガイドでは、これらのモードについて説明し、特にそれらを有効化および無効化する方法、および特定のモードが重複する状況の処理に焦点を当てます。
読み取り専用モードの理解
Discourse は、さまざまな管理ニーズに合わせて調整された 2 つの異なるレベルの読み取り専用モードをサポートしています。これらは次のとおりです。
-
フル読み取り専用モード
- フォーラムでのすべての書き込み操作を制限し、ユーザーが投稿、コメント、いいねなどのコンテンツを作成または変更できないようにします。
- フォーラムを現在の状態に「フリーズ」させることができ、ユーザーはデータベースに影響を与えることなく、既存のコンテンツを読み取り、移動できます。
- データベースの現在の状態が維持されるように、管理者サイトの設定またはサイトのカスタマイズの変更を無効にします。
- 新しいフォーラムへのログインを無効にします。
-
スタッフのみ書き込みモード
- フォーラムでの投稿、コメント、いいねなどの書き込み操作から標準ユーザーを制限します。標準ユーザーは読み取り専用操作に限定され、このモードが有効になるとアカウントにログインできなくなります。
- 管理者とモデレーターの活動は通常どおり続行できます。管理者はサイト設定を変更でき、スタッフユーザーは投稿、いいね、プロフィールの変更などの書き込み操作を実行できます。
これらのモードは、重要な管理期間中にフォーラムの運用可能性を管理する上での柔軟性を保証します。
読み取り専用モードの有効化/無効化方法
管理者は、異なる読み取り専用モード間の移行を慎重に管理する必要があります。読み取り専用モードを有効にする前に、以前にアクティブ化されたモードが無効になっていることを確認してください。
フル読み取り専用モード
Rails コンソール経由
Discourse のインストールにアクセスできる場合は、./launcher enter app で Docker コンテナに入り、次に rails c で Rails コンソールに入って、Discourse の rails コマンドラインインターフェイスを使用して次のコマンドを実行します。
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
管理者パネル経由
Web インターフェイスから管理アクセス権がある場合は、Admin > Backups > Enable Read-Only Mode に移動して読み取り専用モードを有効にできます。
読み取り専用モードを無効にするには、次の rails コマンドを実行します。
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
または、管理者パネルで Admin > Backups > Disable Read-Only Mode に移動して使用します。
スタッフのみ書き込みモード
スタッフのみ書き込みモードは、Discourse rails コンソールからのみ有効化/無効化できます。サイトが Discourse によってホストされている場合は、このモードのいずれかを有効化または無効化したい場合は、team@discourse.org までご連絡ください。
スタッフのみ書き込みモードを有効にするには、次の rails コンソール コマンドを使用します。
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
無効にするには:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
ベストプラクティス
- 適時のコミュニケーション: 予定されている読み取り専用期間についてコミュニティに事前に通知し、適切な期待を設定します。
- テスト: 重要な操作中にこれらのモードを実装する前に、トラフィックの少ない期間中にテストを実施して、その影響を理解します。
- ドキュメント: 将来の運用計画を支援するために、各モードがいつ、なぜ有効化または無効化されたかの詳細な記録を保持します。
FAQ
-
読み取り専用モードの有効化/無効化にはどのくらい時間がかかりますか?
- 変更は即時です。ただし、移行期間中のユーザーのアクションによっては、ユーザーエクスペリエンスが若干異なる場合があります。
-
ヘルプ!読み取り専用モードでサイトにロックアウトされました。サイトに再度アクセスするにはどうすればよいですか?
-
discourse/lib/discourse.rb に他の
READ-ONLYモードがリストされていることに気づきましたが、これらのモードは何をしますか?READONLY_MODE_KEYは主にバックアップと復元プロセスに使用され、アプリケーション自体によってトリガーされます。このモードは、Discourse コマンドラインインターフェイスでdiscourse enable_readonlyおよびdiscourse disable_readonlyを使用して有効化または無効化することもできます。ただし、このキーはコンテナの再起動では保持されません。USER_READONLY_MODE_KEYは、管理者が管理者インターフェイスの読み取り専用ボタンをクリックしたときに使用されます。このキーの特別な点は、ユーザーによって有効化された読み取り専用がコンテナの再起動を生き残る必要があるため、期限切れのキーとして設定しないことです。他のキーは TTL が 60 秒に設定されており、アプリが決して読み取り専用モードでスタックしないように、30 秒ごとに有効期限を延長するスレッドがあります。PG_READONLY_MODE_KEYおよびPG_FORCE_READONLY_MODE_KEYは、PG フェイルオーバーに使用されます。前者は期限切れのキーとして設定され、後者は期限切れではありません。

