Разделы документации
Начало работы

Быстрый старт

Установка Charo на свой сервер, первый вход, подключение языковой модели и первого коннектора — от чистой машины до первого ответа ассистента.

Что понадобится

Charo разворачивается одним стеком Docker Compose на одной машине: веб-интерфейс, API, фоновый обработчик, исполнитель коннекторов, PostgreSQL, Valkey (кэш и очереди), векторное хранилище Qdrant, сервер моделей и обратный прокси Caddy. Наружу открывается только прокси.

От хоста нужен лишь Docker: всё остальное работает внутри контейнеров.

ПараметрМинимум
CPU4 ядра
Память8 ГБ
Свободный диск40 ГБ
ПОDocker с плагином Compose v2, bash

Это минимум для установки, в которой языковая модель и модель поиска по документам внешние. Модель поиска по умолчанию работает локально — это ещё 2 ядра и 2 ГБ памяти сверх таблицы; локальная языковая модель добавляет заметно больше. Разбор — в «Требованиях».

Привязки к дистрибутиву нет: подойдёт любой Linux с Docker Engine и плагином Compose. Образы публикуются под x86-64 (linux/amd64); на arm64 они пойдут только через эмуляцию.

Полный разбор требований, портов и правил исходящего трафика — в разделе «Требования»; состав компонентов и что менять при масштабировании — в разделе «Архитектура».

Charo работает в вашем контуре: наружу трафик уходит только к тем внешним сервисам, которые вы сами подключите (облачные провайдеры моделей, облачные источники данных), плюс к реестру образов при установке и обновлении.

Установка

На сервере с установленным Docker выполните:

curl -fsSL https://charo.tech/install.sh | bash

Установщик проходит шесть шагов и по каждому задаёт вопрос со значением по умолчанию:

  1. Проверка окружения — есть ли docker и плагин compose.
  2. Проверка ресурсов — сколько памяти, ядер и диска доступно Docker.
  3. Сетевые настройки — домен либо порт. Если указать домен, Caddy сам выпустит сертификат Let’s Encrypt и займёт порты 80 и 443; без домена система открывается по HTTP на порту 80, а если он занят — на 3000.
  4. Папка установки и версия — по умолчанию ~/charo и та версия, которую ставит запущенный установщик. Менять её вручную обычно не нужно: чтобы обновиться, запустите более свежий установщик и выберите обновление.
  5. Установка и запуск — скачиваются образы, поднимается стек, предзагружается модель поиска по документам.
  6. Готово — установщик печатает адрес системы и список полезных команд.

Выбирать модели при установке не нужно: поиск по документам сразу работает на локальной модели multilingual-e5-small, а языковую модель вы подключаете после первого входа. Обе можно сменить потом в админке.

Скрипт сам создаёт секреты (ключ шифрования учётных данных, секрет сессий, пароль базы) и кладёт их в ~/charo/.env с правами 600. Файл нужно сохранить в менеджере секретов: ключ шифрования нельзя сменить на работающей установке — миграции перешифрования нет, и без него резервная копия базы бесполезна.

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

Что скачивается и откуда

Образы приходят из реестра charo.cr.cloud.ru — в том числе зеркала PostgreSQL, Valkey, Qdrant и Caddy. Веса модели поиска по документам сервер забирает с charo-models.s3-website.cloud.ru. Модели распознавания текста скачивать не нужно — они уже внутри образа. Docker Hub не используется.

Для контура без выхода в интернет готового офлайн-пакета нет: образы и веса моделей нужно заранее перенести во внутренний реестр и на внутреннее зеркало, а адреса переопределить переменными окружения в .env. Установка на сервере без доступа к сети завершится ошибкой на шаге скачивания.

Управление установкой

Все команды выполняются в папке установки:

docker compose ps         # состояние контейнеров
docker compose logs -f    # живые логи
docker compose stop       # остановить, данные сохраняются
docker compose up -d      # запустить снова

Повторный запуск установщика в существующей папке предложит перезапустить, обновить или удалить установку. Остановка и полное удаление доступны и флагами:

curl -fsSL https://charo.tech/install.sh | bash -s -- --shutdown
curl -fsSL https://charo.tech/install.sh | bash -s -- --delete-data

Документы и чаты живут в томах Docker charo_db_volume и charo_qdrant-data; их удаляет только --delete-data.

Первый вход и администратор

Откройте адрес, который напечатал установщик: https://ваш-домен либо http://адрес-сервера (или http://адрес-сервера:3000, если порт 80 был занят).

Первый зарегистрированный пользователь автоматически получает роль администратора и попадает в группу администраторов. Зарегистрируйтесь с корпоративной почтой и надёжным паролем — эта учётная запись управляет всей инсталляцией. По умолчанию требуется пароль от 8 символов; требования к регистру, цифрам и спецсимволам включаются переменными окружения.

Остальных сотрудников администратор приглашает сам; роли и группы описаны в разделе «Права доступа».

Подключение языковой модели

Сразу после установки языковая модель не подключена — без неё работает поиск, но не ответы ассистента. Подключите провайдера:

  1. Откройте Админка → Языковые модели.
  2. Выберите провайдера: Yandex AI Studio, OpenAI, Anthropic, Azure OpenAI, OpenRouter, Ollama, LM Studio, LiteLLM Proxy или произвольный OpenAI-совместимый сервер.
  3. Укажите API-ключ (или адрес сервера, если модель работает в вашем контуре) и выберите модель по умолчанию.

Подробности, включая полностью автономную конфигурацию, — в разделе «Языковые модели».

Первый коннектор

Коннекторы подключают источники знаний: вики, файловые хранилища, задачи, почту. Чтобы быстро проверить систему:

  1. Откройте Админка → Добавление коннектора.
  2. Выберите «Загрузка файлов» и загрузите несколько документов — например, регламенты или инструкции.
  3. Дождитесь окончания индексации: на странице «Подключённые коннекторы» появится число проиндексированных документов и время последней синхронизации.

Полный список из восьми коннекторов — в обзоре коннекторов.

Первый вопрос ассистенту

Вернитесь на главный экран и задайте вопрос по загруженным документам. Ассистент найдёт релевантные фрагменты, сформулирует ответ и приложит ссылки на источники — каждую цитату можно раскрыть и проверить.

Что дальше