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

Установка

Около 4 мин

Установка

Stormbpmn поставляется как docker-контейнер из приватного репозитория, который включается в себя и front, и back. Установка заключается в правильном указании .ENV-перменных внутрь контейнера, поднятии смежных контейнеров (если необходимо), и манипуляции в административном интерфейсе.

Get started

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

Настройка базы

  • Разверните в докере Postgresql (12 или старше версии) или воспользуйтесь существующей инфраструктурой в компании.
  • Создайте схему (не обязательно, будет использоваться public по умолчанию). Запомните название.
  • Создайте базу. Запомните название.
  • Создайте пользователя с полными правами доступа к базе. Запомните логин и пароль.
  • Узнайте порт, на котором работает сервер БД. Запомните его.
  • Обеспечьте сетевую доступность между базой и предполагаемым местом установки основного контейнера.

Настройка приложения через .ENV-переменные

  • Скачайте образ приложения из репозитория (запросите ссылку и параметры авторизации у нас).
  • Передайте значения в ENV переменные
    • JDBC_URL - строка подключения к базе. Ожидается значение, похожее на jdbc:postgresql://192.168.0.6:5432/storm, где 192.168.0.6 - адрес сервера БД, 5432 - порт сервера БД, storm - название базы. Если требуется указать схему, то значение будет выглядеть так jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
    • JDBC_USERNAME - название учетной записи.
    • JDBC_PASSWORD - пароль учетной записи.
    • JAVA_OPTS - значение оперативки, которое выделили контейнеру. Ожидается значение, похожее на "-Xmx8g"
    • SPRING_PROFILES_ACTIVE - установить prod.
    • LICENSE_KEY - лицензионный ключ. Запросите его у нас.
    • JWTSECRET - соль для шифрования паролей. Укажите не меньше 15 символов, желательно случайных.
  • Запустите контейнер, если всё ок, то миграции в базу данных выполнятся автоматически.

Совет

Вот и всё, минимальная установка готова! Вы сможете попасть в приложение через веб интерфейс по порту 8080.

Создание административной учетной записи

  • Зайдите в приложение по адресу /app/signup
  • Зарегистрируйтесь с логином и паролем
  • Войдите в систему
  • Перейдите по ссылке /app/team
  • Создайте команду
  • Выполните в базе данных запрос
update sm_teams set full_access = true

Теперь учетная запись является административной и все последующие учетные записи в этой команде тоже будут административными. Перезайдите в систему, чтобы получить доступ в административный интерфейс. Не используйте эту учетную запись в работе.

Настройка авторизации

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

Полноценная установка

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

  • Поставить балансер и настроить SSL.

  • Развернуть S3-хранилище для хранения картинок и шаблонов документов.

  • Развернуть Plantuml-сервер.

  • Подключить Storm к системам мониторинга и алертов.

  • Обеспечить резервное копирование.

  • "Захардендить" настройки безопасности.

  • Подключить SIEM-логирование.

  • Выбрать провайдер почты и настроить его.

Балансер

Снимать SSL, а так же обеспечивать отказоустойчивость и скейлинг предлагается путем установки балансера перед нодами приложения. Stormbpmn-ноды stateless. Воспользуйтесь любым, который вам нравится и подходит под вашу архитектуру, мы предпочитаем nginx. Вот отличный мануалopen in new window

S3-хранилище

В S3-хранилище хранятся картинки бизнес-процессов, аватары пользователей, шаблоны для генерации документов. Можно использовать любое, мы советуем minio. Вот отличный мануалopen in new window. После установки укажите значения в ENV-переменные storm:

  • MINIO_ENDPOINT - URL хранилища, ожидается значение, похожее на "http://192.168.0.4:9000"
  • MINIO_ACCESSKEY - название учетной записи с правами на создание бакетов и запись файлов.
  • MINIO_SECRETKEY - пароль учетной записи с правами на создание бакетов и запись файлов.
  • MINIO_DEFAULTBUCKET - бакет для файлов по умолчанию. Значение по умолчанию - storm-uploads. После установки параметров при сохранении версии диаграммы должна отображаться ее миниатюра в карточном представлении.

Plantuml-сервер

Этот компонент позволяет генерировать UML-диаграммы в интерфейсе. Если эта функция нужна, то установите сервер командой:

docker run -d -p 8080:8080 plantuml/plantuml-server:jetty

И укажите адрес сервера в ENV-переменную storm:

  • PLANTUML_SERVER - ожидаемое значение похоже на http://192.168.0.5:8080/

Подключить STORM к системам мониторинга и обеспечить резервное копирование

Мы предоставляем метрики в формате Prometeus, подробности о подключении и обеспечении резервного копирования.

Хардендинг и SIEM

Мы предоставляет возможности по глубокой настройки безопасности и сбору событий информации в SIEM-лог-коллекторах, подробности.

Выбрать провайдер почты

На текущий момент существует 2 варианта работы с почтой под разные задачи:

  • Нужны красивые письма и мы готовы их составлять - тогда используется сервис Mautic, сторонее statefull docker-приложение с базой на Percona, PG Не поддерживается. Грустно, переезд на нормальное решение в будущем.
  • Нужные любые письма или некому составлять красивые - тогда используется встроенный SMTP-клиент, дополнительных сервисов не требуется.

Установите значение в административном интерфейсе:

  • baserUrl - используется для формирований правильных ссылок в письмах. Ожидается значение, похожее на https://stormbpmn.com

Нужны красивые письма

  • Установите Mautic на последний релиз версии v.4.xxx (например v.4.2.1) из докераopen in new window
  • Залогиньтесь в веб-интерфес и подключитесь в вашему SMTP-серверу
  • Создайте дополнительную учетную запись
  • Включите API и Basic Auth в настройках.
  • Перезапустите контейнер.
  • Установите значения переменных в Stormbpmn:
    • MAUTIC_URL - URL API mautic, ожидается https://marketing.local/api
    • MAUTIC_USERNAME - имя отдельной учетной записи
    • MAUTIC_PASSWORD - пароль отдельной учетной записи
  • Создайте шаблонных красивых писем с использованием плейсхолдеров, вставляйте текст в скобках на места, куда система подставит актуальные значения
Тема шаблонаДоступные плейсхолдерыКогда шлетсяНазвание настройки в административном интерфейсе
1Password recover{restoreCode}Когда пользователь запросил восстановление пароляrestorePasswordTemplateId
2You have been invited by {invite_author} to work together on business processes{invite_author}, {diagram_url}, {register_url}Отправляется после того как поделились диаграммой и у получателя ЕСТЬ учетка в системеinviteDiagramAndRegisterTemplateId
3New comment from {comment_author}{comment_author}, {html_text}, {diagram_url}Отправляется после отправки комментарияcommentEmailTemplateId
4The version of the {diagram_name} diagram has been updated {change_author}{change_author},{diagram_name},{diagram_description},{version_comment} ,{diagram_url}Отправляется при обновлении версииdiagramVersionUpdateEmailTemplateId
5{invite_author} invited you to {team_name} and REGISTER{invite_author},{team_name}, {invite_author}, {team_name}, {register_url}Отправляется при приглашении в команду и когда у получателя НЕТ учетной записиteamInviteAndRegisterTemplateId
6{invite_author} invited you to {team_name} (USER PRESENTED IN STORM){invite_author},{team_name},Отправляется когда поделились папкойfolderTemplateId
7Приглашение в команду{invite_author}, "{team_name}Отправляется при приглашении в команду и когда у получателя есть учетная запись и он НЕ состоит в командеteamInviteTemplateId
8Согласование{invite_author}, {diagram_url}, {diagram_name}Отправляется, когда запросили согласованииapprovalTemplateId
9Предоставлен доступ{invite_author}, {diagram_url}, {diagram_name}, {settings}Отправляется, когда изменили правда доступа к диаграммеsecureUpdateTemlateId
  • Запомните идентификаторы шаблонов и установите их в административном интерфейсе в соответсвующую настройку

Не нужны красивые письма

Установите следующие настройки в административном интерфейсе:

  • simpleEmailEnabled - включен простой отправитель писем. (изменения применяется ТОЛЬКО после перезагрузки приложения)
  • simpleSmtpHost - SMTP хост. (изменения применяется ТОЛЬКО после перезагрузки приложения)
  • simpleSmtpPort- SMTP порт. TLS протокол установлен по умолчанию. (изменения применяется ТОЛЬКО после перезагрузки приложения)
  • simpleSmtpUsername - SMTP пользователь (аутентификация и отправка “ОТ”). (изменения применяется ТОЛЬКО после перезагрузки приложения)
  • simpleSmtpPassword - SMTP пароль.(изменения применяется ТОЛЬКО после перезагрузки приложения)

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

Какой вариант вы бы не выбрали, проверить отправку писем можно оставит комментарий с содержимым @<ваш_емейл> test , например "@kotov@bpmn2.ru test".

Совет

Напишите по почте help@stormbpmn.com или вашему менджеру, если у вас что-то не получилось. Мы с радостью поможем.