Установка Searx на Ubuntu 18.04

О чём статья
Searx — свободный метапоисковик с фокусом на приватность: он собирает результаты примерно из 70 разных поисковых систем и не передаёт им IP и историю пользователя. В этой заметке показано, как установить Searx на Ubuntu 18.04 и запустить его для тестирования или как основу для простого приватного поиска.
Требования
- Сервер с Ubuntu 18.04.
- Статический IP, в примерах используется 172.20.10.8 или 192.168.1.100 — замените на ваш публичный/приватный адрес.
- Непользователь root с правами sudo.
Подготовка системы
Обновите пакеты перед установкой:
sudo apt-get update -y
sudo apt-get upgrade -yПерезапустите систему, если ядро или критические пакеты были обновлены.
Установите зависимости, необходимые для сборки и виртуального окружения:
sudo apt-get install git build-essential python-babel zlib1g-dev libffi-dev libssl-dev libxslt-dev python-dev python-virtualenv -yВажно: пакеты и имена могут отличаться в более новых версиях Ubuntu; в таком случае используйте эквиваленты для вашей версии системы.
Установка Searx
Клонируем репозиторий в /opt:
cd /opt/
sudo git clone https://github.com/asciimoo/searx.gitПо умолчанию Searx слушает только локальный интерфейс. Чтобы сделать сервис доступным с других машин, отредактируйте файл настроек:
sudo nano /opt/searx/searx/settings.ymlНайдите и замените строку bind_address : “127.0.0.1” на bind_address : “192.168.1.100” (замените IP на адрес вашего сервера).
Сохраните и закройте файл.
Виртуальное окружение и обновление пакетов Searx
Перейдите в директорию и создайте виртуальное окружение:
cd /opt/searx
sudo virtualenv searx-ve
sudo source searx-ve/bin/activateОбновите зависимости Searx:
sudo ./manage.sh update_packagesЗапустите встроенный веб‑сервер для тестирования:
sudo python searx/webapp.pyОжидаемый вывод:
* Serving Flask app "webapp" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: offSearx будет доступен на порту 8888. Откройте в браузере http://192.168.1.100:8888 (замените IP на ваш).

Рекомендации для продакшен‑развёртывания
Важно: встроенный Flask‑сервер подходит только для тестирования. Для реального сервера используйте WSGI сервер (gunicorn) за обратным прокси (nginx) или контейнеризованный подход.
Пример systemd юнита для запуска через gunicorn (пример):
[Unit]
Description=Searx daemon
After=network.target
[Service]
User=searx
Group=searx
WorkingDirectory=/opt/searx
Environment="PATH=/opt/searx/searx-ve/bin"
ExecStart=/opt/searx/searx-ve/bin/gunicorn -b 127.0.0.1:8888 searx.webapp:app
[Install]
WantedBy=multi-user.targetНастройка nginx как обратного прокси (основные идеи):
- Прокси на localhost:8888.
- Включите TLS (Let’s Encrypt) и ограничьте доступ по IP, если нужно.
- Настройте rate limiting и логирование.
Альтернатива: использовать Docker или готовые образы searx (упрощает развёртывание и изоляцию).
Безопасность и приватность
- Searx сам по себе собирает результаты от третьих сторон; оцените угрозы — требуется ли дополнительная сеть через Tor или приватные прокси.
- Не храните журналы с личной информацией. Ограничьте доступ к файлам конфигурации.
- Используйте HTTPS при доступе извне.
Когда Searx не подходит
- Если вам нужна гарантированная анонимность от целевых поисковиков — Searx может быть недостаточен; рассмотрите индивидуальную маршрутизацию через Tor.
- Если нужен масштабируемый, SLA‑критичный поисковый сервис с высокой нагрузкой — потребуются дополнительные архитектурные решения: кэширование, балансировка, контроль SLIs.
Чек‑лист ролей при установке
- Администратор сервера:
- Обновил систему и установил зависимости.
- Создал пользователя searx и настроил права на /opt/searx.
- Настроил systemd и nginx.
- DevOps/Инженер развертывания:
- Подготовил виртуальное окружение и установил зависимости Python.
- Настроил CI/CD для обновлений (опционально).
- Пользователь/тестировщик:
- Проверил доступность http://HOST:8888 и выполнил несколько запросов.
- Проверил отсутствие логирования IP в сторонние сервисы (по возможности).
Критерии приёмки
- Сервис отвечает на запросы на ожидаемом IP:порт.
- Конфигурация bind_address отражает заменённый IP.
- Gunicorn/nginx запущены и перезапускаются через systemd после reboot.
- TLS корректно настроен (если применяется).
Мини‑методология обновлений
- Создайте snapshot/резервную копию конфигураций и данных.
- Тестируйте обновление в staging‑среде.
- Применяйте обновление вне пиковых часов с контролем логов.
- Откат через systemd stop + восстановление конфигурации при критике.
Короткий глоссарий
- Searx — метапоисковая платформа с фокусом на приватность.
- WSGI — интерфейс для запуска Python‑веб‑приложений в продакшен.
- Gunicorn — WSGI HTTP сервер для Python-приложений.
Ссылки
- Официальный сайт Searx: https://searx.me/
Итог
Searx можно быстро запустить для тестирования на Ubuntu 18.04, но для надёжной работы в продакшен‑окружении рекомендуется запускать через gunicorn/nginx или в Docker‑контейнере, настроить HTTPS и продумать политику логирования. Следуйте чек‑листу ролей и критериям приёмки при переходе из теста в продакшен.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента