Searx adalah sebuah metasearch engine, yang tampilan hasil pencariannya adalah gabungan data pencarian milik beberapa search engine sekaligus. Cara kerjanya adalah, sesaat ketika pengguna mengirimkan input berupa keyword (kata kunci), pada saat bersamaan data dari beberapa search engine langsung diminta (query), untuk kemudian setelah selesai dikumpul akan langsung ditampilkan. Proses ini berjalan dengan sangat cepat.
Searx merupakan produk opensoure, dan siapapun bisa dengan mudah membangun platformnya sendiri, untuk keperluan pribadi maupun bisnis.
Untuk keperluan penyusunan artikel ini, penulis membangun platform Searx sendiri, yang bisa diakses di alamat https://searx.my.id dan sudah terdaftar sebagai instance resmi di https://searx.space
Konfigurasi VPS yang digunakan adalah sebagai berikut,

Instalasi paket yg dibutuhkan
Jalankan perintah berikut ini.
sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-babel zlib1g-dev libffi-dev libssl-dev
Instalasi searx
Untuk instalasi searx, jalankan dibawah ini secara berurutan.
cd /usr/local
sudo git clone https://github.com/asciimoo/searx.git
sudo useradd searx -d /usr/local/searx
sudo chown searx:searx -R /usr/local/searx
Selanjutnya untuk instalasi dependencies, jalankan perintah dibawah secara berurutan.
cd searx/
sudo -u searx -i
Dalam bash menu user searx
, jalankan perintah berikut secara berurutan.
virtualenv searx-ve
. ./searx-ve/bin/activate
./manage.sh update_packages
Konfigurasi searx
Masih dalam bash user searx
, jalankan perintah berikut,
sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
Edit file settings.yml
vim searx/settings.yml
Cari bagian bind_address
dan ubah nomor IP standar dengan IP server.
bind_address : "ISI_IP_SERVER_ANDA"
Simpan perubahan pada file ini, kemudian jalankan searx dengan perintah berikut.
python searx/webapp.py
Akan muncul output seperti dibawah ini.
WARNING:searx.webapp: *** Deprecation Warning ***
WARNING:searx.webapp: Python2 is deprecated
* Serving Flask app "webapp" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
INFO:werkzeug: * Running on http://NO_IP_SERVER_ANDA:8888/ (Press CTRL+C to quit)
Cek instalasi Searx
Buka alamat http://NO_IP_SERVER_ANDA:8888
pada browser, pastikan searx sudah berjalan. Jika sudah, tekan CTRL+C untuk menghentikan searx dan langsung eksekusi perintah berikut.
sed -i -e "s/debug : True/debug : False/g" searx/settings.yml
Keluar dari bash searx, dengan mengetik exit
.
Instalasi uwsgi
Jalankan perintah berikut untuk menginstalasi uwsgi
dan komponen pendukung lainnya.
sudo apt-get install uwsgi uwsgi-plugin-python -y
Lalu buat sebuah file
sudo vim /etc/uwsgi/apps-available/searx.ini
Isi dengan baris konten dibawah ini.
[uwsgi]
# Who will run the code
uid = searx
gid = searx
# disable logging for privacy
disable-logging = true
# Number of workers (usually CPU count)
workers = 4
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpretor config
single-interpreter = true
master = true
plugin = python
lazy-apps = true
enable-threads = true
# Module to import
module = searx.webapp
# Support running the module from a webserver subdirectory.
route-run = fixpathinfo:
# Virtualenv and python path
virtualenv = /usr/local/searx/searx-ve/
pythonpath = /usr/local/searx/
chdir = /usr/local/searx/searx/
Simpan perubahan pada file diatas, kemudian jalankan perintah dibawah ini secara berurutan, guna mengaktifkan dan menjalankan uwsgi
.
cd /etc/uwsgi/apps-enabled
sudo ln -s ../apps-available/searx.ini
sudo /etc/init.d/uwsgi restart
Instalasi berhasil, jika outputnya terlihat seperti ini.
[ ok ] Restarting uwsgi (via systemctl): uwsgi.service.
Instalasi Nginx
Uwsgi tidak dapat berjalan, apabila tidak ada webserver seperti Apache atau Nginx. Pada tutorial ini, webserver yang digunakan adalah Nginx.
Instal nginx dengan perintah berikut.
sudo apt-get install nginx -y
Selanjutnya buatlah sebuah file yang berfunsgi sebagai block server untuk searx.
sudo vim /etc/nginx/sites-available/searx
Isilah dengan baris konten dibawah ini.
server {
listen 80;
server_name searx.contoh.com;
root /usr/local/searx/searx;
location /static {
}
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/searx/socket;
}
}
Jangan lupa mengganti bagian server_name
diatas, dengan URL yang ingin digunakan, tanpa menambahkan protokol seperti http. Simpan perubahannya.
Langkah selanjutnya membuat symlink dengan perintah,
sudo ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
Restart Nginx dan uwsgi.
sudo service nginx restart
sudo service uwsgi restart
Langkah melindungi privasi (optional)
Untuk keperluan privacy, nonaktifkan kemampuan untuk merekam penggunaan searx dengan cara memblokir log file. Jalankan langkah berikut.
Edit file /etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/searx
Tambahkan baris dibawah ini persis dibawah baris uwsgi_pass
access_log /dev/null;
error_log /dev/null;
Hasil akhirnya akan terlihat seperti ini.
server {
listen 80;
server_name searx.contoh.com;
root /usr/local/searx/searx;
location /static {
}
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/searx/socket;
access_log /dev/null;
error_log /dev/null;
}
}
Restart kembali Nginx.
sudo service nginx restart
Sampai tahap ini, searx sudah bisa diakses dengan menggunakan URL domain yang baru.