MAATRIX / Блог / Векторная БД Qdrant на VPS: полный старт

Векторная БД Qdrant на VPS: полный старт

Блог MAATRIX · 2026-07-07

Qdrant — быстрая векторная база на Rust, которую любят за простоту и производительность. Поднимем её на VPS, настроим коллекцию, закроем API-ключом и организуем бэкапы.

Зачем нужна векторная БД

['Обычная БД ищет по точному совпадению, векторная — по смысловой близости. Вы храните эмбеддинги (числовые представления текста, картинок, кода) и ищете ближайшие по косинусному расстоянию. Это фундамент семантического поиска, RAG, рекомендаций и антифрод-систем.', 'Qdrant выделяется среди аналогов: написан на Rust, ест мало памяти, умеет фильтрацию по метаданным и квантование векторов. Для self-hosted развёртывания на VPS это один из лучших вариантов.', 'Отдельно стоит отметить фильтрацию по payload. К каждому вектору вы прикрепляете метаданные — категорию, дату, автора, права доступа — и при поиске отсекаете лишнее прямо в базе. Например, ищете похожие документы, но только за последний месяц и только те, что доступны конкретному пользователю. Это превращает Qdrant из простого поиска по векторам в полноценный движок для приложений.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Qdrant

Установка в Docker

['Проще всего запустить официальный образ. Обязательно монтируем volume, иначе данные исчезнут при пересоздании контейнера.', '
apt update && apt install -y docker.io\nmkdir -p /opt/qdrant/storage\ndocker run -d --name qdrant --restart unless-stopped \\\n  -p 6333:6333 -p 6334:6334 \\\n  -v /opt/qdrant/storage:/qdrant/storage \\\n  qdrant/qdrant
', 'Порт 6333 — REST и веб-дашборд, 6334 — gRPC (быстрее для больших нагрузок). Проверяем:', '
curl http://localhost:6333/healthz
']

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Закрываем доступ API-ключом

['По умолчанию Qdrant открыт всем, кто дотянется до порта. На публичном сервере это дыра. Задаём ключ через переменную окружения и не публикуем порт наружу без нужды.', '
docker run -d --name qdrant --restart unless-stopped \\\n  -e QDRANT__SERVICE__API_KEY=ВАШ_ДЛИННЫЙ_КЛЮЧ \\\n  -p 127.0.0.1:6333:6333 \\\n  -v /opt/qdrant/storage:/qdrant/storage qdrant/qdrant
', 'Привязка к 127.0.0.1 означает, что порт виден только с самого сервера. Приложение ходит в базу локально, а снаружи ничего не торчит. Если доступ нужен извне — пускайте через nginx с TLS.']

Создаём коллекцию

['Коллекция задаёт размерность векторов и метрику. Для модели multilingual-e5-base размерность 768, метрика Cosine.', '
curl -X PUT http://localhost:6333/collections/kb \\\n  -H "api-key: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \\\n  -d \'{"vectors": {"size": 768, "distance": "Cosine"}}\'
', 'Qdrant по умолчанию строит HNSW-индекс — он даёт быстрый приближённый поиск. Параметры m и ef_construct можно тюнить: больше значения — точнее поиск, но выше RAM и время индексации.', 'Добавлять данные удобно через upsert — точки с id, вектором и payload. Если id уже существует, точка обновится, если нет — создастся. Это позволяет обновлять базу инкрементально, не пересоздавая коллекцию:', '
curl -X PUT http://localhost:6333/collections/kb/points \\\n  -H "api-key: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \\\n  -d \'{"points": [{"id": 1, "vector": [0.1, 0.2],\n       "payload": {"src": "faq.md"}}]}\'
', 'Поиск с фильтром по payload выглядит так же просто — вы передаёте условие рядом с вектором запроса, и Qdrant отдаёт только подходящие точки, отсортированные по близости.']

Ресурсы и производительность

['Оценить память просто: число векторов × размерность × 4 байта плюс накладные на HNSW (примерно ×1.5). Миллион 768-мерных векторов — около 4–5 ГБ RAM. Квантование (scalar/binary) режёт это в несколько раз.', 'Скорость поиска критично зависит от диска и CPU. На AMD EPYC + NVMe у MAATRIX HNSW-обход идёт по памяти, а подгрузка сегментов с NVMe не тормозит — латентность запроса остаётся в единицах миллисекунд.', '
  • До 500k векторов — 2 vCPU / 4 ГБ
  • 1–3 млн — 4 vCPU / 8–16 ГБ
  • Больше — включайте квантование и шардирование
']

Бэкапы коллекций

['Qdrant умеет снапшоты. Делаем снапшот коллекции и складываем в надёжное место:', '
curl -X POST http://localhost:6333/collections/kb/snapshots \\\n  -H "api-key: ВАШ_КЛЮЧ"
', 'Файлы лежат в /opt/qdrant/storage/snapshots. Их подхватывают ежедневные бэкапы MAATRIX, поэтому даже при полном сбое диска коллекцию можно восстановить.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Qdrant

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Qdrant или pgvector?

Qdrant быстрее на больших объёмах и богаче по фильтрам и квантованию. pgvector удобен, если вы и так живёте в PostgreSQL и объёмы небольшие.

Нужен ли Docker?

Не обязательно — есть бинарник, но Docker проще для обновлений и изоляции. На VPS с root-доступом оба варианта работают.

Как масштабировать?

Qdrant поддерживает распределённый режим с шардами и репликами. Начните с одного узла — вертикального масштабирования хватает надолго.

Безопасно ли открывать порт наружу?

Только с API-ключом и TLS. Лучше держать порт на 127.0.0.1 и ходить через nginx-прокси или SSH-туннель.