Erol Joudy
Posted on March 19, 2021
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,
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.
Posted on March 19, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.