Files
Cyrene_v2/scripts/searxng/settings.yml
T
AskaEth e792fe655b chore(deploy): 本机 SearXNG 兜底搜索服务配置(宿主端口 38471,按可达性裁剪引擎)
- 用途:给 web-search 工具一个本机可达、零 API key 的搜索端点(外部服务,如 docker cyrene-pg,不碰单端口红线)
- 实测踩坑都写进注释:① search.formats 必须含 json(默认只给 html)② server.limiter 必须 false(限流器会拒 API)③ **引擎必须按本机网络裁剪**——默认集 google/duckduckgo/brave/qwant/startpage/wikipedia 全部 ConnectTimeout,baidu/quark 被 CAPTCHA,360search 超时 ⇒ 只留真在产出的 bing + sogou
- 宿主端口 38471(避开常见端口);容器内仍是 8080;--restart unless-stopped
- 自检命令写在文件头:要求「非空 results 且 unresponsive_engines 为空」
2026-10-05 20:00:00 +08:00

74 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SearXNG 配置(Cyrene v2「网络搜索」的兜底后端)
#
# 用途:给 plugins/tools/io 的 web-search 工具提供一个**本机可达**的搜索端点,
# 不依赖任何第三方 API key。它不是 Cyrene 自己的监听端口(不碰「单端口」红线),
# 而是像 docker `cyrene-pg` 一样的**外部服务**。
#
# 起法(宿主机可达,必须发布端口;后端跑在宿主机上而不是 compose 内网):
# ⚠️ 宿主端口用 **38471**(不常见,避免与其它项目撞车);容器内部仍是 8080,宿主机看不到它。
# docker rm -f cyrene-searxng 2>/dev/null
# docker run -d --name cyrene-searxng --restart unless-stopped \
# -p 38471:8080 \
# -v "D:/Project/Code/Uni/Cyrene_v2/scripts/searxng/settings.yml:/etc/searxng/settings.yml:ro" \
# searxng/searxng:latest
# 自检(必须能拿到非空 results 且 unresponsive_engines 为空,否则 web-search 工具等于没接):
# curl -s "http://127.0.0.1:38471/search?q=test&format=json" | head -c 200
# curl -s "http://127.0.0.1:38471/search?q=%E6%B5%8B%E8%AF%95&format=json" | python -c "import sys,json;d=json.load(sys.stdin);print(len(d['results']), d['unresponsive_engines'])"
#
# ⚠️ 三处关键(少任何一处都会「能返回 JSON 但结果是空的」):
# 1) search.formats 必须含 json —— 默认只给 html;
# 2) server.limiter: false —— 限流器会以「请求过频/非浏览器」为由拒掉 API 调用;
# 3) **引擎必须按本机网络可达性裁剪**:默认引擎集(google/duckduckgo/brave/qwant/
# startpage/wikipedia…)在**这台机器的网络下全部超时**(2026-10-05 实测),
# 既不产出结果、还每次白等 3 秒超时 ⇒ 关掉它们、只留国内可达的
# (baidu / bing / sogou / 360search / quark)。
use_default_settings: true
server:
secret_key: "cyrene-v2-searxng-local-fallback-6f3a9c1d"
limiter: false
image_proxy: false
search:
formats:
- html
- json
# 中文为主:让 SearXNG 按查询自动选语言(默认 auto,这里显式写清意图)
default_lang: auto
# 只跑可达引擎后,2 秒足够;留一点余量避免偶发慢请求被判超时
max_page: 1
outgoing:
request_timeout: 6.0
max_request_timeout: 10.0
engines:
# ---- 本机可达且真在产出(2026-10-05 实测):只留这两把 ----
- name: bing
disabled: false
- name: sogou
disabled: false
# ---- 实测不可用:一律关掉(留着只会每次白等 3–6 秒,还让 unresponsive_engines 充满噪音)----
# 360search → timeout;baidu → Suspended: CAPTCHA;quark → CAPTCHA
# google/duckduckgo/brave/qwant/startpage/wikipedia/wikidata → ConnectTimeout(本机网络不可达)
- name: baidu
disabled: true
- name: 360search
disabled: true
- name: quark
disabled: true
- name: google
disabled: true
- name: duckduckgo
disabled: true
- name: brave
disabled: true
- name: qwant
disabled: true
- name: startpage
disabled: true
- name: wikipedia
disabled: true
- name: wikidata
disabled: true