DEV Community

Cover image for Cara install Searx metasearch engine di Ubuntu 18.04
Erol Joudy for Kawanua Indie Developer

Posted on • Originally published at blog.erol.dev

Cara install Searx metasearch engine di Ubuntu 18.04

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
Enter fullscreen mode Exit fullscreen mode

Instalasi searx

Untuk instalasi searx, jalankan perintah dibawah ini secara berurutan.

cd /usr/local
Enter fullscreen mode Exit fullscreen mode
sudo git clone https://github.com/asciimoo/searx.git
Enter fullscreen mode Exit fullscreen mode
sudo useradd searx -d /usr/local/searx
Enter fullscreen mode Exit fullscreen mode
sudo chown searx:searx -R /usr/local/searx
Enter fullscreen mode Exit fullscreen mode

Selanjutnya untuk instalasi dependencies, jalankan perintah dibawah secara berurutan.

cd searx/
Enter fullscreen mode Exit fullscreen mode
sudo -u searx -i
Enter fullscreen mode Exit fullscreen mode

Dalam bash menu user searx, jalankan perintah berikut secara berurutan.

virtualenv searx-ve
Enter fullscreen mode Exit fullscreen mode
. ./searx-ve/bin/activate
Enter fullscreen mode Exit fullscreen mode
./manage.sh update_packages
Enter fullscreen mode Exit fullscreen mode

Konfigurasi searx

Masih dalam bash user searx, jalankan perintah berikut,

sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
Enter fullscreen mode Exit fullscreen mode

Edit file settings.yml

vim searx/settings.yml
Enter fullscreen mode Exit fullscreen mode

Cari bagian bind_address dan ubah nomor IP standar dengan IP server.

bind_address : "ISI_IP_SERVER_ANDA"
Enter fullscreen mode Exit fullscreen mode

Simpan perubahan pada file ini, kemudian jalankan searx dengan perintah berikut.

python searx/webapp.py
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Lalu buat file bernama searx.ini.

sudo vim /etc/uwsgi/apps-available/searx.ini
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

Simpan perubahan pada file diatas, kemudian jalankan perintah dibawah ini secara berurutan, guna mengaktifkan dan menjalankan uwsgi.

cd /etc/uwsgi/apps-enabled
Enter fullscreen mode Exit fullscreen mode
sudo ln -s ../apps-available/searx.ini
Enter fullscreen mode Exit fullscreen mode
sudo /etc/init.d/uwsgi restart
Enter fullscreen mode Exit fullscreen mode

Instalasi berhasil, jika outputnya terlihat seperti ini.

[ ok ] Restarting uwsgi (via systemctl): uwsgi.service.
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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

sudo vim /etc/nginx/sites-available/searx
Enter fullscreen mode Exit fullscreen mode

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;
    }
}
Enter fullscreen mode Exit fullscreen mode

Setelah disimpan, langkah selanjutnya membuat symlink dengan perintah,

sudo ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
Enter fullscreen mode Exit fullscreen mode

Restart nginx dan uwsgi.

sudo service nginx restart
Enter fullscreen mode Exit fullscreen mode
sudo service uwsgi restart
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Tambahkan baris dibawah ini persis dibawah baris uwsgi_pass.

access_log /dev/null;
error_log /dev/null;
Enter fullscreen mode Exit fullscreen mode

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;
    }
}
Enter fullscreen mode Exit fullscreen mode

Restart kembali nginx.

sudo service nginx restart
Enter fullscreen mode Exit fullscreen mode

Sampai tahap ini, searx sudah bisa diakses dengan menggunakan URL domain yang baru.

Discussion (2)

Collapse
mrofisr profile image
Muhammad Abdur Rofi

Nice, menarik banget nih

Collapse
erolj profile image
Erol Joudy Author

Makasih πŸ™