Tropic Host

SearXNG: что это и как установить свой поисковик на VPS

5 мин чтения
Tropic
SearXNG: что это и как установить свой поисковик на VPS

SearXNG: собственный поисковик без слежки на VPS

Обычный поисковик может связать запрос с IP-адресом, cookies и историей действий. SearXNG меняет маршрут: браузер обращается к вашему экземпляру, а тот запрашивает несколько внешних поисковых систем и собирает их ответы на одной странице.

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

Разберём возможности SearXNG и установим собственный экземпляр на VPS с HTTPS и паролем.

Что такое SearXNG и как он работает

SearXNG — бесплатный метапоисковик с открытым исходным кодом. У него нет собственного индекса сайтов: сервис получает результаты из настроенных поисковиков и специализированных источников, приводит их к общему виду и показывает в едином интерфейсе.

Браузер → ваш SearXNG → поисковые системы
                         ↓
              объединённая выдача

При каждом запросе SearXNG:

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

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

Чем SearXNG интереснее одного поисковика

Разные источники в одной выдаче

Можно сочетать общие поисковики со специализированными источниками: энциклопедиями, картами, научными публикациями, репозиториями, новостями или каталогами изображений. Это помогает, когда обычная выдача перегружена SEO-страницами или плохо находит нишевые материалы.

На момент подготовки статьи документация перечисляла 272 интеграции, из которых 83 были включены по умолчанию. Это не означает, что все они одинаково стабильны.

Набор зависит от конфигурации. Несколько стабильных источников обычно работают быстрее, чем все доступные сразу.

Быстрые команды

Сокращения позволяют временно выбрать движок, категорию или язык:

!wp docker compose       — искать в Wikipedia
!images aurora borealis  — искать изображения
:ru !wp прокси-сервер    — искать на русском в Wikipedia

Команда !! перенаправляет пользователя во внешний поисковик напрямую. В таком режиме защита SearXNG уже не действует.

Поиск для браузера и собственных инструментов

SearXNG поддерживает OpenSearch, поэтому его можно назначить поиском по умолчанию в браузере. Также доступен HTTP API с ответами в JSON, CSV или RSS, если администратор разрешил нужные форматы.

Один экземпляр может стать поисковым backend для внутренней панели, бота, исследовательского скрипта или локального ИИ-ассистента. API лучше открывать только после настройки аутентификации и лимитов.

Насколько SearXNG приватен

Что он делаетЧего он не делает
Не передаёт внешним поисковикам cookies браузераНе обеспечивает полную анонимность
Скрывает IP пользователя за IP сервераНе защищает после перехода на найденный сайт
Убирает стороннюю рекламу и часть отслеживающих параметровНе гарантирует отсутствие логов у владельца чужого сервера
Может проксировать изображенияНе заменяет VPN, Tor и защиту браузера

Публичный экземпляр удобен для знакомства, но его администратору приходится доверять, а общий IP чаще получает ограничения.

Собственный сервер даёт контроль над логами, источниками и доступом, но не делает браузер анонимным.

Публичный экземпляр, домашний сервер или VPS

ВариантПлюсыОграничения
ПубличныйНичего не нужно устанавливатьДоверие к владельцу, перегрузка, CAPTCHA
Домашний серверПолный контроль без аренды VPSУстройство должно работать постоянно; сложнее настроить доступ извне
Собственный VPSКруглосуточная работа, домен, HTTPS, доступ с разных устройствНужно обновлять контейнеры и следить за безопасностью

Собственный SearXNG полезен семье, команде, разработчику или локальным ИИ-инструментам. Для редкого поиска проще публичный экземпляр.

Какой VPS нужен для SearXNG

Нагрузка зависит от пользователей, источников и параллельных запросов. Практические стартовые конфигурации:

СценарийCPURAMДиск
Один пользователь1 vCPU1 ГБ10 ГБ
Семья или небольшая команда2 vCPU2 ГБ20 ГБ
API и дополнительные сервисы2–4 vCPUот 4 ГБот 30 ГБ

Большой диск не нужен. Важнее сеть, постоянный 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",
]

Limiter снижает риск того, что боты перегрузят экземпляр, а внешние поисковики быстрее ограничат его IP.

4. Добавьте пароль и HTTPS

Получите хеш сложного пароля:

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'ЗАМЕНИТЕ_ПАРОЛЬ'

Вставьте полученный хеш в Caddyfile:

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser ВСТАВЬТЕ_ХЕШ
    }

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

Caddy хранит хеш, а не открытый пароль. Вместо 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Запросы и пароль передаются небезопасноИспользовать обратный прокси с TLS

Вывод

SearXNG объединяет разные источники в одном интерфейсе, уменьшает персонализацию и даёт единый поиск браузеру, скриптам или локальному ИИ. Для знакомства достаточно публичного экземпляра. Для постоянного использования лучше собственный сервер с HTTPS, аутентификацией, limiter и небольшим набором стабильных источников.

Начать можно с 1 ГБ RAM. Увеличивать ресурсы стоит при росте числа пользователей, подключении API или запуске дополнительных контейнеров.

FAQ

SearXNG полностью анонимен?

Нет. Он скрывает часть данных от внешних поисковиков, но администратор экземпляра может вести логи. После перехода на сайт действуют его собственные средства отслеживания.

SearXNG лучше Google?

Он решает другую задачу. Google обычно быстрее и сильнее персонализирует результаты. SearXNG даёт больше контроля, позволяет смешивать источники и меньше зависит от профиля пользователя.

Можно ли пользоваться SearXNG без VPS?

Да. Подойдёт публичный экземпляр, домашний компьютер, NAS или мини-сервер. VPS нужен для круглосуточного доступа из любой сети.

Сколько оперативной памяти нужно?

Для одного пользователя разумно начать с 1 ГБ. Для семьи, команды, API или дополнительных контейнеров лучше 2–4 ГБ.

Можно ли подключить SearXNG к браузеру или ИИ?

Да. Браузер может использовать OpenSearch, а программы — HTTP API. Доступ к API следует закрыть аутентификацией и limiter.

SearXNG: что это и как установить свой поисковик на VPS