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 tidak aktif? Cara memeriksanya sendiri
"Sudah tidak aktif" bukan status yang dilaporkan GitHub. Karena itu, baca dua indikator yang tersedia lalu tarik kesimpulan. Indikator pertama adalah apakah repository diarsipkan dan kapan terakhir kali 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 18 October 2026, perintah pertama mencetak false dan 2026-05-14T10:02:22Z. Perintah kedua mencetak false dan timestamp terbaru, biasanya dari satu atau dua hari terakhir. Perhatikan nilai pertama. Repository searx tidak diarsipkan dan tidak ada yang mengunci aksesnya. Karena itu, pertanyaan ini terus muncul.
pushed_at sendiri merupakan indikator yang lemah. 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])'Per 18 October 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 Update searx.data - update_wikidata_units.py (#3454)Baca dari bawah ke atas. Pekerjaan rutin berhenti pada April 2023. Commit September 2023 adalah commit ketika maintainer menambahkan pemberitahuan tersebut ke README. Satu-satunya commit setelah itu adalah perubahan dokumentasi, karena penulis asli beralih ke Hister, yaitu alat pencarian yang mengindeks halaman dan file yang Anda pilih, bukan meminta hasil dari engine lain. Itu merupakan gagasan yang berbeda dan berguna jika yang sebenarnya Anda inginkan adalah search engine pribadi untuk konten Anda sendiri.
Indikator kedua adalah packaging. Sebagian besar tutorial lama secara diam-diam bergantung pada packaging.
- PyPI menyimpan dua puluh
searxrilis, dari 0.1.2 pada Januari 2014 hingga 0.17.0 pada Juli 2020, dan semuanya masih dapat diunduh.pip install searxberhasil dan memberikan rilis terbaru, yaitu 0.17.0, yang berisi 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. Karena itu, Debian 13 (trixie) sama sekali tidak memiliki paket searx.
- Ubuntu terakhir kali merilisnya dalam 23.10 (mantic), pada versi 1.1.0. Rilis LTS terakhir yang menyertakannya adalah 22.04, pada versi 1.0.0. Paket tersebut dihapus dari 24.04 sebelum rilis itu tersedia. Pada Ubuntu 24.04,
sudo apt install searxberakhir denganE: Unable to locate package searx. - searx.space, direktori instance publik yang selalu ditunjuk oleh project, kini 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 update keamanan. Untuk metasearch engine, itulah fungsi utamanya. Engine berubah mengikuti jadwal pihak lain. Instance yang tidak dikelola akan mengembalikan lebih 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 source tree. Pada SearXNG, file tersebut berada di /etc/searxng/settings.yml, dan proses menemukannya melalui variabel lingkungan SEARXNG_SETTINGS_PATH. Template yang disalin installer ke lokasi tersebut berukuran singkat:
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/0use_default_settings: true adalah baris yang mengubah cara Anda bekerja. Dengan baris ini, file Anda hanya berisi override, sedangkan setiap key yang tidak dicantumkan akan menggunakan default yang disertakan dalam package. Tanpa baris ini, file Anda harus menjelaskan seluruh konfigurasi untuk setiap engine. Akibatnya, instance dapat start dengan bersih tetapi tidak menemukan apa pun. File pengaturan Searx lama yang ditempelkan ke path ini merupakan konfigurasi lengkap dengan nama key yang berbeda, sehingga file tersebut menggunakan metode kedua dan gagal menggunakannya dengan benar.
Secret key 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 menulis satu baris ke log lalu keluar dengan status 1, karena webapp.py membandingkan key tersebut dengan nilai template sebelum melayani permintaan apa pun:
server.secret_key is not changed. Please use something else instead of ultrasecretkey.Pemeriksaan ini dilewati jika general.debug bernilai true. Karena itu, instance dapat berjalan tanpa masalah dalam sesi debug, tetapi menolak start di bawah systemd atau dalam container. Container yang terus restart dan memuat baris tersebut di docker compose logs sedang mengalami pemeriksaan ini, bukan image yang rusak.
Limiter baru, dan memerlukan Valkey
Searx tidak memiliki rate limiting di dalam aplikasi. Instance Searx publik menempatkan service terpisah di depannya: filtron untuk memfilter request dan morty untuk mem-proxy konten hasil. Tidak satu pun repository tersebut menerima commit sejak January 2023: commit terakhir filtron berasal dari bulan itu, sedangkan commit terakhir morty berasal dari April 2021.
SearXNG menangani fungsi tersebut sendiri. Rate limiting dan deteksi bot ditangani oleh limiter, yang diaktifkan dengan server.limiter. Fitur tersebut bernilai false pada default yang disertakan dan bernilai true pada template installer. Fitur tersebut memerlukan database Valkey untuk menyimpan counternya. Valkey adalah fork dari Redis, dan Ubuntu 24.04 menyediakan package-nya:
sudo apt install -y valkey-serverserver:
limiter: true
valkey:
url: valkey://localhost:6379/0Panduan yang ditulis sebelum perubahan nama tersebut mengonfigurasi block redis:. Karena itu, salin nama key 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 link token. Hasil yang terlihat adalah sebagian request dijawab dengan HTTP 429, bukan hasil pencarian. Ini juga dapat terjadi pada request Anda sendiri jika Anda membuat script yang mengakses instance tersebut. Penjelasan khusus tersedia di sini: alasan instance SearXNG menjawab 429 Too Many Requests.
Engine menangguhkan dirinya sendiri, dan timeout-nya panjang
Saat service upstream menjawab dengan CAPTCHA atau halaman rate limit, SearXNG menaikkan typed exception lalu berhenti meminta data dari engine tersebut selama jangka waktu tertentu, bukan terus mencoba hingga diblokir. Default-nya berada di searx/settings.yml, di bawah search.suspended_times. Berikut 6 nilai yang dipublikasikan per October 2026:
Data di balik grafik ini
[
{
"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 mencoba lagi setelah service menandai alamat tersebut dapat menyebabkan IP instance diblokir secara permanen.
Selama engine ditangguhkan, halaman hasil melewatinya dan melaporkannya dalam block sidebar berjudul "Messages from the search engines", sedangkan /stats/errors mencantumkan kegagalan yang terjadi. Instance baru yang menampilkan hasil tipis biasanya sedang menunjukkan kondisi ini, bukan instalasi yang rusak.
JSON API secara default dinonaktifkan
Default yang disertakan adalah formats: [html] dan tidak ada yang lain. Karena itu, API yang diperlukan setiap script 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) jika format yang diminta tidak tercantum di search.formats. Tambahkan format tersebut lalu restart service:
search:
formats:
- html
- jsonFile pengaturan searx sama sekali tidak memiliki key formats, sehingga output JSON-nya tersedia tanpa konfigurasi tambahan. Setiap script dan snippet dari masa tersebut mengasumsikan kondisi yang sama, dan mode kegagalannya adalah 403 tanpa penjelasan. Jika Anda menghubungkan instance ke tooling, memberikan endpoint SearXNG kepada agent untuk digunakan mencari dimulai dari satu pengaturan ini.
Mengapa tutorial Searx hasil salin-tempel gagal
Setiap baris berikut masih muncul dalam panduan yang tetap memiliki peringkat tinggi, tetapi semuanya gagal atau menyesatkan pada instalasi saat ini.
sudo apt install searxpada Ubuntu 24.04 berhenti diE: Unable to locate package searxkarena paket tersebut terakhir dirilis pada 23.10 dan dihapus dari 24.04 sebelum rilis.pip install searxberhasil dan memasang versi 0.17.0 dari Juli 2020. Tidak ada peringatan bahwa versi tersebut dirilis sebelum fork.git clone https://github.com/asciimoo/searxmasih berfungsi karena GitHub mengarahkan ulang nama pemilik lama. Perintah tersebut mengambil branch default saat ini, yang berisi commit dokumentasi dari Mei 2026 pada kode aplikasi yang berhenti berubah sejak April 2023.- Langkah yang mengubah
searx/settings.ymldi source tree tidak berpengaruh pada SearXNG karena SearXNG membaca/etc/searxng/settings.yml. - Langkah yang memasang filtron atau morty sebenarnya membangun ulang bagian yang sudah terdapat dalam SearXNG.
- URL
redis:untuk limiter tertinggal satu kali perubahan nama dari keyvalkey:saat ini.
Panduan SearXNG juga menjadi usang, dan clone URL merupakan cara tercepat untuk mengetahui usianya. File compose sebelumnya berada di repository searxng-docker terpisah. Repository tersebut sekarang diarsipkan, push terakhirnya dilakukan 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 -dEdit .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 berbasis skrip menggunakan jalur berbeda dengan hasil yang sama:
git clone https://github.com/searxng/searxng.git searxng
cd searxng
sudo -H ./utils/searxng.sh install allPerintah 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 memasang SearXNG pada VPS milik sendiri.
Instans publik atau instans Anda sendiri
Instans publik adalah server milik pihak lain yang melakukan terminasi koneksi TLS (transport layer security) Anda, sehingga perangkat lunak di server tersebut membaca kueri Anda sebagai teks biasa. Dokumentasi SearXNG menjelaskan pertanyaan kepercayaan ini secara langsung: Anda harus memercayai administratornya, dan Anda tidak dapat mengetahui apakah permintaan dicatat, diagregasi, atau diteruskan kepada pihak ketiga. Daftar yang terlihat singkat dan lengkap. Stack milik operator dapat melihat teks kueri, waktu, alamat IP asal permintaan, user agent browser, dan cookie preferensi yang menyimpan pengaturan Anda. Operator juga mengendalikan kode tersebut, sehingga setiap patch yang mereka terapkan berjalan pada setiap pencarian yang Anda lakukan di sana.
Satu pengaturan default membuat pencatatan ini lebih mudah terjadi tanpa sengaja. Searx mengirimkan pencarian sebagai POST. SearXNG merilis method: "GET", disertai 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 ke riwayat browser. Ini merupakan perilaku server web yang umum. Hal ini perlu diketahui sebelum Anda memilih server yang akan menjalankannya.
Menjalankan instans sendiri memindahkan titik kepercayaan, bukan menghilangkannya. Anda mengendalikan kode dan log, dan jika Anda tidak ingin menerbitkan hostname atau sertifikat TLS untuk satu box pengguna saja, mengaksesnya melalui layanan onion v3 membuat instans tetap berada di luar DNS publik, sementara Anda tetap dapat mengaksesnya dari mana saja. Sebagai gantinya, engine upstream melihat satu alamat untuk seluruh pencarian Anda, dan pada instans untuk satu pengguna, setiap kueri dapat ditelusuri kembali kepada Anda, bukan bercampur dengan banyak pengguna lain. Instans publik yang sibuk memberi Anda kerumunan pengguna tersebut dan mengambil kendali log dari Anda. Pilih sifat yang paling Anda pedulikan, dan jika Anda ingin melihat seluruh daftar risiko terlebih dahulu, apakah SearXNG aman digunakan membahasnya. Riwayat lokasi memerlukan pertimbangan yang sama dengan konsekuensi yang lebih besar, karena ponsel yang melaporkan posisinya sepanjang hari mengungkapkan lebih banyak daripada log pencarian mana pun, dan membandingkan pelacak lokasi yang di-hosting sendiri adalah tempat untuk memulai jika Anda menginginkan data tersebut berada di box yang Anda kendalikan.
Satu catatan praktis untuk VPS. Rentang alamat pusat data lebih cepat ditandai daripada koneksi rumah, sehingga instans baru akan menghadapi CAPTCHA pada beberapa engine dalam beberapa pencarian pertama. Itulah perilaku suspensi di atas yang sedang menjalankan fungsinya, bukan kesalahan konfigurasi. Jika engine yang sama terus diblokir setelah masa suspensinya berakhir, membaca error yang sebenarnya sebelum mengubah apa pun akan membantu Anda menghindari tebakan saat mencari perbaikan.
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 belum diarsipkan, jadi Anda masih dapat melakukan clone, tetapi proyek ini tidak lagi dipelihara. Commit kode terakhir dibuat pada April 2023, dan README memuat keterangan "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 mesin metapencarian, tidak dipelihara berarti hasil pencarian akan memburuk dengan sendirinya karena setiap modul mesin 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 berguna pada sistem yang masih menyediakannya. Ubuntu terakhir kali memaketkan searx pada 23.10 dengan versi 1.1.0, sedangkan rilis LTS terakhir yang menyediakannya adalah 22.04 dengan versi 1.0.0. Paket tersebut dihapus dari 24.04 sebelum rilis, sehingga sudo apt install searx pada 24.04 menghasilkan E: Unable to locate package searx. Debian menyediakan 1.1.0 dalam Debian 12 dan menghapusnya dari testing pada Oktober 2023, sehingga Debian 13 tidak memiliki paket tersebut. PyPI masih menyediakan setiap rilis searx, dan versi terbaru adalah 0.17.0 dari Juli 2020, yang lebih lama daripada fork itu sendiri. Sebagai gantinya, instal SearXNG.
Apakah settings.yml lama saya dari searx 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 untuk default yang disertakan. File searx lama merupakan konfigurasi lengkap dengan nama key yang berbeda. File tersebut juga 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 menghasilkan lebih sedikit hasil daripada instance publik?
Beberapa mesin ditangguhkan. Jika sebuah mesin menjawab dengan CAPTCHA atau halaman pembatasan laju, SearXNG berhenti mengkueri mesin 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 beserta alasannya. Alamat pusat data ditandai lebih cepat daripada koneksi rumah, sehingga instance VPS baru akan segera mengalami kondisi ini.
Sebaiknya saya menggunakan instance SearXNG publik atau menjalankan instance sendiri?
Jalankan instance sendiri jika Anda ingin mengendalikan kode dan log, serta menerima bahwa mesin upstream akan melihat satu alamat untuk seluruh pencarian Anda. Gunakan instance publik jika mencampurkan kueri Anda dengan kueri orang lain lebih penting bagi Anda daripada mengetahui hal-hal yang dicatat dalam log. Pada instance publik, operator dapat melihat teks kueri, waktu, alamat IP Anda, dan user agent Anda, serta dapat mengubah kode kapan saja. Kebijakan pencatatan yang dinyatakan operator tidak dapat diverifikasi dari luar.