SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-31

Searx vs SearXNG: Apakah Searx Sudah Mati?

Searx tidak menerima commit kode sejak April 2023 dan README menyebutnya tidak lagi dipelihara. Bandingkan statusnya dengan SearXNG sebelum memasang instance baru.

Searx atau SearXNG: mana yang sebaiknya diinstal?

Searx dan SearXNG adalah dua proyek berbeda dengan nama yang hampir sama, dan hanya salah satunya yang masih mendapatkan perbaikan. Instal SearXNG. Searx asli tidak menerima commit kode sejak April 2023, dan README-nya sendiri menyatakan statusnya dalam satu kalimat: "Searx tidak lagi dipelihara."

Hal ini menimbulkan masalah praktis, bukan masalah filosofis. Kedua proyek tersebut menggunakan tangkapan layar yang sama, sebagian besar file konfigurasi yang sama, dan separuh nama yang sama. Akibatnya, panduan untuk salah satunya tampak seolah-olah berlaku untuk yang lain. Padahal tidak. File settings berada di lokasi yang berbeda, perlindungan terhadap bot sudah berubah, dan nama paketnya sudah tidak tersedia pada Ubuntu versi saat ini. Bagian berikut menjelaskan perbedaan tersebut, perintah untuk memeriksa statusnya sendiri, serta hal-hal yang berubah bagi orang yang menyiapkan sebuah instance.

Apa itu Searx dan asal mula SearXNG

Searx adalah mesin metapencarian. Searx tidak memiliki indeks sendiri. Searx menerima kueri Anda, meneruskannya ke layanan pencarian lain seperti Bing, DuckDuckGo, atau Wikipedia, lalu menggabungkan hasilnya menjadi satu halaman hasil. Keuntungannya, layanan tersebut melihat alamat server, bukan alamat Anda. Konsekuensinya adalah pemeliharaan. Setiap engine merupakan potongan kode kecil yang mengurai HTML atau API milik pihak lain. Karena itu, sebuah engine akan rusak setiap kali layanan upstream tersebut berubah. Kondisi mesin metapencarian hanya sebaik orang yang memperbaiki modul-modul engine-nya.

Repositori searx dibuat pada Oktober 2013. Pada April 2021, mantan maintainer memulai SearXNG sebagai fork dari repositori tersebut. "NG" berarti generasi berikutnya. README milik Searx menjelaskan kedua proyek secara berdampingan. Penjelasan tersebut masih menjadi ringkasan paling jelas tentang perbedaan keduanya:

SearxNG adalah fork dari searx yang dibuat oleh mantan maintainer searx.
SearxNG memiliki rolling release, dependensi yang diperbarui lebih sering, dan engine yang diperbaiki lebih cepat.

Perbedaan pendapat yang melatarbelakangi fork tersebut berkaitan dengan diagnostik. Searx menganggap data penggunaan sebagai sesuatu yang tidak boleh disimpan oleh sebuah instance. Pengaturan default-nya menyatakan hal itu secara eksplisit: enable_stats: False # activate /stats page - note: it may leak usage data. SearXNG mengambil keputusan yang berlawanan dan menyertakan enable_metrics: true dalam pengaturan default-nya. Metrik tersebut mengisi bilah waktu respons dan halaman error, sehingga engine yang rusak mudah ditemukan dan diperbaiki. Kedua posisi tersebut dapat dipertanggungjawabkan. Hanya salah satunya yang terus merilis kode.

Apakah Searx sudah mati? Cara memeriksanya sendiri

"Sudah mati" bukan status yang dilaporkan GitHub, jadi baca dua indikator yang tersedia lalu tentukan sendiri. Indikator pertama adalah apakah repositori diarsipkan dan kapan terakhir kali repositori tersebut menerima push.

curl -s https://api.github.com/repos/searx/searx | jq -r '.archived, .pushed_at'
curl -s https://api.github.com/repos/searxng/searxng | jq -r '.archived, .pushed_at'

Pada 22 August 2026, perintah pertama menampilkan false dan 2026-05-14T10:02:22Z. Perintah kedua menampilkan false dan timestamp dari hari ketika Anda menjalankannya. Perhatikan nilai pertama. Repositori searx tidak diarsipkan dan tidak ada yang mengunci aksesnya, sehingga pertanyaan ini terus muncul.

pushed_at sendiri merupakan indikator yang lemah karena nilainya berubah jika ada push ke branch apa pun, termasuk perubahan dokumentasi satu baris. Baca daftar commit sebagai gantinya.

curl -s 'https://api.github.com/repos/searx/searx/commits?per_page=5' \
  | jq -r '.[] | .commit.committer.date[:10] + "  " + (.commit.message | split("\n")[0])'

Pada August 2026, hasilnya adalah:

2026-05-14  [doc] add hister reference
2023-09-07  Searx is no longer maintained
2023-04-05  Fix quoting issue in search_operator plugin (#3479)
2023-04-04  Bump pallets-sphinx-themes from 2.0.2 to 2.0.3 (#3450)
2023-04-04  Bump selenium from 4.7.2 to 4.8.3 (#3490)

Baca dari bawah ke atas. Pekerjaan rutin berhenti pada April 2023. Commit September 2023 adalah commit maintainer yang menambahkan pemberitahuan tersebut ke README. Satu-satunya commit setelah itu berisi dokumentasi, karena penulis asli beralih ke Hister, yaitu alat pencarian yang mengindeks halaman dan file yang Anda pilih, bukan mengirim kueri ke engine lain. Ini merupakan gagasan yang berbeda dan berguna jika yang sebenarnya Anda inginkan adalah mesin pencarian pribadi untuk konten Anda sendiri.

Indikator kedua adalah packaging, dan sebagian besar tutorial lama secara diam-diam bergantung pada packaging.

  • PyPI memiliki satu rilis searx, versi 0.17.0, yang diunggah pada July 2020. pip install searx berhasil dan memberi Anda kode dari sembilan bulan sebelum fork dibuat.
  • Debian merilis searx 1.1.0 dalam Debian 12 (bookworm) dan masih menyediakannya di unstable. Paket tersebut dihapus dari testing pada October 2023, sehingga Debian 13 (trixie) sama sekali tidak memiliki paket searx.
  • Ubuntu terakhir kali merilisnya dalam 22.04, pada versi 1.0.0. Pada Ubuntu 24.04, sudo apt install searx berakhir dengan E: Unable to locate package searx.
  • searx.space, direktori instance publik yang selalu dirujuk oleh proyek tersebut, sekarang mencantumkan instance SearXNG.

Jadi, inilah status sebenarnya. Kodenya bersifat publik, masih dapat dijalankan, dan Anda dapat melakukan clone lalu menjalankannya hari ini. Namun, Anda tidak mendapatkan perbaikan engine atau pembaruan keamanan, padahal untuk metasearch engine, itulah fungsi utamanya. Engine memburuk mengikuti jadwal pihak lain. Instance yang tidak dipelihara mengembalikan semakin sedikit hasil setiap bulan tanpa ada yang menyentuh server tersebut.

Perubahan fork untuk instance baru

File pengaturan berpindah, dan sekarang menjadi overlay

Pada Searx, Anda mengedit searx/settings.yml di dalam pohon sumber. Pada SearXNG, file tersebut berada di /etc/searxng/settings.yml, dan proses menemukannya melalui variabel lingkungan SEARXNG_SETTINGS_PATH. Template yang disalin installer ke sana berisi sedikit baris:

use_default_settings: true

general:
  debug: false
  instance_name: "SearXNG"

search:
  safe_search: 2
  autocomplete: 'duckduckgo'
  formats:
    - html

server:
  # Is overwritten by ${SEARXNG_SECRET}
  secret_key: "ultrasecretkey"
  limiter: true
  image_proxy: true

valkey:
  # URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}.
  url: valkey://localhost:6379/0

use_default_settings: true adalah baris yang mengubah cara Anda bekerja. Dengan baris tersebut, file Anda hanya berisi override, sedangkan setiap kunci yang tidak dicantumkan akan menggunakan default yang disertakan dalam paket. Tanpa baris tersebut, file Anda harus menjelaskan seluruh konfigurasi untuk setiap engine. Inilah penyebab instance dapat start dengan bersih tetapi tidak menemukan apa pun. File pengaturan Searx lama yang ditempelkan ke path ini merupakan konfigurasi lengkap dengan nama kunci yang berbeda, sehingga file tersebut mengikuti cara kedua dan gagal menerapkannya dengan benar.

Kunci rahasia menghentikan proses

sudo -H sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" \
              "/etc/searxng/settings.yml"

Jalankan perintah tersebut sekali setelah menyalin template. Jika dilewati, SearXNG mencatat satu baris log lalu keluar dengan status 1, karena webapp.py membandingkan kunci dengan nilai template sebelum melayani permintaan apa pun:

server.secret_key is not changed. Please use something else instead of ultrasecretkey.

Pemeriksaan ini dilewati ketika general.debug bernilai true, sehingga instance dapat berjalan tanpa masalah dalam sesi debug tetapi menolak start di bawah systemd atau di dalam container. Container yang terus-menerus restart dengan baris tersebut di docker compose logs sedang terkena pemeriksaan ini, bukan menggunakan image yang rusak.

Limiter baru dan membutuhkan Valkey

Searx tidak memiliki rate limiting di dalam aplikasinya. Instance Searx publik menempatkan service terpisah di depannya: filtron untuk memfilter permintaan dan morty untuk mem-proxy konten hasil. Kedua repository tersebut terakhir menerima commit pada 2023.

SearXNG menangani fungsi tersebut sendiri. Rate limiting dan deteksi bot ditangani oleh limiter, yang diaktifkan dengan server.limiter. Fitur ini bernilai false dalam default yang disertakan dan true dalam template installer, serta membutuhkan database Valkey untuk menyimpan penghitungnya. Valkey adalah fork dari Redis, dan Ubuntu 24.04 menyediakannya dalam bentuk paket:

sudo apt install -y valkey-server
server:
  limiter: true

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

Panduan yang ditulis sebelum perubahan nama tersebut biasanya mengonfigurasi blok redis:. Karena itu, salin nama kunci dari dokumentasi limiter saat ini. Penyesuaian lebih lanjut berada di file kedua, /etc/searxng/limiter.toml, dan server.public_instance: true mengaktifkan deteksi bot yang lebih ketat untuk instance publik, termasuk metode token tautan. Hasil yang terlihat adalah beberapa permintaan dijawab dengan HTTP 429, bukan hasil pencarian. Ini juga dapat terjadi pada permintaan Anda sendiri jika Anda membuat skrip yang mengakses instance tersebut. Penjelasan khusus tersedia di sini: alasan instance SearXNG menjawab 429 Too Many Requests.

Engine menangguhkan dirinya sendiri, dan batas waktu berlangsung lama

Ketika service upstream menjawab dengan CAPTCHA atau halaman rate limit, SearXNG menaikkan exception bertipe lalu berhenti meminta data dari engine tersebut selama waktu tertentu, alih-alih terus mencoba hingga diblokir. Default-nya disediakan di searx/settings.yml di bawah search.suspended_times. Berikut 6 nilai yang dipublikasikan per Agustus 2026:

ChartSearXNG default engine suspension times, in seconds
The data behind this chart
[
  {
    "label": "SearxEngineAccessDenied",
    "suspend_seconds": "180"
  },
  {
    "label": "SearxEngineCaptcha",
    "suspend_seconds": "3,600"
  },
  {
    "label": "SearxEngineTooManyRequests",
    "suspend_seconds": "180"
  },
  {
    "label": "cf_SearxEngineCaptcha",
    "suspend_seconds": "1,296,000"
  },
  {
    "label": "cf_SearxEngineAccessDenied",
    "suspend_seconds": "86,400"
  },
  {
    "label": "recaptcha_SearxEngineCaptcha",
    "suspend_seconds": "604,800"
  }
]

Jawaban access denied biasa menangguhkan engine tersebut selama 180 detik. CAPTCHA menangguhkannya selama 3,600 detik. CAPTCHA Cloudflare menangguhkannya selama 1,296,000 detik, yaitu lima belas hari, sedangkan Google reCAPTCHA menangguhkannya selama 604,800 detik, yaitu satu minggu. Nilai yang panjang tersebut memang disengaja, karena kembali meminta data setelah service menandai alamat tersebut dapat menyebabkan IP instance diblokir secara permanen.

Selama engine ditangguhkan, halaman hasil melewatinya dan melaporkannya di blok sidebar berjudul "Messages from the search engines", sedangkan /stats/errors mencantumkan apa yang gagal. Instance baru yang menghasilkan hasil tipis biasanya sedang menunjukkan kondisi ini, bukan instalasi yang rusak.

API JSON nonaktif secara default

Default yang disertakan adalah formats: [html] dan tidak ada konfigurasi lain, sehingga API yang dibutuhkan setiap skrip tertutup sampai Anda membukanya.

curl -s -o /dev/null -w '%{http_code}\n' \
  'http://127.0.0.1:8888/search?q=test&format=json'

Perintah tersebut mencetak 403, karena route pencarian memanggil flask.abort(403) ketika format yang diminta tidak tercantum di search.formats. Tambahkan format tersebut lalu restart service:

search:
  formats:
    - html
    - json

File pengaturan searx sama sekali tidak memiliki kunci formats, sehingga output JSON-nya tersedia tanpa konfigurasi tambahan. Setiap skrip dan potongan konfigurasi dari masa tersebut mengasumsikan hal yang sama, dan mode kegagalannya adalah 403 tanpa penjelasan. Jika Anda menghubungkan instance ke tooling, memberikan endpoint SearXNG kepada agent untuk melakukan pencarian dimulai dari satu pengaturan ini.

Mengapa tutorial Searx hasil salin-tempel gagal

Setiap baris berikut masih muncul dalam panduan yang tetap berada di peringkat atas, tetapi masing-masing gagal atau menyesatkan pada instalasi saat ini.

  • sudo apt install searx pada Ubuntu 24.04 berhenti di E: Unable to locate package searx karena paket tersebut terakhir dirilis untuk 22.04.
  • pip install searx berhasil dan memasang versi 0.17.0 dari Juli 2020. Tidak ada peringatan bahwa versi tersebut dibuat sebelum fork.
  • git clone https://github.com/asciimoo/searx masih berfungsi karena GitHub mengarahkan ulang nama pemilik lama, lalu menyediakan tree dari April 2023.
  • Langkah yang mengubah searx/settings.yml di source tree tidak mengubah apa pun pada SearXNG karena SearXNG membaca /etc/searxng/settings.yml.
  • Langkah yang memasang filtron atau morty sebenarnya membangun ulang bagian yang sudah disertakan dalam SearXNG.
  • URL redis: untuk limiter tertinggal satu kali penggantian nama dari key valkey: yang digunakan saat ini.

Panduan SearXNG juga dapat usang, dan clone URL adalah cara tercepat untuk mengetahui usia panduan tersebut. File compose sebelumnya berada dalam repository searxng-docker yang terpisah. Repository tersebut diarsipkan pada Maret 2026, dan filenya dipindahkan ke container/ dalam repository utama. Quickstart container saat ini dari dokumentasi adalah:

mkdir -p ./searxng/core-config/
cd ./searxng/
curl -fsSL \
    -O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
    -O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example
cp -i .env.example .env
nano .env
docker compose up -d

Ubah .env sebelum menjalankan perintah terakhir. Image tersebut memetakan variabel lingkungan ke key pengaturan, sehingga SEARXNG_SECRET menjadi server.secret_key dan SEARXNG_BASE_URL menjadi server.base_url. Instalasi host dengan skrip menggunakan jalur berbeda, tetapi hasilnya sama:

git clone https://github.com/searxng/searxng.git searxng
cd searxng
sudo -H ./utils/searxng.sh install all

Perintah tersebut membuat user searxng, virtual environment di bawah /usr/local/searxng, dan service uWSGI. Konfigurasi ini merupakan setup acuan dalam dokumentasi SearXNG. Panduan yang lebih panjang untuk jalur tersebut tersedia di menginstal SearXNG pada VPS milik sendiri.

Instance publik atau instance milik sendiri

Instance publik adalah server milik pihak lain yang melakukan terminasi TLS (transport layer security) untuk koneksi Anda, sehingga perangkat lunak di server tersebut dapat membaca kueri Anda sebagai teks biasa. Dokumentasi SearXNG menjelaskan persoalan kepercayaan ini secara langsung: Anda harus memercayai administratornya, dan Anda tidak dapat mengetahui apakah permintaan dicatat, diagregasikan, atau diteruskan kepada pihak ketiga. Daftar informasi yang terlihat singkat dan lengkap. Stack milik operator dapat melihat teks kueri, waktu, alamat IP asal permintaan, user agent browser, serta cookie preferensi yang menyimpan pengaturan Anda. Operator juga mengendalikan kode, sehingga patch apa pun yang mereka terapkan akan dijalankan pada setiap pencarian yang Anda lakukan di sana.

Salah satu konfigurasi default membuat pencatatan ini lebih mudah terjadi tanpa sengaja. Searx mengirim pencarian sebagai POST. SearXNG menyediakan method: "GET", dengan komentar bahwa POST menjaga kueri pencarian tetap berada di luar riwayat browser, tetapi menimbulkan masalah usability. Dengan GET, kueri berada di request line, sehingga secara default masuk ke access log reverse proxy dan riwayat browser. Ini adalah perilaku server web yang umum. Hal ini perlu diketahui sebelum Anda memilih server mana yang akan memprosesnya.

Menjalankan instance sendiri memindahkan kepercayaan, bukan menghilangkannya. Anda mengendalikan kode dan log. Jika Anda tidak ingin memublikasikan hostname atau sertifikat TLS untuk satu perangkat pengguna, mengaksesnya melalui layanan onion v3 membuat instance tetap berada di luar DNS publik, tetapi Anda tetap dapat mengaksesnya dari mana saja. Sebagai gantinya, engine upstream melihat satu alamat untuk semua pencarian Anda. Pada instance untuk satu pengguna, setiap kueri dapat dilacak kembali kepada Anda, bukan tercampur dengan permintaan banyak pengguna lain. Instance publik yang sibuk memberi Anda kerumunan tersebut dan mengambil alih log dari Anda. Pilih karakteristik yang paling penting bagi Anda. Jika Anda ingin membaca daftar risiko secara lengkap terlebih dahulu, apakah SearXNG aman digunakan membahasnya.

Satu catatan praktis untuk VPS. Rentang alamat pusat data lebih cepat ditandai daripada koneksi rumah. Akibatnya, instance baru dapat menghadapi CAPTCHA pada beberapa engine dalam beberapa pencarian pertama. Itu adalah perilaku penangguhan yang dijelaskan di atas, bukan kesalahan konfigurasi.

Jika Anda sudah menjalankan instance Searx

Tidak ada yang langsung rusak saat Anda membaca ini. Server tetap berfungsi sampai perubahan upstream berikutnya merusak engine lain, lalu kerusakan tersebut tidak diperbaiki. Rencanakan pemindahan dan jangan memindahkan file konfigurasi. Mulai dari template SearXNG, lalu tambahkan kembali hanya pengaturan yang memang Anda ubah: nama instance, safe_search, engine yang Anda aktifkan atau nonaktifkan berdasarkan namanya, serta default antarmuka Anda. Nama dan opsi engine berubah pada fork ini. Periksa setiap pengaturan berdasarkan dokumentasi terbaru, bukan dengan menganggap key tersebut masih tersedia. Aturan Filtron dan URL morty tidak memiliki padanan karena fungsi tersebut telah dipindahkan ke dalam aplikasi.

Jalankan instance baru pada port yang berbeda saat instance lama masih aktif. Instance baru berfungsi jika halaman utama mengembalikan 200, pencarian mengembalikan hasil dari lebih dari satu engine, dan /stats/errors kosong atau hanya mencantumkan kegagalan yang Anda pahami. Setelah itu, alihkan reverse proxy ke instance baru dan hentikan service lama.

FAQ

Apakah Searx sudah mati pada 2026?

Repositorinya tidak diarsipkan, jadi Anda masih dapat melakukan clone, tetapi proyek ini tidak lagi dipelihara. Commit kode terakhir dibuat pada April 2023, dan README memuat kalimat "Searx is no longer maintained." Periksa sendiri dengan curl -s https://api.github.com/repos/searx/searx | jq -r '.pushed_at', lalu baca pesan commit terbaru karena tanggal push saja dapat berasal dari perubahan dokumentasi. Untuk metasearch engine, tidak dipelihara berarti hasil pencarian memburuk dengan sendirinya karena setiap modul engine bergantung pada situs upstream yang terus berubah.

Apakah saya masih dapat menginstal Searx dengan apt atau pip?

Tidak pada sistem saat ini, dan tidak secara bermanfaat pada sistem yang masih menyediakannya. Ubuntu terakhir kali memaketkan searx pada 22.04 dengan versi 1.0.0, sehingga sudo apt install searx pada 24.04 mengembalikan E: Unable to locate package searx. Debian menyediakan versi 1.1.0 pada Debian 12 dan menghapusnya dari testing pada Oktober 2023, sehingga Debian 13 tidak memiliki paket tersebut. PyPI masih menyediakan versi 0.17.0 dari Juli 2020, yang lebih lama daripada fork itu sendiri. Instal SearXNG sebagai gantinya.

Apakah settings.yml searx lama saya akan berfungsi di SearXNG?

Tidak. Salin nilainya, bukan filenya. SearXNG membaca /etc/searxng/settings.yml dan mengharapkan use_default_settings: true di bagian atas, sehingga file Anda berfungsi sebagai overlay terhadap default yang disertakan. File searx lama merupakan konfigurasi lengkap dengan nama key yang berbeda. File tersebut tidak memiliki limiter, blok valkey, maupun daftar formats. Mulai dari template di utils/templates/etc/searxng/settings.yml, lalu tambahkan kembali perubahan Anda satu per satu.

Mengapa instance SearXNG saya sendiri mengembalikan lebih sedikit hasil daripada instance publik?

Beberapa engine ditangguhkan. Jika sebuah engine merespons dengan CAPTCHA atau halaman rate limit, SearXNG berhenti melakukan query ke engine tersebut selama waktu tertentu, mulai dari 180 detik untuk penolakan biasa hingga 1,296,000 detik untuk CAPTCHA Cloudflare. Halaman hasil melaporkan kondisi ini di bawah "Messages from the search engines", dan /stats/errors mencantumkan kegagalan tersebut beserta alasannya. Alamat datacenter ditandai lebih cepat daripada koneksi rumah, sehingga instance VPS baru akan mengalami kondisi ini lebih awal.

Sebaiknya saya menggunakan instance SearXNG publik atau menjalankan instance sendiri?

Jalankan instance sendiri jika Anda menginginkan kendali atas kode dan log, serta menerima bahwa engine upstream akan melihat satu alamat untuk semua pencarian Anda. Gunakan instance publik jika mencampur query Anda dengan query orang lain lebih penting daripada mengetahui apa yang dicatat. Pada instance publik, operator dapat melihat teks query, waktu, alamat IP Anda, dan user agent Anda, serta dapat mengubah kode kapan saja. Kebijakan pencatatan yang dinyatakan tidak dapat diverifikasi dari luar.