fix(searxng): auf engine: braveapi wechseln (API-Key wird nun genutzt)
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m21s

Die SearXNG-Engine "brave" ist ein HTML-Scraper von search.brave.com
und ignoriert den api_key-Parameter. Dadurch liefen alle Anfragen
gegen den gescrapten Web-Endpoint, der aus dem Pi-Netz regelmäßig
rate-limited wurde (SearxEngineTooManyRequestsException, 60%).

Fix: engine: braveapi nutzen. Das ist die offizielle Brave-Search-API-
Engine, die den api_key als X-Subscription-Token-Header sendet.
Der Key steht unverändert in .env auf dem Pi und wird vom
searxng-init-Container ins gerenderte settings.yml expandiert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-18 21:03:48 +02:00
parent 854af2fc34
commit f89f363183

View File

@@ -38,18 +38,16 @@ enabled_plugins:
- 'Open Access DOI rewrite' - 'Open Access DOI rewrite'
engines: engines:
# Brave mit API-Key: stabiler als der HTML-Scraper, kein Rate-Limit-Spam # Brave Search API (engine: braveapi). Die Engine "brave" ist der
# mehr. Key kommt aus dem BRAVE_API_KEY-Env (.env auf dem Pi, nicht im Repo). # HTML-Scraper von search.brave.com und ignoriert api_key — deshalb
# Fehlt der Key oder ist er leer, fällt Brave bei der ersten Anfrage zurück # hier explizit braveapi, sonst landen wir in Brave-Rate-Limits.
# auf einen 401 — andere Engines laufen normal weiter. # 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 - name: brave
engine: brave engine: braveapi
shortcut: br shortcut: br
categories: [general, web] categories: [general, web]
timeout: 6.0 timeout: 6.0
# Wert wird beim Container-Start durch Python-os.path.expandvars aus der
# BRAVE_API_KEY-Env-Variable eingesetzt (siehe docker-compose.prod.yml
# entrypoint-Override). SearXNG selbst hat kein !env-Tag.
api_key: "${BRAVE_API_KEY}" api_key: "${BRAVE_API_KEY}"
disabled: false disabled: false