موتور جستجو شخصی امن

امروز قرار یک موتور جستجوی شخصی درست کنیم، قرار نیست از اول یک موتور جستجو بنویسیم بلکه قرار یک موتور جستجوی شخصی روی یک VPS داشته باشیم.
نکته: این اموزش برای کسی است که حداقل با لینوکس و راه اندازی سایت اشنایت داشته باشه، اگر می خواهید فقط براساس این اموزش این کار کنید سایت درست کار نخواهد کرد چون به طور خیلی خلاصه مراحل گفته شده است وبیشتر برای فردی است که از مراحل که انجام می دهد حداقل اشنایت را داشته باشد.
اینطوری تمام جستجوی های که انجام می دهید امن تر خواهد بود، چون تمام داده ها از روی VPS شخصی شما عبور می کند.
موتور جستجوی که قرار استفاده کنیم، موتور جستجوی searx است. همنطوری که می دانید این موتور جستجوی ازاد یعنی منبع باز برای عموم موجود است و در گیت هاب می تونید پیدا کنید.
اول از همه چند نکته درباره VPS که دارید توضیحی بدم بهتر از دبیان استفاده کنید، بخاطر اینکه ابونتو ممکن یکسری مشکلات با منابع بخورید. چون یکسری تفاوت های مثل پایتون و غیره داره و هم اینکه با این موتور جستجوی سازگارتر برای من به شخصه با دبیان راحت بودم.برای هر سایتی مشخص چه چیزهای نیاز دارید DNS و مخلفاتی که فکر میکنید. بریم برای راه اندازی موتور جستجوی شخصی، اولین کاری که می کنید با SSH یا هر برنامه به VPS نصب می شوید و دستورات زیر را وارد می کنید:
نصب یکسری از برنامه های مورد نیاز:
123456$ 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
ساخت کاربر و یسکری از پوشه های مورد نیاز:
123456$ 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
دانلود موتور جستجو
12$ sudo -H -u searx -i (searx)$ git clone https://github.com/searx/searx.git /usr/local/searx/searx-src
ساخت virtualenv :
12(searx)$ python3 -m venv /usr/local/searx/searx-pyenv (searx)$ echo . /usr/local/searx/searx-pyenv/bin/activate >> /usr/local/searx/.profile
بعد ساخت محیط مجازی این محیط مجازی اجر و یکسری برنامه مورد نیاز پایتون نصب می کنید:
1234567891011121314$ 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 .
یکسری تنظیمات که مربوط به کلید ها ست:
123$ 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
حال باید یکسری از تنظیمات در موتور جستجو انجام دهید که دراین ادرس است
1vim /usr/local/searx/searx-src/searx/settings.yml
حالا کافی چک کنیم که اجرا می شود
1python searx/webapp.py
حالا کافی یکسری تنظیمات در ادرس زیر اضافه کنیم
12345vim /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
این تنظیمات در فایل بالا اضافه می میشود : منظور همون دستور اول که می زنید متن زیر را کپی کنید.
1
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384[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 استفاده کردم می تونید از اپاچی استفاده کنید.
1sudo -H apt-get install nginx
همچنین یکسری تنظیمات که مروبوط به VPS می شود را باید انجام دهید که در این اردس است
12/etc/nginx/sites-available/searx sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
1تموم فقط کافی سرویس راه اندازی کنیم.
12sudo -H systemctl restart nginx sudo -H service uwsgi restart searx
حالا با اسم سایت که برای خود انتخاب کردید جستجو کنید و می بینید موتور جستجوی شخصی بالا می اید.
تمامی اموزش گفته شده براساس مطالب اموزشی خود سایت searx می باشد.