Dieser Leitfaden erläutert die verschiedenen Nur-Lese-Modi, die in Discourse verfügbar sind, wie man sie aktiviert und deaktiviert, sowie die Szenarien, in denen Sie jeden Modus verwenden möchten.
Erforderliche Benutzerstufe: Administrator
Die Verwaltung einer lebendigen Online-Community auf Discourse erfordert gelegentlich, dass Administratoren Benutzeraktivitäten vorübergehend einschränken. Diese Situationen können von der Durchführung von Serverwartungsarbeiten über die Erleichterung von Backups bis hin zur Migration von Servern reichen. In solchen Zeiten ist es entscheidend, die Forenaktivitäten einzuschränken, ohne den Benutzerzugriff vollständig zu unterbrechen.
Discourse bietet verschiedene Nur-Lese-Modi, die Administratoren aktivieren können, um vorübergehend verschiedene Arten von Interaktionen innerhalb einer Site einzufrieren.
Dieser Leitfaden untersucht diese Modi mit besonderem Fokus darauf, wie man sie aktiviert und deaktiviert, einschließlich der Handhabung von Situationen, in denen sich bestimmte Modi überschneiden.
Verständnis der Nur-Lese-Modi
Discourse unterstützt zwei verschiedene Ebenen von Nur-Lese-Modi, die auf verschiedene administrative Bedürfnisse zugeschnitten sind. Diese sind:
- Vollständiger Nur-Lese-Modus
- Schränkt alle Schreibvorgänge im Forum ein und verhindert, dass Benutzer Inhalte erstellen oder ändern, wie z. B. Beiträge verfassen, kommentieren oder liken.
- Ermöglicht es dem Forum, im Wesentlichen in seinem aktuellen Zustand „eingefroren" zu sein, sodass Benutzer weiterhin bestehende Inhalte lesen und navigieren können, ohne die Datenbank zu beeinträchtigen.
- Deaktiviert das Ändern von Admin-Site-Einstellungen oder Site-Anpassungen, um den aktuellen Zustand der Datenbank zu erhalten.
- Deaktiviert neue Foren-Logins für reguläre Benutzer. Administratoren können sich weiterhin über den Admin-E-Mail-Login-Flow (
/u/admin-login) anmelden.
- Nur-Mitarbeiter-Schreibmodus
- Schränkt Standardbenutzer von Schreibvorgängen im Forum ein, wie z. B. Beiträge verfassen, kommentieren oder liken. Standardbenutzer sind auf Nur-Lese-Operationen beschränkt, können sich jedoch weiterhin bei ihren Konten anmelden.
- Ermöglicht es Admin- und Moderator-Aktivitäten, normal fortzusetzen. Administratoren können Site-Einstellungen ändern, und Mitarbeiterbenutzer können Schreibvorgänge wie das Verfassen von Beiträgen, Liken oder das Ändern von Profilen durchführen.
Diese Modi gewährleisten Flexibilität bei der Verwaltung der Betriebsfähigkeit des Forums während kritischer administrativer Phasen.
So aktivieren/deaktivieren Sie Nur-Lese-Modi
Administratoren sollten den Übergang zwischen verschiedenen Nur-Lese-Modi sorgfältig verwalten. Bevor Sie einen Nur-Lese-Modus aktivieren, stellen Sie sicher, dass ein zuvor aktivierter Modus deaktiviert ist.
Vollständiger Nur-Lese-Modus
Über die Rails-Konsole
Wenn Sie Zugriff auf Ihre Discourse-Installation haben, verwenden Sie die Discourse-Rails-Befehlszeilenschnittstelle, um den folgenden Befehl auszuführen, nachdem Sie Ihren Docker-Container mit ./launcher enter app und dann die Rails-Konsole mit rails c betreten haben:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Über das Admin-Panel
Wenn Sie über das Webinterface Administrationszugriff haben, können Sie zu Admin > Backups > Nur-Lese-Modus aktivieren navigieren, um den Nur-Lese-Modus zu aktivieren.
Um den Nur-Lese-Modus zu deaktivieren, führen Sie den folgenden Rails-Befehl aus:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Oder verwenden Sie das Admin-Panel, indem Sie zu Admin > Backups > Nur-Lese-Modus deaktivieren navigieren.
Nur-Mitarbeiter-Schreibmodus
Der Nur-Mitarbeiter-Schreibmodus kann nur über die Discourse-Rails-Konsole aktiviert/deaktiviert werden. Wenn Ihre Site von Discourse gehostet wird, wenden Sie sich bitte an team@discourse.org, wenn Sie einen dieser Modi aktivieren oder deaktivieren möchten.
Um den Nur-Mitarbeiter-Schreibmodus zu aktivieren, verwenden Sie den folgenden Rails-Konsole-Befehl:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Zum Deaktivieren:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Best Practices
- Rechtzeitige Kommunikation: Informieren Sie Ihre Community im Voraus über geplante Nur-Lese-Zeiträume, um angemessene Erwartungen zu setzen.
- Tests: Führen Sie vor der Implementierung dieser Modi während kritischer Operationen Tests in Zeiten mit geringem Verkehrsaufkommen durch, um deren Auswirkungen zu verstehen.
- Dokumentation: Führen Sie detaillierte Aufzeichnungen darüber, wann und warum jeder Modus aktiviert oder deaktiviert wurde, um die zukünftige Operationsplanung zu unterstützen.
Häufig gestellte Fragen (FAQs)
-
Wie lange dauert es, den Nur-Lese-Modus zu aktivieren/deaktivieren?
- Die Änderung ist sofort wirksam. Das Benutzererlebnis kann jedoch je nach Aktionen während des Übergangszeitraums leicht variieren.
-
Hilfe! Ich bin wegen des Nur-Lese-Modus von meiner Site ausgeschlossen – was kann ich tun, um wieder Zugriff auf meine Site zu erhalten?
-
Ich habe festgestellt, dass es andere
READ-ONLY-Modi gibt, die in discourse/lib/discourse.rb aufgeführt sind. Was bewirken diese Modi?READONLY_MODE_KEYwird hauptsächlich für den Backup- und Wiederherstellungsprozess verwendet und wird von der Anwendung selbst ausgelöst. Dieser Modus kann auch über die Discourse-Befehlszeilenschnittstelle mitdiscourse enable_readonlyunddiscourse disable_readonlyaktiviert oder deaktiviert werden. Dieser Schlüssel übersteht jedoch keinen Container-Neustart.USER_READONLY_MODE_KEYwird verwendet, wenn ein Admin den Nur-Lese-Button im Admin-Interface klickt. Das Besondere an diesem Schlüssel ist, dass wir ihn nicht als ablaufenden Schlüssel festlegen, da ein von einem Benutzer aktivierter Nur-Lese-Modus Container-Neustarts überstehen muss. Andere Schlüssel werden mit einer TTL festgelegt (60 Sekunden fürREADONLY_MODE_KEY, 300 Sekunden fürPG_READONLY_MODE_KEY), und wir haben einen Thread, der alle 30 Sekunden das Ablaufdatum verlängert, um sicherzustellen, dass eine App niemals im Nur-Lese-Modus stecken bleibt.PG_READONLY_MODE_KEYundPG_FORCE_READONLY_MODE_KEYwerden für das PG-Failover verwendet. Ersterer ist als ablaufender Schlüssel festgelegt, während Letzterer nicht abläuft.

