Dies ist ein #how-to-Leitfaden zu versteckten Site-Einstellungen, wie man sie aktiviert und warum man sie möglicherweise anpassen möchte.
Erforderliches Benutzerniveau: Administrator
Wichtig: Für einige Schritte ist der Zugriff auf die Konsole erforderlich.
In Discourse beziehen sich versteckte Site-Einstellungen auf Konfigurationsoptionen, die über die Standard-Admin-Dashboard-Oberfläche nicht ohne Weiteres sichtbar oder zugänglich sind. Diese Einstellungen sind Teil der Backend-Konfiguration, die verschiedene erweiterte oder potenziell weitreichende Funktionen der Site steuern können.
Diese versteckten Einstellungen werden mit voreingestellten Standardwerten geliefert, die so festgelegt sind, dass sie eine optimale Leistung und Sicherheit gewährleisten, basierend auf gängigen Anwendungsfällen und bewährten Vorgehensweisen.
Versteckte Einstellungen werden aus der Standardeinstellungs-Oberfläche ausgeblendet, um eine versehentliche Fehlkonfiguration durch Administratoren zu verhindern, die die Auswirkungen möglicherweise nicht vollständig verstehen. Sie sind gedacht für:
- Administratoren, die ein tiefes Verständnis der internen Funktionsweise von Discourse haben.
- Spezifische Fälle, in denen eine ungewöhnliche oder sehr spezifische Site-Konfiguration erforderlich ist.
- Testen oder experimentelle Funktionen, die noch nicht für den allgemeinen Gebrauch 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:
Die Anpassung versteckter Site-Einstellungen in Discourse kann zu verschiedenen Problemen führen, wie z. B. Sicherheitslücken, negativen Auswirkungen auf die Leistung, Verschlechterung der Benutzererfahrung oder Datenverlust, wenn sie nicht sorgfältig durchgeführt wird!
Versteckte Site-Einstellungen sollten nur von sachkundigen Discourse-Administratoren geändert werden. Stellen Sie vor der Änderung einer Einstellung sicher, dass Sie verstehen, was sie bewirkt und welche Auswirkungen die Änderung hat. Implementieren Sie signifikante Konfigurationsänderungen, wenn möglich, in einer Staging- oder Entwicklungsumgebung. Stellen Sie vor der Vornahme weitreichender oder kritischer Änderungen sicher, dass Backups aktuell sind, um den Zustand des Forums wiederherstellen zu können, falls etwas schiefgeht.
Bearbeiten versteckter Site-Einstellungen
Option 1: Rails-Konsole
Um versteckte Site-Einstellungen zu ändern, müssen Sie in der Regel die Rails-Konsole verwenden, ein Befehlszeilentool, mit dem Sie direkt mit dem Backend Ihrer Discourse-Installation interagieren können. 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 normalerweise im Verzeichnis /containers Ihrer Discourse-Installation. So fügen Sie Umgebungsvariablen hinzu oder ändern diese:
- Auf die Datei
app.ymlzugreifen:
Ö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 verwenden:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- Den Container neu erstellen:
Nach dem Speichern der Änderungen in der Dateiapp.ymlerstellen 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, ihre Forum-Einrichtung tiefgreifend anzupassen, um spezifische technische Anforderungen zu erfüllen, die Leistung zu verbessern oder Sicherheit und Compliance zu gewährleisten, wodurch ein fein abgestimmtes Benutzererlebnis und operative Effizienz unterstützt werden.
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 Zuweisung von Badges basierend auf komplexen Bedingungen bietet. - Permanentes Löschen von Beiträgen: Die Aktivierung von
can_permanently_deleteermöglicht das dauerhafte Löschen von Beiträgen aus Compliance- oder Datenschutzgründen. - S3-Backup-Einstellungen: Die Einbeziehung von S3-Uploads in Backups mit
include_s3_uploads_in_backupskann für verbesserte Backup-Strategien verwendet werden. - Suchratenbegrenzungen: Die Anpassung der Suchratenbegrenzungen mit Einstellungen wie
rate_limit_search_user, um eine Drosselung bei Szenarien mit hoher Auslastung zu verhindern.
FAQs
F: Können versteckte Einstellungen in der Benutzeroberfläche sichtbar gemacht werden?
A: Versteckte Einstellungen in Discourse können aus Sicherheits- und Komplexitätsgründen nicht direkt über die Benutzeroberfläche konfiguriert werden.
F: Wo finde ich Informationen zu jeder versteckten Einstellung?
A: Detaillierte Informationen zu jeder Einstellung finden Sie im Referenzhandbuch für versteckte Site-Einstellungen und im Discourse-Quellcode, insbesondere in der Datei site_settings.yml im GitHub-Repository. Zusätzliche Informationen zu einigen Einstellungen sind auch in den Discourse Meta-Foren verfügbar.
F: Bleiben Änderungen, die über Umgebungsvariablen vorgenommen wurden, nach Updates erhalten?
A: Ja, wenn sie in app.yml oder dem permanenten Profil des Systems festgelegt sind, bleiben diese Einstellungen nach Updates erhalten, es sei denn, sie werden durch andere Konfigurationen überschrieben.
F: Woher weiß ich, welche Einstellungen über Umgebungsvariablen gesteuert werden können?
A: Im Allgemeinen kann jede Discourse-Site-Einstellung mit DISCOURSE_ vorangestellt und als Umgebungsvariable festgelegt werden.
F: Ist es sicher, vertrauliche Informationen über Umgebungsvariablen zu konfigurieren?
A: Umgebungsvariablen gelten im Allgemeinen als sicher für das Konfigurationsmanagement. Stellen Sie jedoch sicher, dass sie nicht in freigegebenen oder unsicheren Umgebungen preisgegeben werden.
F: Muss ich einen Neuaufbau durchführen, wenn ich eine Site-Einstellung umschalte?
A: In den meisten Fällen erfordert das Umschalten einer Site-Einstellung über die Rails-Konsole keinen Neuaufbau Ihrer Discourse-Installation. Diese Änderungen werden normalerweise sofort oder nach einer Aktualisierung Ihrer Instanz wirksam. Einige spezifische Einstellungen, insbesondere solche, die die grundlegenden Aspekte des Systems beeinflussen, können jedoch einen Neustart oder Neuaufbau erfordern, damit die Änderungen wirksam werden. Für Änderungen, die in der Datei app.yml vorgenommen wurden, ist ein Neuaufbau Ihres Discourse-Containers erforderlich, damit diese Änderungen wirksam werden.
F: Kann ich eine Einstellungsänderung einfach rückgängig machen?
A: Ja, die meisten Einstellungen können rückgängig gemacht werden, es sei denn, sie beinhalten die Löschung von Daten.