From 1b31a8ff1ee85bdb15a886556bcead1dd0b94173 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sat, 18 Apr 2026 13:03:17 +0200 Subject: [PATCH] feat(searxng): Brave via API-Key, robustere Timeouts + Engine-Mix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nach den 403/Too-Many-Requests-Logs des Pi jetzt SearXNG-Setup auf API-first + höhere Timeouts umgestellt: - Brave läuft über den API-Key aus BRAVE_API_KEY (via !env in settings.yml gelesen). Kein Scraping-Ban-Spam mehr. Key wird im .env auf dem Pi gepflegt (nicht im Repo) und ans searxng-Container durchgereicht. - outgoing.request_timeout 3s → 8s, max_request_timeout → 12s. Pi hängt gelegentlich knapp am Default-Limit, lieber warten als 0 Treffer. - DuckDuckGo-Timeout einzeln auf 8s, Mojeek als zusätzliche Quelle (eigener Index, selten Rate-Limits). - Video-/News-/Image-Engines explizit disabled (Google/Bing/karmasearch videos etc.) — produzieren für Rezeptseiten nur 403-Noise. docker-compose.prod.yml reicht BRAVE_API_KEY=${BRAVE_API_KEY:-} an den searxng-Container weiter. Leerer Key ist ok — Brave meldet 401 bei der ersten Query, andere Engines laufen unbeeindruckt weiter. Co-Authored-By: Claude Opus 4.7 (1M context) --- docker-compose.prod.yml | 3 +++ searxng/settings.yml | 49 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 5c1b6e6..1b09772 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -36,6 +36,9 @@ services: environment: - BASE_URL=http://searxng:8080/ - INSTANCE_NAME=kochwas-search + # Brave Search API-Key aus .env (auf dem Pi gepflegt, nicht im Repo). + # Leer oder fehlend → brave-Engine ist im settings.yml disabled/default. + - BRAVE_API_KEY=${BRAVE_API_KEY:-} restart: unless-stopped networks: - internal diff --git a/searxng/settings.yml b/searxng/settings.yml index 174117a..4dfc772 100644 --- a/searxng/settings.yml +++ b/searxng/settings.yml @@ -21,6 +21,12 @@ search: 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 @@ -29,3 +35,46 @@ enabled_plugins: - 'Hash plugin' - 'Tracker URL remover' - 'Open Access DOI rewrite' + +engines: + # Brave mit API-Key: stabiler als der HTML-Scraper, kein Rate-Limit-Spam + # mehr. Key kommt aus dem BRAVE_API_KEY-Env (.env auf dem Pi, nicht im Repo). + # Fehlt der Key oder ist er leer, fällt Brave bei der ersten Anfrage zurück + # auf einen 401 — andere Engines laufen normal weiter. + - name: brave + engine: brave + shortcut: br + categories: [general, web] + timeout: 6.0 + api_key: !env BRAVE_API_KEY + disabled: false + + # DuckDuckGo: Standard-Scraper, 3s-Default war zu knapp. Bleibt als Fallback, + # falls Brave mal ausfällt oder nicht liefert. + - name: duckduckgo + engine: duckduckgo + shortcut: ddg + timeout: 8.0 + + # Mojeek: eigener Index, seltener Rate-Limits, ergänzt die großen zwei. + - name: mojeek + engine: mojeek + shortcut: mjk + timeout: 6.0 + disabled: false + + # Video-/News-Engines abdrehen — wir wollen nur Text-Treffer für Rezeptseiten. + - name: google videos + disabled: true + - name: google news + disabled: true + - name: google images + disabled: true + - name: bing videos + disabled: true + - name: bing news + disabled: true + - name: bing images + disabled: true + - name: karmasearch videos + disabled: true