Meilisearch на VPS: мгновенный поиск для сайта и API
Meilisearch на VPS: установка, индексация, typo-tolerance, интеграция с Laravel/Django/Next.js. Альтернатива Elasticsearch для малого и среднего проекта.
Краткий ответ: Meilisearch — быстрый full-text search с typo-tolerance и простым REST API. На VPS 1 GB RAM: Docker, master key, индексация из PostgreSQL или приложения.
SQL LIKE '%query%' ломается на 100k+ строк. Elasticsearch тяжёлый для pet-проекта. Meilisearch — зол середины.
Meilisearch vs Elasticsearch
| Meilisearch | Elasticsearch | |
|---|---|---|
| RAM | 512 MB–2 GB | 4 GB+ |
| Setup | Минуты | Часы |
| Typo-tolerance | Из коробки | Плагины |
| Analytics/logs | Нет | Да (ClickHouse) |
Для логов — Loki. Для поиска товаров/статей — Meilisearch.
Docker
services:
meilisearch:
image: getmeili/meilisearch:v1.11
restart: unless-stopped
environment:
MEILI_MASTER_KEY: ${MEILI_MASTER_KEY}
MEILI_ENV: production
volumes:
- ./meili_data:/meili_data
ports:
- "127.0.0.1:7700:7700"
openssl rand -hex 32 # master key
Nginx reverse proxy + SSL. Не открывайте 7700 без auth.
Индексация
curl -X POST 'https://search.example.com/indexes/articles/documents' \
-H "Authorization: Bearer MASTER_KEY" \
-H 'Content-Type: application/json' \
--data-binary @articles.json
[
{"id": 1, "title": "VPS для новичка", "content": "..."},
{"id": 2, "title": "Docker Compose", "content": "..."}
]
Поиск:
curl 'https://search.example.com/indexes/articles/search' \
-H "Authorization: Bearer MASTER_KEY" \
-d '{"q": "docker vps"}'
Laravel Scout
// .env
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=https://search.example.com
MEILISEARCH_KEY=MASTER_KEY
php artisan scout:import "App\\Models\\Article"
См. также Laravel на VPS и Redis для кеша.
Django / Next.js
- Django:
django-meilisearchили прямой HTTP client - Next.js: server action → Meilisearch API, UI — instant search
Деплой приложения — Django / Next.js.
Бэкапы индекса
curl -X POST 'https://search.example.com/dumps' \
-H "Authorization: Bearer MASTER_KEY"
Volume meili_data — в Restic. При падении — переиндексация из БД.
RAM и production
- Dev: 512 MB
- 100k документов: 1–2 GB
- Несколько индексов: 2 GB VPS
Мониторинг — Netdata или Grafana.
Итог
Meilisearch на VPS — поиск за вечер. Docker + master key + reverse proxy = production-ready для SaaS и e-commerce.
VPS 1–2 GB — StormNet Cloud. Стек приложения — Docker Compose.
Рекомендуем прочитать
Частые вопросы
Meilisearch или Elasticsearch для поиска на сайте?
Meilisearch — проще и легче (1–2 GB RAM), typo-tolerance из коробки. Elasticsearch — для больших кластеров и log analytics.
Сколько RAM нужно Meilisearch на VPS?
512 MB для dev, 1–2 GB для production с сотнями тысяч документов. Зависит от размера индекса.






