I wanted AI-synthesized search answers without sending my queries to anyone. PrivaSearch is the result: SearXNG for metasearch, a local LLM served by Ollama for cited answers, and a small Node/Express API in between. Here's how it's put together and what it does and doesn't guarantee.
The architecture is the privacy model
Four containers on one internal Docker network ( privanet ):
frontend : nginx serving a React/Vite UI and proxying /api
api : Node + Express orchestration, streaming over SSE
searxng : the metasearch backend, with a JSON API
ollama : the local LLM
Only the frontend publishes a host port ( 8080 by default). SearXNG, Ollama and the API have no ports: mapping, so they're unreachable from outside Docker.…