Tutorial

Self-Hosting SearXNG: Bangun Mesin Pencari Privasi di VPS Sendiri

Self-Hosting SearXNG: Bangun Mesin Pencari Privasi di VPS Sendiri

Setiap kali lo search di Google, lo secara otomatis memberikan data: lokasi, device, search history, click patterns. Google tahu lebih banyak soal lo dari yang lo sadari.

SearXNG adalah meta search engine yang aggregate results dari banyak search engines tanpa tracking. Data lo gak dikirim ke satu perusahaan — malah hasil pencarian dikumpulin dari berbagai sumber, digabung, dan ditampilkan tanpa history atau profiling. Dan yang paling penting: lo bisa self-host di VPS sendiri.

Apa Itu SearXNG?

SearXNG adalah fork dari Searx yang lebih aktif dikembangkan. Ini bukan search engine sendiri — lebih tepatnya meta search engine yang mengumpulkan results dari banyak search engines dan menggabungkannya.

FeatureGoogleDuckDuckGoSearXNG
TrackingYes (aggressive)MinimalNone
Source engines1 (own)1 (own)70+
Self-hostableNoNoYes
API accessPaidPaidFree
CustomizationNoneNoneFully customizable

Instalasi dengan Docker

Cara paling gampang: Docker. Ini Docker Compose yang pake:

version: "3.8"
services:
  valkey:
    image: valkey/valkey:latest
    container_name: searxng-valkey
    volumes:
      - valkey-data:/data
    restart: unless-stopped
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=https://search.domainkamu.com
    restart: unless-stopped
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"
    depends_on:
      valkey:
        condition: service_started

volumes:
  valkey-data:

⚠️ Catatan penting: Port 8080 di-bind ke 127.0.0.1 aja — jangan expose ke publik langsung. Selalu pakai reverse proxy (Caddy/Nginx) di depan SearXNG untuk HTTPS.

# Create project directory
mkdir -p ~/searxng and cd ~/searxng

# Save the docker-compose.yml above
nano docker-compose.yml

# Generate secret key
python3 -c "import secrets; print(secrets.token_hex(32))"

# Save to settings
nano searxng/settings.yml

# Start
docker compose up -d

Konfigurasi settings.yml

File settings.yml mengontrol semua behavior SearXNG:

use_default_settings: true

general:
  instance_name: "My Private Search"
  debug: false

search:
  safe_search: 0
  autocomplete: "google"
  default_lang: "id"

server:
  secret_key: "GANTI_DENGAN_SECRET_KEY_LO"
  bind_address: "0.0.0.0"
  port: 8080
  image_proxy: true

engines:
  # Google butuh API key — kalo gak punya, biarkan disabled: true
  - name: google
    engine: google
    shortcut: g
    disabled: true

  - name: duckduckgo
    engine: duckduckgo
    shortcut: ddg
    disabled: false

  - name: bing
    engine: bing
    shortcut: b
    disabled: false

  - name: wikipedia
    engine: wikipedia
    shortcut: w
    disabled: false

  - name: github
    engine: github
    shortcut: gh
    disabled: false

Reverse Proxy dengan Caddy

Lo harus pakai HTTPS untuk production. Ini Caddyfile yang pake:

# /etc/caddy/Caddyfile
search.domainkamu.com {
    reverse_proxy localhost:8080

    header {
        X-Content-Type-Options nosniff
        X-Frame-Options DENY
        Referrer-Policy no-referrer
        Permissions-Policy interest-cohort=()
    }

    encode gzip
    log {
        output file /var/log/caddy/search.log
    }
}

Ekspektasi vs Realita: SearXNG di VPS

Ini gambaran realistis kalo lo jalanin SearXNG di VPS entry-level ($5-10/bulan):

AspekKenyataan
RAM idle~150-250MB (SearXNG + Valkey + OS)
Search qualityBagus — tapi tergantung engine yang lo aktifin. DuckDuckGo + Google News + Wikipedia udah cukup untuk daily use.
KecepatanLebih lambat dari Google langsung (~1-3 detik vs <1 detik) karena aggregasi dari banyak engine. Normal.
PrivacyComplete — gak ada tracking, gak ada log history. IP lo cuman kelihatan ke VPS provider lo, bukan ke search engine.
MaintenanceMinimal. Docker auto-restart. Update image sesekali: docker compose pull && docker compose up -d
Key limitationsGoogle gak work tanpa API key berbayar. Beberapa site kayak Reddit kadang hasilnya kurang relevan.

Kesimpulan: SearXNG bukan pengganti Google 100%. Tapi buat daily search + privacy, ini pilihan terbaik yang bisa lo self-host. Jangan expect kecepatan Google — expect a privacy-respecting search experience.

Tips: kalau lo pakai SearXNG buat daily driver, tambahkan lebih banyak engines di settings.yml. Semakin banyak engine, semakin lengkap results-nya. Dan jangan lupa untuk aktifkan image_proxy biar gambar juga gak leak IP lo ke external servers.

SearXNG juga bisa jadi API backend untuk automation. Kalau lo tertarik soal CI/CD pipeline yang bisa pakai search results, cek panduan self-hosted CI/CD dengan Gitea dan Drone CI. Dan untuk memahami logging pipeline search queries, baca juga perbandingan ELK vs Loki.

💬 Komentar (0)

Belum ada komentar. Jadilah yang pertama! 💬

Komentar akan muncul setelah moderasi.