mrkeyoor.com_
Tue 01 Sept 17:44 UTC
Self-Hostedevaluationupdated 30 Aug 2026

searxng review

SearXNG is a self-hosted metasearch engine that sends a query to several search services and combines their results. It gives users one search page without profiling them, while the operator controls which engines, interface options, and privacy settings are available.

+67 / 1dstars / 7d
Verdict

Our SearXNG checkout installed 0 npm packages in 10 seconds, but it exposed no npm build or test target, so that clean result does not prove the Python service works. Use SearXNG when controlling the search front end and query routing is worth operating a public-facing service. Skip it if provider CAPTCHAs, IP reputation, Valkey, and proxy maintenance are costs you do not want to own.

We ran it

Lab card: what happened when we ran searxngScreenshot of searxng (docs.searxng.org)
Install✓ · 10s0 packages · 29 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo992 files~64,199 lines of source · 19.8 MB · 6 CI workflows · tests dir

Answers from our run

Does searxng build from source?

Dependencies installed in 10 seconds (0 packages), and the project has no separate build step. We cloned commit d226b78 into a clean Debian container with 3 CPUs and no project-specific setup.

Does searxng have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does searxng have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use searxng?

Anyone expecting an independent web index: SearXNG aggregates other search services rather than crawling and ranking the web itself.

What are the alternatives to searxng?

Whoogle Search, YaCy, Brave Search. Our SearXNG checkout installed 0 npm packages in 10 seconds, but it exposed no npm build or test target, so that clean result does not prove the Python service works.

Setup3/5Compose is documented, but public operation needs several services
Docs5/5Detailed container, manual install, proxy, limiter, and settings guides
Community5/536,276 stars with active engine reports and pull requests
Maturity5/5Active since 2021 with deep deployment and engine documentation

Discussed on

  1. hnSearXNG is a free internet metasearch engine302 points
  2. hnSearXNG: A free internet metasearch engine281 points
  3. hnBuilding a Local Perplexity Alternative with Perplexica, Ollama, and SearXNG134 points
  4. hnSearXNG in Rust76 points
  5. hnYou've tried DuckDuckGo and Brave Search, now get serious with SearXNG34 points

Who it’s for

Self-hosters who want a private search front end for a household, team, or public community.
Organizations that need to choose which outside search engines receive queries.
Developers who want a configurable search endpoint for another application.
Operators comfortable maintaining containers, a reverse proxy, settings, and upstream engine failures.

Who it’s NOT for

Anyone expecting an independent web index: SearXNG aggregates other search services rather than crawling and ranking the web itself.
Operators who need every configured provider to work continuously: open August 2026 reports cover DuckDuckGo and Startpage CAPTCHAs, Google blocking, and Brave or Wikidata rate limits.
People seeking a zero-maintenance public instance: the admin guide requires configuration, updates, bot limiting, and privacy-aware proxy setup.
Small deployments unwilling to run Valkey when exposing the service: the documented limiter depends on a Valkey database.
Organizations that cannot meet AGPL-3.0 obligations for modified network software.

Setup reality

Our sandbox install completed in 10 seconds, added 0 npm packages, and left 29 MB on disk. The repository had no npm build or test target, so both steps were skipped. Npm audit found 0 known vulnerabilities. This Node-oriented run did not start or test the Python search service.

The recommended deployment uses Docker or Podman with Compose, a settings file, and persistent configuration and cache volumes. The included layout also runs Valkey for the request limiter. A manual installation needs Python dependencies, a dedicated service user, server.secret_key, and an application server.

A public instance also needs a reverse proxy, TLS, correct client-IP forwarding, bot controls, log policy, and routine updates. No search-provider credentials are required for many engines, but availability depends on those providers accepting automated requests from the server's IP.

SearXNG combines outside indexes instead of building one

SearXNG sends a query to selected search services and merges the returned links into one results page. It does not crawl the web or maintain a general index. That distinction is the whole product decision: you gain control over the front end, enabled engines, cookies, and logging, while still depending on Google, DuckDuckGo, Startpage, Brave, and other upstream services for results.

The project says users are neither tracked nor profiled by SearXNG. An operator still has work to make that true in practice. The reference settings enable an image proxy and a bot limiter, while the Nginx guide explains how to disable access logs for better privacy. A careless reverse proxy can preserve identifying logs or pass the wrong client address. Self-hosting moves trust from a public search site to whoever administers this instance.

Compose brings up the app and Valkey together

The recommended container path uses Docker or Podman and a supplied Compose template. The documented stack starts a core service on port 8080 and a Valkey service on port 6379. Two mounted locations preserve state: /etc/searxng for configuration and /var/cache/searxng for cached data. Operators copy an environment example, edit it, create core-config/settings.yml, then pull new images and review changed templates during updates.

The manual route is more involved. It creates a separate user, builds a Python virtual environment, installs dependencies, and sets up an application server. A minimal configuration must replace server.secret_key. Public deployment adds Nginx or another reverse proxy, TLS, forwarded-address handling, and service management. The limiter requires Valkey. None of this is unusual for a web service, but the short root README deliberately hands these details to the admin guide.

What happened when we ran it

Our sandbox classified the checkout as a Node npm project and completed its install step in 10 seconds. It installed 0 packages and left 29 MB on disk. The repository contained 992 files, about 64,199 lines of source, and occupied 19.8 MB when checked out. It had 6 CI workflow files, a tests directory, and no root Dockerfile, though the repository contains container files under a dedicated directory.

There was no npm build script or target, so the build step was skipped. The same was true for tests: no npm test script or target was available, and no tests ran. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severities. These findings describe the Node-oriented harness at commit d226b78. They do not validate the Python application, its own test suite, a container boot, or a live search query.

Upstream CAPTCHAs can remove engines overnight

A metasearch instance is only as useful as the providers willing to answer it. Issue 6596 reports DuckDuckGo returning a CAPTCHA on commit d226b78, the same commit in our sandbox. The reporter found that changing header order affected the response. Issue 6520 reports repeated Startpage CAPTCHA redirects with a 3,600-second suspension. Issue 6570 says Google's workaround using a Nokia user agent stopped returning results.

Those are separate reports from August 2026, and they do not mean every SearXNG engine failed. They show the recurring operational risk: providers can change bot detection without coordinating with the project. Issue 6584 adds a startup case where Wikidata returned 403 and Brave returned 429 in the official container setup. An operator should enable several useful engines, watch error rates, and accept that the result mix can change after an upstream response rule changes.

Public service requires abuse controls and IP planning

A private household instance has a smaller abuse surface than an open public one. Every query leaves the server's IP, so many users can concentrate traffic and trigger provider limits. The included limiter reduces automated abuse, but it brings a Valkey dependency and needs correct client-IP information from the proxy. Exposing the bare application port without that design is a poor production shortcut.

The API and HTML interface also inherit the same engine health. A 200 response from your SearXNG server does not guarantee every requested provider contributed a result. Applications should tolerate partial engine failures and avoid promising complete coverage. Search quality will vary with the enabled engines, their regional behavior, language settings, timeout policy, and the server's reputation. We did not measure result quality or query speed in the sandbox.

August 2026 activity shows an actively maintained service

GitHub recorded the last push on August 29, 2026, with issue and pull request discussion continuing on August 30. The repository had 36,276 stars and 221 combined issues and pull requests when fetched. GitHub's latest-release endpoint returned 404, so a stale release tag is not being used here as a health signal. Current pushes and same-week engine reports provide better evidence of maintenance.

SearXNG is the strongest open choice for people who specifically want configurable metasearch and are prepared to operate it. Our 10-second npm step says almost nothing about that production burden because 0 packages were installed and the Python targets were outside the harness. Start with the official Compose layout, keep Valkey and proxy settings intact, test several engines from your real server IP, and decide whether occasional provider loss is acceptable before making it anyone's default search page.

Alternatives

ProjectWhat it isPick it when
Whoogle SearchA self-hosted privacy front end focused on Google search results.pick this instead when Google-only search is enough and you accept an archived repository.
YaCyA peer-to-peer search engine that can crawl and maintain its own index.pick this instead when owning the crawl and index matters more than aggregating commercial engines.
Brave SearchA hosted search engine with its own index and no server to maintain.pick this instead when a managed service and independent index matter more than self-hosting.

What people are saying

  1. [velocity-scout] searxng/searxng

Sources

  1. SearXNG repository and README
  2. SearXNG container installation guide
  3. DuckDuckGo CAPTCHA report
  4. Startpage CAPTCHA report
  5. Engine initialization rate-limit report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →