Зачем вам SearXNG, если не хотите ставить Docker?
Docker на Windows — это как кастомный спорткар для поездки в соседний магазин: мощно, но жирно. WSL — неплохая прослойка, но она жрет память и не всегда дружит с корпоративными прокси. А SearXNG — идеальный локальный метапоисковик для RAG-пайплайнов, приватного поиска и интеграции с локальными LLM. В теории — бери и запускай. На практике — все гайды твердят про Docker, а без него — тишина.
Я собрал этот гайд, потому что сам задолбался выделять 2 ГБ ОЗУ под контейнер, когда мне нужен был просто поисковик для тестов. Если вы тоже хотите держать SearXNG на видном месте (ну, на порту 8888) без виртуализации — добро пожаловать. Будем ставить через Python, как батя программирования.
Проблема: почему нативный запуск — боль?
SearXNG написан на Python, использует Flask, uWSGI (или gunicorn) и требует Redis для кэша и ограничения частоты запросов. В официальном репозитории — ни слова про Windows. Разработчики считают, что все нормальные люди сидят на Linux или macOS. Но мы не сдаемся.
Главные грабли:
- Redis под Windows: нет официальной поддержки с 2016 года. Но есть Memurai (форк Redis) или старые билды от Microsoft. Мы пойдем через Memurai — он ставится как обычная программа.
- uWSGI: не собирается на Windows. Выход — использовать вместо него
waitressилиgunicorn(но gunicorn тоже не дружит с Windows). Выбираемwaitress. - Пути и слеши: привыкайте к обратным слешам и абсолютным путям с диском C:.
Решение: пошагово, без лишних телодвижений
1 Установите Python и настройте PATH
Скачайте последнюю версию Python с официального сайта. На момент мая 2026 — это Python 3.13.2. Обязательно поставьте галочку "Add Python to PATH" при установке.
Проверьте:
python --version
pip --version
2 Клонируйте репозиторий SearXNG
Откройте терминал (cmd или PowerShell) и выполните:
cd C:\searxng
git clone https://github.com/searxng/searxng.git .
# если git не установлен — поставьте из winget: winget install Git.Git
3 Создайте виртуальное окружение и установите зависимости
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip install waitress # замена uWSGI
Обратите внимание: для кэширования и лимитов SearXNG использует Redis. Если Redis не установлен, сервер упадет с ошибкой. Ставьте Memurai (бесплатный аналог Redis для Windows) — скачайте с сайта и установите как обычную программу. После установки Memurai запустится как служба.
4 Настройка конфигурации
Скопируйте searx/settings.yml в searx/settings_user.yml — это ваш локальный конфиг. Отредактируйте:
general:
instance_name: "Мой приватный поиск"
debug: false
server:
bind_address: "127.0.0.1"
port: 8888
secret_key: "сгенерируйте_свой_ключ" # можно сгенерировать: python -c "import secrets; print(secrets.token_hex(32))"
redis:
url: "redis://127.0.0.1:6379/0"
search:
safe_search: 0
autocomplete: "google"
Частая ошибка: если вы не укажете secret_key, SearXNG откажется запускаться. Сгенерируйте его командой выше и вставьте.
5 Запуск сервера через waitress
В корневой папке SearXNG создайте файл run.py:
from waitress import serve
from searx import webapp
if __name__ == '__main__':
serve(webapp.app, host='127.0.0.1', port=8888)
Теперь запустите:
python run.py
Откройте в браузере http://127.0.0.1:8888. Если видите интерфейс SearXNG — вы молодцы. Если нет — читайте раздел с ошибками ниже.
6 Автозапуск при старте Windows (опционально)
Чтобы SearXNG автоматически стартовал после перезагрузки, используйте Планировщик задач или NSSM (Non-Sucking Service Manager). Я рекомендую NSSM — он создаст службу Windows:
# Скачайте NSSM (https://nssm.cc/), распакуйте
nssm install SearXNG "C:\searxng\venv\Scripts\python.exe" "C:\searxng\run.py"
nssm start SearXNG
Теперь поисковик будет висеть в системе как служба, даже без входа в пользовательский сеанс.
Нюансы и типовые ошибки
❌ Redis ConnectionError
Если Memurai не установлен или не запущен, SearXNG вылетает с ошибкой соединения. Проверьте, что служба Memurai работает (services.msc -> Memurai Server). Если нет — переустановите или запустите вручную.
❌ Проблемы с правами доступа
Если вы запускаете службу от SYSTEM, убедитесь, что у нее есть доступ к папке C:\searxng. NSSM обычно решает это, но если что — дайте права Everyone на чтение/запись (небезопасно, но для локальной машины ок).
❌ Поиск не возвращает результаты
Многие поисковые движки (Google, Bing, DuckDuckGo) требуют API-ключи или блокируют частые запросы. В настройках settings_user.yml можно включить движки, не требующие ключа — например, duckduckgo, startpage, qwant. Если нужен Google — придется регистрировать API ключ Custom Search. Подробнее мы писали в статье Почему AI-поиск с SearXNG перестал работать.
❌ CORS при интеграции с Open WebUI
Если вы подключаете SearXNG к Open WebUI для RAG, может потребоваться добавить заголовки CORS. В конфиге SearXNG в разделе server пропишите:
server:
cors_domains:
- http://localhost:8080
cors_allowed_origins:
- '*'
Подробнее про настройку Open WebUI + поиск мы уже разбирали в этом гайде.
Когда этот способ не подходит?
- Если вам нужно много экземпляров — лучше вернуться к Docker compose, там проще оркестрация.
- Если вы хотите использовать Uvicorn/ASGI — SearXNG не поддерживает ASGI, только WSGI. Но через waitress мы получаем нормальную многопоточность.
- Если Redis требуется для сложных кэшей — Memurai справляется с базовыми нуждами, но не поддерживает Redis Stack (модули). Для большинства сценариев его хватит.
Кстати, если вам не хочется возиться с Redis вообще, можно отключить кэш и лимиты, выставив limiter: false и cache: file в конфиге. Но не советую — без Redis поиск будет тормозить и можно спалиться по IP.
Альтернативы, если SearXNG не завелся
Мы уже рассматривали TinySearch — легковесный метапоисковик на Go, который запускается одной командой. Он не такой гибкий, но для простого RAG-пайплайна — самое то. Если же вам принципиально именно SearXNG (из-за плагинов или движков), то нативная установка — ваш путь.
Попробуйте, и пусть ваш поиск будет приватным. Если нашли косяки в гайде — пишите в комментариях, дополним.