Language: pl
SearXNG: własna wyszukiwarka bez śledzenia na VPS-ie
Zwykła wyszukiwarka może powiązać zapytanie z adresem IP, plikami cookie i historią aktywności. SearXNG zmienia tę ścieżkę: przeglądarka łączy się z twoją instancją, która odpytuje kilka zewnętrznych wyszukiwarek i łączy ich odpowiedzi na jednej stronie.
Zewnętrzne źródła widzą adres serwera SearXNG, a nie pliki cookie użytkownika. Sama usługa nie buduje profilu reklamowego. Nie jest to jednak pełna anonimowość: właściciel publicznej instancji może technicznie prowadzić logi, a po otwarciu linku docelowa strona ponownie nawiązuje kontakt z przeglądarką.
Przyjrzymy się możliwościom SearXNG i zainstalujemy własną instancję na VPS-ie z HTTPS oraz ochroną hasłem.
Czym jest SearXNG i jak działa?
SearXNG to darmowa, open source’owa metawyszukiwarka. Nie utrzymuje własnego indeksu stron: pobiera wyniki ze skonfigurowanych wyszukiwarek i wyspecjalizowanych źródeł, normalizuje je i wyświetla w jednym interfejsie.
Browser → your SearXNG → search engines
↓
combined resultsDla każdego zapytania SearXNG:
- ustala kategorię wyszukiwania: internet, obrazy, wiadomości, filmy lub inną;
- kontaktuje się z wybranymi źródłami w imieniu serwera;
- nie wysyła im plików cookie użytkownika i używa losowego profilu przeglądarki dla żądań wychodzących;
- łączy odpowiedzi na jednej stronie wyników.
Szybkość zależy od systemów zewnętrznych: mogą odpowiadać wolno, wyświetlać CAPTCHA albo blokować adres IP. SearXNG jest zarządzaną warstwą pośrednią, a nie niezależnym indeksem.
Dlaczego SearXNG jest ciekawszy niż pojedyncza wyszukiwarka?
Różne źródła na jednej stronie wyników
Możesz łączyć wyszukiwarki ogólnego przeznaczenia ze źródłami specjalistycznymi: encyklopediami, mapami, publikacjami naukowymi, repozytoriami, serwisami informacyjnymi czy katalogami obrazów. Pomaga to, gdy zwykła strona wyników jest przeciążona stronami SEO albo ma trudności ze znalezieniem niszowych materiałów.
W chwili przygotowywania tego artykułu dokumentacja wymieniała 272 integracje, z czego 83 były włączone domyślnie. Nie oznacza to, że wszystkie są równie stabilne.
Zestaw zależy od konfiguracji. Kilka stabilnych źródeł zwykle działa szybciej niż włączenie wszystkiego naraz.
Szybkie polecenia
Skróty pozwalają tymczasowo wybrać wyszukiwarkę, kategorię lub język:
!wp docker compose — search Wikipedia
!images northern lights — search for images
:en !wp proxy server — search Wikipedia in EnglishPolecenie !! przekierowuje użytkownika bezpośrednio do zewnętrznej wyszukiwarki. W tym trybie ochrona SearXNG przestaje obowiązywać.
Wyszukiwanie dla przeglądarki i własnych narzędzi
SearXNG obsługuje OpenSearch, więc można ustawić go jako domyślną wyszukiwarkę przeglądarki. Dostępne jest również HTTP API z odpowiedziami JSON, CSV lub RSS, jeśli administrator włączył odpowiednie formaty.
Pojedyncza instancja może działać jako backend wyszukiwania dla wewnętrznego panelu, bota, skryptu badawczego lub lokalnego asystenta AI. API powinno być udostępniane dopiero po skonfigurowaniu uwierzytelniania i limitów szybkości.
Jak prywatny jest SearXNG?
| Co robi | Czego nie robi |
|---|---|
| Nie wysyła plików cookie przeglądarki do zewnętrznych wyszukiwarek | Nie zapewnia pełnej anonimowości |
| Ukrywa IP użytkownika za adresem IP serwera | Nie chroni użytkownika po otwarciu strony z wyników |
| Usuwa reklamy stron trzecich i niektóre parametry śledzenia | Nie gwarantuje, że właściciel cudzego serwera nie prowadzi logów |
| Może proxy’ować obrazy | Nie zastępuje VPN-u, Tora ani ochrony przeglądarki |
Publiczna instancja jest wygodna do wypróbowania usługi, ale musisz zaufać jej administratorowi, a współdzielony adres IP częściej podlega limitom szybkości.
Własny serwer daje kontrolę nad logami, źródłami i dostępem, ale nie czyni przeglądarki anonimową.
Publiczna instancja, serwer domowy czy VPS?
| Opcja | Zalety | Ograniczenia |
|---|---|---|
| Publiczna instancja | Nie trzeba nic instalować | Zaufanie do właściciela, przeciążenie, CAPTCHA |
| Serwer domowy | Pełna kontrola bez wynajmowania VPS-a | Urządzenie musi działać stale; trudniejsza konfiguracja dostępu z zewnątrz |
| Własny VPS | Działanie 24/7, domena, HTTPS, dostęp z różnych urządzeń | Kontenery trzeba aktualizować, a bezpieczeństwo monitorować |
Własna instancja SearXNG jest przydatna dla rodziny, zespołu, dewelopera lub lokalnych narzędzi AI. Przy sporadycznym wyszukiwaniu prostsza będzie instancja publiczna.
Jakiego VPS-a potrzebuje SearXNG?
Obciążenie zależy od liczby użytkowników, źródeł i jednoczesnych zapytań. Praktyczne konfiguracje początkowe:
| Scenariusz | CPU | RAM | Dysk |
|---|---|---|---|
| Jeden użytkownik | 1 vCPU | 1 GB | 10 GB |
| Rodzina lub mały zespół | 2 vCPU | 2 GB | 20 GB |
| API i dodatkowe usługi | 2–4 vCPU | od 4 GB | od 30 GB |
Duży dysk nie jest potrzebny. Ważniejsze są jakość sieci, stabilny adres IP i zapas RAM-u.
VPS Linux od tropic.host pasuje do tego scenariusza: możesz zacząć od małej konfiguracji i zwiększyć zasoby wraz z dodawaniem użytkowników lub dostępu do API. Przy wyborze planu lepiej zainwestować w RAM i jakość sieci niż przepłacać za pojemność dysku.
Instalacja SearXNG na VPS-ie za pomocą Docker Compose
Ten przykład używa Ubuntu 24.04 LTS, domeny search.example.com, Valkey i Caddy. Skieruj rekord DNS A na serwer i otwórz porty 80 oraz 443.
1. Zainstaluj Dockera i utwórz katalog
sudo apt update
sudo apt install -y docker.io docker-compose-v2 openssl
sudo systemctl enable --now docker
sudo mkdir -p /opt/searxng/searxng
cd /opt/searxngUtwórz plik .env z domeną i losowym sekretem:
printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
"$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env2. Utwórz docker-compose.yml
name: searxng
services:
searxng:
image: docker.io/searxng/searxng:latest
restart: unless-stopped
environment:
SEARXNG_BASE_URL: https://${SEARXNG_HOSTNAME}/
SEARXNG_SECRET: ${SEARXNG_SECRET}
SEARXNG_VALKEY_URL: valkey://valkey:6379/0
volumes:
- ./searxng:/etc/searxng:rw
- searxng-cache:/var/cache/searxng
depends_on: [valkey]
valkey:
image: docker.io/valkey/valkey:9-alpine
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
volumes:
- valkey-data:/data
caddy:
image: docker.io/caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
environment:
SEARXNG_HOSTNAME: ${SEARXNG_HOSTNAME}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
depends_on: [searxng]
volumes:
searxng-cache:
valkey-data:
caddy-data:
caddy-config:3. Skonfiguruj SearXNG
Utwórz searxng/settings.yml:
use_default_settings: true
general:
instance_name: "Private Search"
search:
safe_search: 1
autocomplete: ""
formats: [html]
server:
limiter: true
image_proxy: true
valkey:
url: valkey://valkey:6379/0Utwórz searxng/limiter.toml:
[botdetection]
trusted_proxies = [
"127.0.0.0/8",
"::1",
"172.16.0.0/12",
]Limiter zmniejsza ryzyko przeciążenia instancji przez boty i wcześniejszego ograniczenia jej adresu IP przez zewnętrzne wyszukiwarki.
4. Dodaj hasło i HTTPS
Wygeneruj hash silnego hasła:
sudo docker run --rm caddy:2-alpine \
caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'Wstaw otrzymany hash do Caddyfile:
{$SEARXNG_HOSTNAME} {
basic_auth {
searchuser INSERT_HASH_HERE
}
reverse_proxy searxng:8080 {
header_up X-Real-IP {remote_host}
}
}Caddy przechowuje hash, a nie hasło w postaci jawnego tekstu. Zamiast Basic Auth usługę można również ograniczyć do VPN-u.
5. Uruchom kontenery
sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psOtwórz https://search.example.com. Caddy automatycznie pobierze certyfikat TLS, po czym przeglądarka poprosi o nazwę użytkownika searchuser i hasło. Logi SearXNG są dostępne za pomocą polecenia:
sudo docker compose logs -f searxngCo skonfigurować po uruchomieniu?
Zostaw tylko przydatne źródła, wybierz język i ustawienie SafeSearch, a następnie dodaj SearXNG do przeglądarki przez OpenSearch. Aby go zaktualizować, uruchom:
sudo docker compose pull
sudo docker compose up -dWykonuj kopie .env, Caddyfile i katalogu searxng. Włącz JSON API tylko wtedy, gdy jest potrzebne, i nie pozostawiaj go bez hasła oraz limitowania szybkości.
Typowe błędy
| Błąd | Skutek | Rozwiązanie |
|---|---|---|
| Udostępnienie instancji publicznie | Boty zwiększają obciążenie, a IP jest częściej ograniczane | Użyj hasła, VPN-u lub jednokrotnego logowania |
| Włączenie zbyt wielu źródeł | Wolne wyniki i przekroczenia czasu | Zostaw kilka stabilnych wyszukiwarek |
| Traktowanie SearXNG jak własnego indeksu | Część wyników znika, gdy systemy zewnętrzne ulegają awarii | Uwzględnij zależność od źródeł |
| Oczekiwanie pełnej anonimowości | Docelowa strona nadal może śledzić przeglądarkę | Użyj ochrony przeglądarki, VPN-u lub Tora |
| Uruchomienie bez HTTPS | Zapytania i hasło są przesyłane niezabezpieczone | Użyj reverse proxy z TLS |
Podsumowanie
SearXNG łączy różne źródła w jednym interfejsie, ogranicza personalizację i zapewnia jedną usługę wyszukiwania dla przeglądarki, skryptów lub lokalnej AI. Publiczna instancja wystarczy do testów. Przy regularnym korzystaniu lepszym wyborem jest własny serwer z HTTPS, uwierzytelnianiem, limiterem i niewielkim zestawem stabilnych źródeł.
Możesz zacząć od 1 GB RAM-u. Zwiększaj zasoby wraz ze wzrostem liczby użytkowników, po włączeniu API lub uruchomieniu dodatkowych kontenerów.
FAQ
Czy SearXNG jest całkowicie anonimowy?
Nie. Ukrywa część danych przed zewnętrznymi wyszukiwarkami, ale administrator instancji może prowadzić logi. Po otwarciu strony zaczynają obowiązywać jej własne mechanizmy śledzenia.
Czy SearXNG jest lepszy od Google?
Rozwiązuje inny problem. Google zwykle działa szybciej i silniej personalizuje wyniki. SearXNG daje większą kontrolę, pozwala łączyć źródła i w mniejszym stopniu zależy od profilu użytkownika.
Czy mogę używać SearXNG bez VPS-a?
Tak. Możesz użyć publicznej instancji, komputera domowego, NAS-a lub serwera mini. VPS jest potrzebny do całodobowego dostępu z dowolnej sieci.
Ile RAM-u jest potrzebne?
Dla jednego użytkownika rozsądny jest start od 1 GB. Dla rodziny, zespołu, API lub dodatkowych kontenerów lepiej przeznaczyć 2–4 GB.
Czy SearXNG można połączyć z przeglądarką lub AI?
Tak. Przeglądarka może korzystać z OpenSearch, a aplikacje z HTTP API. Dostęp do API należy chronić uwierzytelnianiem i limiterem.
