Разверните собственный поисковый движок: AACsearch на Docker менее чем за 10 минут
AACsearch Team
2/12/2026
Кто платит $12 000 в год за поиск?
Если вы когда-либо рассчитывали стоимость managed search providers для среднего интернет-магазина, вы знаете этот ценовой шок. При 100 миллионах поисковых запросов в месяц вы сразу попадаете в категорию enterprise-контрактов. traditional search backends бесплатен, но несёт скрытые расходы: выделенный ops-инженер, который только и делает, что управляет кластерами, устраняет проблемы с памятью и разбирается с split-brain.
Есть третий путь. AACsearch позволяет запускать AACSearch — один из самых быстрых open-source поисковых движков — за полностью управляемым control plane. Вы получаете SaaS-опыт (API-ключи, мультиарендность, аналитику, UI-дашборд), а данные поиска остаются на вашем железе.
В этой статье мы пошагово разберём запуск AACsearch на собственном сервере с Docker Compose: от нуля до рабочего поискового API с дашбордом менее чем за 10 минут.
Требования
- Linux-сервер (VPS, bare metal или ноутбук для тестирования)
- Docker ≥ 24 и Docker Compose ≥ 2.20
- Минимум 2 ядра CPU и 4 ГБ RAM (8 ГБ рекомендуется для продакшна)
Шаг 1: Загрузка Compose-файла
curl -o docker-compose.yml \
https://raw.githubusercontent.com/AACSearch/AACSearch/main/deploy/docker-compose.yml
Стандартный Compose-файл запускает три сервиса:
| Сервис | Назначение |
| ----------- | --------------------------------------------------------------- |
| AACSearch | Поисковый движок AACSearch (data plane) |
| AACSearch | Control plane AACsearch (API, дашборд, аналитика) |
| postgres | Хранилище метаданных: индексы, API-ключи, события использования |
Шаг 2: Настройка окружения
cp .env.example .env
Откройте .env и установите три значения:
# Ваш домен или IP. Используется для CORS и настройки cookie.
AACSEARCH_URL=https://search.vashдомен.ru
# Случайный секрет. Сгенерируйте: openssl rand -hex 32
AACSEARCH_SECRET=ваш-секрет-здесь
# Admin API-ключ AACSearch. Только для внутреннего использования.
AACSEARCH_API_KEY=ваш-AACSearch-ключ-здесь
Всё остальное работает с настройками по умолчанию для большинства деплоев.
Шаг 3: Запуск стека
docker compose up -d
Через 30–60 секунд три контейнера запущены:
docker compose ps
# NAME STATUS PORTS
# AACSearch running 0.0.0.0:8108->8108/tcp
# AACSearch running 0.0.0.0:3000->3000/tcp
# postgres running 5432/tcp
Дашборд AACsearch доступен по адресу http://localhost:3000. Откройте его, создайте первую организацию — и вы готовы к работе.
Шаг 4: Создание первого поискового индекса
Через дашборд или REST API:
curl -X POST http://localhost:3000/api/v1/indexes \
-H "Authorization: Bearer ВАШ_ADMIN_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"name": "products",
"schema": {
"fields": [
{ "name": "name", "type": "string" },
{ "name": "price", "type": "float", "facet": true },
{ "name": "brand", "type": "string", "facet": true }
],
"default_sorting_field": "price"
}
}'
Шаг 5: Импорт документов и поиск
# Загрузить 10 000 товаров одним запросом
curl -X POST http://localhost:3000/api/v1/indexes/products/documents/bulk \
-H "Authorization: Bearer ВАШ_SEARCH_КЛЮЧ" \
-H "Content-Type: application/json" \
-d @products.json
# Поиск
curl "http://localhost:3000/api/v1/indexes/products/search?q=кроссовки&facet_by=brand"
Время ответа на стандартном железе: < 5 мс для индекса из 500 000 документов.
Что вы получаете сразу
Self-hosted установка AACsearch предоставляет тот же набор функций, что и облачный план:
- Мультиарендность — отдельные индексы для каждой организации или клиента
- Scoped Search Tokens — ограничение результатов поиска данными конкретного пользователя без обращения к бэкенду
- Аналитический дашборд — топ-запросы, доля нулевых результатов, CTR
- Управление API-ключами — создание, ротация и отзыв ключей прямо из дашборда
- CMS-коннекторы — автоматическая синхронизация товаров из PrestaShop или Bitrix
Чеклист для продакшна
Перед тем как направить трафик на self-hosted инстанс:
- [ ] Установите Nginx или Traefik с TLS (Let's Encrypt работает отлично)
- [ ] Установите
AACSEARCH_URLна ваш настоящий HTTPS-домен - [ ] Смонтируйте volume для данных AACSearch:
AACSearch_data:/data - [ ] Настройте бэкапы Postgres (ежедневный
pg_dumpв S3 достаточно) - [ ] Установите ресурсные лимиты в Compose для предотвращения OOM
Когда облако по-прежнему правильный выбор
Self-hosting подходит не всем. Если у вашей команды нет ops-ресурсов или вам нужен SLA 99,95% без управления инфраструктурой, облачный план AACsearch более разумен. Вы получаете тот же API, тот же дашборд и ту же производительность AACSearch — мы берём серверы на себя.
Выбор за вами. AACsearch работает одинаково независимо от того, где он запущен.
Готовы запустить собственный поисковый движок? Начать работу с AACsearch →