Docs / AI & Machine Learning / How to Set Up SearXNG Private Search Engine

How to Set Up SearXNG Private Search Engine

By Admin · Mar 1, 2026 · Updated Apr 23, 2026 · 29 views · 2 min read

SearXNG is a privacy-respecting metasearch engine that aggregates results from multiple sources without tracking. Hosting it on your Breeze gives you a self-hosted search solution.

Prerequisites

  • A Breeze with at least 1 GB RAM
  • Docker and Docker Compose installed
  • A domain name pointed to your server

Deploy with Docker Compose

mkdir -p /opt/searxng && cd /opt/searxng

cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "8080:8080"
    volumes:
      - ./settings:/etc/searxng
    environment:
      - SEARXNG_BASE_URL=https://search.example.com
    restart: unless-stopped
EOF

docker compose up -d

Configure Settings

Edit the settings file to customize your search engines and UI:

mkdir -p /opt/searxng/settings
cat > /opt/searxng/settings/settings.yml <<'EOF'
general:
  instance_name: "My Search"
server:
  secret_key: "generate-a-random-key-here"
  bind_address: "0.0.0.0"
search:
  safe_search: 0
  default_lang: "en"
engines:
  - name: duckduckgo
    disabled: false
  - name: wikipedia
    disabled: false
EOF

docker compose restart

Reverse Proxy Setup

Place SearXNG behind Nginx with TLS for secure access:

server {
    listen 443 ssl;
    server_name search.example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • Add authentication with HTTP basic auth or a VPN for private use
  • Regularly update the Docker image to get new engine support

Was this article helpful?