Konfiguration#

Seurch wird vollständig über Umgebungsvariablen (in der Produktion) oder eine .env-Datei (in der Entwicklung) konfiguriert. Das Repository enthält eine .env.example, die jede Variable dokumentiert; diese Seite ist die Referenz.

Kern#

VariableZweckHinweise
SECRET_KEYDjango-GeheimschlüsselIn der Produktion erforderlich. Lang und zufällig.
DEBUGDebug-ModusIn der Produktion False (der Standard) belassen.
ALLOWED_HOSTSKommagetrennte Hostnamen, die die App bedientz.B. search.example.com.
DATABASE_URLPostgreSQL-Verbindungs-URLz.B. postgres://user:pass@host:5432/seurch.
LOG_LEVELProtokollierungsausführlichkeitDEBUG / INFO / WARNING / ERROR (Standard INFO).
LOG_SEARCH_QUERIESDen rohen Anfragetext protokollierenFolgt DEBUG, in der Produktion also aus. Anfragen sind personenbezogene Daten und Container-Logs werden aufbewahrt; ausgeschaltet trägt jede Anbieter-Logzeile nur die Länge der Anfrage.

Suchanbieter#

Diese Schlüssel bestimmen, welche Suchmaschinen, Medien-Tabs und Wissenskarten verfügbar sind. Ein Anbieter ohne Schlüssel wird einfach ausgeblendet (nicht als defekt angezeigt). Vollständige Details unter Suchanbieter.

VariableAktiviert
BRAVE_API_KEYWeb, Bilder, Nachrichten und Videos über Brave (die Basis).
BRAVE_SUGGEST_API_KEYAutocomplete-Vorschläge (ein separates Brave-Abonnement).
MOJEEK_API_KEYDie Mojeek-Web-Suchmaschine.
MARGINALIA_API_KEYDie Marginalia-Web-Suchmaschine (public funktioniert sofort).
STAAN_API_KEYDie Staan-Web-Suchmaschine (europäischer Index, nur Web-Ergebnisse).
THETVDB_API_KEYDie Film / TV-Wissenskarte (TheTVDB v4).
THETVDB_PINAbonnenten-PIN, nur für einen nutzerfinanzierten TheTVDB-Schlüssel.
TRIPADVISOR_API_KEYDie Orte-Wissenskarte.
STACKEXCHANGE_API_KEYEin höheres Stack Exchange-Kontingent für die Q&A-Karte (optional).
PIXABAY_API_KEYPixabay-Bilder gemischt in den Bilder-Tab.
WORLDNEWS_API_KEYWorld News API-Artikel gemischt in den Nachrichten-Tab.

Das Abzeichen „Kostenpflichtig"#

PAID_PROVIDERS bestimmt, welche Anbieter unter Einstellungen → Suchmaschinen mit einem Kostenpflichtig-Abzeichen versehen werden, damit Nutzer erkennen, welche davon kostenpflichtige kommerzielle APIs sind, bevor sie sie einschalten. Nicht gesetzt verwendet die eigene Liste der App (Brave, Mojeek, Staan, World News); setzen Sie eine kommagetrennte Liste von Anbieterschlüsseln, wenn Ihre Instanz andere Tarife nutzt:

PAID_PROVIDERS=brave,mojeek,staan,worldnews

Namen, die keine Anbieterschlüssel sind, werden ignoriert, PAID_PROVIDERS=none kennzeichnet also nichts. Das Abzeichen ist nur eine Beschriftung, es ändert nie, was ein Nutzer aktivieren darf.

Übersetzung#

VariableZweck
LIBRETRANSLATE_URLURL Ihrer LibreTranslate-Instanz. Nicht gesetzt deaktiviert den Übersetzen-Tab vollständig.
LIBRETRANSLATE_API_KEYNur wenn Ihr LibreTranslate Schlüssel erfordert (LT_API_KEYS=true).
LIBRETRANSLATE_ORIGIN_COUNTRYZweistelliger Ländercode für die neben „Übersetzen" angezeigte Flagge in den Einstellungen (Standard fr).

Siehe Übersetzung.

Anbieterstatus und Überwachung#

Ob diese Instanz die Anbieter-Gesundheit veröffentlicht, und was ein externer Überwachungsdienst abfragen kann. Vollständige Details unter Überwachung.

VariableZweckStandard
STATUS_PAGE_ENABLEDDie /status-Seite veröffentlichen, und den status/-Endpunkt der API, der dieselben Daten liefert. Abschalten, um für sich zu behalten, welche Anbieter Sie nutzen und wann sie ausfallen.true
STATUS_MONITOR_ENABLED/status/health und /status/health/<anbieter> ausliefern, die 200-oder-500-Endpunkte, die ein Monitor abfragt.true
STATUS_MONITOR_TOKENGemeinsames Geheimnis, das diese Endpunkte verlangen (?token=, X-Monitor-Token, oder Authorization: Bearer).(leer, offen)
STATUS_MONITOR_PROVIDERSWelche Anbieter die /status/health-Sammelprüfung überwacht: Anbieter-Kennungen und/oder die Gruppenschlüssel engine, media, cards, instant, maps, translate.(leer, jeder konfigurierte Anbieter)

Beide sind unabhängig voneinander: Die Überwachung funktioniert bei abgeschalteter Seite weiter, und genau das ist der Sinn — eine Instanz, die die Seite nicht veröffentlicht, muss sich trotzdem überwachen lassen.

STATUS_PAGE_ENABLED=false
STATUS_MONITOR_PROVIDERS=engine
STATUS_MONITOR_TOKEN=eine-lange-zufaellige-zeichenkette

Öffentliche API-Ratenlimits#

Pro API-Schlüssel angewendet (Django REST Framework-Drosselraten, <Anzahl>/<Zeitraum>, wobei der Zeitraum second / minute / hour / day ist). Beide Limits gelten zusammen. Siehe die API-Ratenlimits-Seite.

VariableZweckStandard
API_THROTTLE_BURSTKurzfristiges Limit, schützt vorgelagerte Anbieter vor einem unkontrollierten Client60/min
API_THROTTLE_SUSTAINEDTägliches Volumenlimit5000/day

E-Mail (Passwort-Reset)#

Wird nur zum Senden von Passwort-Reset-Nachrichten verwendet; siehe Benutzer & Zugang.

VariableZweck
EMAIL_BACKENDDjango E-Mail-Backend (SMTP, Konsole, …).
EMAIL_HOST / EMAIL_PORTSMTP-Server.
EMAIL_USE_TLSTrue / False.
EMAIL_HOST_USER / EMAIL_HOST_PASSWORDSMTP-Zugangsdaten.
DEFAULT_FROM_EMAILDie „Von"-Adresse auf ausgehenden E-Mails.

Für einen schnellen Test ohne echten SMTP-Server setzen Sie EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend, um E-Mails im Container-Log auszudrucken.

Die Fußzeile enthält standardmäßig keine Datenschutzrichtlinie, Nutzungsbedingungen oder rechtliche Hinweise; dieser Inhalt ist spezifisch für den Betreiber der Instanz und Ihre Rechtsordnung. Fügen Sie Ihre eigenen als kommagetrennte Bezeichnung=URL-Paare hinzu:

FOOTER_LINKS=Datenschutz=https://example.com/privacy,Impressum=https://example.com/impressum

Lassen Sie FOOTER_LINKS nicht gesetzt, um keine zusätzlichen Fußzeilen-Links anzuzeigen.

VariableZweck
SOURCE_URLRepository, auf das der Quelle-Link in der Fußzeile verweist. Zeigen Sie auf Ihren eigenen Fork, wenn Sie eine geänderte Version betreiben.
GIT_REFGit-Branch oder -Tag, angezeigt neben dem Copyright in der Fußzeile.
GIT_SHACommit-Hash neben dem Copyright, damit eine Instanz auf den genauen Build zurückgeführt werden kann.

Das Docker-Image setzt GIT_REF und GIT_SHA automatisch beim Build; setzen Sie sie nur bei anderen Bereitstellungsmethoden von Hand.