Cara install Searx metasearch engine di Ubuntu 18.04

Subscribe to my newsletter and never miss my upcoming articles

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.

Konfigurasi VPS yang digunakan adalah sebagai berikut,

Konfigurasi VPS


Instalasi paket yg dibutuhkan

Jalankan perintah berikut ini.

sudo apt install git build-essential libxslt-dev python-dev python-virtualenv python-babel zlib1g-dev libffi-dev libssl-dev -y

Instalasi searx

Untuk instalasi searx, jalankan perintah 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 install uwsgi uwsgi-plugin-python -y

Lalu buat file bernama searx.ini.

sudo vim /etc/uwsgi/apps-available/searx.ini

Salin dan 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 install nginx -y

Selanjutnya buatlah sebuah file yang berfungsi sebagai block server untuk searx pada nginx.

sudo vim /etc/nginx/sites-available/searx

Isilah dengan baris konten dibawah ini.

PERHATIAN, domain yang digunakan sebagai contoh dalam artikel ini adalah searx.contoh.com. Pastikan untuk menggantinya lebih dulu sebelum menyimpan perubahan pada file 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;
    }
}

Setelah disimpan, 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 data telemetri penggunaan pada searx dengan cara memblokir log file. Jalankan langkah berikut.

Edit file /etc/nginx/sites-available/default dengan cara.

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.

No Comments Yet