Главная/ИИ/Chroma

Векторная база данных Chroma: установка и Docker

Векторная база данных Chroma ставится командой pip install chromadb для работы прямо из Python или контейнером chromadb/chroma, который слушает порт 8000 и хранит данные в папке /data. Для первого RAG её удобно брать из-за встроенного режима без сервера, а для доступа по сети ей нужен прокси с паролем.

3 мин чтенияДанные проверены 16 октября 2026

Ответ за 30 секунд

Для прототипа хватит Chroma прямо в Python без сервера. Для общего доступа запускайте контейнер с томом на /data и не открывайте порт 8000 наружу: встроенный вход в документации по Docker не описан.

VPS с Docker и почасовой оплатой: поднимите Chroma рядом с приложением и проверьте RAG на своих данных.

Chroma, Qdrant или pgvector: что выбрать под RAG

01 · 1 мин

Три режима работы Chroma и какой выбрать#

Chroma хранит эмбеддинги текстов вместе с исходным текстом и метаданными и ищет ближайшие по смыслу. Для RAG на старте это удобно: клиент ставится одной командой и работает без отдельного сервиса.

РежимКак запускаетсяКогда подходит
ВстроенныйБиблиотека в процессе Python, данные в папкеПрототип, скрипт, один пользователь
Клиент-серверchroma run или Docker-образНесколько приложений, сервер команды
Chroma CloudОблако разработчиковНе хотите держать сервер

Клиенты есть для Python (pip install chromadb) и JavaScript (npm install chromadb). Новые версии пакетов выходят по понедельникам, поэтому версию в рабочем проекте лучше закрепить.

02 · 1 мин

Установка Chroma через pip и запуск сервера#

  1. Поставьте пакет в виртуальное окружение: pip install chromadb.
  2. Для встроенного режима создайте клиента с папкой: chromadb.PersistentClient(path="./chroma"). Данные переживут перезапуск скрипта.
  3. Для режима сервера запустите chroma run --path /srv/chroma, а в приложении подключайтесь через chromadb.HttpClient(host="localhost", port=8000).

Модель эмбеддингов Chroma может посчитать сама встроенной функцией, но для документов на русском лучше передавать векторы от многоязычной модели, например из Ollama. Главное правило: и документы, и вопросы считаются одной и той же моделью.

03 · 1 мин

Chroma в Docker: том /data и docker compose#

Команда из документации, с привязкой порта к локальному адресу:

docker run -d --name chroma --restart unless-stopped \
  -v /srv/chroma-data:/data \
  -p 127.0.0.1:8000:8000 \
  chromadb/chroma

Без тома на /data коллекции исчезнут вместе с контейнером. В compose это сервис с образом chromadb/chroma, томом /srv/chroma-data:/data и портом; пример в документации дополнительно поднимает сборщик трассировок OpenTelemetry и Zipkin, для начала они не нужны.

Живость сервера проверяет запрос curl http://localhost:8000/api/v2/heartbeat. Тот же адрес удобно отдать в мониторинг вроде Uptime Kuma.

04 · 1 мин

Как закрыть Chroma от чужих запросов#

Страница документации о запуске в Docker не описывает встроенную аутентификацию. Поэтому сервер Chroma держат во внутренней сети: порт привязан к 127.0.0.1, приложения в соседних контейнерах ходят по имени сервиса.

Доступ снаружи только через прокси

Если базой пользуются с другого сервера, поставьте впереди Caddy или Nginx с HTTPS и паролем либо пускайте только адреса своих серверов. Открытый порт 8000 позволит любому читать и стирать коллекции.

Инструмент · 1 мин

Chroma, Qdrant или pgvector: что выбрать под RAG#

ChromaQdrantpgvector
Стартpip install, без сервераDocker-контейнерРасширение PostgreSQL
Порт80006333 и 63345432
Ключ API из коробкиВ документации Docker не описанЕсть, включается в конфигурацииПароли PostgreSQL
ЛицензияApache 2.0Apache 2.0PostgreSQL License

Переезд с Chroma на Qdrant или pgvector обычно сводится к повторной загрузке тех же векторов. Подбор сервера под объём коллекций:

Какой сервер нужен Chroma

Объём коллекций, место расчёта эмбеддингов и нагрузка: калькулятор подберёт конфигурацию

Сколько векторов
Где считаются эмбеддинги
Для чего

06 · 1 мин

Вопросы о векторной базе Chroma#

Где Chroma в Docker хранит данные?

В папке /data внутри контейнера. Смонтируйте её на диск хоста флагом -v /srv/chroma-data:/data, тогда коллекции переживут пересоздание контейнера и обновление образа.

Нужен ли Chroma отдельный сервер?

Для прототипа нет: в Python она работает внутри скрипта и хранит данные в папке. Сервер нужен, когда к базе обращаются несколько приложений или людей.

Как проверить, что сервер Chroma запущен?

Запросом к /api/v2/heartbeat на порту 8000: работающий сервер отвечает без ошибки. Этот же адрес подходит для мониторинга.

Почему этому можно верить

Как мы проверяли

Требования из документацииРесурсы, порты и команды сверены с официальной документацией, дата проверки указана.
Всё можно повторитьКоманды и расчёты описаны так, что их повторит любой читатель.
Независимый справочникНе связан с разработчиками приложений и провайдерами и пишет о минусах тоже.

Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Документация Chroma: запуск в Docker, docs.trychroma.com/guides/deploy/docker, проверено 15 октября 2026; Chroma на GitHub: установка клиентов, режим сервера, лицензия Apache 2.0, github.com/chroma-core/chroma, проверено 15 октября 2026.

SBРедакция SelfBase · обновлено 16 октября 2026

Запустите свой сервер за пару минут

Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.

  • NVMe-диски и гарантированная доля процессора
  • Root-доступ и любой софт, от Docker до игровых серверов
  • Маркетплейс: 91 приложение в один клик
  • Бесплатный перенос проекта силами специалистов
Сравнение