134 lines
4.8 KiB
YAML
134 lines
4.8 KiB
YAML
# =====================================================================
|
|
# owuitools' own SearXNG.
|
|
#
|
|
# Separate from /configs/searxng on purpose. That instance is tuned for
|
|
# the voice assistant, where a slow answer is a bad answer, so it runs
|
|
# outgoing.request_timeout at 2.0s and drops any engine that dawdles.
|
|
# Research is the opposite trade: waiting 5s for a good result beats
|
|
# answering fast from one engine.
|
|
# =====================================================================
|
|
|
|
use_default_settings: true
|
|
|
|
general:
|
|
instance_name: "owuitools"
|
|
# No public UI, no metrics endpoint to leak engine health.
|
|
enable_metrics: false
|
|
|
|
server:
|
|
secret_key: "CHANGE_ME - generate with: openssl rand -hex 32"
|
|
limiter: false # only owuitools-api can reach this; no bot problem
|
|
image_proxy: false
|
|
method: "GET"
|
|
|
|
search:
|
|
safe_search: 0
|
|
autocomplete: ""
|
|
default_lang: "en"
|
|
# json is what the tool server consumes. html stays enabled so a human
|
|
# can port-forward and eyeball why a query returned junk.
|
|
formats:
|
|
- html
|
|
- json
|
|
|
|
outgoing:
|
|
request_timeout: 5.0
|
|
max_request_timeout: 8.0
|
|
pool_connections: 100
|
|
pool_maxsize: 20
|
|
enable_http2: true
|
|
|
|
engines:
|
|
# The `general` set is chosen by measurement, not reputation. Every engine
|
|
# below was queried from this host's own egress IP on 2026-09-10; the
|
|
# result counts are in the comments. Re-measure before changing it - which
|
|
# engines will serve this IP is a property of the IP, and it drifts.
|
|
#
|
|
# The failure this guards against is real and was observed: brave, startpage
|
|
# and google cse were the entire `general` set, and all three suspended
|
|
# themselves within one working session (rate limit, CAPTCHA, API quota),
|
|
# taking web_search - the most-used tool in the suite - to zero results
|
|
# while every other tool stayed healthy.
|
|
|
|
# Working. DuckDuckGo previously served this IP a CAPTCHA and was disabled
|
|
# for it; re-measured 2026-09-10 and it now returns full results. The old
|
|
# note was stale, which is the argument for re-measuring rather than
|
|
# trusting a comment.
|
|
- name: duckduckgo # 10 results
|
|
disabled: false
|
|
- name: bing # 10 results
|
|
disabled: false
|
|
- name: google # 9 results - the scraper, not the quota-limited CSE
|
|
disabled: false
|
|
- name: yahoo # 7 results
|
|
disabled: false
|
|
|
|
# Kept for diversity and because suspensions expire, but not relied on:
|
|
# each of these returned nothing from this IP on 2026-09-10.
|
|
- name: mojeek # 0
|
|
disabled: false
|
|
- name: brave # suspended: too many requests
|
|
disabled: false
|
|
- name: startpage # suspended: CAPTCHA
|
|
disabled: false
|
|
- name: wikipedia
|
|
disabled: false
|
|
|
|
# Measured and rejected: qwant (CAPTCHA), seznam (timeout), marginalia /
|
|
# stract / right dao / presearch (no results). wiby (12) and mwmbl (4)
|
|
# respond but index the small/old web, which is wrong for a suite answering
|
|
# current IT and engineering questions.
|
|
|
|
# `it` category is the high-value one for this assistant: stackoverflow,
|
|
# askubuntu, superuser, mdn, mankier, and the distro/docker package
|
|
# indexes. Measured 126 results vs 20 for `general` on a technical query.
|
|
- name: stackoverflow
|
|
disabled: false
|
|
- name: askubuntu
|
|
disabled: false
|
|
- name: superuser
|
|
disabled: false
|
|
- name: mdn
|
|
disabled: false
|
|
|
|
# Package-registry and niche-language engines sit in the `it` category and
|
|
# match on any keyword, so a query like "qemu bridge networking" led with a
|
|
# Docker Hub result for "Strimzi Kafka Bridge". lookup_package covers
|
|
# registry questions properly; here they are just noise crowding out the
|
|
# Stack Overflow and man-page hits that actually answer the question.
|
|
- name: docker hub
|
|
disabled: true
|
|
- name: gentoo
|
|
disabled: true
|
|
- name: hoogle
|
|
disabled: true
|
|
|
|
# Noise for this use case - all of it costs latency and returns nothing
|
|
# a technical answer can cite.
|
|
- name: bing images
|
|
disabled: true
|
|
- name: google images
|
|
disabled: true
|
|
- name: youtube
|
|
disabled: true
|
|
|
|
# The `science` category was running on SearXNG's defaults, which are
|
|
# arXiv-heavy: a biomedical query came back with computer-science preprints
|
|
# in five of twenty-three result slots. These two ship disabled upstream and
|
|
# are the ones that carry real bibliographic metadata - journal, authors,
|
|
# DOI - which web_search now renders as a CITE AS line. Without them the
|
|
# model gets a title and a URL and fills the venue in from the domain, which
|
|
# is how an npj Flexible Electronics paper got cited as Nature Electronics.
|
|
- name: openalex
|
|
disabled: false
|
|
- name: crossref
|
|
disabled: false
|
|
# Upstream default is 30s, well past this instance's max_request_timeout,
|
|
# so a slow Crossref would simply never return.
|
|
timeout: 8.0
|
|
- name: pubmed
|
|
disabled: false
|
|
|
|
ui:
|
|
static_use_hash: true
|