BOX 3.x
Настройка модулей BOX 3.x
Параметры видеоархива, DataLens, WebRTC и языка интерфейса; зависимости модулей и проверка после включения.
На этой странице
Что такое настраиваемые макрофункции
Дополнительные возможности BOX 3.x включаются по задачам конкретного проекта. В референсной конфигурации большинство таких функций отключено, чтобы не занимать вычислительные ресурсы, память и хранилище без необходимости.
Точный способ активации зависит от установленного релиза, состава доменов и образов сервисов. Перед изменением сверяйте версии компонентов и используйте инструкцию для фактически развёрнутого контура.
Видеоархив: домен и параметры
Добавьте video-archive в массив DOMAINS в domain.conf установленного BOX. Затем настройте переменные архива в конфигурации развёртывания. В этом варианте модуля запись поддерживает TCP-потоки; наличие картинки в интерфейсе само по себе не подтверждает возможность архивной записи.
Значения в таблице — пример конфигурации, а не расчёт ёмкости для вашей площадки. Постоянное и временное хранилища имеют отдельные лимиты. h264_nvenc требует совместимого NVIDIA GPU и доступного кодировщика.
- 1Камера: TCP-поток↓ Запись
Подтвердите доступ к потоку с узла архива.
- 2Домен video-archive↓ Сохранение
Сервис создаёт фрагменты и использует временное хранилище.
- 3MinIO / video-archive↓ Чтение
Проверьте появление объектов и фактический размер хранилища.
- 4Архив и карточка события
Откройте фрагмент в браузере, проверьте время и нужную камеру.
Запись, обработка фрагмента для события и воспроизведение — разные этапы; проверяйте каждый отдельно.
| Параметр | Пример значения | Назначение / единицы |
|---|---|---|
| VIDEO_ARCHIVE_IS_ENABLED | true | Включение видеоархива |
| VIDEO_ARCHIVE_IS_RECORD_ALL_CAMERAS | false | Не включать запись всех камер автоматически |
| VIDEO_ARCHIVE_VIDEO_DURATION_SEC | 900 | Длительность видеофрагмента, секунды |
| VIDEO_ARCHIVE_VIDEO_DELTA_SEC | 5 | Длительность при совпадении начала и конца записи, секунды |
| VIDEO_ARCHIVE_FAILED_CAMERA_WAIT_VIDEO_SEC | 150 | Ожидание после последнего кадра перед повторной записью, секунды |
| VIDEO_ARCHIVE_MAX_MEDIA_STORAGE_SIZE_GB | 200.0 | Лимит постоянного хранилища, ГБ |
| VIDEO_ARCHIVE_MAX_TMP_MEDIA_STORAGE_SIZE_GB | 1.0 | Лимит временного хранилища, ГБ |
| VIDEO_ARCHIVE_TMP_DIR | <абсолютный путь> | Каталог временных файлов offline-post-inference |
| VIDEO_ARCHIVE_FFMPEG_ENCODE_CODEC / VIDEO_ARCHIVE_FFMPEG_CROP_CODEC | h264_nvenc | Кодирование и обрезка видео |
| MINIO_BUCKET_VIDEO_ARCHIVE | video-archive | Бакет архива в MinIO |
DataLens: settings.json и абсолютный путь данных
Для отображения ссылки на развёрнутую статистику задайте DASHBOARD_DATALENS_METRICS_URL в ui-rest/ui-config/settings.json. В старых сборках параметр мог находиться в config.json; используйте файл, который читает ваш релиз. Пустая строка отключает ссылку.
Ниже показан фрагмент settings.json. Подставьте опубликованный URL дашборда. Сама ссылка не создаёт подключения BI к базе: домен analytics и доступ к данным настраиваются отдельно. COMPOSE_DATA для аналитики задаётся абсолютным путём.
| Проверка | Ожидаемый результат |
|---|---|
| Файл конфигурации | Параметр прочитан из settings.json целевого релиза |
| COMPOSE_DATA | Абсолютный путь к данным, а не ./compose-data |
| Раздел «Доска» | Ссылка открывает нужный дашборд |
| Данные и права BI | Дашборд содержит данные нужного объекта; доступ проверен под целевым пользователем |
{
"DASHBOARD_DATALENS_METRICS_URL": "https://<bi-host>/<dashboard-id>"
}WebRTC: адрес coturn
Для трансляции из медиасервера в браузер используется WebRTC. В описанной конфигурации прохождение NAT обеспечивается через TCP и coturn. Сервис inf-coturn входит в домен inference.
Задайте COTURN_HOST_IP в .env домена inference: это адрес интерфейса coturn, доступный клиентам. Медиасервер должен использовать тот же адрес. Если BOX расположен за NAT и клиентам нужен доступ через Интернет, coturn размещается на доступном им узле с публичным IP.
- Проверьте доступность coturn из сети пользователя, а не только с сервера BOX.
- Проверьте воспроизведение в браузере из локальной и внешней сети, если предусмотрены оба варианта.
- Открывающаяся страница BOX не подтверждает работоспособность видеотранспорта.
# .env домена inference
COTURN_HOST_IP=<доступный_клиентам_IP>Язык интерфейса: frontend и backend
DEFAULT_LANGUAGE задаёт начальный язык frontend, USER_DEFAULT_UI_LANG — начальный язык пользователя в backend. Допустимы ru и en. На backend переменная передаётся, в частности, в st-auth и st-report-email.
Расположение config.json зависит от каталога установки. Проверьте наличие файла ui-rest/ui-config/config.json: его отсутствие может приводить к бесконечной загрузке интерфейса.
| Уровень | Параметр | Русский интерфейс |
|---|---|---|
| Frontend: config.json | DEFAULT_LANGUAGE | "ru" |
| Backend: .env и environment сервисов | USER_DEFAULT_UI_LANG | ru |
// Фрагмент config.json
{
"DEFAULT_LANGUAGE": "ru"
}
# .env
USER_DEFAULT_UI_LANG=ruБезопасный порядок включения
Макрофункция может затрагивать несколько доменов, переменные окружения, volumes, базы данных, Kafka-топики и элементы интерфейса. Поэтому её включение следует оформлять как управляемое изменение, а не как одиночное переключение.
Не переносите примеры адресов, паролей и служебных учётных записей из инструкции в production. Значения должны создаваться для конкретного контура и храниться в принятой системе управления секретами.
- Зафиксировать бизнес-задачу и владельца функции
- Проверить версию BOX и зависимости сервисов
- Оценить GPU, CPU, RAM, сеть и объём хранения
- Сохранить текущую конфигурацию и подготовить откат
- Изменить compose и env только в нужных доменах
- Перезапустить затронутые сервисы по регламенту
- Проверить метрики, логи, UI и полный пользовательский сценарий
Идентификация, аналитика и LLM
Интеграция с Active Directory требует выделенной учётной записи чтения, согласованной группы пользователей, DNS, контроллеров домена и корректной настройки LDAPS. После запуска проверяются первичная загрузка, периодическая синхронизация и блокировка доступа при исключении пользователя из группы.
DataLens добавляет переход к расширенной статистике и требует корректного URL дашборда и подготовленных аналитических данных. Keycloak и LLM-интеграция подключаются только после проверки совместимости образов и зависимых сервисов.
Видео и специализированные источники
Видеоархив разворачивается как отдельный домен и требует расчёта постоянного и временного хранилища, кодеков и политики записи. Для описанного контура архив работает с TCP-потоками; транспорт и совместимость каждой камеры следует проверить до массового включения.
Видеорегистраторы, тепловизоры, виртуальные камеры, WebRTC и распознавание лиц требуют собственных сервисов или параметров. Для ресурсоёмких функций заранее проверяйте запас GPU и возможность оптимизации модели.
Карты, позиционирование и устройства
Карта OpenStreetMap и схема объекта являются альтернативными режимами отображения и не должны подключаться одновременно. Позиционирование по умолчанию отключается и включается только при наличии согласованного провайдера и потока данных, например GoodWAN или DIWO.
Периферийные устройства и счётчики требуют проверки физического подключения, сетевого маршрута, правил реакции и корректности событий. Приёмка должна включать не только статус сервиса, но и фактическое действие устройства.
Уведомления и доставка результатов
Каналы уведомлений настраиваются после проверки формирования исходного события. Для каждого канала фиксируются получатель, формат, ограничения частоты, повторные попытки, тайм-аут и способ контроля доставки.
В документации выделены агент уведомлений, VK Teams, почтовая рассылка, персональный Telegram-бот и настройка ссылок в отчётах. Устаревшие каналы не следует включать в новые проекты.
Мониторинг, журналы и очистка данных
После включения новой функции добавьте её в эксплуатационный контроль. Метрики и состояние сервисов просматриваются через Prometheus и Grafana, журналы агрегируются в Loki. Для диагностики проверяйте сервис, его зависимости, Kafka, хранилище и пользовательский результат.
Лимиты хранения задаются явно в конфигурации и контролируются по фактическому заполнению дисков. Не полагайтесь только на очистку из интерфейса: до ввода в эксплуатацию проверьте реальное удаление данных и поведение при достижении лимита.
Настройки интерфейса и значения по умолчанию
Отдельная группа документации описывает WebRTC, визуализацию, виртуальные камеры, распознавание лиц и сокеты. Их фактическое состояние и расположение параметров зависит от версии поставки.
Язык интерфейса должен быть согласован одновременно для frontend и зависимых backend-сервисов. После изменения очистите клиентский кэш при необходимости и проверьте вход, основные экраны, отчёты и уведомления.
Чек-лист приёмки макрофункции
Изменение считается завершённым, когда подтверждён не только запуск контейнеров, но и сквозной пользовательский результат. Итоговые параметры, версии и процедура отката должны попасть в эксплуатационный комплект проекта.
| Контроль | Что подтвердить | Результат |
|---|---|---|
| Совместимость | Версии образов и зависимых сервисов соответствуют инструкции | Зафиксированный комплект версий |
| Ресурсы | После включения сохраняется запас CPU, GPU, RAM и диска | Замеры до и после |
| Данные | Созданы нужные хранилища, volumes и политики очистки | Запись и чтение проверены |
| Обмен | Сообщения проходят через API или Kafka без устойчивого lag | Контрольное событие доставлено |
| Интерфейс | Функция видна только разрешённым ролям и объектам | Проверка тестовым пользователем |
| Эксплуатация | Метрики, журналы, backup и откат доступны команде | Обновлённый runbook |
