📱 Доска iOS

всеканоны и докиворкеры↗ WEB↗ Легаси
IOS-088 · Задача · Инфраструктура · web

SearXNG на Pi: добить деплой + провайдер-фолбек веб-поиска

Закрыт P2 ведёт: — эпик: IOS-083
Суть
Идея owner-а: self-hosted метапоиск SearXNG как БЕСПЛАТНЫЙ фолбек/параллель к Perplexity/CSE (кворум фактчека + ретрив дип-ресёрча). СДЕЛАНО: контейнер searxng/searxng на Pi, порт 127.0.0.1:8890 (8888 занят books-proxy), settings /home/pi/searxng/settings.yml (json-формат включён, limiter off, bind 0.0.0.0). БЛОКЕР: рестарт-луп granian «Address family not supported (os error 97)» — IPv6 в контейнере отсутствует; bind_address 0.0.0.0 в settings НЕ помог; пробовано env SEARXNG_BIND_ADDRESS и --sysctl ipv6. Копать: docker logs полностью (падение может быть не в bind, а в valkey/limiter), вариант образа постарше (uwsgi), либо включить ipv6 в docker daemon.json. После зелёного curl :8890/search?format=json — второй частью провайдер searxng в src/lib/factcheck/providers (по образцу googleCse, env SEARXNG_ENDPOINT=http://127.0.0.1:8890) + фолбек в ретриве ДР. ПОЗИЦИЯ: третий номер после CSE/Perplexity, не primary (скрейпинг, качество плавает).
Чем закрывается (приёмка)
curl JSON с результатами; провайдер в реестре за env-флагом; заплатка стюарду.
Лента
2026-08-02T14:21:24.018Z · fc-fix
Implemented IOS-088 local code path only. Patch: /Users/milamarty/Downloads/FC-FIX-088.patch
Verify: /Users/milamarty/.agent_runs/IOS-088/verify.json

Scope:
- Added FactCheckProviderIds.Searxng and registered SearxngProvider.
- SearxngProvider uses SEARXNG_ENDPOINT and maps /search?format=json results to neutral factcheck evidence.
- Shared Deep Research web capability matrix includes searxng as keyless experimental web fallback; added wikipedia/wikidata capability rows while touching the exhaustive matrix.
- Added evidence badge label/class and focused provider/retrieval tests.

Checks:
- npx tsx --test src/lib/factcheck/providers/__tests__/searxng.test.ts src/lib/research/__tests__/retrieve.test.ts -> exit 0 (7 pass)
- targeted npx eslint on IOS-088 files -> exit 0 (0 errors; 2 existing warnings in retrieve.test.ts)
- IOS-088 tsc error filter -> no matches (rg exit 1)
- cd /tmp/fcfix088-base && git apply --check /Users/milamarty/Downloads/FC-FIX-088.patch -> exit 0

Blocker / not done: Pi SearXNG container restart-loop diagnosis and deploy were not attempted because remote/SSH/prod actions require explicit user command under local-only protocol.
No push, no deploy.
2026-08-02T14:25:44.241Z · backup-opus
ДЕПЛОЙ ДОБИТ СТЮАРДОМ. Корень: на Pi ipv6.disable=1 в cmdline (owner подтвердил — v6 выключен осознанно, мешал DDNS), а новый образ searxng (granian) первым делом открывает v6-сокет. Лечение: env GRANIAN_HOST=0.0.0.0 + таймауты апстримов 12/20с в settings (дефолтные 3с малинке малы). ЖИВОЙ ПРУФ: curl 127.0.0.1:8890/search?format=json → 10 результатов (wikipedia/britannica/nasa.gov через ddg). Молчат brave/google/startpage — тюнинг списка движков воркеру. ОСТАТОК ТИКЕТА: провайдер searxng в src/lib/factcheck/providers (по образцу googleCse, env SEARXNG_ENDPOINT=http://127.0.0.1:8890) + фолбек в ретрив ДР; позиция — третий номер, страховка.
2026-08-02T14:56:36.881Z · fc-fix
REBАSE v2 готов поверх свежего канона serving v4-f0c9815 (/tmp/canon-f0c.tar.gz).

Patch: /Users/milamarty/Downloads/FC-FIX-088v2.patch
SHA256: ee90ecfdb64899f4db52a864405634576fc46cf1c829bb03d93540e90b57cf0a
Verify: /Users/milamarty/.agent_runs/IOS-088/verify-v2.json
Base worktree: /Users/milamarty/Projects/fc-rebase
Base commit: a179fbf64628235e9412db602608e3f6d642efcf

Proof:
- git apply --check /Users/milamarty/Downloads/FC-FIX-088v2.patch on fresh base worktree -> exit 0
- npx tsx --test src/lib/factcheck/providers/__tests__/searxng.test.ts src/lib/research/__tests__/retrieve.test.ts -> exit 0, 7 pass
- focused eslint on 088 files -> exit 0 (0 errors, 2 existing warnings in retrieve.test.ts)
- integration order check: 086v2 then 088v2 -> exit 0; 088v2 then 086v2 -> exit 0

Uses server env SEARXNG_ENDPOINT=http://127.0.0.1:8890 on Pi. No SSH, no push, no deploy.
2026-08-02T16:46:29.853Z · backup-opus
SearXNG-провайдер посажен (v4-9f3cd44+), env SEARXNG_ENDPOINT на Pi. В бою пока abort по таймауту при 9 параллельных провайдерах — корень у fc-fix3 (FCFIX3-PROVIDERS). Тикет держу открытым до зелёного боевого прогона.
2026-08-02T17:25:41.589Z · backup-opus
ЗАКРЫТ: SearXNG в бою — succeeded с эвиденсами в прогоне 18:24:58 (v4-9775004) после фикса таймаут-бюджета.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/ios/assign -H 'content-type: application/json' \ -d '{"issueId":"IOS-088","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-02T17:25:41.519Z