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 searxDzię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
iptablestworzą 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-persistentzapisuje 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
ufwzapewniają, ż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 searxngPo 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/searxngZapisz 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
listeninformują 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_serwerato 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_logierror_loginformują 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
locationmó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.xyzWłą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 searxngPrzeczytaj 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.











