---
source_url: "https://space-node.net/blog/searxng-private-search-vps-2026"
title: "SearXNG on a VPS (2026): Private Metasearch Engine"
mirrored_at: 2026-08-22T03:03:06.241Z
host: space-node.net
cited_in_42a: true
mirror_canonical: "https://index.42a.ai/space-node.net/blog/searxng-private-search-vps-2026"
---

> **Original source:** https://space-node.net/blog/searxng-private-search-vps-2026

1.  [Home](https://space-node.net/)
2.  /
3.  [Blog](https://space-node.net/blog)
4.  /
5.  SearXNG on a VPS (2026): Private Metasearch Engine

Published on 2026-01-11 | Updated 2026-05-06

Run SearXNG on a Space-Node VPS for private, fast search across the web

![searxng private search vps 2026](https://space-node.net/_next/image?url=%2Fvps-plans.webp&w=3840&q=75)

SearXNG is a privacy-friendly metasearch engine you can run yourself.

![Search](https://images.unsplash.com/photo-1461749280684-dccba630e2f6?w=1400&fit=crop&auto=format&q=80)

## **Table of Contents**

1.  Why SearXNG
2.  VPS specs
3.  Install overview
4.  Instance settings
5.  Maintenance
6.  Hardening tips
7.  Related guides

## **1\. Why SearXNG**

Fast, private search for your team or community.

## **2\. VPS specs**

Modest CPU and RAM; SSD for speed.

## **3\. Install overview**

Use Docker; configure engines and HTTPS. Create an `.env` for secrets, map a persistent volume, and place SearXNG behind Nginx Proxy Manager or Caddy for TLS. Keep logs modest and set appropriate rate limits.

## **4\. Instance settings**

Tune rate limits and enable privacy options. Disable tracking engines you do not need, reduce `outgoing.requests` concurrency on small VPS plans, and enable safe search where appropriate for communities.

## **5\. Maintenance**

Update regularly; monitor usage. Track CPU and RAM footprints, rotate logs, and back up configuration. Consider Prometheus or Uptime Kuma for basic availability checks.

## **6\. Hardening tips**

Run behind a reverse proxy with TLS, enforce strong admin credentials, and set sensible request rate limits. Keep the instance private for small teams, or publish public instances with clear usage policies.

## **7\. Related guides**

-   [Nginx Proxy Manager on a VPS](https://space-node.net/blog/nginx-proxy-manager-docker-vps-2026)
-   [Uptime Kuma on a VPS](https://space-node.net/blog/uptime-kuma-monitoring-vps-2026)
-   [Vaultwarden on a VPS](https://space-node.net/blog/vaultwarden-bitwarden-self-host-vps-2026)
-   [Immich Photo Server](https://space-node.net/blog/immich-photo-server-vps-2026)
-   See hosting options at [/vps-hosting](https://space-node.net/vps-hosting)

See /vps-hosting for plans.

## Why self-host SearXNG

SearXNG is a metasearch engine: it queries Google, Bing, DuckDuckGo, Brave, Wikipedia, etc. and aggregates results. Your IP never reaches the upstream search engines; they only see your VPS.

What you get:

-   No tracking, no profile building.
-   No filter bubble (results not personalized to your history).
-   Custom search engine for browsers, replacing Google as default.
-   API access for scripts and Discord/Slack bots.

What you don't get:

-   Better ranking than Google. Aggregation is convenience, not improvement.
-   Total anonymity. Your VPS IP is the new identifier; rotate or share.

## VPS sizing

Daily searches

vCPU

RAM

Bandwidth

Personal use (< 100/day)

1

512 MB

minimal

Family / small group (100-1000)

1

1 GB

a few GB/month

Public instance (1k-10k)

2

2 GB

50+ GB/month

SearXNG itself is light. The bottleneck at scale is upstream rate-limits (Google starts CAPTCHAing a single IP after 50-100 queries/min).

## docker-compose

```
services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./searxng:/etc/searxng
    environment:
      - SEARXNG_BASE_URL=https://search.example.com/
      - INSTANCE_NAME=my-searxng
    restart: always

  redis:
    image: redis:7-alpine
    restart: always
    command: redis-server --save "" --appendonly no
```

Reverse proxy 8080 with Caddy:

```
search.example.com {
  reverse_proxy 127.0.0.1:8080
}
```

## settings.yml essentials

```
server:
  secret_key: "GENERATE_64_HEX_CHARS"
  limiter: true
  image_proxy: true

search:
  safe_search: 0
  autocomplete: "duckduckgo"
  default_lang: "en"

ui:
  default_theme: simple
  infinite_scroll: false
```

`limiter: true` activates the bot detection / rate limiter. Without it a public instance gets scraped within a day.

## Public vs private instance decision

Need

Run private

Run public

Personal anonymity

yes

no

Family / friends

yes

no

Helping the privacy ecosystem

no

yes (with rate limits, abuse handling, terms of service)

Public instances need:

-   TLS (Let's Encrypt via Caddy).
-   Limiter with Redis.
-   Anti-bot rules in nginx/Caddy (rate-limit by IP).
-   A privacy policy.

## Common breakage

Symptom

Cause

Fix

Many engines return "no results"

upstream rate-limits

enable more engines, randomize order

CAPTCHA pages from Google

over the limit

add more engines, use private instance

Redis connection refused

wrong host name in settings

use service name "redis" not "localhost"

Browser doesn't add as default search

OpenSearch xml not exposed

set SEARXNG\_BASE\_URL to https URL

## Browser integration

Firefox and Chromium auto-detect SearXNG via OpenSearch. Once visited, right-click the URL bar > Add Search Engine. Set as default for distraction-free, ad-free, profile-free search.

1.  [Home](https://space-node.net/)
2.  /
3.  [Blog](https://space-node.net/blog)
4.  /
5.  SearXNG on a VPS (2026): Private Metasearch Engine