نویسنده های خوب کسانی هستند که به خوبی رونویسی میکنند
موتور جستجو شخصی امن
امروز قرار یک موتور جستجوی شخصی درست کنیم، قرار نیست از اول یک موتور جستجو بنویسیم بلکه قرار یک موتور جستجوی شخصی روی یک VPS داشته باشیم.
نکته: این اموزش برای کسی است که حداقل با لینوکس و راه اندازی سایت اشنایت داشته باشه، اگر می خواهید فقط براساس این اموزش این کار کنید سایت درست کار نخواهد کرد چون به طور خیلی خلاصه مراحل گفته شده است وبیشتر برای فردی است که از مراحل که انجام می دهد حداقل اشنایت را داشته باشد.
اینطوری تمام جستجوی های که انجام می دهید امن تر خواهد بود، چون تمام داده ها از روی VPS شخصی شما عبور می کند.
موتور جستجوی که قرار استفاده کنیم، موتور جستجوی searx است. همنطوری که می دانید این موتور جستجوی ازاد یعنی منبع باز برای عموم موجود است و در گیت هاب می تونید پیدا کنید.
اول از همه چند نکته درباره VPS که دارید توضیحی بدم بهتر از دبیان استفاده کنید، بخاطر اینکه ابونتو ممکن یکسری مشکلات با منابع بخورید. چون یکسری تفاوت های مثل پایتون و غیره داره و هم اینکه با این موتور جستجوی سازگارتر برای من به شخصه با دبیان راحت بودم.برای هر سایتی مشخص چه چیزهای نیاز دارید DNS و مخلفاتی که فکر میکنید. بریم برای راه اندازی موتور جستجوی شخصی، اولین کاری که می کنید با SSH یا هر برنامه به VPS نصب می شوید و دستورات زیر را وارد می کنید:
نصب یکسری از برنامه های مورد نیاز:
$ sudo -H apt-get install -y \
virtualenv python3-dev python3-babel python3-venv \
uwsgi uwsgi-plugin-python3 \
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev \
shellcheck
ساخت کاربر و یسکری از پوشه های مورد نیاز:
$ sudo -H useradd --shell /bin/bash --system \
--home-dir /usr/local/searx \
--comment 'Privacy-respecting metasearch engine' searx
$ sudo -H mkdir /usr/local/searx
$ sudo -H chown -R searx:searx /usr/local/searx
دانلود موتور جستجو
$ sudo -H -u searx -i
(searx)$ git clone https://github.com/searx/searx.git /usr/local/searx/searx-src
ساخت virtualenv :
(searx)$ python3 -m venv /usr/local/searx/searx-pyenv
(searx)$ echo . /usr/local/searx/searx-pyenv/bin/activate >> /usr/local/searx/.profile
بعد ساخت محیط مجازی این محیط مجازی اجر و یکسری برنامه مورد نیاز پایتون نصب می کنید:
$ sudo -H -u searx -i
(searx)$ command -v python && python --version
/usr/local/searx/searx-pyenv/bin/python
Python 3.8.1
# update pip's boilerplate ..
pip install -U pip
pip install -U setuptools
pip install -U wheel
# jump to searx's working tree and install searx into virtualenv
(searx)$ cd /usr/local/searx/searx-src
(searx)$ pip install -e .
یکسری تنظیمات که مربوط به کلید ها ست:
$ sudo -H cp /usr/local/searx/searx-src/searx/settings.yml /etc/searx/settings.yml
$ sudo -H sed -i -e s/ultrasecretkey/\eebdbfd72995e61547cfa45d513c1019/g /etc/searx/settings.yml
$ sudo -H sed -i -e s/{instance_name}/searx@\alexandre-vm/g /etc/searx/settings.yml
حال باید یکسری از تنظیمات در موتور جستجو انجام دهید که دراین ادرس است
vim /usr/local/searx/searx-src/searx/settings.yml
حالا کافی چک کنیم که اجرا می شود
python searx/webapp.py
حالا کافی یکسری تنظیمات در ادرس زیر اضافه کنیم
vim /etc/uwsgi/apps-available/searx.ini
برای فعال کردن سرویس زمان بوت
enable: sudo -H ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
برای روشن کردن سرویس
start: sudo -H service uwsgi start searx
این تنظیمات در فایل بالا اضافه می میشود : منظور همون دستور اول که می زنید متن زیر را کپی کنید.
[uwsgi]
# uWSGI core
# ----------
#
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core
# Who will run the code
uid = searx
gid = searx
# set (python) default encoding UTF-8
env = LANG=C.UTF-8
env = LANGUAGE=C.UTF-8
env = LC_ALL=C.UTF-8
# chdir to specified directory before apps loading
chdir = /usr/local/searx/searx-src/searx
# searx configuration (settings.yml)
env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
# disable logging for privacy
disable-logging = true
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpretor config
single-interpreter = true
# enable master process
master = true
# load apps in each worker instead of the master
lazy-apps = true
# load uWSGI plugins
plugin = python3,http
# By default the Python plugin does not initialize the GIL. This means your
# app-generated threads will not run. If you need threads, remember to enable
# them with enable-threads. Running uWSGI in multithreading mode (with the
# threads options) will automatically enable threading support. This *strange*
# default behaviour is for performance reasons.
enable-threads = true
# plugin: python
# --------------
#
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python
# load a WSGI module
module = searx.webapp
# set PYTHONHOME/virtualenv
virtualenv = /usr/local/searx/searx-pyenv
# add directory (or glob) to pythonpath
pythonpath = /usr/local/searx/searx-src
# speak to upstream
# -----------------
#
# Activate the 'http' configuration for filtron or activate the 'socket'
# configuration if you setup your HTTP server to use uWSGI protocol via sockets.
# using IP:
#
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
http = 127.0.0.1:8888
# using unix-sockets:
#
# On some distributions you need to create the app folder for the sockets::
#
# mkdir -p /run/uwsgi/app/searx
# chown -R searx:searx /run/uwsgi/app/searx
#
# socket = /run/uwsgi/app/searx/socket
همچنین نیاز به سرویس دهنده وب سرور دارید من به شخصه از nginx استفاده کردم می تونید از اپاچی استفاده کنید.
sudo -H apt-get install nginx
همچنین یکسری تنظیمات که مروبوط به VPS می شود را باید انجام دهید که در این اردس است
/etc/nginx/sites-available/searx
sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
تموم فقط کافی سرویس راه اندازی کنیم.
sudo -H systemctl restart nginx
sudo -H service uwsgi restart searx
حالا با اسم سایت که برای خود انتخاب کردید جستجو کنید و می بینید موتور جستجوی شخصی بالا می اید.
تمامی اموزش گفته شده براساس مطالب اموزشی خود سایت searx می باشد.
مطلبی دیگر از این انتشارات
داستان تلگرام و اشغال همیشگی فضای دیسک - macOS
مطلبی دیگر از این انتشارات
کمی کاوش در ماژول this پایتون
مطلبی دیگر از این انتشارات
امنیت بیشتر برای اتصال Telnet و SSH در سیسکو