Blog / Tutorials

Self-Host SearXNG on a VPS — A Private Search Engine You Control

By the NoctHost TeamJuly 17, 20262 min read

Every search you run on a mainstream engine is logged, profiled and monetized. SearXNG is the fix: a metasearch engine that queries dozens of sources on your behalf, strips the tracking, and returns aggregated results — running on a server you own, seen by no one but you.

This guide gets a private SearXNG instance online with HTTPS in about ten minutes.

What You Need

  • A VPS with 1 GB RAM (it is very light)
  • Ubuntu 22.04 or 24.04 with SSH
  • A domain or subdomain pointed at the server

Step 1: Install Docker

curl -fsSL https://get.docker.com | sh

Step 2: Compose with Caddy HTTPS

Save as docker-compose.yml. Caddy fetches the certificate automatically:

services:
  searxng:
    image: searxng/searxng:latest
    restart: always
    volumes:
      - ./searxng:/etc/searxng
    environment:
      - SEARXNG_BASE_URL=https://search.example.com/

  caddy:
    image: caddy:2-alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
    depends_on:
      - searxng

volumes:
  caddy_data:

Step 3: The Caddyfile

search.example.com {
  reverse_proxy searxng:8080
}

Bring it up:

docker compose up -d

Step 4: Lock It Down for Private Use

By default SearXNG is open. For a personal instance, edit searxng/settings.yml (created on first run) to disable public features and enable the JSON API only if you need it. The two settings that matter:

server:
  limiter: true
search:
  formats:
    - html

Restart with docker compose restart searxng. The limiter blocks bots hammering your instance, and restricting formats keeps it from being used as an open API by others.

Tip — Keep the instance to yourself or a small group. A public SearXNG gets scraped and rate-limited by upstream engines fast — a private one stays fast and clean.

Step 5: Use It Everywhere

Add your instance as a custom search engine in your browser, pointing at https://search.example.com/search?q=%s. Now every address-bar search goes through your private aggregator — no profile, no ads, no logs but your own.

What It Costs

SearXNG barely uses resources, so the Micro plan (1 vCPU, 1 GB) runs it comfortably. On NoctHost you pay hourly from a prepaid balance, top up with crypto, and get a dedicated IPv4 — so your private search engine is a couple of dollars a month with no card and no identity check, which fits the privacy point of running it at all.

Spin one up in about a minute

Email signup, pay with crypto, hourly billing. Trying a box costs cents — destroy it when you are done.

Deploy a server

Frequently asked

Is SearXNG actually private?
Yes — it queries upstream engines on your behalf and does not build a profile of you. Your searches stay on your server. For full privacy, pair it with a VPN so upstream engines see the server's IP, not yours.
Does it have ads?
No. SearXNG shows aggregated organic results with no ads and no tracking scripts.
Why not use a public SearXNG instance?
Public instances are convenient but you are trusting whoever runs them, and they get rate-limited by upstream engines. Self-hosting means the only person you trust is you.
How much server does it need?
Very little — a 1 vCPU / 1 GB instance is plenty for personal or small-group use.

Keep reading