# SearXNG — Self-Hosted Search Engine Deployed on **Core** (`/root/docker/searxng/`) via Docker Compose. Used as a local search engine when Firecrawl's API key is not configured. ## Connection details - **URL:** `http://127.0.0.1:8888` - **JSON API:** `http://127.0.0.1:8888/search?q=QUERY&format=json` - **Container:** `searxng` - **Auto-start:** Docker restart policy - **Settings:** `/root/docker/searxng/searxng-data/settings.yml` ## Configuration The settings.yml file enables both HTML and JSON formats: ```yaml search: formats: - html - json ``` ## Usage from agent ```bash curl -s "http://127.0.0.1:8888/search?q=QUERY&format=json" | python3 -c " import sys, json d = json.load(sys.stdin) for r in d.get('results',[])[:N]: print(f'{r.get(\"title\",\"?\")} - {r.get(\"url\",\"?\")}') " ``` ## Limitations - **No extraction.** SearXNG returns search results (title + URL + snippet) but does not extract full page content. For full page extraction, use Firecrawl or `curl` + HTML stripping. - **Local only.** Bound to 127.0.0.1 — not accessible from the network. Access via terminal on Core. - **Rate limited.** Default rate limit is 120 requests/hour from a single IP. ## Relationship to Firecrawl | Capability | SearXNG | Firecrawl | |---|---|---| | Search (find links) | ✅ Unlimited | ⚠️ 500/mo free | | Extract (get page content) | ❌ | ✅ Clean markdown | | API key needed | No | Yes | | Self-hosted | Yes | No (cloud) |