SelfHostStackOpen-Source Directory

Why Migrate Away from Google Search & Kagi?

Google Search tracks every query, IP address, click pattern, and device fingerprint to build advertising profiles. Kagi offers ad-free search but charges $5-$10/mo per account with proprietary backend indexing. Self-hosting SearXNG or Whoogle gives you a private metasearch engine that aggregates results from Google, Bing, DuckDuckGo, and dozens of other indexes simultaneously — without IP logging, cookie tracking, or search history retention.

Technical Architecture & Migration Analysis

Google Search uses a massive proprietary infrastructure with billions of indexed pages, personalization algorithms, and ad auction systems. Kagi uses licensed index access combined with AI-powered result ranking on a subscription model. Self-hosted metasearch engines take a fundamentally different approach: SearXNG federates queries across 70+ upstream search engines (Google, Bing, DuckDuckGo, Brave, Wikipedia, Reddit) from your server, aggregates and de-duplicates results, and serves them without any tracking, personalization, or ad injection. Whoogle takes a simpler approach as a direct Google proxy, stripping tracking parameters and ads from raw Google Search responses. Both run on minimal Python/Flask infrastructure with Redis caching.

⚠️

When NOT to Migrate (When Staying on Google Search & Kagi Makes Sense)

Self-hosting is not universally the right move. Keep paying for SaaS if your team hits any of these constraints:

  • Your workflow depends on Google's AI Overview, Knowledge Panel, or personalized search suggestions that SearXNG does not replicate.
  • You require guaranteed Google Search result quality for professional SEO research or rank tracking.
  • Your organization mandates using Google Workspace with integrated search across Gmail, Drive, and Calendar.

Real-World Cost Comparison: Google Search & Kagi vs Self-Hosted

Comparing vendor cloud billings against standard Hetzner / DigitalOcean infrastructure costs at scale.

Tier / ScaleGoogle Search & Kagi CostSelf-Hosted VPS CostEstimated Annual SavingsTechnical Breakdown
Personal Privacy Search
1 user, daily search usage, basic configuration
$0/month (Google with tracking) or $5/month (Kagi)€3.79/month (shared VPS with other services)$0-$60/yearSearXNG runs alongside other lightweight services on a shared VPS.
Family / Small Team (5-10 users)
5-10 users, shared search instance, customized engines
$25-$50/month (Kagi 5-10 accounts × $5)€3.79/month (Hetzner CX22)$250-$550/yearOne self-hosted instance serves unlimited users with per-user configuration profiles.
Organization / Public Instance (50+ users)
50+ concurrent users, custom branding, API integration
$250-$500+/month (Kagi Team/Business plans)€14.28/month (Hetzner CPX31 4 vCPU, 8GB RAM)$2,800-$5,800+/yearHigh-performance VPS handles heavy federated query loads with Redis result caching.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

SearXNG

AGPL-3.0⭐ 16.2k+

Privacy-respecting, hackable metasearch engine that aggregates 70+ search engines without tracking or profiling.

Min RAM512 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Replaces Google's tracking with privacy-respecting federated search
  • Runs on any VPS with minimal resources
  • Highly configurable engine weights, timeout tuning, and result plugins

⚠️ Trade-offs / Limitations

  • Search results quality varies by engine availability and rate limits
  • Requires periodic maintenance to update broken engine connectors
  • No search personalization or history (by design)

Core Features

Aggregates results from 70+ search engines including Google, Bing, DuckDuckGo, Wikipedia, Reddit, arXiv
Zero tracking: no cookies, no IP logging, no search history retention
Customizable UI themes, result categories (general, images, news, videos, maps, science)
Self-hosted API endpoint for programmatic search queries without API keys
Supports TOR, I2P, and other anonymizing networks out of the box

Architecture Notes

Python/Flask application that sends federated requests to 70+ upstream search engines (Google, Bing, DuckDuckGo, Wikipedia, Reddit, etc.), aggregates and de-duplicates results, and serves them through a clean, tracker-free UI. Uses Redis for result caching and rate limiting.

Known Limitations

Heavy upstream queries can occasionally trigger rate limits from Google; results depend on engine connectors staying updated with upstream API changes.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - searxng_data:/etc/searxng
      - searxng_cache:/var/cache/searxng
    environment:
      - SEARXNG_BASE_URL=https://search.yourdomain.com
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    networks:
      - selfhost_net

  searxng-redis:
    image: redis:7-alpine
    container_name: searxng-redis
    restart: always
    networks:
      - selfhost_net

volumes:
  searxng_data:
  searxng_cache:

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a VPS with at least 512MB RAM (e.g. Hetzner CX22 for headroom).
  2. 2Install Docker: `curl -fsSL https://get.docker.com | sh`.
  3. 3Create config directory: `mkdir -p /opt/searxng && cd /opt/searxng`.
  4. 4Save the docker-compose.yml file above.
  5. 5Generate a secret key: `openssl rand -hex 32` and add it to settings.yml.
  6. 6Run `docker compose up -d`.
  7. 7Point an A-record (e.g. `search.yourdomain.com`) to your VPS IP and set up Caddy for SSL.

Recommended Cloud VPS for SearXNG

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

More than enough for SearXNG with room for other services.

Deploy on Hetzner →
DigitalOcean$6.00/mo

Basic Droplet (1 vCPU, 1GB RAM)

Includes $200 free trial credits for 60 days.

Claim $200 DO Credit →

Whoogle Search

MIT⭐ 9.2k+

A self-hosted, ad-free, privacy-respecting metasearch engine that proxies Google Search results without tracking.

Min RAM256 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Search results are identical to Google without any tracking
  • Extremely lightweight and fast — runs on 256MB RAM
  • Simple setup with a single Docker container

⚠️ Trade-offs / Limitations

  • Only proxies Google (no Bing, DuckDuckGo, or other engine aggregation)
  • Can hit Google CAPTCHAs under heavy concurrent usage
  • No image/video/news search tabs (text results only)

Core Features

Direct Google Search proxy with all tracking and ad removal
Zero JavaScript, minimal HTML UI for maximum speed
Configurable search preferences (language, safe search, domain filtering)
Can run as a browser homepage or system-wide DNS proxy
Lightweight single-container deployment

Architecture Notes

Python/Flask application that acts as a proxy between the user and Google Search. It scrapes Google's search results, strips all tracking parameters, removes ads, and serves a clean HTML UI. Runs as a single container with optional SOCS cookies disabled for maximum privacy.

Known Limitations

Relies entirely on Google as the upstream source; occasional CAPTCHA blocks under heavy usage from a single IP.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  whoogle:
    image: benbusby/whoogle-search:latest
    container_name: whoogle
    restart: always
    ports:
      - "5000:5000"
    environment:
      - WHOOGLE_BASE_URL=https://search2.yourdomain.com
      - WHOOGLE_USER=""
      - WHOOGLE_PASS=""
    networks:
      - selfhost_net

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a minimal VPS with 512MB RAM.
  2. 2Install Docker: `curl -fsSL https://get.docker.com | sh`.
  3. 3Create directory: `mkdir -p /opt/whoogle && cd /opt/whoogle`.
  4. 4Save the docker-compose.yml file.
  5. 5Run `docker compose up -d`.
  6. 6Access at `http://your-vps-ip:5000` and configure reverse proxy for SSL.

Recommended Cloud VPS for Whoogle Search

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM)

Runs alongside other services with minimal resource usage.

Deploy on Hetzner →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
Google Search & Kagi (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
SearXNGAGPL-3.0512 MB1 vCPUsearxng/searxngReplaces Google's tracking with privacy-respecting federated search
Whoogle SearchMIT256 MB1 vCPUbenbusby/whoogle-searchSearch results are identical to Google without any tracking

Performance Benchmarks & Hard Operational Limits

Real-world operational trade-offs, resource consumption limits, and measured throughput.

Benchmark MetricGoogle Search & Kagi BaselineSelf-Hosted Alternative MetricOperational Bottleneck / LimitSource
Search Result Latency (Median)180ms-350ms (Google/Kagi cloud infrastructure)200ms-600ms (SearXNG federated query across multiple engines)Upstream engine response times and concurrent request fanout.Production Test
Monthly Cost per User$5-$10/user/month (Kagi) or $0 with ad/tracking cost$0.06/user/month (€3.79 VPS shared among 50 users)None.Production Test
Search Result CoverageGoogle index: ~400B pages (single engine)SearXNG aggregates 70+ engines — broader coverage for niche queriesUpstream rate limits during peak usage periods.Production Test

Frequently Asked Questions

Practical deployment, migration, and maintenance answers.

How does SearXNG avoid getting blocked by Google while proxying searches?

SearXNG uses multiple strategies: randomized user-agent rotation, configurable request delays, optional CAPTCHA-solving proxies, and distributed engine selection. For heavy usage, running through TOR or using multiple VPS exit nodes reduces per-IP query frequency.

Can I set SearXNG as my browser's default search engine?

Yes. SearXNG supports OpenSearch, so you can add it as a custom search engine in Firefox, Chrome, or Brave. Simply visit your instance URL and click the search bar to register it. You can also set it system-wide using browser policies or DNS-level redirects.

Does SearXNG search images, videos, and news?

Yes. SearXNG provides dedicated categories for general text, images, news, videos, maps, IT, science, files, and social media. Each category queries the most relevant upstream engines for that content type.

What is the difference between SearXNG and Whoogle?

SearXNG federates queries across 70+ search engines, providing broader result coverage and engine diversity. Whoogle exclusively proxies Google Search, providing Google-identical results in a privacy-respecting wrapper. Choose SearXNG for breadth; choose Whoogle if you only want Google results without tracking.

Can I self-host a search engine and use it programmatically via API?

Yes. SearXNG exposes a JSON API at `/search?q=query&format=json` that returns structured results without requiring API keys. This enables building custom search tools, RAG pipelines, and content aggregation scripts using your private search instance.

Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
navigate open