Searx: 개인 정보 보호와 검색 자유를 위한 오픈 소스 메타 검색 엔진

소개

Searx는 개인 정보 보호와 사용자의 검색 자유를 중요시하는 오픈 소스 메타 검색 엔진입니다. 이 블로그에서는 시스템 엔지니어와 시니어 개발자의 관점에서 Searx에 대해 살펴보겠습니다. Searx는 사용자들이 자체 서버에서 검색 엔진을 호스팅 할 수 있어 웹 검색 결과의 개인화를 피하고, 추적을 피할 수 있는 장점이 있습니다. 또한 오픈 소스 프로젝트로서, 개발자들은 소스 코드를 확인하고 기여하여 프로젝트를 발전시킬 수 있습니다.

 

장점

개인 정보 보호 강화: Searx는 사용자의 검색 활동을 추적하지 않기 때문에 개인 정보 보호를 보장합니다.

중앙 서버가 개입하지 않고 사용자가 직접 검색을 수행하기 때문에, 사용자의 검색 쿼리와 기록이 수집되지 않습니다.

 

- 사용자 정의 가능: Searx를 자체 서버에 호스팅하면 검색 결과와 관련된 데이터의 제어권을 사용자가 가지게 됩니다. 사용자는 자신의 선호 검색 엔진을 구성하거나, 원하는 기능과 확장을 추가하여 맞춤형 검색 환경을 구축할 수 있습니다.

- 다중 검색 엔진 지원: Searx는 여러 검색 엔진(구글, Bing, DuckDuckGo 등)의 결과를 집계하여 제공하기 때문에 다양한 검색 결과를 한곳에서 얻을 수 있습니다.

 

단점

- 검색 성능: 자체 서버에서 운영하는 경우, 검색 속도와 성능이 중앙 집중형 검색 엔진보다 느릴 수 있습니다. 서버 성능에 따라 검색 결과에 소요되는 시간이 달라질 수 있습니다.

- 설정 및 관리 복잡성: Searx를 운영하려면 서버 설정과 관리에 대한 기술적 지식이 필요합니다. 처음 설치 및 구성하는 과정은 복잡할 수 있으며, 유지 보수도 주기적으로 필요합니다.

 

설치 

$ sudo -H apt-get install -y \
    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"
(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
pip install -U pyyaml
# jump to searx's working tree and install searx into virtualenv
(searx)$ cd "/usr/local/searx/searx-src"
(searx)$ pip install -e .
$ sudo -H mkdir -p "/etc/searx"
$ sudo -H cp "/usr/local/searx/searx-src/utils/templates/etc/searx/use_default_settings.yml" \
             "/etc/searx/settings.yml"
# enable debug ..
$ sudo -H sed -i -e "s/debug : False/debug : True/g" "/etc/searx/settings.yml"
# start webapp
$ sudo -H -u searx -i
(searx)$ cd /usr/local/searx/searx-src
(searx)$ export SEARX_SETTINGS_PATH="/etc/searx/settings.yml"
(searx)$ python searx/webapp.py
# disable debug
$ sudo -H sed -i -e "s/debug : True/debug : False/g" "/etc/searx/settings.yml"