self-hosted search with searxng
SearXNG is a meta-search engine that queries Google, DuckDuckGo, Brave, and others in parallel and returns combined results — without any of those services seeing who you are. it runs on the LAN, takes about 5 minutes to set up, and also exposes a JSON API.
what it actually does
when you search through SearXNG, the request goes to your local instance. SearXNG fans it out to whichever engines are enabled, strips any tracking parameters, and combines the results. Google sees a request from your server's IP, not your browser. your query isn't tied to a Google account or a persistent cookie.
it's not perfect anonymity — your server still has an IP. but for everyday search it removes the personalization and tracking loop.
the stack
SearXNG pairs with a Redis-compatible cache:
services:
searxng:
image: searxng/searxng
ports:
- "8888:8080"
volumes:
- /opt/searxng/settings.yml:/etc/searxng/settings.yml
valkey:
image: valkey/valkey:alpine
Valkey is the Redis fork used here — drop-in compatible, fully open source.
the config file lives at /opt/searxng/settings.yml on the host and gets bind-mounted. key settings:
server:
limiter: false # no rate limiting, it's LAN only
formats:
- html
- json # enables the JSON API
browser integration
set SearXNG as the default search engine in Firefox:
http://10.0.3.11:8888/search?q=%s
that's it. searches from the address bar go to the local instance.
json api
SearXNG can return results as JSON — useful for scripts or other tools that need search results programmatically:
curl "http://10.0.3.11:8888/search?q=arch+linux&format=json"
the SillyTavern AI frontend uses this for web search — when the model needs current information, it queries SearXNG and gets results back without sending anything to an external API.
enabled engines
Google, DuckDuckGo, Brave, Wikipedia, GitHub, Stack Overflow, Docker Hub, Arch Linux Wiki. DuckDuckGo is the most reliable — Google and Brave occasionally return nothing when they detect automated queries.
eli5
SearXNG is a middleman for search. instead of asking Google directly (and letting Google know it's you, build a profile, and track your searches), you ask SearXNG. SearXNG asks Google, DuckDuckGo, and a few others on your behalf, combines their answers, and hands you the results. Google sees a request from your home server, not your browser, with no account attached. it's like sending a friend to the library to look something up for you instead of going yourself.