Бипуим: Документация
8-800-505-24-05Сайт Бипиум
  • 😎Отвечаем на ваши вопросы
  • 🎂Версии и обновления
  • ❗Обновление до версии 2.0
  • Документация
    • 🆕С чего начать
      • Регистрация и вход
      • Создаем каталоги и записи
      • Формируем отчёты
      • Настраиваем правовую политику
      • Применяем автоматизации
    • ⚙️Конструктор данных
      • Отделы
      • Каталоги
        • Редактирование структуры
        • Настройка отображения
        • Поиск и фильтрация
        • Импорт записей
          • 📗Импорт из Excel
        • Экспорт записей
        • Активность
      • Системные каталоги
        • Сотрудники
        • События
        • Внешние запросы
        • Сценарии
        • Процессы
        • Доступ к сервисам
        • Вебхуки
      • Виды
      • Записи
    • 📊Отчеты
      • Графики
    • 🔑Права
      • Правила
      • Привилегии
      • Правовые группы
      • Правовые виды
      • Права на поля
      • Комбинация прав
    • 🤖Автоматизации
      • События
        • Изменение данных
        • Внешние запросы
      • Сценарии
        • Компоненты
          • Начало процесса
          • Конец процесса
          • Таймер
          • Ошибка
          • Шлюз «ИЛИ» (условное ветвление)
          • Шлюз «И» (распараллеливание)
          • Получить запись
          • Найти записи
          • Изменить запись
          • Создать запись
          • Удалить запись
          • Структура каталога
          • Загрузить файл
          • Сгенерировать документ
          • Назначение переменных
          • Код (Javascript)
          • Веб-запрос
          • SQL-запрос
          • Конвертер
          • Парсер
          • Запуск процесса
          • Получение почты
          • Отправка почты
          • Соединяющая линия
          • Отправить сообщение
        • Переменные
        • Выражения
        • Входные и выходные параметры компонентов
        • Примеры настройки
          • Условие
          • Цикл
      • Ограничения
  • Лицензии
    • 🌐Тип лицензирования
  • Примеры
    • 🔑Права доступа к данным
    • 🤖Автоматизации
      • Выгрузка файлов на Яндекс Диск
      • Отправка на больничный
      • Автоматизация оплаты счетов
      • Создание наименований записей
      • Расчет скидок для клиентов
      • Запрет на создание дубликатов в каталоге
      • Автозаполнение данных по ИНН
      • Переброс данных между связанными каталогами
      • Очередь сценариев
      • Отслеживание заявок с сайта помощью UTM-меток
      • Просрочка задач по дедлайну
      • Реализация механизма согласования записей
      • Массовое изменение записей
      • Создание каталога для рассылки почты
      • Перенос данных между системами Бипиума
      • Импорт данных из Excel
      • Генерация счет-фактуры
      • Генерация excel-отчетов
      • Планировщик задач
      • Импорт банковских выписок
      • Производственный календарь
      • Складской учет
  • Интеграции
    • 🥂Методы интеграции
      • Интеграция данных
        • API
        • Вебхуки (webhooks)
      • Интеграция интерфейса
        • Веб-формы
        • Веб-расширения
      • Примеры интеграций
        • Тильда
          • Прием данных с формы Tilda
          • Интеграция веб-интерфейса в Tilda
        • Интеграция с сервисом «DaData»
        • Интеграция c «Единой информационной системой в сфере закупок»
        • Мессенджеры
          • Интеграция с Telegram-ботом
        • Почтовые сервисы
          • UniSender
          • MailChimp
        • Сервисы Google
          • Google Calendar
        • Телефония
          • Oktell
            • Панель телефонии Oktell
            • Компонент Bpium в Oktell
        • 1C
    • 🔌API
      • Данные
        • Каталоги (Catalogs)
        • Записи (Records)
        • Связи (Relations)
        • Истории (Histories)
        • Файлы (Files)
        • Отделы (Sections)
        • Виды (Views)
        • Сообщения (Messages)
      • Агрегация
        • Разложения (Values)
        • Сводка (Totals)
      • Отчеты
        • Дашборды (Boards)
        • Графики (Widgets)
      • Поисковые выборки
        • Доступные связи (AvailableRecords)
        • Доступные условия фильтра (AvailableFilterRecords)
        • Сотрудники (Users)
        • Контакты (Contacts)
      • Права (Rights)
      • Профиль (Profile/me)
  • Установка на сервер
    • 🧱Архитектура
      • Варианты разворачивания
    • 🖥️Требования
    • 📂Установка как служба
    • 🛳️Установка через Docker
    • 🎛️Мультидоменная среда
    • 🆘Материалы
      • TLS/SSL Сертификат
      • Параметры config.env
        • Для Bpium
        • Для Bpium S3
        • Для Bpium BPM
      • Запуск
      • Обсуживание
        • Активация
        • Обновление
        • Бэкап и восстановление базы
        • Брендирование (Whitelabel)
        • Удаление
      • Перенос базы из облака
      • Возможные проблемы в ходе установки и работы
  • Обучение
    • Базовый курс
      • Урок 1. Отделы
      • Урок 2. Каталоги с данными
      • Урок 3. Карточки записей
      • Урок 4. Связи между данными
      • Урок 5. Фильтры и виды
      • Урок 6. Приглашение сотрудников
      • Урок 7. Права доступа к данным
      • Урок 8. Графические отчеты
      • Урок 9. Бизнес-процессы
      • Урок 10. Интеграции
    • Технический курс
      • Урок 1. Принцип работы автоматизаций
      • Урок 2. Первая автоматизация изнутри
      • Урок 3. Валидация данных
      • Урок 4. Простые вычисления
      • Урок 5. Расчет суммы заказа
      • Урок 6. Генерация счетов/документов
      • Урок 7. Рассылка почтовых сообщений
      • Урок 8. Прием внешних данных
      • Урок 9. Отправка данных на сторонние сервисы
    • Паттерны проектирования ИС
      • Унификация
      • Упорядоченность
      • Разделение
      • Актуализация
      • Вынос параметров
      • Выделение позиций
      • Слияние
      • Дублирование
      • Типизация
      • Информирование
Powered by GitBook
On this page
  • Глоссарий
  • Архитектура
  • Подготовка
  • Пример файла docker-compose
  • SSL-сертификаты
  • Настройка конфигурационного файла (docker-compose.yml)
  • Хранение статичных данных или Persist storage
  • Запуск
  • Обновление
  • Получение логов
  • Бэкапы, миграции и восстановление
  1. Установка на сервер

Установка через Docker

PreviousУстановка как службаNextМультидоменная среда

Last updated 10 months ago

Bpium Docker — это версия Bpium для установки на собственные сервера или облако. Решение включает в себя конфигурационные файлы для создания собственного сервера с технологией контейнеризации.

Глоссарий

  • Хост - операционная система, на которой запущены контейнеры Docker

  • - программное обеспечение, реализующее контейнерную изоляцию приложений

  • - метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (обычно называемые контейнерами или зонами) с точки зрения пользователя полностью идентичны отдельному экземпляру операционной системы.

Архитектура

Внимание: данное руководство содержит инструкцию только по настройке решения на одном сервере.

Bpium Docker состоит из независимых контейнеров Docker:

  • Bpium — сервер приложения и логики

  • Bpium S3 — сервер файлового хранилища

  • Bpium BPM — сервер исполнения бизнес-процессов

  • PostgreSQL — сервер баз данных

  • Redis— сервер хранилища данных для бизнес-процессов

Контейнеры могут быть размещены на одном или разных серверах, включая кластерные решения. Реализация на нескольких серверах аналогична и так же потребует индивидуальной настройки.

Если у вас уже есть базы данных и хотите использовать их - это потребует дополнительной настройки файла конфигурации.

Готовая конфигурация включает:

  • Операционная система (Alpine)

    • Docker

      • Контейнер Bpium

      • Контейнер BPM

      • Контейнер Bpium-S3

      • Контейнер Postgres

      • Контейнер Redis

    • База данных Postgres:

    • База данных Redis

    • Хранилище Bpium-S3

Сеть устроена следующим образом:

  • Контейнеры объединены в одну сеть, имея доступ к друг другу.

  • Доступ во внешнюю сеть (интернет) имеют все контейнеры.

  • Обслуживать запросы, приходящие на хост могут только те контейнеры, которым это разрешили правилами.

Подготовка

Пример файла docker-compose

version: "3.8"
volumes: 
  storagebpium:
  redisstorage:
  postgresstorage:
services:
  bpium:
    container_name: bpium
    image: bpiumdocker/bpium
    ports:
      - "80:80"
      - "443:443"
    secrets:
      - cert
      - cert-key
    environment:
      SERIAL_NUMBER: ''
      DB_CONNECTION_STRING: 'postgres://postgres:password@postgres:5432/bpium_database'
      COOKIE_SECRET: ''
      SCRIPTS_TOKEN_SECRET: ''
      S3_HOST: 'внешнедоступный адрес сервера'
      S3_KEY: ''
      S3_SECRET: ''
      BPM_HOST: 'bpm'
      BPM_SECRET: ''
    depends_on:
      - postgres
      - bpm
      - bpium-s3
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "3"
  
  postgres:
    container_name: postgres
    image: "postgres:alpine"
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "bpium_database"
      POSTGRES_INITDB_ARGS: "--locale=ru_RU"
      PGDATA: "/postgresdb"
    command: ["postgres", "-c", "log_statement=all", "-c", "log_destination=stderr"]
    volumes:
      - postgresstorage:/postgresdb
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "3"

  bpm:
    container_name: bpm
    image: bpiumdocker/bpm
    secrets:
      - cert
      - cert-key
    environment:
      BPM_SECRET: ''
      BPM_QUEUE_HOST: 'redis'
      BPM_QUEUE_LOCAL: 'false'
    depends_on:
      - redis
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "3"

  bpium-s3:
    container_name: bpium-s3
    image: bpiumdocker/s3
    ports:
      - "2020:2020"
    secrets:
      - cert
      - cert-key
    environment:
      S3_HOST: 'внешнедоступный адрес сервера'
      S3_KEY: ''
      S3_SECRET: ''
    volumes:
      - storagebpium:/bpiumpac/storage
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "3"

  redis:
    container_name: redis
    image: "redis:alpine"
    command: > 
      --appendonly yes
      --appendfilename "redisdb.aof"
    volumes:
      - redisstorage:/data
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "200m"
        max-file: "3"

secrets:
  cert:
    file: ./cert
  cert-key:
    file: ./cert-key

SSL-сертификаты

Bpium может работать на защищенном канале связи (HTTPS). Для этого сервер приложения должен быть доступен из интернета, иметь доменное имя и SSL-сертификат Class 1 или более высокий. Для работы мультидоменной версии Bpium требуется wildcard-сертификат Class 2 или более высокий.

Способы размещения сертификата:

  • По-умолчанию: Положите сертификат (.crt) и ключ сертификата в одну директорию с docker-compose.yml и назовите их cert и cert-key соответственно.

  • Свой: Нужно поменять пути для сертификата и ключа в файле docker-compose.yml: secrets: cert: file: ./cert cert-key: file: ./cert-key

Настройка конфигурационного файла (docker-compose.yml)

Настройки Бипиума хранятся отдельно для каждого контейнера и указаны в секции environments, в формате:

HTTPS: 'true' SERIAL_NUMBER:'0000-0000-0000-0000' COOKIE_SECRET:'somestring' SCRIPTS_TOKEN_SECRET: 'anotherstring'

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

Хранение статичных данных или Persist storage

Одним из минусов контейнеров является то что данные существуют только пока работает контейнер. Это является проблемой, если в контейнере содержится база данных. Для этого случая в Docker есть возможность связывать элементы файловой системы контейнера с файловой системой хоста. Это и позволяет сохранить данные баз данных. Чтобы получить список всех связанных элементов нужно ввести команду: docker volume ls.

Запуск

Процедура запуска контейнеров состоит всего из одного этапа - что является преимуществом контейнерного решения.

Прейдите в каталог с файлом docker-compose.yml и введите команды, если необходимо - с правами суперпользователя:docker-compose up -d Это запустит процесс разворачивания необходимых контейнеров согласно настройках в файле docker-compose.yml

Если все сделано верно - то Бипиум готов к работе. Убедимся что контейнеры запущены и работают исправно:docker ps.Если все хорошо - вы должны увидеть следующее:

Обновление

Для обновления приложения Бипиума до последней версии нужно выполнить команду:

docker pull bpiumdocker/bpium:latest && docker pull bpiumdocker/bpm:latest && docker pull bpiumdocker/s3:latest 

Это запустит процесс синхронизации с хранилищем образов и загрузит самые новые.

После этого нужно перезапустить контейнеры, чтобы Docker использовал новые образы:

docker-compose up -d

Получение логов

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

Сначала, нужно узнать имя интересующего вас контейнера. Для этого введите команду:

docker ps

Вам будут показаны все контейнеры, включая неработающие.

Для доступа к логам контейнера достаточно ввести следующую команду:

docker logs имя_контейнера

Бэкапы, миграции и восстановление

Приложение Bpium самостоятельно не занимается резервированием данных. При необходимости, требуется индивидуальная настройка этих процессов.

Бэкап:

docker exec -i postgres_container_name pg_dump --username pg_username --password pg_password database_name > /path/bpium_dump
  • docker exec -i postgres_container_name - исполняет команду внутри контейнера в интерактивном режиме

  • pg_dump - утилита для создания бекап-файла данных

  • --username pg_username - имя пользователя базы данных (по-умолчанию postgres)

  • --password pg_password - пароль пользователя базы данных (см. docker-compose.yml)

  • database_name - имя базы данных (по-умолчанию bpium_database)

  • /path/bpium_dump - указывает, куда будет сохранен дамп в системе хоста

Восстановление:

docker exec -i postgres_container_name pg_restore --username pg_username --password pg_password database_name < /path/bpium_dump
  • docker exec -i postgres_container_name - исполняет команду внутри контейнера в интерактивном режиме

  • pg_restore - утилита для восстановления данных из бекап-файла

  • --username pg_username - имя пользователя базы данных (по-умолчанию postgres)

  • --password pg_password - пароль пользователя базы данных (см. docker-compose.yml)

  • database_name - имя базы данных (по-умолчанию bpium_database)

  • /path/bpium_dump - указывает, из какого дампа будет восстановлена база

Миграция:

Достаточно переместить директорию с базой и запустить контейнер с базой. К примеру, нам нужно переместить на другой диск: mv /home/bpium_data/postgres /mnt/sdb1/

Список с описанием всех переменных вы можете найти по этим ссылкам:

Теперь ваш Бипиум должен быть доступен по доменному имени/адресу хоста. Сам вход в приложение описан .

🛳️
Docker
Контейнеризация
этой
Bpium
BPM
S3
здесь
Обратите внимание на статус контейнера. Up - свидетельствует о корректной работе.