Перейти к основному содержанию

Конфигурация системы

Около 6 мин

Конфигурация системы

StormBPMN использует двухуровневую систему настроек, которая обеспечивает гибкость конфигурации для различных сценариев развертывания.

Два уровня настроек

Уровень 1: Переменные окружения (ENV) - базовые настройки инфраструктуры Уровень 2: Административная панель - бизнес-логика и функциональность

Уровень 1: Переменные окружения (ENV)

Переменные окружения настраиваются до запуска контейнера и определяют базовую инфраструктуру системы. Эти параметры требуют перезагрузки приложения для применения изменений.

ПеременнаяОписаниеПример значенияОбязательно
JDBC_URLСтрока подключения к PostgreSQLjdbc:postgresql://192.168.0.6:5432/storm✅
JDBC_USERNAMEИмя пользователя базы данныхstormuser✅
JDBC_PASSWORDПароль пользователяsecure_password_123✅
JAVA_OPTSНастройки памяти для JVM"-Xmx8g"✅
SPRING_PROFILES_ACTIVEПрофиль Spring Bootprod✅
JWTSECRETСоль для шифрования паролейНе менее 64 случайных символов✅
LICENSE_KEY_V2Лицензионный ключ Enterprise v2Получите по полному коду активации инсталляции — где взять кодПри переходе на v2; для v1 не требуется
LICENSE_KEYУстаревший лицензионный ключ Enterprise v1Существующее значениеВременно поддерживается
S3_ENDPOINTURL S3-совместимого хранилищаhttp://192.168.0.4:9000Файлы
S3_ACCESS_KEYКлюч доступа к S3stormbpmn-s3-userФайлы
S3_SECRET_KEYСекретный ключ S3stormbpmn-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Тип адресации vHostedfalseФайлы
S3_SINGLE_USERS_BUCKETРежим единого бакета для пользователейtrueФайлы
S3_EXTERNAL_ENDPOINTАдрес S3 для ссылок, которые открывает браузер (если отличается от S3_ENDPOINT)https://s3.company.comФайлы (необязательно)
PLANTUML_SERVERURL сервера PlantUMLhttp://192.168.0.5:8090/Опционально
GOTENBERG_URLURL сервиса Gotenberg. Если не задан, действует публичный демо-сервис https://demo.gotenberg.dev — в production задайте свойhttp://192.168.0.5:3001PDF
GOTENBERG_WAIT_FOR_EXPRESSIONВыражение, которого Gotenberg ждёт на странице перед печатью в PDF (менять не нужно)window.overlayReady != undefined && window.overlayReadyPDF (необязательно)
EMAIL_PROVIDERТип почтового провайдераlistmonk или smtp✅
LISTMONK_BASE_URLURL API ListMonkhttp://localhost:9000/api✅
LISTMONK_USERNAMEИмя API пользователяstormbpmn✅
LISTMONK_PASSWORDAPI токенapi-token-here✅
REDIS_ENABLEDВключение Redis (для совместного редактирования)trueКоллаборация
REDIS_HOSTХост Redis192.168.0.7Коллаборация
REDIS_PORTПорт Redis6379Коллаборация
REDIS_PASSWORDПароль Redisyour-passwordКоллаборация
REDIS_DATABASEНомер базы данных Redis0Коллаборация
REDIS_TIMEOUTТаймаут подключения к Redis1000msКоллаборация
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_* — см. «Простой SMTP»

Легенда обязательности

СимволЗначение
✅Обязательно - система не запустится без этих параметров
ФайлыДля файлов - нужно для работы с документами и изображениями
ОпциональноОпционально - для дополнительной функциональности
PDFДля PDF - требуется для генерации документов
КоллаборацияСовместное редактирование - Redis для multi-instance, не требуется при одном экземпляре
БезопасностьДля безопасности - нужно для соответствия требованиям ИБ
SMARTCAPTCHA_SECRETСекретный ключ Yandex SmartCaptcha для защиты форм входа и регистрации

Уровень 2: Административная панель

Настройки в административной панели управляют бизнес-логикой приложения и могут изменяться без перезагрузки системы.

Доступ к админке

Административная панель доступна по адресу: /app/admin Требуются права администратора команды.

Общие настройки системы

Базовые параметры

ПараметрОписаниеПример значенияОбязательно
baseUrlБазовый URL для ссылок в письмахhttps://stormbpmn.company.com✅

Настройки команд и пользователей

ПараметрОписаниеРекомендация
enableCommonAssetsОбщие элементы архитектуры для всех команд✅ Включить для больших организаций
enableCommonRolesОбщие роли для всех команд✅ Включить для унификации
enableCommonUsersОбщая организационная структура✅ Включить при централизованном управлении
autoJoinTeamIdID команды для автоматического добавления новых пользователейУкажите ID основной команды
disableTeamPopUpОтключить предложение создать команду✅ Включить при централизованном управлении
disableTeamCreationЗапретить создание команд✅ Включить при строгом контроле

Публичный доступ

ПараметрОписаниеРекомендация
allDiagramsAnonAccessАнонимный доступ ко всем диаграммам❌ Отключить для безопасности
enableAnonSearchPageПоиск для анонимных пользователейПо требованию бизнеса

Экран входа и регистрация

ПараметрОписаниеРекомендация
showRegistratonОтображать базовую регистрацию. При выключении скрываются ссылка «Создать сейчас» на экране входа, форма регистрации и кнопка регистрации на странице лицензии (с версии 6.6.6668)❌ Отключить, если пользователи заводятся только администратором/через SSO

Ключ настройки — именно `showRegistraton`

В ключе исторически пропущена буква «i» (не showRegistration). Ищите настройку в админке по названию «Отображать базовую регистрацию» (группа «Безопасность»).

Лицензирование

ПараметрОписаниеРекомендация
autoEnableEnterpriseLicenseАвтоматическая выдача лицензий✅ Включить для упрощения
createPendingEnterpriseUsersСоздавать неактивную учётную запись при попытке входа, если авто-выдача лицензий отключена. Учётная запись появляется в «Управлении пользователями» со статусом «Ожидает активации» и не потребляет лицензию, пока администратор её не активирует. Подробнее: Учётные записи «Ожидает активации»Включить, если лицензии выдаются по заявкам через службу поддержки
licensePageHtmlСобственный HTML-блок на странице статуса лицензии /license-active (с версии 6.6.6668). Подробнее: Кастомизация страницы лицензииПо требованию бизнеса

Брендинг и страница входа

Название и логотип компании, приветствие, фирменный цвет, ссылки поддержки и способы входа удобнее настраивать на отдельной вкладке «Брендинг и страница входа» (Администрирование). Все эти настройки публичные: их читает страница входа до авторизации. Подробности и список ключей (brandCompanyName, brandWelcomeTitle, brandLogo, brandLogoDark, brandPrimaryColor, brandColorOverridesTeams, supportMode, kbMode и другие): «Брендинг и страница входа».

Сценарий «выдача лицензий по заявкам» (СТП)

Если лицензии выдаются по согласованным заявкам, выключите autoEnableEnterpriseLicense и включите createPendingEnterpriseUsers:

  1. Пользователь впервые входит через SSO/LDAP (или регистрируется) — учётная запись создаётся неактивной, лицензия не расходуется. Пользователь видит сообщение «учетная запись создана, но лицензия не выдана — обратитесь к администратору сервера».
  2. Администратор в «Управлении пользователями» видит такие учётные записи со статусом «Ожидает активации» и активирует нужную в один клик. При нехватке свободных лицензий активация завершится понятной ошибкой.
  3. После активации пользователь входит без ограничений, учётная запись начинает потреблять лицензию.

При выключенных обеих настройках вход неизвестному пользователю запрещён и учётная запись не создаётся (прежнее поведение).

Привязка ключа v2 к инсталляции

Лицензионный ключ LICENSE_KEY_V2 привязан к конкретной инсталляции. Если ключ не подходит, система не запустится и на экране входа будет отображаться одно из следующих сообщений:

  • «Лицензионный ключ не задан или не читается» — переменная LICENSE_KEY_V2 не задана или содержит некорректные данные.
  • «Лицензионный ключ выдан без привязки к инсталляции» — ключ выпущен до появления механизма привязки и больше не действует. Получите новый ключ.
  • «Лицензионный ключ не подходит этой инсталляции» — ключ выпущен для другой инсталляции. Получите новый ключ.
  • «Не удалось проверить привязку лицензии» — техническая ошибка при проверке. Нажмите кнопку «Повторить».

Приоритет: если задан LICENSE_KEY_V2, он используется вместо устаревшего LICENSE_KEY.

Настройки простого SMTP

Только переменные окружения

Простой SMTP настраивается переменными окружения контейнера backend (EMAIL_PROVIDER=smtp и SMTP_*) — см. «Простой SMTP». Раздела SMTP в административной панели больше нет. Если раньше хост, порт или учётные данные были заданы там, перенесите их в переменные окружения до обновления — иначе письма перестанут отправляться. Изменения применяются после перезапуска контейнера.

Настройки шаблонов 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 переменных

  1. Основные параметры:

    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_V2=your-license-v2
    

    Существующие инсталляции могут временно продолжать использовать LICENSE_KEY без немедленной смены конфигурации. Лицензии v1 устарели и имеют известное ограничение безопасности, поэтому для новых инсталляций и плановой миграции используйте LICENSE_KEY_V2.

    Если задан непустой LICENSE_KEY_V2, приложение использует только его. Неверный v2 не приводит к возврату на LICENSE_KEY: исправьте либо удалите или очистите v2 и перезапустите все экземпляры. При неверном непустом v2 бэкенд может запуститься в заблокированном лицензионном режиме, сохраняя вход существующему владельцу для восстановления через /admin-onboarding. При пустом v2 действует legacy-путь: отсутствие обоих ключей не гарантирует блокировку пользователей. Для первого запуска и проверки модулей следуйте порядку активации.

  2. Дополнительные сервисы (по необходимости):

    # 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
    
  3. Перезапустите контейнер для применения изменений

2. Настройка через админку

  1. Войдите в административную панель: /app/admin
  2. Настройте базовые параметры:
    • baseUrl - обязательно для корректных ссылок
    • Политики команд и пользователей
  3. Настройте интеграции:
    • Шаблоны писем (для ListMonk)
    • SMTP параметры (для простой почты)
  4. Сохраните изменения - применяются мгновенно

Проверка конфигурации

Проверочный список

Распространенные проблемы

ПроблемаПричинаРешение
Приложение не запускаетсяНеверные JDBC параметрыПроверьте подключение к БД
Нет миниатюр диаграммНеверные MINIO параметрыПроверьте доступность S3
Не приходят письмаНеверные почтовые настройкиПроверьте EMAIL_PROVIDER и параметры
Ошибки лицензииНет подходящего ключа или задан неверный LICENSE_KEY_V2Учтите исключительный приоритет непустого v2, сверьте полный код на /admin-onboarding; порядок действий см. в разделе о восстановлении лицензии
Не скачивается PDFНенастроен GotenbergПроверьте GOTENBERG_URL и доступность сервиса
Нет совместного редактированияREDIS_ENABLED=false или Redis недоступенПроверьте REDIS_ENABLED, REDIS_HOST и подключение

Связанная документация

Нужна помощь?

Если возникли вопросы по конфигурации, обратитесь к help@stormbpmn.com или вашему менеджеру.

Видимость настроек для неавторизованных пользователей

В административной панели у каждой настройки есть тумблер «Настройка видимости» — он разрешает передачу значения на фронтенд до входа пользователя (экран логина, страница лицензии).

С версии 6.6.6668 правила ужесточены

Раньше настройка с непроставленной видимостью могла попадать в анонимную выдачу. Теперь неавторизованному пользователю отдаются только настройки с явно включённой видимостью. После обновления проверьте, что тумблер включён у настроек, которые влияют на экран входа:

  • showBasicLogin, showCustomLoginButtonName, CustomLoginButtonName
  • enableYandexSSO
  • showRegistraton
  • customMenuItems
  • licensePageHtml

Если после обновления форма логина «пропала» — откройте страницу входа с параметром ?showBasicLogin=true и включите видимость нужных настроек в админке.

Секреты не отдаются анониму даже с включённой видимостью

Настройки, в имени которых есть подстроки secret, token, password, passwd, private, credential, apikey, api_key, smtp, prompt, ldap, исключаются из анонимной выдачи всегда — это защита от случайной утечки. Обратная сторона: не используйте эти слова в именах собственных настроек, которые должны быть видны до входа. И по-прежнему не включайте видимость для паролей и конфиденциальных данных.