Установка и развёртывание программного обеспечения «Rowux»
Документ описывает порядок установки и запуска ПО «Rowux». Предназначен для системного администратора / инженера по эксплуатации.
#1. Требования к среде
Минимально необходимое программное обеспечение на сервере развёртывания:
- Операционная система семейства Linux (поддерживаются также macOS для целей разработки).
- Docker Engine и Docker Compose (v2).
- Доступ к сети для первичной загрузки образов и, при необходимости, к поставщикам языковых моделей.
Рекомендуемая минимальная конфигурация сервера для промышленной эксплуатации:
| Ресурс | Рекомендуемый минимум |
|---|---|
| Процессор | 8 логических ядер |
| Оперативная память | 16 ГБ (32 ГБ при активной аналитике/индексации) |
| Дисковое пространство | 50 ГБ и более (зависит от объёма баз знаний и артефактов) |
При изолированном исполнении кода аналитического агента на отдельной виртуальной машине требуется дополнительный вычислительный узел. При локальном размещении языковых моделей требования к ресурсам (в первую очередь к видеопамяти) определяются выбранной моделью.
#2. Состав дистрибутива
Дистрибутив представляет собой репозиторий исходного кода, содержащий:
- файл оркестрации
docker-compose.yml(и наложениеdocker-compose.egress.ymlдля промышленного контура с закрытым исходящим трафиком); - исходный код собственных сервисов (
ui,backend,ghost-writer-backend,ghost-writer-ui,analytics-agent,pii-guard,landing); - исходный код доработанных компонентов (
open-webui,langflow); - конфигурационные файлы среды-образцы (
.env.local— для локального запуска,.env.rowux-ru,.env.rowux-online— для промышленных сред); - файл описания области аутентификации (realm) для системы единого входа;
- вспомогательные сценарии (
scripts/) и документацию (docs/).
#3. Конфигурирование
Перед запуском необходимо подготовить файл переменных окружения .env. В
поставку входят готовые шаблоны под разные среды развёртывания:
| Файл | Назначение |
|---|---|
.env.local |
Локальный запуск и разработка (DOMAIN=localhost). |
.env.rowux-ru |
Промышленная среда (пример: DOMAIN=rowux.ru, с закрытым исходящим трафиком). |
.env.rowux-online |
Промышленная демонстрационная среда. |
Выбранный шаблон копируется в .env:
cp .env.local .env # для локального запуска
Ключевые группы переменных окружения:
- Домен и адреса сервисов —
DOMAIN, публичные и внутренние URL подсистем. - Учётные записи администраторов подсистем (чат-интерфейс, конструктор сценариев, система единого входа, база данных).
- Доступ к языковым моделям — базовые адреса и ключи поставщиков (в том числе российских), настройки шлюза моделей.
- Хранилища — параметры объектного (S3-совместимого) и векторного хранилищ.
- Параметры аналитического агента — модели, подключения к базам данных (только на чтение), настройки песочницы.
- Список разрешённых источников (
ROWUX_UI_URLS) для межсервисного доступа.
Секреты (пароли, ключи API) задаются в
.envи не входят в состав исходного кода. В промышленных средах рекомендуется задавать их средствами менеджера секретов среды развёртывания.
Для промышленной среды с закрытым исходящим трафиком в .env дополнительно
указывается наложение файла оркестрации:
COMPOSE_FILE=docker-compose.yml:docker-compose.egress.yml
#4. Запуск
Полный запуск всего комплекса выполняется из корневого каталога проекта:
docker compose down -v # (при необходимости) полная очистка предыдущего состояния
docker compose up -d # сборка образов и запуск всех сервисов в фоне
После выполнения команды все подсистемы поднимаются и связываются между собой автоматически. Сервисы инициализации (создание учётных записей хранилища, загрузка стартовых сценариев и моделей, инициализация подсистемы мониторинга) отрабатывают автоматически при первом старте.
#5. Первичная настройка после запуска
- Создание пользователей в системе единого входа (Keycloak). В области
аутентификации (realm)
rowuxучётные записи из коробки отсутствуют — их необходимо создать через административную консоль системы единого входа. - Проверка доступности. Подсистемы становятся доступны по адресам,
заданным в
.env. При локальном запуске основные подсистемы доступны на портах: портал — 3000, чат-интерфейс — 8091, конструктор сценариев — 7860, система единого входа — 8484, сервер-обвязка — 8092, подсистема мониторинга — 9090/3001. В промышленной среде доступ публикуется через пограничный маршрутизатор трафика (Traefik) по протоколу HTTPS (порты 80/443).
При локальном запуске, если административная консоль системы единого входа сообщает об обязательности HTTPS, требование можно отключить для локальной среды штатными командами административного клиента системы единого входа:
docker exec -it keycloak /opt/keycloak/bin/kcadm.sh config credentials \
--server http://localhost:8080 --realm master --user admin --password admin
docker exec -it keycloak /opt/keycloak/bin/kcadm.sh update realms/master \
-s sslRequired=NONE
Это требуется не на всех окружениях; на части машин локальный запуск по HTTP работает без дополнительных действий.
#6. Обновление и остановка
- Обновление: получить новую версию исходного кода, затем повторить
docker compose up -d --build— будут пересобраны и перезапущены только изменённые сервисы. Миграции схем баз данных выполняются автоматически при старте соответствующих сервисов. - Остановка:
docker compose down(с сохранением данных) либоdocker compose down -v(с удалением томов данных).
#7. Автоматизированное развёртывание (CI/CD)
Для промышленных сред поставляется конфигурация непрерывного развёртывания
(.gitlab-ci.yml): по событию в репозитории код доставляется на целевой сервер,
подставляется соответствующий среде файл .env, при необходимости собирается
образ песочницы аналитического агента и выполняется docker compose up -d --build.
Порядок промышленного развёртывания, в том числе изоляции песочницы, приведён в
docs/sandbox-rollout-runbook.md.