Dies ist ein #how-to-Leitfaden zu versteckten Site-Einstellungen, wie man sie aktiviert und warum Sie sie möglicherweise anpassen möchten.
Erforderliche Benutzerstufe: Administrator
Wichtig: Für einige Schritte ist der Konsolenzugriff erforderlich.
In Discourse beziehen sich versteckte Site-Einstellungen auf Konfigurationsoptionen, die über die Standard-Admin-Dashboard-Oberfläche nicht unmittelbar sichtbar oder zugänglich sind. Diese Einstellungen sind Teil der Backend-Konfiguration und können verschiedene erweiterte oder potenziell einschneidende Funktionen der Site steuern.
Diese versteckten Einstellungen verfügen über vorkonfigurierte Standardwerte, die darauf ausgelegt sind, basierend auf gängigen Anwendungsfällen und Best Practices optimale Leistung und Sicherheit zu gewährleisten.
Versteckte Einstellungen sind in der Standard-Einstellungsoberfläche ausgeblendet, um eine versehentliche Fehlkonfiguration durch Administratoren zu verhindern, die die Auswirkungen möglicherweise nicht vollständig verstehen. Sie sind vorgesehen für:
- Administratoren, die ein tiefes Verständnis der internen Abläufe von Discourse haben.
- Spezifische Fälle, in denen eine ungewöhnliche oder sehr spezifische Site-Konfiguration erforderlich ist.
- Test- oder Experimentalfunktionen, die noch nicht für den allgemeinen Einsatz bereit sind.
Administratoren, die versteckte Einstellungen ändern möchten, müssen dies in der Regel tun, weil die Standardkonfiguration nicht perfekt mit ihren Anforderungen übereinstimmt.
Wichtige Hinweise zu versteckten Einstellungen:
Das Anpassen versteckter Site-Einstellungen in Discourse kann zu verschiedenen Problemen führen, wie z. B. Sicherheitslücken, negativen Leistungseinbußen, Verschlechterung der Benutzererfahrung oder Datenverlust, wenn dies nicht sorgfältig durchgeführt wird!
Versteckte Site-Einstellungen sollten nur von sachkundigen Discourse-Administratoren geändert werden. Bevor Sie eine Einstellung ändern, stellen Sie sicher, dass Sie verstehen, was sie bewirkt und welche Auswirkungen die Änderung hat. Wenn möglich, führen Sie erhebliche Konfigurationsänderungen in einer Test- oder Entwicklungsumgebung durch. Stellen Sie vor umfassenden oder kritischen Änderungen sicher, dass Backups aktuell sind, um den Zustand des Forums wiederherzustellen, falls etwas schiefgeht.
So bearbeiten Sie versteckte Site-Einstellungen
Option 1: Rails-Konsole
Um versteckte Site-Einstellungen zu ändern, müssen Sie in der Regel die Rails-Konsole verwenden, ein Befehlszeilen-Tool, das es Ihnen ermöglicht, direkt mit dem Backend Ihrer Discourse-Installation zu interagieren. Um Einstellungen über die Rails-Konsole anzupassen, können Sie diese Schritte befolgen:
- Zugriff auf die Rails-Konsole:
cd /var/discourse
./launcher enter app
rails c
- Eine Einstellung ändern:
SiteSetting.your_setting_name = new_value
Ersetzen Sie your_setting_name durch den Namen der Einstellung, die Sie ändern möchten, und new_value durch den Wert, den Sie festlegen möchten.
- Die Konsole verlassen:
exit
Option 2: Umgebungsvariablen in app.yml einrichten
Sie können auch Umgebungsvariablen verwenden, um versteckte Site-Einstellungen anzupassen. Die Datei app.yml ist eine Konfigurationsdatei, die bei Docker-basierten Bereitstellungen von Discourse verwendet wird. Sie befindet sich typischerweise im Verzeichnis /containers Ihrer Discourse-Installation. So können Sie Umgebungsvariablen hinzufügen oder ändern:
- Zugriff auf die Datei
app.yml:
Öffnen Sie die Dateiapp.ymlin Ihrem bevorzugten Texteditor:
nano /var/discourse/containers/app.yml
- Umgebungsvariablen hinzufügen:
Umgebungsvariablen können im Abschnittenvder Dateiapp.ymlkonfiguriert werden. Sie folgen dem MusterDISCOURSE_SETTING_NAME: value. Um beispielsweise die Einstellungmax_category_nestingüber eine Umgebungsvariable auf3zu setzen, würden Sie Folgendes verwenden:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- Den Container neu erstellen:
Nachdem Sie Änderungen an der Dateiapp.ymlgespeichert haben, erstellen Sie den Discourse-Docker-Container neu, um die Änderungen zu übernehmen:
cd /var/discourse
./launcher rebuild app
Warum versteckte Einstellungen aktivieren
Das Aktivieren oder Anpassen versteckter Site-Einstellungen in Discourse ermöglicht es Administratoren, ihr Forum-Setup tiefgreifend an spezifische technische Anforderungen anzupassen, die Leistung zu verbessern oder Sicherheit und Compliance zu gewährleisten. Dies unterstützt eine fein abgestimmte Benutzererfahrung und operative Effizienz.
Beispiele für versteckte Site-Einstellungen sind:
- Badge SQL: Die Aktivierung von
enable_badge_sqlermöglicht es Site-Administratoren, benutzerdefinierte SQL-Abfragen für Badge-Kriterien zu erstellen, was Flexibilität bei der Badge-Zuweisung basierend auf komplexen Bedingungen bietet. - S3-Backup-Einstellungen: Die Einbeziehung von S3-Uploads in Backups mit
include_s3_uploads_in_backupskann für erweiterte Backup-Strategien verwendet werden. - Such-Ratenbegrenzungen: Das Anpassen von Such-Ratenbegrenzungen mit Einstellungen wie
rate_limit_search_user, um eine Drosselung in Szenarien mit hoher Nutzung zu verhindern.
Häufig gestellte Fragen (FAQs)
F: Können versteckte Einstellungen in der Benutzeroberfläche sichtbar gemacht werden?
A: Versteckte Einstellungen in Discourse sind aus Sicherheits- und Komplexitätsgründen nicht direkt über die Benutzeroberfläche konfigurierbar.
F: Wo finde ich Informationen zu jeder versteckten Einstellung?
A: Detaillierte Informationen zu jeder Einstellung finden Sie im Referenzleitfaden für versteckte Site-Einstellungen und im Discourse-Quellcode, speziell in der Datei site_settings.yml im GitHub-Repository. Zusätzliche Informationen zu einigen Einstellungen sind auch auf den Discourse-Meta-Foren verfügbar.
F: Bleiben Änderungen, die über Umgebungsvariablen vorgenommen wurden, bei Updates erhalten?
A: Ja, wenn sie in app.yml oder im permanenten Profil des Systems festgelegt sind, bleiben diese Einstellungen bei Updates erhalten, es sei denn, sie werden durch andere Konfigurationen überschrieben.
F: Wie erfahre ich, welche Einstellungen über Umgebungsvariablen gesteuert werden können?
A: Typischerweise kann jede Discourse-Site-Einstellung mit DISCOURSE_ versehen und als Umgebungsvariable festgelegt werden.
F: Ist es sicher, sensible Informationen über Umgebungsvariablen zu konfigurieren?
A: Umgebungsvariablen gelten allgemein als sicher für das Konfigurationsmanagement. Stellen Sie jedoch sicher, dass sie in geteilten oder unsicheren Umgebungen nicht offengelegt werden.
F: Muss ich neu erstellen, wenn ich eine Site-Einstellung umschalte?
A: In den meisten Fällen erfordert das Umschalten einer Site-Einstellung über die Rails-Konsole kein Neuerstellen Ihrer Discourse-Installation. Diese Änderungen treten typischerweise sofort oder nach einem Neuladen Ihrer Instanz in Kraft. Einige spezifische Einstellungen, insbesondere solche, die grundlegende Aspekte des Systems beeinflussen, erfordern möglicherweise jedoch einen Neustart oder eine Neuerstellung, damit die Änderungen wirksam werden. Für Änderungen in der Datei app.yml ist eine Neuerstellung Ihres Discourse-Containers erforderlich, damit diese Änderungen wirksam werden.
F: Kann ich eine Einstellungsänderung leicht rückgängig machen?
A: Ja, die meisten Einstellungen können rückgängig gemacht werden, es sei denn, sie beinhalten das Löschen von Daten.