elementów śledzących, dlatego jest dobre rozwiązanie dla osób chcących
uchronić się przed targetowaniem przez takie firmy jako Google czy
Microsoft. SearXNG nie wydaje się być same w sobie wyszukiwarką to tylko
- agregat (zawierając kilka przydatnych funkcji) - dlatego w tym materiale
+ agregat (zawierający kilka przydatnych funkcji) - dlatego w tym materiale
będę używać bardziej nomenklatury
silnik wyszukiwania, <strong>a niżeli</strong> wyszukiwarka. Do jej
skuteczności działania trzeba się przyzwyczaić - to nie Google, który
ktoś mam doświadczenie w korzystaniu z takich wyszukiwarek jak
DuckDuckGo to myślę, że nie będzie mieć problemów wynikami
prezentowanymi przez SearXNG. Instalacja instancji SearXNG nie jest
- trudna i w pewnym stopniu możemy ją dostosować do własnych preferencji.
- W tym materiale opiszę proces instalacji oraz dostosowywania jej, w
- przypadku, w którym trzeba ingerować pliki projektu (zmiana ta będzie
- wyłącznie kosmetyczna i nie wpłynie na jej działanie. Jako serwer
+ trudna, a sam silnik w pewnym stopniu możemy ją dostosować do własnych
+ preferencji.
+ W tym materiale opiszę proces instalacji instancji oraz dostosowywania
+ jej w
+ przypadku, gdzie trzeba ingerować pliki projektu (zmiana ta będzie
+ wyłącznie kosmetyczna i nie wpłynie na jej działanie). Jako serwer
hostujący wykorzystamy Debiana 12. Zatem rozpocznijmy instalację.
</p>
<h2>1. Instalacja</h2>
<p>
Przed uruchomieniem właściwej instalacji, musimy wykonać jedną bardzo
- ważną zmianę w naszym systemie. Mianowicie musimy dodać do repozytoriów
+ ważną zmianę w naszym systemie. Mianowicie musimy dodać do
systemu, repozytoria z <em>backports</em>. Dlaczego? Otóż od pewnego
<em>commitu</em>, SearXNG (tak, <em>commitu</em>. SearXNG to
<em>rolling-release</em> - nie ma klasycznego wersjonowania, a każda
na <em>Valkey</em>, który nie jest dostępny w klasycznym repozytorium.
To może jednak ulec zmianie, ze względu na to, że jest on obecny w
repozytoriach przyszłej wersji stablnej, a na czas pisania tego materiału
- jeszcze wersji testowej.
+ jeszcze wersji testowej. Jeśli więc mamy zamiar instalować SearXNG już
+ na Debianie 13, możemy pominąć ten krok.
</p>
<p>
Aby włączyć repozytoria <em>backports</em>, w pliku
Dlatego też potrzebujemy klasycznego serwera WWW w postaci <em>proxy</em>,
który przekaże zapytanie HTTP/S do WSGI a ono uruchomi aplikację
SearXNG. Tutaj panuje pełna dowolności, oczywiście o ile ktoś potrafi
- skonfigurować swój ulubiony serwer WWW do postaci przekaźnika. Dla osób
- początkujących lub szanujących swój czas polecam klasycznego Apache w
+ skonfigurować swój ulubiony serwer WWW do postaci przekaźnika
+ (konfiguracja innych serwerów WWW, znajduje się w dokumentacji
+ <em>admina</em> na stronie projektu). Dla osób
+ początkujących polecam klasycznego Apache w
wersji 2 i tutaj też on zostanie wykorzystany. Przy czym poza instalacją
pakietów, nie będziemy musieli nic robić. Skrypt instalacyjny SearXNG
przygotuje za nas odpowiedni plik hostingu, który nie tylko odpowiednio
</pre>
<p>
Po instalacji serwera WWW, możemy sklonować ze strony projektu na
- serwisie github.com, pliki projektu. Następnie przechodzimy do pobranego
+ serwisie github.com pliki projektu. Następnie przechodzimy do pobranego
katalogu i wydajeny następujące polecenie:
</p>
<pre class="code-block">
- searxng$ sudo -H ./utils/searxng.sh install all
+searxng$ sudo -H ./utils/searxng.sh install all
</pre>
<p>
- Po wydaniu tego polecenia instalacja, może się nie rozpocząć, a my
+ Po wydaniu tego polecenia instalacja może się nie rozpocząć, a my
uzyskamy następującą informację zwrotną od skryptu.
</p>
<pre class="code-block">
</pre>
<p>
Drugim problemem jest poprostu brak pakietu
- <code class="code-block">curl</code> w systemie i należy go doinstalować,
+ <code class="code-inline">curl</code> w systemie i należy go doinstalować,
chcąc kontynuować instalację.
</p>
<pre class="code-block">
przeglądarki musimy uruchomić przekierowanie, które prześle zapytania
wysłane przez klienta bezpośrednio do hosta (gdy w przeglądarce wpiszemy
pełną nazwę domenową hosta), tak jakby do folderu
- <em>/searxng<strong>/</strong></em> (zaznaczyłem tutaj końcowy
+ <em>/searxng<code class="code-inline">/</code></em> (zaznaczyłem tutaj
+ końcowy
<em>slash</em>, ponieważ od pewnego <em>commitu</em> pełni on bardzo
ważną rolę, o której opowiem podczas rozwiązywania problemów z
instancjami SearXNG). Jednak do nie jest folder, a jedynie część URL,
podpowiedzi dla wpisywanej frazy. Pierwsze dwie rzeczy zmieniamy
ingerując w pliki projektu zainstalowane w naszym systemie. Dwie ostatnie
zaś wymagają zmiany pliku ustawień <em>/etc/searxng/settings.yml</em>.
- Zmiany w plikach projektu, będą dostarczać dodatkowych problemów, o
+ Zmiany w plikach projektu będą dostarczać dodatkowych problemów, o
których będzie szerzej w rozdziale odnośnie zarządzania. Zmiana
konfiguracji jest prostsza, ale wymaga restartu usługi <em>uwsgi</em>.
Od tych zmian zaczniemy. W wyżej wymienionym pliku edytujemy dwie
</pre>
<p>
Ona z kolei odpowiada, za ustawienie wyszukiwarki, z której mają być
- pobierana podpowiedzi dla wpisywanych słów kluczowych. Jeśli przyjrzymy
- się komentarzom w pliku, to dostrzeżemy sposób, aby wykluczać
- wyszukiwarki, z których nasz silnik ma pobierać wyniki wyszukiwania.
+ pobierana podpowiedzi dla wpisywanych słów kluczowych. Jako wartość
+ wpisujemy <code class="code-inline">google</code> lub
+ <code class="code-inline">duckduckgo</code> albo nazwę inne wyszukiwarki.
+ Jeśli przyjrzymy
+ się komentarzom w pliku to dostrzeżemy sposób na wykluczenie
+ wyszukiwarek, z których nasz silnik ma pobierać wyniki wyszukiwania.
Po każdej zmianie w pliku <em>settings.yml</em>, należy zrestartować
- usługę <em>uwsgi.service</em>
+ usługę <em>uwsgi.service</em>.
</p>
<pre class="code-block">
$ sudo systemctl restart uwsgi.service
czyli malutki obrazek wyświetlany w rogu karty/okna. Tutaj jest nieco
więcej czynności, ponieważ strona bardziej preferuje format SVG niż
PNG. Jeśli mamy naszą ikonę w tym formacie to wystarczy tak jak w
- przypadku logo podmienić pliki. Z kolei jeśli nasze logo jest np. w
+ przypadku logo podmienić plik. Z kolei jeśli nasze logo jest np. w
PNG to wówczas musimy wykonać poniższe czynności:
</p>
<pre class="code-block">
sudo cp -vv favicon.png /usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.png
sudo rm -v /usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.svg
-sudo ln -s /usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.png /usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.svg
+sudo ln -s /usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.png \
+/usr/local/searxng/searxng-src/searx/static/themes/simple/img/favicon.svg
</pre>
<p>
Ważne jest w tych wyżej wymienionych przypadkach jest przestrzeganie
<code class="code-inline">install all</code> wydajemy
<code class="code-inline">instance update</code>. Jednym pytaniem skryptu
będzie - czy zastąpić plik <em>settings.yml</em> nowszą wersją pochodząc
- z pobranego kodu źródłowego. Jeśli dokonywaliśmy tam zmian, to możemy
+ z pobranego kodu źródłowego. Jeśli dokonywaliśmy tam zmian, to należy
pozostawić dotyczasową wersję i jest opcja domyślna. Poniżej znajduje się
polecenie służące do przeprowadzenia aktualizacji.
</p>
<p>
Instancję SearXNG hostuje od ok. 3 lat i w sumie nie napotkałem żadnych
poważnych problemów. Chociaż w przypadku oprogramowania wydawanego jako
- <em>Rolling-Release</em> oraz automatycznych aktualizacji to jest to
+ <em>rolling-release</em> oraz automatycznych aktualizacji to jest to
pewnego rodzaju loteria - czy po kolejnej aktualizacji instancja będzie
zdatna w ogóle do użytku. Jednym z takich powszechniejszych problemów
- jaki możemy napotkać to, że zamiast strony startowej wyświetla się:
+ jaki możemy napotkać to, że zamiast strony wyszukiwarki wyświetla się:
</p>
<pre class="code-block">
Internal Server Error
Często podczas <em>troubleshootu</em> pomocna może być dokumentacja
admina. Dokumencja projektu SearXNG, dzieli się na trzy kategorie:
dokumentacje <em>usera</em>, admina oraz dewelopera. Przydatna jest
- sekcja zgłoszenie na stronie projektu w serwisie Github.
+ sekcja zgłoszeń na stronie projektu w serwisie Github.
</p>
<p>
Tym własnie akcentem zakończe tworzenie tego materiału. Dowiedzieliśmy
przydarzy z SearXNG i uda mi się to naprawić to opiszę to tam o
aktualizacji dowiecie się z listy zmian na stronie głównej.
</p>
+ <p>
+ Źródła:
+ </p>
+ <ol>
+ <li><a href="https://github.com/searxng/searxng">Strona projektu w serwisie GitHub</a></li>
+ </ol>
<p>
~xf0r3m
</p>