Wyszukiwanie w witrynie

Jak utworzyć wyszukiwarkę za pomocą SearXNG


SearXNG to potężna metawyszukiwarka, którą możesz hostować w dowolnym miejscu. W przeciwieństwie do tradycyjnych wyszukiwarek, SearXNG jest agregatorem silników: zamiast przetwarzać wyszukiwania, do wyszukiwania używa innych silników. Co więcej, SearXNG jest niewiarygodnie lekki i łatwy w konfiguracji, a ponadto można go hostować w systemie tak prostym jak Raspberry Pi!

Treść

  • Dlaczego warto zainstalować SearXNG
  • Co będziesz potrzebował
  • Instalowanie zależności SearXNG
  • Konfigurowanie zapory sieciowej
  • Klonowanie i instalacja SearXNG
  • Konfigurowanie SearXNG
  • Instalowanie protokołu SSL i włączanie SearXNG
  • Często Zadawane Pytania

Przeczytaj także: Jak zrobić migające diody LED za pomocą Raspberry Pi

Dlaczego warto zainstalować SearXNG

Wyszukiwarki sprawiają, że przeglądanie i odkrywanie Internetu jest niezwykle wygodne. Korzystanie z publicznej wyszukiwarki ma jednak swoją cenę: nowoczesne firmy zajmujące się wyszukiwarkami, takie jak Google, wykorzystują Twoje dane wyszukiwania, aby stworzyć Twój bardzo dokładny profil.

Takie zachowanie może wydawać się natrętne dla osób, które chcą zachować prywatność i anonimowość swoich wyszukiwań. Na przykład dziennikarze piszący o drażliwych i kontrowersyjnych tematach mogą nie chcieć, aby ich wyszukiwane hasła były powiązane z ich nazwiskami.

Jednym ze sposobów poradzenia sobie z tym problemem prywatności jest instalacja i hostowanie własnej instancji SearXNG, aby mieć pewność, że tylko Ty będziesz mieć dostęp do swoich dzienników wyszukiwania.

Przeczytaj także: 4 sposoby, w jakie Google Cię śledzi i jak temu zapobiec

Co będziesz potrzebował

SearXNG wymaga przygotowania kilku rzeczy, zanim będzie można go zainstalować:

  • W pełni kwalifikowana nazwa domeny (FQDN): aby móc korzystać z SearXNG, musisz hostować ją na odpowiednim serwerze internetowym z domeną.
  • Maszyna dostępna spoza sieci domowej: może to być komputer w Twoim domu ze statycznym adresem IP lub wynajmowany dedykowany wirtualny serwer prywatny (VPS).
  • Dostęp root do komputera: SearXNG wymaga zainstalowania niektórych narzędzi systemowych w celu prawidłowego skonfigurowania i hostowania.

Ten samouczek skupia się na instalacji i konfiguracji SearXNG na Debianie 11 VPS od DigitalOcean.

Instalowanie zależności SearXNG

Zanim będziesz mógł zainstalować SearXNG, musisz utworzyć osobne konto użytkownika w swoim systemie:

sudo useradd -s /bin/bash -d /home/searx -m -G sudo searx
sudo passwd searx

Dzięki temu możesz odizolować wszystkie polecenia i pliki podczas instalacji i konfiguracji SearXNG. Może to być szczególnie przydatne, jeśli zamierzasz hostować wyszukiwarkę na VPS z wieloma usługami.

Przełącz się na nowe konto użytkownika, uruchamiając su searx, a następnie zainstaluj wszystkie niezbędne zależności dla SearXNG:

sudo apt install git nginx iptables iptables-persistent ufw certbot python3-certbot-nginx

Konfigurowanie zapory sieciowej

Chociaż nie jest to konieczny krok, skonfigurowanie zapory sieciowej gwarantuje, że każdy system zewnętrzny będzie mógł uzyskać dostęp tylko do portów, które autoryzowasz, co pomoże zapobiec zasypywaniu twojego komputera przez złośliwe osoby niekończącymi się żądaniami.

Możesz użyć zarówno iptables, jak i ufw, aby włączyć tylko te porty, których potrzebuje SearXNG:

sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save
sudo ufw allow 80
sudo ufw allow 443
  • Dwa polecenia iptables tworzą nową regułę, która akceptuje wszelkie nowe przychodzące połączenia HTTP i HTTPS, umożliwiając systemowi udostępnianie użytkownikom strony internetowej SearXNG.
  • Polecenie netfilter-persistent zapisuje i ponownie ładuje wszelkie zmiany wprowadzone w zaporze sieciowej, aby mieć pewność, że komputer ma prawidłowe ustawienia pomiędzy ponownymi uruchomieniami systemu.
  • Dwa polecenia ufw zapewniają, że każde bieżące połączenie HTTP lub HTTPS pozostanie otwarte przez cały czas trwania sesji.

Przeczytaj także: Jak zainstalować własny federacyjny Twitter za pomocą Pleromy

Klonowanie i instalacja SearXNG

Twórcy SearXNG oferują prosty skrypt instalacyjny, który obsługuje większość skomplikowanych kroków konfiguracyjnych.

Uzyskaj ten skrypt instalacyjny, klonując repozytorium GitHub programu:

git clone https://github.com/searxng/searxng searxng && cd searxng

Po zakończeniu klonowania rozpocznij proces instalacji:

sudo -H ./utils/searxng.sh install all

Chociaż proces ten jest w dużej mierze automatyczny, zdarzają się przypadki, w których skrypt prosi o potwierdzenie wprowadzonych zmian. Na przykład, gdy skrypt SearXNG drukuje listę programów, które zainstaluje, musisz nacisnąć Y, aby kontynuować.

Konfigurowanie SearXNG

Musisz skonfigurować serwer WWW, który będzie nadawał SearXNG, ponieważ wyszukiwarka to tylko proces, który przyjmuje żądania i publikuje wyniki. Bez odpowiedniego serwera WWW nie jest możliwa interakcja i używanie SearXNG.

Obecnie SearXNG oficjalnie obsługuje zarówno Apache, jak i Nginx. Ta sekcja koncentruje się na konfigurowaniu SearXNG jako samodzielnej usługi przy użyciu Nginx.

Przeczytaj także: 5 narzędzi do łatwego tworzenia niestandardowej dystrybucji Linuksa

Konfiguracja Nginxa

Utwórz nowy plik konfiguracyjny w „/etc/nginx/sites-available/”:

sudo nano /etc/nginx/sites-available/searxng

Zapisz w pliku blok serwera, który będzie zawierał konfigurację serwera WWW. Na przykład jest to podstawowy blok, którego używam w mojej instancji SearXNG:

server {
 
    # Ports.
    listen 80;
    listen [::]:80;
 
    # Hostname.
    server_name yetanothersearxserver.xyz;
 
    # Logging.
    access_log /dev/null;
    error_log  /dev/null;
 
    # Searx Redirect.
    location / {
        uwsgi_pass unix:///usr/local/searxng/run/socket;
 
        include uwsgi_params;
 
        uwsgi_param    HTTP_HOST             $host;
        uwsgi_param    HTTP_CONNECTION       $http_connection;
 
        # see flaskfix.py
        uwsgi_param    HTTP_X_SCHEME         $scheme;
        uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;
 
        # see limiter.py
        uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
        uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
 
    }
}
  • Zmienne listen informują Nginx, że serwer WWW rozgłasza usługę na porcie 80. Ważne jest, aby zmienić tę wartość, jeśli używasz już innego hosta wirtualnego w swoim systemie.
  • nazwa_serwera to zmienna, która powinna zawierać nazwę FQDN wskazującą na Twoją maszynę. W moim przypadku mój serwer WWW używa pliku „yetanothersearxserver.xyz”.
  • Zmienne access_log i error_log informują Nginx, gdzie ma zapisywać informacje o wyszukiwanych hasłach. Na przykład ustawienie go na „/dev/null” gwarantuje, że nie będą zapisywane żadne dzienniki na komputerze.
  • Blok location mówi Nginxowi, co ma robić, gdy użytkownik łączy się z serwerem WWW.

Przeczytaj także: Jak dostosować monit terminala Linux za pomocą Starship

Instalowanie protokołu SSL i włączanie SearXNG

Utworzenie certyfikatu SSL dla Twojej instancji SearXNG gwarantuje, że każde połączenie z Twoją witryną będzie bezpieczne.

Z łatwością włącz SSL za darmo, rejestrując się za pomocą certbota Lets Encrypt. Na przykład mogę uruchomić następujące polecenie, aby wystawić certyfikat dla mojego hosta SearXNG:

certbot --nginx yetanothersearxserver.xyz

Włącz swoją witrynę internetową za pośrednictwem Nginx, tworząc symboliczne łącze do folderu „sites_enabled” na serwerze internetowym:

sudo ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/

Załaduj ponownie SearXNG i Nginx, aby zastosować i włączyć konfiguracje:

sudo systemctl reload nginx
sudo service uwsgi restart searxng

Przeczytaj także: Co to jest protokół Matrix i jak go zainstalować

Często Zadawane Pytania

Czy można zaktualizować SearXNG po jego zainstalowaniu?

Tak! Chociaż nie można zainstalować SearXNG za pomocą tradycyjnego menedżera pakietów, możliwa jest aktualizacja i migracja wyszukiwarki z wiersza poleceń. Na przykład możesz zaktualizować SearXNG, uruchamiając następujące polecenie: sudo /home/$USER/searxng/utils/searxng.sh instancji update.

Skrypt instalacyjny informuje mnie, że Redis jest niedostępny. Czy moja instalacja się nie powiodła?

Nie. Ale ten błąd najprawdopodobniej spowoduje, że instancja SearXNG będzie niestabilna, ponieważ awaria Redis w SearXNG oznacza, że działa ona w systemie innym niż SystemD i że jej demon filtrujący antyboty nie jest uruchomiony.

odinstaluj SearXNG, uruchamiając polecenie sudo /home/$USER/searxng/utils/searxng.sh usuń wszystko, aby rozwiązać problem i upewnić się, że używasz SystemD, uruchamiając sudo systemctl --version .

Czy można zobaczyć, co obecnie robi SearXNG?

Tak! Chociaż SearXNG jest bezgłowym demonem działającym w tle, można sprawdzić, co aktualnie robi. Jest to przydatne w przypadkach, gdy SearXNG napotyka pewne problemy i nie jesteś pewien, co jest przyczyną problemów. Na przykład mogę skorzystać z ekranu debugowania SearXNG, uruchamiając sudo /home/$USER/searxng/utils/searxng.sh inspect inspect.

Zdjęcie: Isaac Quesada za pośrednictwem Unsplash, zmienione przez Ramces Red z logo i znakiem SearXNG. Wszystkie zrzuty ekranu wykonał Ramces Red.

Powiązane artykuły