Self-host SearXNG: mesin pencari meta privat dan pencarian web gratis untuk Open WebUI serta LobeHub

Deploy SearXNG di server Anda sendiri dengan template Zenavo, aktifkan API JSON-nya, lalu hubungkan ke Open WebUI dan LobeHub lewat jaringan privat proyek agar model AI Anda bisa mencari informasi web terkini tanpa biaya per pencarian.

Artikel ini juga tersedia dalam English, 简体中文, 繁體中文, 日本語, dan Español.

Setelah Open WebUI atau LobeHub berjalan, pertanyaan berikutnya hampir selalu sama: bagaimana cara agar model AI bisa mencari berita hari ini, dokumentasi terbaru, atau halaman web secara langsung? API pencarian komersial (Tavily, Serper, Brave Search) umumnya mengenakan biaya per pencarian, sedangkan instance SearXNG publik sering menolak permintaan otomatis karena batas laju (rate limit).

SearXNG adalah mesin pencari meta open source: alih-alih membangun indeks sendiri, ia mengirim kueri secara paralel ke puluhan mesin pencari (Google, Bing, DuckDuckGo, Wikipedia, GitHub, dan lainnya), menghapus duplikat hasil, dan tidak menyimpan profil pelacakan Anda. Lebih praktisnya lagi, jika Anda menempatkan SearXNG di proyek Zenavo yang sama dengan Open WebUI atau LobeHub, aplikasi chat Anda bisa memanggilnya lewat jaringan privat tanpa biaya per kueri.

1. Dua cara deploy: backend privat untuk AI atau mesin pencari pribadi

Pertama, hubungkan server Linux ke Zenavo, lalu pilih skema yang sesuai dengan kebutuhan Anda:

  • Opsi A: Backend pencarian web internal untuk Open WebUI atau LobeHub (disarankan) Buka proyek Open WebUI atau LobeHub Anda di Zenavo, klik Add Service → Templates, lalu pilih SearXNG. Dengan cara ini, SearXNG berjalan di jaringan privat proyek yang sama (http://searxng.zenavo.internal:8080) dan bahkan tidak memerlukan domain publik, sehingga pihak luar tidak bisa mengakses endpoint pencarian Anda.
  • Opsi B: Mesin pencari privat mandiri untuk dipakai di browser Buat proyek baru dari template SearXNG, lalu pasang domain kustom (misalnya search.example.com) ke port 8080 pada tab Networking layanan searxng. Lihat Domain & HTTPS.

Template ini sangat ringan (biasanya memakai memori di bawah 200 MB):

Pengaturan Nilai atau fungsi
Image searxng/searxng:latest
Port HTTP 8080
Volume konfigurasi /etc/searxng (membuat settings.yml dan limiter.toml otomatis saat pertama kali dijalankan)
Volume cache /var/cache/searxng
SEARXNG_SECRET Kunci rahasia acak yang dibuat otomatis saat proyek dibuat

2. Aktifkan format output JSON (wajib untuk alat AI)

Secara bawaan, SearXNG hanya melayani halaman HTML untuk browser dan mengembalikan 403 Forbidden saat klien meminta ?format=json. Padahal, Open WebUI dan LobeHub mengambil hasil pencarian melalui API JSON.

Setelah layanan selesai berjalan pertama kali dan membuat /etc/searxng/settings.yml, buka file /etc/searxng/settings.yml (melalui terminal kontainer atau fitur file konfigurasi), lalu tambahkan json di bawah search.formats:

search:
  formats:
    - html
    - json

Jika SearXNG hanya dipanggil lewat jaringan privat Zenavo, pastikan juga limiter: false di bawah server: tetap nonaktif agar permintaan internal tidak terblokir. Simpan perubahan lalu klik Restart pada layanan searxng.

3. Hubungkan ke Open WebUI

Jika Anda men-deploy Open WebUI:

  1. Login ke Open WebUI sebagai admin, lalu buka Admin Panel → Settings → Web Search.
  2. Aktifkan tombol Enable Web Search.
  3. Pada Web Search Engine, pilih searxng.
  4. Isi Searxng Query URL dengan:
    • Proyek Zenavo yang sama (jaringan privat): http://searxng.zenavo.internal:8080/search?q=<query>
    • Proyek terpisah (domain publik): https://search.example.com/search?q=<query>
  5. Klik Simpan. Kembali ke jendela chat, aktifkan Web Search di bawah kotak input, lalu tanyakan topik terkini untuk melihat model menelusuri web sebelum menjawab.

4. Hubungkan ke LobeHub

Jika Anda menjalankan LobeHub, tambahkan variabel lingkungan berikut pada tab Variable di layanan lobehub, simpan, lalu restart lobehub:

SEARCH_PROVIDERS=searxng
SEARXNG_URL=http://searxng.zenavo.internal:8080

(Jika SearXNG berada di proyek lain, ganti SEARXNG_URL dengan domain https://search.example.com Anda.) Setelah di-restart, fitur pencarian web pintar di LobeHub akan langsung mengambil informasi halaman web lewat SearXNG milik Anda sendiri.

5. Backup dan upgrade

SearXNG tidak menyimpan akun pengguna maupun riwayat percakapan — hanya file /etc/searxng/settings.yml yang sudah Anda ubah yang perlu disimpan:

  1. Setelah mengedit settings.yml, simpan salinan isinya atau buat backup volume /etc/searxng lewat tab Backup & Restore saat jendela pemeliharaan.
  2. Template ini menggunakan searxng/searxng:latest karena mesin pencari upstream sering mengubah struktur halaman mereka dan SearXNG rutin merilis pembaruan parser. Jika ingin mengunci versi tertentu, ubah tag di Settings → Source.

Pertanyaan umum

Open WebUI atau LobeHub menampilkan 403 Forbidden saat melakukan pencarian. Hampir pasti karena json belum ditambahkan di bawah search.formats pada /etc/searxng/settings.yml (langkah 2), atau layanan searxng belum di-restart setelah file disimpan. Selain itu, bila domain publik Anda memakai proteksi bot, gunakan alamat jaringan privat http://searxng.zenavo.internal:8080.

Mengapa Google terkadang timeout atau meminta CAPTCHA? Alamat IP pusat data cloud dapat terkena batas laju upstream jika semua permintaan dikirim ke satu mesin pencari saja. Aktifkan beberapa mesin sekaligus (Bing, DuckDuckGo, Brave, Wikipedia) di Preferences → Engines pada SearXNG atau di settings.yml untuk membagi beban kueri.

Jika saya memasang domain publik, bagaimana cara mencegah orang asing menyalahgunakan API JSON saya? Jika SearXNG hanya dipakai untuk Open WebUI atau LobeHub Anda sendiri, langkah paling aman adalah tidak memasang domain publik sama sekali dan cukup memakai jaringan privat .zenavo.internal. Jika Anda juga memakainya lewat browser, aktifkan server.limiter: true di settings.yml atau batasi akses format JSON.

Bisakah SearXNG dipadukan dengan gateway model self-hosted? Tentu saja. Kombinasi yang sangat populer adalah menjalankan Open WebUI / LobeHub + SearXNG + Magpie (atau New API / LiteLLM) di dalam satu proyek Zenavo sehingga antarmuka chat, pencarian web, dan routing model semuanya berkomunikasi lewat jaringan internal di satu server.

Deploy template SearXNG — atau tambahkan langsung ke proyek AI Anda yang sudah ada — untuk memberi model AI Anda kemampuan pencarian web privat tanpa biaya per kueri dalam hitungan menit.