SearXNG: a self-hosted private search engine

A search box on your own server that asks other engines for you and keeps no history.

By BradyUpdated November 5, 2026Self-hosting
Short answer

SearXNG is a free, open-source metasearch engine: you send it a query, it forwards that query to engines like Google and Bing, and it hands back one merged page of results without profiling you. Bitcoiners care because a search history of wallet names, exchanges, and "recover seed phrase" questions is a list of what you own. Running it at home hides you from the engines' cookies and accounts but not from their view of your IP address, so it reduces tracking and does not make you anonymous.

How SearXNG works, and why a bitcoiner would run it

SearXNG is a metasearch engine that aggregates the results of other search engines while not storing information about its users. The code is AGPL-3.0 licensed.

The privacy case for Bitcoin owners is concrete. Searches for a hardware wallet model, an exchange withdrawal limit, or how to recover a seed phrase say what you hold and how you store it. My degoogle guide covers swapping Google Search for DuckDuckGo, Brave Search, or Kagi, and my digital privacy checklist covers the rest of the profile around you. SearXNG is a self-hosted alternative to those. Never type seed words into any search box, SearXNG included.

What SearXNG protects and what it does not

Per SearXNG's docs on private instances, it removes private data from requests to search services: it sends no cookies to external engines, generates a random browser profile for every request, and serves no ads or tracking content. Result pages also do not learn your query or the page you came from.

The limits start on the same page. The IP address the engines see is the IP of the instance. On a home server that is your home IP, so Google and Bing still receive your query from your house, just without your account or cookies attached. SearXNG can be configured to send engine requests through a proxy or Tor, and the docs advise socks5h:// when using Tor so hostnames resolve at the proxy.

The second limit is blocking. Public instances without proper protection are more vulnerable to abuse, which can make the external service show CAPTCHAs or ban the instance's IP address, so searches return fewer results. SearXNG's own defaults suspend an engine for a day after an access-denied error or a CAPTCHA, a week after a Google CAPTCHA, and 15 days after a Cloudflare CAPTCHA, so results can vary from day to day.

The third limit is my own reading, not something the docs measure. A public instance mixes many strangers' queries behind one IP. An instance only you use sends every query from one household, so the engines can see a steady stream from one address even though no cookie ties it to you. If your threat is an engine profiling your IP, a shared public instance hides you in a crowd better than a private one does, at the price of trusting its admin. Pointing the instance at Tor fixes the IP problem and slows searches.

Installing SearXNG

You need a working Docker or Podman install. The official docs call the Compose template the recommended way to deploy in containers, and they include steps to migrate from the older searxng-docker repository. For the current files and commands, follow that guide.

  1. 1Install Docker or Podman on a Linux machine.
  2. 2Download SearXNG's Compose template and example environment file.
  3. 3Start the container.
  4. 4Open the instance from the server, or from another computer on your network.
  5. 5Change the secret key and base URL in the settings. The server settings page marks both as values to change.

Do not forward port 8080 on your router: an open instance gets scraped by bots, and the traffic it sends upstream comes from your home IP.

If you run an app server, there are two shortcuts. umbrelOS has SearXNG in its app store. Start9 maintains a SearXNG package for StartOS that adds a reverse proxy and a setting to send every outbound query through Tor; I could not confirm it in the live marketplace listing, so check your own StartOS marketplace first. Its README says a fresh install is public, so set a password if the server is reachable beyond your LAN. My Start9 vs Umbrel guide compares the two systems.

Making it your default search engine

SearXNG supports OpenSearch, so your browser can add the instance as a search engine when you visit it. Then pick it as the default in the browser's settings, following the docs for Firefox or Microsoft Edge.

Two gotchas from SearXNG's about page. Chromium-based browsers only add websites you navigated to without a path, so open the bare address. And a browser will not add a second engine with the same name, so rename the instance or delete the duplicate if the add fails.

One more setting matters for privacy. The default HTTP method is GET, which puts your query in the URL. The docs say POST keeps the search out of history in some browsers, at the cost of a broken back button and drag and drop of search terms.

Reaching your instance away from home

Use a private network, not an open port. With Tailscale installed on the server, its serve feature shares the local service inside your tailnet over HTTPS. Only devices signed into your tailnet can reach it. Then set the instance's base URL to that address so links and the browser engine entry use it.

HTTPS needs a one-time step: enable HTTPS certificates in the Tailscale admin console. Tailscale warns that machine names get published in a public certificate ledger, so give the server a name that says nothing about you. My self-hosting for beginners guide covers the Tailscale basics.

Public instances: no server, different trust

searx.space tracks public instances and showed 72 online in November 2026, with version, TLS grade, and response times for each, plus a filter to hide networks with privacy issues.

The trust trade-off is the one SearXNG's docs give: with a public instance you have to trust the administrator, because you cannot tell whether requests are logged, aggregated, or sold. The docs also call public instances the best choice for people on the go or trying SearXNG for the first time, and say to use one run by people you trust. A public instance hides your IP from Google and Bing but gives it to the admin instead.

SetupWho sees your queriesWhat Google or Bing sees
Private instance at homeOnly you, on your own diskYour home IP, no cookies or account
Private instance with TorOnly you, on your own diskA Tor exit IP, slower searches
Public instanceThe unknown adminThe admin's IP, mixed with other users

Pick a Tor setup only if your home IP is the thing you are hiding. My Tor Browser guide covers when that is worth the friction.

Who should bother

I would run SearXNG if you already have a home server, you search from several devices, and you want no search history sitting on someone else's computer. Put it behind Tailscale, keep it private, and accept that engines will sometimes block it.

I would skip it if you would need to buy hardware just for this. A public instance run by a trusted operator, or the engines listed in my degoogle guide, gives most of the benefit for no upkeep. If your worry is the engines seeing your IP, no home setup fixes that alone; add Tor or use a public instance.

Frequently asked questions

Is SearXNG really private?

Partly. It strips cookies and sends a random browser profile to each engine, and it keeps no search history. The engines still see the instance's IP address and your query text, so it lowers tracking without making you anonymous.

Does SearXNG hide my IP from Google?

Not on a home server, where Google sees your home IP. A public instance shows Google the admin's IP instead, and a private instance configured with a Tor proxy shows a Tor exit address.

Is SearXNG free?

Yes. It is open-source software under the AGPL-3.0 license with no fee. You pay only for the server and electricity you run it on.

Why does SearXNG sometimes return no results?

Upstream engines rate-limit or block instances. The docs say CAPTCHAs and IP bans cause fewer results, and the default settings suspend a blocked engine for anywhere from an hour to 15 days. Other engines usually keep answering.

Should I use a public SearXNG instance?

It is fine for trying SearXNG or searching from a phone, if you trust the operator, since the admin could log your queries. Look at the list on searx.space and pick one run by people you can vet.

Related