Tropic Host

SearXNG: apa itu dan cara memasang mesin pencari sendiri di VPS

5 min dibaca
Tropic
SearXNG: apa itu dan cara memasang mesin pencari sendiri di VPS

SearXNG: mesin pencari sendiri tanpa pelacakan di VPS

Mesin pencari biasa dapat mengaitkan kueri dengan alamat IP, cookie, dan riwayat aktivitas. SearXNG mengubah alurnya: browser terhubung ke instans Anda, yang mengirim kueri ke beberapa mesin pencari eksternal dan menggabungkan jawabannya dalam satu halaman.

Sumber eksternal melihat alamat server SearXNG, bukan cookie pengguna. Layanan itu sendiri tidak membuat profil iklan. Namun, ini bukan anonimitas sempurna: pemilik instans publik secara teknis dapat menyimpan log, dan setelah Anda membuka tautan, situs tujuan kembali berinteraksi dengan browser.

Kita akan membahas kemampuan SearXNG dan memasang instans sendiri di VPS dengan HTTPS serta perlindungan kata sandi.

Apa itu SearXNG dan bagaimana cara kerjanya

SearXNG adalah mesin meta-pencarian gratis dan sumber terbuka. SearXNG tidak memelihara indeks situs web sendiri: layanan mengambil hasil dari mesin pencari dan sumber khusus yang dikonfigurasi, menormalkannya, lalu menampilkannya dalam satu antarmuka.

Browser → your SearXNG → search engines
                         ↓
                  combined results

Untuk setiap kueri, SearXNG:

  1. menentukan kategori pencarian: web, gambar, berita, video, atau kategori lain;
  2. menghubungi sumber yang dipilih atas nama server;
  3. tidak mengirim cookie pengguna kepada sumber dan menggunakan profil browser acak untuk permintaan keluar;
  4. menggabungkan respons menjadi satu halaman hasil.

Kecepatan bergantung pada sistem eksternal: sistem tersebut dapat merespons lambat, menampilkan CAPTCHA, atau memblokir alamat IP. SearXNG adalah lapisan perantara yang dikelola, bukan indeks mandiri.

Mengapa SearXNG lebih menarik daripada satu mesin pencari

Berbagai sumber dalam satu halaman hasil

Anda dapat menggabungkan mesin pencari umum dengan sumber khusus: ensiklopedia, peta, publikasi ilmiah, repositori, layanan berita, atau katalog gambar. Ini membantu ketika halaman hasil biasa dipenuhi halaman SEO atau kesulitan menemukan materi khusus.

Saat artikel ini disiapkan, dokumentasi mencantumkan 272 integrasi, 83 di antaranya diaktifkan secara default. Ini tidak berarti semuanya sama stabilnya.

Kumpulan sumber bergantung pada konfigurasi. Beberapa sumber yang stabil biasanya bekerja lebih cepat daripada mengaktifkan semuanya sekaligus.

Perintah cepat

Pintasan memungkinkan Anda memilih mesin, kategori, atau bahasa untuk sementara:

!wp docker compose       — search Wikipedia
!images northern lights  — search for images
:en !wp proxy server     — search Wikipedia in English

Perintah !! mengarahkan pengguna langsung ke mesin pencari eksternal. Perlindungan SearXNG tidak lagi berlaku dalam mode ini.

Pencarian untuk browser dan alat Anda sendiri

SearXNG mendukung OpenSearch, sehingga dapat dijadikan mesin pencari default browser. API HTTP dengan respons JSON, CSV, atau RSS juga tersedia jika administrator mengaktifkan format yang diperlukan.

Satu instans dapat menjadi backend pencarian untuk dasbor internal, bot, skrip riset, atau asisten AI lokal. API sebaiknya hanya dibuka setelah autentikasi dan pembatasan laju dikonfigurasi.

Seberapa privatkah SearXNG

Yang dilakukanYang tidak dilakukan
Tidak mengirim cookie browser ke mesin pencari eksternalTidak memberikan anonimitas sempurna
Menyembunyikan IP pengguna di balik IP serverTidak melindungi pengguna setelah membuka situs hasil
Menghapus iklan pihak ketiga dan sebagian parameter pelacakanTidak menjamin pemilik server orang lain tidak menyimpan log
Dapat mem-proxy gambarTidak menggantikan VPN, Tor, atau perlindungan browser

Instans publik nyaman untuk mencoba layanan, tetapi Anda harus memercayai administratornya, dan alamat IP bersama lebih mungkin terkena pembatasan laju.

Server sendiri memberi Anda kendali atas log, sumber, dan akses, tetapi tidak membuat browser menjadi anonim.

Instans publik, server rumah, atau VPS

PilihanKeunggulanKeterbatasan
Instans publikTidak perlu memasang apa punHarus memercayai pemilik, dapat kelebihan beban, CAPTCHA
Server rumahKendali penuh tanpa menyewa VPSPerangkat harus terus menyala; akses eksternal lebih sulit dikonfigurasi
VPS sendiriBeroperasi 24/7, domain, HTTPS, akses dari berbagai perangkatContainer harus diperbarui dan keamanan harus dipantau

Instans SearXNG sendiri berguna untuk keluarga, tim, pengembang, atau alat AI lokal. Untuk pencarian sesekali, instans publik lebih sederhana.

VPS seperti apa yang dibutuhkan SearXNG

Beban bergantung pada jumlah pengguna, sumber, dan kueri yang berjalan bersamaan. Konfigurasi awal yang praktis:

SkenarioCPURAMPenyimpanan
Satu pengguna1 vCPU1 GB10 GB
Keluarga atau tim kecil2 vCPU2 GB20 GB
API dan layanan tambahan2–4 vCPUmulai dari 4 GBmulai dari 30 GB

Disk besar tidak diperlukan. Kualitas jaringan, alamat IP yang stabil, dan RAM cadangan lebih penting.

Linux VPS dari tropic.host sesuai untuk skenario ini: Anda dapat memulai dengan konfigurasi kecil dan menambah sumber daya ketika pengguna atau akses API bertambah. Saat memilih paket, lebih bermanfaat berinvestasi pada RAM dan kualitas jaringan daripada membayar terlalu mahal untuk kapasitas penyimpanan.

Memasang SearXNG di VPS dengan Docker Compose

Contoh ini menggunakan Ubuntu 24.04 LTS, search.example.com, Valkey, dan Caddy. Arahkan catatan DNS A ke server dan buka port 80 serta 443.

1. Pasang Docker dan buat direktori

sudo apt update
sudo apt install -y docker.io docker-compose-v2 openssl
sudo systemctl enable --now docker

sudo mkdir -p /opt/searxng/searxng
cd /opt/searxng

Buat file .env dengan domain dan secret acak:

printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
  "$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env

2. Buat docker-compose.yml

name: searxng

services:
  searxng:
    image: docker.io/searxng/searxng:latest
    restart: unless-stopped
    environment:
      SEARXNG_BASE_URL: https://${SEARXNG_HOSTNAME}/
      SEARXNG_SECRET: ${SEARXNG_SECRET}
      SEARXNG_VALKEY_URL: valkey://valkey:6379/0
    volumes:
      - ./searxng:/etc/searxng:rw
      - searxng-cache:/var/cache/searxng
    depends_on: [valkey]

  valkey:
    image: docker.io/valkey/valkey:9-alpine
    restart: unless-stopped
    command: valkey-server --save 30 1 --loglevel warning
    volumes:
      - valkey-data:/data

  caddy:
    image: docker.io/caddy:2-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    environment:
      SEARXNG_HOSTNAME: ${SEARXNG_HOSTNAME}
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config
    depends_on: [searxng]

volumes:
  searxng-cache:
  valkey-data:
  caddy-data:
  caddy-config:

3. Konfigurasikan SearXNG

Buat searxng/settings.yml:

use_default_settings: true

general:
  instance_name: "Private Search"

search:
  safe_search: 1
  autocomplete: ""
  formats: [html]

server:
  limiter: true
  image_proxy: true

valkey:
  url: valkey://valkey:6379/0

Buat searxng/limiter.toml:

[botdetection]
trusted_proxies = [
  "127.0.0.0/8",
  "::1",
  "172.16.0.0/12",
]

Limiter mengurangi risiko bot membebani instans dan membuat mesin pencari eksternal lebih cepat membatasi alamat IP-nya.

4. Tambahkan kata sandi dan HTTPS

Buat hash untuk kata sandi yang kuat:

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'

Masukkan hash yang dihasilkan ke dalam Caddyfile:

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser INSERT_HASH_HERE
    }

    reverse_proxy searxng:8080 {
        header_up X-Real-IP {remote_host}
    }
}

Caddy menyimpan hash, bukan kata sandi teks biasa. Selain Basic Auth, layanan juga dapat dibatasi hanya melalui VPN.

5. Jalankan container

sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps

Buka https://search.example.com. Caddy akan otomatis mendapatkan sertifikat TLS, kemudian browser akan meminta nama pengguna dan kata sandi searchuser. Log SearXNG tersedia dengan perintah berikut:

sudo docker compose logs -f searxng

Yang perlu dikonfigurasi setelah berjalan

Pertahankan hanya sumber yang berguna, pilih bahasa dan pengaturan SafeSearch, lalu tambahkan SearXNG ke browser melalui OpenSearch. Untuk memperbaruinya, jalankan:

sudo docker compose pull
sudo docker compose up -d

Cadangkan .env, Caddyfile, dan direktori searxng. Aktifkan API JSON hanya jika diperlukan, dan jangan membiarkannya tanpa kata sandi serta pembatasan laju.

Kesalahan umum

KesalahanAkibatSolusi
Membuat instans publikBot menambah beban dan IP lebih sering dibatasiGunakan kata sandi, VPN, atau single sign-on
Mengaktifkan terlalu banyak sumberHasil lambat dan timeoutPertahankan beberapa mesin yang stabil
Menganggap SearXNG sebagai indeks sendiriSebagian hasil hilang ketika sistem eksternal gagalPerhitungkan ketergantungannya pada sumber
Mengharapkan anonimitas sempurnaSitus tujuan masih dapat melacak browserGunakan perlindungan browser, VPN, atau Tor
Menjalankannya tanpa HTTPSKueri dan kata sandi dikirim secara tidak amanGunakan reverse proxy dengan TLS

Kesimpulan

SearXNG menggabungkan berbagai sumber dalam satu antarmuka, mengurangi personalisasi, dan menyediakan satu layanan pencarian untuk browser, skrip, atau AI lokal. Instans publik cukup untuk mencobanya. Untuk penggunaan rutin, server sendiri dengan HTTPS, autentikasi, limiter, dan beberapa sumber stabil adalah pilihan yang lebih baik.

Anda dapat memulai dengan RAM 1 GB. Tambahkan sumber daya ketika jumlah pengguna bertambah, saat mengaktifkan API, atau ketika menjalankan container tambahan.

FAQ

Apakah SearXNG sepenuhnya anonim?

Tidak. SearXNG menyembunyikan sebagian data dari mesin pencari eksternal, tetapi administrator instans dapat menyimpan log. Setelah Anda membuka sebuah situs, mekanisme pelacakannya sendiri berlaku.

Apakah SearXNG lebih baik daripada Google?

SearXNG menyelesaikan masalah yang berbeda. Google biasanya lebih cepat dan lebih banyak mempersonalisasi hasil. SearXNG memberi Anda kendali lebih besar, memungkinkan penggabungan sumber, dan lebih sedikit bergantung pada profil pengguna.

Apakah SearXNG dapat digunakan tanpa VPS?

Ya. Anda dapat menggunakan instans publik, komputer rumah, NAS, atau server mini. VPS diperlukan untuk akses 24/7 dari jaringan mana pun.

Berapa banyak RAM yang diperlukan?

Untuk satu pengguna, memulai dengan 1 GB adalah hal yang wajar. Untuk keluarga, tim, API, atau container tambahan, 2–4 GB lebih disarankan.

Apakah SearXNG dapat dihubungkan ke browser atau AI?

Ya. Browser dapat menggunakan OpenSearch, sedangkan aplikasi dapat menggunakan API HTTP. Akses API harus dilindungi dengan autentikasi dan limiter.