# Defaults laden, aber Engine-Liste rigoros auf brave eindampfen. # keep_only ist robuster als einzelne `disabled: true`-Overrides: SearXNGs # Merge-Semantik für partial overrides (nur name + disabled ohne engine:) # greift nicht zuverlässig — DDG & Co. wurden trotzdem abgefragt. keep_only # wirft alles andere vor dem Laden raus, kein Captcha-/403-Log-Lärm mehr. # Mojeek blockt die Pi-IP mit 403 und ist deshalb draußen. use_default_settings: engines: keep_only: - brave server: # Platzhalter wird beim Container-Start per os.path.expandvars aus der # SEARXNG_SECRET-Env-Variable gesetzt (Default im docker-compose.prod.yml). secret_key: "${SEARXNG_SECRET}" # Disables rate limiter + bot detection. This is a private internal service # called only by kochwas — no public exposure, no abuse risk. limiter: false public_instance: false image_proxy: false default_http_headers: X-Content-Type-Options: nosniff X-Download-Options: noopen X-Robots-Tag: noindex, nofollow search: formats: - html - json safe_search: 0 autocomplete: '' default_lang: 'de' # Höhere Timeouts als Default (3s), weil der Pi und einige Upstream-Engines # öfter knapp drüber liegen — lieber 8s warten als gar kein Ergebnis. outgoing: request_timeout: 8.0 max_request_timeout: 12.0 ui: default_locale: de enabled_plugins: - 'Hash plugin' - 'Tracker URL remover' - 'Open Access DOI rewrite' engines: # Brave Search API (engine: braveapi). Die Engine "brave" ist der # HTML-Scraper von search.brave.com und ignoriert api_key — deshalb # hier explizit braveapi, sonst landen wir in Brave-Rate-Limits. # Key kommt aus dem BRAVE_API_KEY-Env (.env auf dem Pi, nicht im Repo), # expandiert via Python os.path.expandvars im searxng-init-Container. - name: brave engine: braveapi shortcut: br categories: [general, web] timeout: 6.0 api_key: "${BRAVE_API_KEY}" disabled: false