Tropic Host

SearXNG: какво представлява и как да инсталирате собствена търсачка на VPS

6 минути четене
Tropic
SearXNG: какво представлява и как да инсталирате собствена търсачка на VPS

Language: bg

SearXNG: собствена търсачка без проследяване на VPS

Обикновената търсачка може да свърже заявката с IP адрес, бисквитки и история на активността. SearXNG променя маршрута: браузърът се свързва с вашата инстанция, която отправя заявки към няколко външни търсачки и обединява отговорите им на една страница.

Външните източници виждат адреса на SearXNG сървъра, а не бисквитките на потребителя. Самата услуга не изгражда рекламен профил. Това обаче не е пълна анонимност: собственикът на публична инстанция технически може да съхранява логове, а след като отворите връзка, целевият сайт отново взаимодейства директно с браузъра.

Ще разгледаме възможностите на SearXNG и ще инсталираме собствена инстанция на VPS с HTTPS и защита с парола.

Какво е SearXNG и как работи

SearXNG е безплатна метатърсачка с отворен код. Тя не поддържа собствен индекс на сайтовете: услугата получава резултати от конфигурираните търсачки и специализирани източници, нормализира ги и ги показва в един интерфейс.

Browser → your SearXNG → search engines
                         ↓
                  combined results

За всяка заявка SearXNG:

  1. определя категорията на търсене: уеб, изображения, новини, видеоклипове или друга категория;
  2. се свързва с избраните източници от името на сървъра;
  3. не им изпраща бисквитките на потребителя и използва случаен профил на браузър за изходящите заявки;
  4. обединява отговорите в една страница с резултати.

Скоростта зависи от външните системи: те може да отговорят бавно, да покажат CAPTCHA или да блокират IP адреса. SearXNG е управляван междинен слой, а не автономен индекс.

Защо SearXNG е по-интересен от една търсачка

Различни източници на една страница с резултати

Можете да комбинирате универсални търсачки със специализирани източници: енциклопедии, карти, научни публикации, хранилища, новинарски услуги или каталози с изображения. Това помага, когато обикновената страница с резултати е претоварена със SEO страници или трудно намира материали по нишови теми.

Към момента на подготовката на статията документацията посочваше 272 интеграции, от които 83 са активирани по подразбиране. Това не означава, че всички са еднакво стабилни.

Наборът зависи от конфигурацията. Няколко стабилни източника обикновено работят по-бързо от активирането на всичко наведнъж.

Бързи команди

Преките команди ви позволяват временно да изберете търсачка, категория или език:

!wp docker compose       — search Wikipedia
!images northern lights  — search for images
:en !wp proxy server     — search Wikipedia in English

Командата !! пренасочва потребителя директно към външна търсачка. В този режим защитата на SearXNG вече не се прилага.

Търсене за браузъра и собствените ви инструменти

SearXNG поддържа OpenSearch и може да бъде зададен като търсачка по подразбиране в браузъра. Наличен е и HTTP API с отговори във формати JSON, CSV или RSS, ако администраторът е активирал необходимите формати.

Една инстанция може да служи като търсещ бекенд за вътрешно табло, бот, изследователски скрипт или локален AI асистент. API трябва да се публикува едва след настройване на удостоверяване и ограничения на честотата.

Колко поверителен е SearXNG

Какво правиКакво не прави
Не изпраща бисквитките на браузъра към външни търсачкиНе осигурява пълна анонимност
Скрива IP адреса на потребителя зад IP адреса на сървъраНе защитава потребителя след отваряне на сайт от резултатите
Премахва рекламите на трети страни и някои параметри за проследяванеНе гарантира, че собственикът на чужд сървър не пази логове
Може да проксира изображенияНе заменя VPN, Tor или защитата на браузъра

Публичната инстанция е удобна за изпробване на услугата, но трябва да се доверите на администратора ѝ, а споделеният IP адрес по-често може да попадне под ограничение на честотата.

Собственият сървър ви дава контрол върху логовете, източниците и достъпа, но не прави браузъра анонимен.

Публична инстанция, домашен сървър или VPS

ВариантПредимстваОграничения
Публична инстанцияНе е нужно да инсталирате нищоДоверие към собственика, претоварване, CAPTCHA
Домашен сървърПълен контрол без наемане на VPSУстройството трябва да работи постоянно; външният достъп се настройва по-трудно
Собствен VPSРабота 24/7, домейн, HTTPS, достъп от различни устройстваКонтейнерите трябва да се обновяват, а сигурността да се наблюдава

Собствената SearXNG инстанция е полезна за семейство, екип, разработчик или локални AI инструменти. За случайни търсения публичната инстанция е по-проста.

Какъв VPS е необходим за SearXNG

Натоварването зависи от броя потребители, източници и едновременни заявки. Практични начални конфигурации:

СценарийCPURAMДисково пространство
Един потребител1 vCPU1 GB10 GB
Семейство или малък екип2 vCPU2 GB20 GB
API и допълнителни услуги2–4 vCPUот 4 GBот 30 GB

Не е необходим голям диск. По-важни са качеството на мрежата, стабилният IP адрес и свободната RAM.

Linux VPS от tropic.host е подходящ за този сценарий: можете да започнете с малка конфигурация и да увеличите ресурсите, когато добавяте потребители или API достъп. При избора на план е по-полезно да инвестирате в RAM и качество на мрежата, отколкото да плащате прекалено за дисково пространство.

Инсталиране на SearXNG на VPS с Docker Compose

В този пример се използват Ubuntu 24.04 LTS, домейнът search.example.com, Valkey и Caddy. Насочете DNS A записа към сървъра и отворете портове 80 и 443.

1. Инсталиране на Docker и създаване на директория

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/searxng

Създайте .env файл с домейна и случаен секрет:

printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
  "$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env

2. Създаване на 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. Конфигуриране на SearXNG

Създайте 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/0

Създайте searxng/limiter.toml:

[botdetection]
trusted_proxies = [
  "127.0.0.0/8",
  "::1",
  "172.16.0.0/12",
]

Ограничителят намалява риска ботове да претоварят инстанцията и да накарат външните търсачки да ограничат IP адреса ѝ по-рано.

4. Добавяне на парола и HTTPS

Генерирайте hash за силна парола:

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'

Поставете получения hash в Caddyfile:

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser INSERT_HASH_HERE
    }

    reverse_proxy searxng:8080 {
        header_up X-Real-IP {remote_host}
    }
}

Caddy съхранява hash, а не паролата в открит вид. Вместо Basic Auth услугата може да бъде ограничена и само до VPN.

5. Стартиране на контейнерите

sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps

Отворете https://search.example.com. Caddy автоматично ще получи TLS сертификат, след което браузърът ще поиска потребителското име и паролата на searchuser. Логовете на SearXNG са достъпни с командата:

sudo docker compose logs -f searxng

Какво да конфигурирате след стартирането

Оставете само полезните източници, изберете езика и настройката SafeSearch, след което добавете SearXNG към браузъра чрез OpenSearch. За обновяване изпълнете:

sudo docker compose pull
sudo docker compose up -d

Направете резервно копие на .env, Caddyfile и директорията searxng. Активирайте JSON API само когато е необходимо и не го оставяйте без парола и ограничение на честотата.

Чести грешки

ГрешкаПоследствиеРешение
Правите инстанцията публичнаБотовете създават натоварване и IP адресът се ограничава по-честоИзползвайте парола, VPN или единна идентификация
Активирате прекалено много източнициБавни резултати и изтичане на времетоОставете няколко стабилни търсачки
Приемате SearXNG за собствен индексНякои резултати изчезват при проблеми с външните системиСъобразете се със зависимостта му от източниците
Очаквате пълна анонимностЦелевият сайт все още може да проследява браузъраИзползвайте защита на браузъра, VPN или Tor
Стартирате без HTTPSЗаявките и паролата се предават несигурноИзползвайте reverse proxy с TLS

Заключение

SearXNG обединява различни източници в един интерфейс, намалява персонализацията и предоставя единна търсачка за браузър, скриптове или локален AI. Публична инстанция е достатъчна за проба. За редовна употреба по-добър избор е собствен сървър с HTTPS, удостоверяване, ограничител и малък набор стабилни източници.

Можете да започнете с 1 GB RAM. Увеличете ресурсите, когато броят на потребителите расте, активирате API или стартирате допълнителни контейнери.

FAQ

Напълно анонимен ли е SearXNG?

Не. Той скрива част от данните от външните търсачки, но администраторът на инстанцията може да пази логове. След отваряне на сайт се прилагат собствените му механизми за проследяване.

По-добър ли е SearXNG от Google?

Той решава различен проблем. Google обикновено е по-бърз и персонализира резултатите по-силно. SearXNG ви дава повече контрол, позволява да комбинирате източници и зависи по-малко от потребителски профил.

Мога ли да използвам SearXNG без VPS?

Да. Можете да използвате публична инстанция, домашен компютър, NAS или мини сървър. VPS е необходим за достъп 24/7 от всяка мрежа.

Колко RAM е необходима?

За един потребител е разумно да започнете с 1 GB. За семейство, екип, API или допълнителни контейнери са за предпочитане 2–4 GB.

Може ли SearXNG да се свърже с браузър или AI?

Да. Браузърът може да използва OpenSearch, а приложенията — HTTP API. Достъпът до API трябва да бъде защитен с удостоверяване и ограничител.