Deploy SearXNG
Your own private metasearch engine with SearXNG
Deploy SearXNG with a Valkey cache and a public HTTPS URL. It sends your query to dozens of search services at once and shows the combined results, without accounts, tracking or search history. Bot protection and rate limits are on from the first request, and the secret key is generated at deploy.
What you get with SearXNG
- Many engines, one pageEach search goes to several web, news, image, video, map and science sources at once. Results are merged, ranked and labelled with the engines that found them.
- No trackingNo accounts and no search history. Preferences live in a cookie in your own browser, and the search services see your instance, not your visitors.
- Images through your instanceResult thumbnails load through the built in image proxy, signed with your secret key, so visitors’ browsers never contact the image hosts directly.
- Bot protection onThe limiter checks every search and answers scripts and bursts with HTTP 429. It keeps your instance usable and its address in good standing with the search services.
- Categories and bangsSwitch between General, Images, Videos, News, Map, Music, IT, Science and Files, or jump straight to one engine with a bang such as !wp.
- Yours to configurePick the engines, default language, theme and safe search in settings.yml on the app’s volume. Visitors can change their own preferences without an account.
After you deploy SearXNG
- 1Open your instanceThe public URL shows the SearXNG start page about a minute after deploy. Type a query and the results arrive from several engines at once.
- 2Set a contact addressSome engines ask instance operators for a contact. SEARXNG_CONTACT_URL starts as your app URL; change it to your own mailto: address or contact page under Variables.
- 3Choose your enginesOpen the app console and edit /etc/searxng/settings.yml to turn engines on or off or change the defaults, then redeploy. Each visitor can also adjust their own preferences.
How SearXNG is wired
SearXNG and Valkey ship together. The public hostname serves the search page, the results and the image proxy; Valkey keeps the limiter’s counters.
- Limiter with Valkey
- Per address limits and bot checks run on every search, backed by the attached Valkey. The app waits for Valkey at start, so the limiter is never silently off.
- Real client addresses
- Limits apply to each visitor’s own address, taken from the platform’s ingress. A visitor cannot dodge them by sending a forged X-Forwarded-For header.
- Generated secret
- SEARXNG_SECRET is generated at deploy and signs image proxy links, so nobody else can use your instance to fetch arbitrary URLs.
- Settings on a volume
- settings.yml and limiter.toml live on a volume at /etc/searxng and survive redeploys. Nothing else is stored: there is no database and no search history.
Why run SearXNG on StackBlaze
- Scale your appChange CPU, RAM, and replicas without a rebuild, or let autoscaling add replicas when CPU climbs.
- Git-based CI/CDPush to GitHub and it builds and ships. Pull requests get their own preview URL on Pro and Business.
- One-click rollbackA deploy went wrong? Go back to any previous successful deploy.
- Environments built inProduction, staging, and dev as separate environments in one project, each with its own URL.
- Built-in observabilityCPU, memory, and response time per app, live logs with search, and alerts to Slack, Discord, or a webhook.
- Developer-first toolsA CLI and Stack MCP: deploy, read logs, and wire services from your terminal or your AI assistant.
- Built for teamsInvite teammates with roles. An audit log records who changed what.
- Managed Postgres with HAPostgres is run for you. Turn on high availability for a three-node cluster when the app needs it.
Common questions about SearXNG
Do I need to sign in?
No. SearXNG has no accounts. Anyone with the URL can search, and each visitor’s preferences are kept in a cookie in their own browser.
Can anyone use my instance?
Yes, it is public like any search page. The limiter blocks scripts and bursts from a single address. For stricter checks set SEARXNG_PUBLIC_INSTANCE to true, which also requires each visitor’s browser to load the page before searching.
Which search engines does it use?
Upstream’s default set for each category: web, images, videos, news, maps, music, IT, science and files. Change the list in settings.yml, or let visitors pick engines in their preferences.
Why does an engine sometimes return nothing?
Search services rate limit or ask for a CAPTCHA now and then. SearXNG skips that engine for a while and answers from the others, so a search still returns results.
Can I use it from scripts or other apps?
The JSON API is off by default. Add json to search.formats in settings.yml to turn it on, and keep in mind the limiter applies to API calls too.
Can I use my own domain?
Yes. Attach a custom domain from the dashboard and set SEARXNG_BASE_URL to it, so links and the browser search plugin use your domain. Custom domains
What does it cost?
You pay for the compute, storage and bandwidth SearXNG and Valkey use, not per search or per user. Pricing
More Utilities templates
n8n AutomationAutomate repetitive work and connect your apps, APIs, and data with visual workflows.
Umami AnalyticsUnderstand traffic, campaigns, and visitor behavior through fast, privacy-friendly analytics.
LangflowVisual builder for AI agents and RAG workflows. Drag components onto a canvas, connect any LLM or vector store, and serve each flow as an API.