Конфигурация системы
Конфигурация системы
StormBPMN использует двухуровневую систему настроек, которая обеспечивает гибкость конфигурации для различных сценариев развертывания.
Два уровня настроек
Уровень 1: Переменные окружения (ENV) - базовые настройки инфраструктуры Уровень 2: Административная панель - бизнес-логика и функциональность
Уровень 1: Переменные окружения (ENV)
Переменные окружения настраиваются до запуска контейнера и определяют базовую инфраструктуру системы. Эти параметры требуют перезагрузки приложения для применения изменений.
| Переменная | Описание | Пример значения | Обязательно |
|---|---|---|---|
| JDBC_URL | Строка подключения к PostgreSQL | jdbc:postgresql://192.168.0.6:5432/storm | ✅ |
| JDBC_USERNAME | Имя пользователя базы данных | stormuser | ✅ |
| JDBC_PASSWORD | Пароль пользователя | secure_password_123 | ✅ |
| JAVA_OPTS | Настройки памяти для JVM | "-Xmx8g" | ✅ |
| SPRING_PROFILES_ACTIVE | Профиль Spring Boot | prod | ✅ |
| JWTSECRET | Соль для шифрования паролей | Не менее 64 случайных символов | ✅ |
| LICENSE_KEY | Лицензионный ключ Enterprise | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... | ✅ |
| S3_ENDPOINT | URL S3-совместимого хранилища | http://192.168.0.4:9000 | Файлы |
| S3_ACCESS_KEY | Ключ доступа к S3 | stormbpmn-s3-user | Файлы |
| S3_SECRET_KEY | Секретный ключ S3 | stormbpmn-s3-password | Файлы |
| S3_REGION | Регион S3 (если имеется) | ru-3 | Файлы |
| S3_BUCKET_UPLOADS | Бакет по умолчанию | storm-uploads | Файлы |
| S3_BUCKET_USERS | Бакет для пользователей | storm-users | Файлы |
| S3_BUCKET_IMPORTS | Бакет для импортов | storm-imports | Файлы |
| S3_VIRTUAL_HOST | Тип адресации vHosted | false | Файлы |
| S3_SINGLE_USERS_BUCKET | Режим единого бакета для пользователей | true | Файлы |
| PLANTUML_SERVER | URL сервера PlantUML | http://192.168.0.5:8090/ | Опционально |
| GOTENBERG_URL | URL сервиса Gotenberg | http://192.168.0.5:3001 | |
| EMAIL_PROVIDER | Тип почтового провайдера | listmonk или smtp | ✅ |
| LISTMONK_BASE_URL | URL API ListMonk | http://localhost:9000/api | ✅ |
| LISTMONK_USERNAME | Имя API пользователя | stormbpmn | ✅ |
| LISTMONK_PASSWORD | API токен | api-token-here | ✅ |
| REDIS_ENABLED | Включение Redis (для совместного редактирования) | true | Коллаборация |
| REDIS_HOST | Хост Redis | 192.168.0.7 | Коллаборация |
| REDIS_PORT | Порт Redis | 6379 | Коллаборация |
| REDIS_PASSWORD | Пароль Redis | your-password | Коллаборация |
| REDIS_DATABASE | Номер базы данных Redis | 0 | Коллаборация |
| REDIS_TIMEOUT | Таймаут подключения к Redis | 1000ms | Коллаборация |
| AUDIT_ENABLED | Включение аудита запросов | true | Безопасность |
| AUDIT_CHANNEL | Канал аудит-логов | syslog | Безопасность |
| SYSLOG_SERVERS | Список syslog серверов | localhost:514,192.168.78.53:601 | Безопасность |
| SYSLOG_SOURCE | Название приложения в логах | stormbpmn | Безопасность |
Важные замечания
- PostgreSQL схема: Для подключения к определенной схеме используйте:
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema - Расширения PostgreSQL: база должна быть в кодировке UTF8 и иметь расширения pgvector (
vector), pg_trgm, pgcrypto, uuid-ossp, hstore.pg_trgmсоздаётся вручную, остальные — миграциями при первом запуске. Стандартныйpostgres:17не содержит pgvector — используйте образpgvector/pgvector:pg17. Подробнее: «Требования к PostgreSQL». - S3-хранилище: Без S3 ограничены возможности: нет миниатюр диаграмм, аватаров пользователей и работы с документами
- EMAIL_PROVIDER: Для ListMonk укажите
listmonk, для простого SMTP -SMTP - SMTP настройки: При использовании простого SMTP дополнительные параметры настраиваются в административной панели
Легенда обязательности
| Символ | Значение |
|---|---|
| ✅ | Обязательно - система не запустится без этих параметров |
| Файлы | Для файлов - нужно для работы с документами и изображениями |
| Опционально | Опционально - для дополнительной функциональности |
| Для PDF - требуется для генерации документов | |
| Коллаборация | Совместное редактирование - Redis для multi-instance, не требуется при одном экземпляре |
| Безопасность | Для безопасности - нужно для соответствия требованиям ИБ |
Уровень 2: Административная панель
Настройки в административной панели управляют бизнес-логикой приложения и могут изменяться без перезагрузки системы.
Доступ к админке
Административная панель доступна по адресу: /app/admin Требуются права администратора команды.
Общие настройки системы
Базовые параметры
| Параметр | Описание | Пример значения | Обязательно |
|---|---|---|---|
| baseUrl | Базовый URL для ссылок в письмах | https://stormbpmn.company.com | ✅ |
Настройки команд и пользователей
| Параметр | Описание | Рекомендация |
|---|---|---|
| enableCommonAssets | Общие элементы архитектуры для всех команд | ✅ Включить для больших организаций |
| enableCommonRoles | Общие роли для всех команд | ✅ Включить для унификации |
| enableCommonUsers | Общая организационная структура | ✅ Включить при централизованном управлении |
| autoJoinTeamId | ID команды для автоматического добавления новых пользователей | Укажите ID основной команды |
| disableTeamPopUp | Отключить предложение создать команду | ✅ Включить при централизованном управлении |
| disableTeamCreation | Запретить создание команд | ✅ Включить при строгом контроле |
Публичный доступ
| Параметр | Описание | Рекомендация |
|---|---|---|
| allDiagramsAnonAccess | Анонимный доступ ко всем диаграммам | ❌ Отключить для безопасности |
| enableAnonSearchPage | Поиск для анонимных пользователей | По требованию бизнеса |
Экран входа и регистрация
| Параметр | Описание | Рекомендация |
|---|---|---|
| showRegistraton | Отображать базовую регистрацию. При выключении скрываются ссылка «Создать сейчас» на экране входа, форма регистрации и кнопка регистрации на странице лицензии (с версии 6.6.6668) | ❌ Отключить, если пользователи заводятся только администратором/через SSO |
Ключ настройки — именно `showRegistraton`
В ключе исторически пропущена буква «i» (не showRegistration). Ищите настройку в админке по названию «Отображать базовую регистрацию» (группа «Безопасность»).
Лицензирование
| Параметр | Описание | Рекомендация |
|---|---|---|
| autoEnableEnterpriseLicense | Автоматическая выдача лицензий | ✅ Включить для упрощения |
| createPendingEnterpriseUsers | Создавать неактивную учётную запись при попытке входа, если авто-выдача лицензий отключена. Учётная запись появляется в «Управлении пользователями» со статусом «Ожидает активации» и не потребляет лицензию, пока администратор её не активирует. Подробнее: Учётные записи «Ожидает активации» | Включить, если лицензии выдаются по заявкам через службу поддержки |
| licensePageHtml | Собственный HTML-блок на странице статуса лицензии /license-active (с версии 6.6.6668). Подробнее: Кастомизация страницы лицензии | По требованию бизнеса |
Сценарий «выдача лицензий по заявкам» (СТП)
Если лицензии выдаются по согласованным заявкам, выключите autoEnableEnterpriseLicense и включите createPendingEnterpriseUsers:
- Пользователь впервые входит через SSO/LDAP (или регистрируется) — учётная запись создаётся неактивной, лицензия не расходуется. Пользователь видит сообщение «учетная запись создана, но лицензия не выдана — обратитесь к администратору сервера».
- Администратор в «Управлении пользователями» видит такие учётные записи со статусом «Ожидает активации» и активирует нужную в один клик. При нехватке свободных лицензий активация завершится понятной ошибкой.
- После активации пользователь входит без ограничений, учётная запись начинает потреблять лицензию.
При выключенных обеих настройках вход неизвестному пользователю запрещён и учётная запись не создаётся (прежнее поведение).
Настройки простого SMTP
Требуется перезагрузка
Все настройки SMTP применяются только после перезагрузки приложения.
| Параметр | Описание | Пример значения |
|---|---|---|
| simpleEmailEnabled | Включить простой SMTP | true |
| simpleSmtpHost | SMTP хост | smtp.company.com |
| simpleSmtpPort | SMTP порт | 587 |
| simpleSmtpUsername | SMTP пользователь | stormbpmn@company.com |
| simpleSmtpPassword | SMTP пароль | secure-password |
| simpleSmtpFrom | Email отправителя | stormbpmn@company.com |
| smtpProtocol | Протокол SMTP, возможные значения SMTP(без шифрования), STARTTLS, SMTPS | STARTTLS |
Настройки шаблонов ListMonk
Используйте в шаблоне выражение {{ .Tx.Data.storm_placeholder }}, где storm_placeholder - это название подстановки из таблицы.
Пример
Выражение {{ .Tx.Data.diagram_name }} отобразит в письме название диаграммы.
| Параметр | Тип уведомления | Подстановки |
|---|---|---|
| commentEmailTemplateId | Новый комментарий | comment_author, diagram_name, diagram_url, html_text |
| approvalTemplateId | Запрос на согласование | invite_author, diagram_name, diagram_url |
| restorePasswordTemplateId | Восстановление пароля | restoreCode |
| approvalCompletedTemplateId | Согласование завершено | diagram_name, diagram_url |
| userActivationTemplateId | Активация пользователя | activation_token |
| secureUpdateTemplateId | Приглашение к диаграмме | invite_author, diagram_name, diagram_url |
| inviteDiagramAndRegisterTemplateId | Приглашение + регистрация | invite_author, diagram_name, diagram_url, register_url |
| teamInviteTemplateId | Приглашение в команду | invite_author, team_name |
| teamInviteAndRegisterTemplateId | Приглашение в команду + регистрация | invite_author, team_name, register_url |
Дополнительные настройки
Для сложных сетевых конфигураций
| Параметр | Описание | Пример значения |
|---|---|---|
| gotenbergOverrideBaseUrl | Прямой адрес для обхода балансировщиков | http://corp.storm.internal |
Порядок конфигурации
1. Настройка ENV переменных
Обязательные параметры для запуска:
JDBC_URL=jdbc:postgresql://db:5432/stormbpmn JDBC_USERNAME=stormbpmn_user JDBC_PASSWORD=secure_password JAVA_OPTS="-Xmx8g" SPRING_PROFILES_ACTIVE=prod JWTSECRET=your-secret-key-here LICENSE_KEY=your-license-keyДополнительные сервисы (по необходимости):
# S3-хранилище MINIO_ENDPOINT=http://minio:9000 MINIO_ACCESSKEY=stormbpmn-user MINIO_SECRETKEY=secure-password # Почта EMAIL_PROVIDER=listmonk LISTMONK_BASE_URL=http://listmonk:9000/api LISTMONK_USERNAME=stormbpmn LISTMONK_PASSWORD=api-token # Redis (для совместного редактирования, обязателен при multi-instance) REDIS_ENABLED=true REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD=your-passwordПерезапустите контейнер для применения изменений
2. Настройка через админку
- Войдите в административную панель:
/app/admin - Настройте базовые параметры:
baseUrl- обязательно для корректных ссылок- Политики команд и пользователей
- Настройте интеграции:
- Шаблоны писем (для ListMonk)
- SMTP параметры (для простой почты)
- Сохраните изменения - применяются мгновенно
Проверка конфигурации
Проверочный список
Распространенные проблемы
| Проблема | Причина | Решение |
|---|---|---|
| Приложение не запускается | Неверные JDBC параметры | Проверьте подключение к БД |
| Нет миниатюр диаграмм | Неверные MINIO параметры | Проверьте доступность S3 |
| Не приходят письма | Неверные почтовые настройки | Проверьте EMAIL_PROVIDER и параметры |
| Ошибки лицензии | Неверный LICENSE_KEY | Обратитесь к менеджеру |
| Не скачивается PDF | Ненастроен Gotenberg | Проверьте GOTENBERG_URL и доступность сервиса |
| Нет совместного редактирования | REDIS_ENABLED=false или Redis недоступен | Проверьте REDIS_ENABLED, REDIS_HOST и подключение |
Связанная документация
- Быстрый старт - минимальная конфигурация
- Production-Ready - полная настройка
- Безопасность - SIEM и аудит
- Мониторинг - метрики и алерты
Нужна помощь?
Если возникли вопросы по конфигурации, обратитесь к help@stormbpmn.com или вашему менеджеру.
Видимость настроек для неавторизованных пользователей
В административной панели у каждой настройки есть тумблер «Настройка видимости» — он разрешает передачу значения на фронтенд до входа пользователя (экран логина, страница лицензии).
С версии 6.6.6668 правила ужесточены
Раньше настройка с непроставленной видимостью могла попадать в анонимную выдачу. Теперь неавторизованному пользователю отдаются только настройки с явно включённой видимостью. После обновления проверьте, что тумблер включён у настроек, которые влияют на экран входа:
showBasicLogin,showCustomLoginButtonName,CustomLoginButtonNameenableYandexSSOshowRegistratoncustomMenuItemslicensePageHtml
Если после обновления форма логина «пропала» — откройте страницу входа с параметром ?showBasicLogin=true и включите видимость нужных настроек в админке.
Секреты не отдаются анониму даже с включённой видимостью
Настройки, в имени которых есть подстроки secret, token, password, passwd, private, credential, apikey, api_key, smtp, prompt, ldap, исключаются из анонимной выдачи всегда — это защита от случайной утечки. Обратная сторона: не используйте эти слова в именах собственных настроек, которые должны быть видны до входа. И по-прежнему не включайте видимость для паролей и конфиденциальных данных.