Быстрый старт
Минимальный сценарий разворачивания серверной части DataHUB на одном Linux-сервере. Подходит для пилотного стенда, демонстраций и разработки клиентских адаптеров. Для промышленной эксплуатации после быстрого старта необходимо пройти Production настройку.
Предусловия
- Linux-сервер, удовлетворяющий Системным требованиям, с установленным Docker Engine и Compose plugin v2.
- Доступ от пользователя с правами
sudo. - Архив поставки DataHUB, полученный от вендора (например,
datahub-full-v3.0.0.zip).
Структура архива поставки
Релизный архив datahub-full-v<MAJOR>.<MINOR>.<PATCH>.zip распаковывается в каталог datahub-full-v<MAJOR>.<MINOR>.<PATCH>/ со следующей структурой:
datahub-full-v3.0.0/
├── deployment/ # шаблоны docker-compose и .env для всех блоков
│ ├── backend/
│ ├── devops-core/
│ ├── flyway/
│ ├── frontend/
│ ├── nginx/
│ ├── pg-agmin/
│ ├── postgres/
│ ├── rabbitmq/
│ ├── firewall/ # опционально
│ └── vpn/ # опционально
├── images/ # готовые Docker-образы (по одному tar.gz на сервис)
├── modules/ # подсистема 1С (1c-cf.zip)
├── services/ # исходники сервисов (для воспроизводимости)
├── docs/ # офлайн-копия документации
├── manifest.lock.yml # фиксация версий, образов и хешей
└── version.txt # версия релиза
1. Распаковка архива поставки
Загрузите архив поставки на сервер. Распакуйте архив в домашний каталог пользователя — внутри появится подкаталог datahub-full-v3.0.0/:
Перейдите в распакованный каталог:
2. Загрузка образов в Docker
Загрузите все Docker-образы из подкаталога images/ в локальный реестр Docker. Команда docker load импортирует образ из tar.gz-архива и регистрирует его в системе. Образы поставки — Сервер DataHUB (backend-mono), Flyway, административный интерфейс (frontend), reverse proxy (nginx), утилиты администрирования БД (pg-admin), база данных (postgres), транспорт сообщений (rabbitmq), служебный образ (busybox):
sudo docker load -i images/backend-mono.tar.gz
sudo docker load -i images/flyway.tar.gz
sudo docker load -i images/frontend.tar.gz
sudo docker load -i images/nginx.tar.gz
sudo docker load -i images/pg-admin.tar.gz
sudo docker load -i images/postgres.tar.gz
sudo docker load -i images/rabbitmq.tar.gz
sudo docker load -i images/busybox.tar.gz
Убедитесь, что все образы DataHUB зарегистрированы:
3. Подготовка каталога конфигурации
Создайте корневой каталог /etc/datahub, в котором будут жить конфигурации всех блоков:
Скопируйте в него шаблоны деплоя из каталога deployment/ распакованного архива:
В /etc/datahub/ появятся подкаталоги для каждого блока поставки: devops-core, rabbitmq, postgres, pg-agmin, flyway, backend, frontend, nginx (плюс опциональные firewall и vpn).
4. Поэтапный запуск блоков
Большинство блоков имеют шаблон .env.template, на основе которого создаётся реальный .env с фактическими значениями. Базовый цикл для таких блоков: перейти в каталог блока → скопировать шаблон в .env → отредактировать значения → запустить контейнер → проверить логи. Редактирование .env ниже показано через vim — краткий справочник по редактору находится в Приложении в конце статьи.
Исключения из базового цикла:
devops-core— общая инфраструктура без.env.template, поднимается одной командойdocker compose up.pg-agmin— кроме.env.template, требует предварительного запуска скриптаpredeploy.sh.backend— кроме.env.template, требует генерации секретов через скрипты в каталогеscripts/.nginx— кромеdocker compose, требует генерации TLS-сертификатов и правки конфигов вconf.d/*.conf.
Запускайте блоки в указанном порядке.
4.1. Общая инфраструктура
Перейдите в каталог блока:
Запустите контейнеры общей инфраструктуры:
4.2. RabbitMQ
Перейдите в каталог блока:
Создайте реальный .env на основе шаблона:
Откройте .env и заполните значения (учётные данные администратора брокера, имена exchange и т.п.):
Для генерации криптостойких паролей используйте:
Запустите контейнер RabbitMQ:
4.3. PostgreSQL
Перейдите в каталог блока:
Создайте .env на основе шаблона:
Заполните значения (учётная запись postgres, имя БД, порт):
Создайте каталог под данные PostgreSQL:
Установите владельца каталога:
Установите права доступа:
Запустите контейнер PostgreSQL:
4.4. pgAdmin (опционально)
Перейдите в каталог блока:
Создайте .env на основе шаблона:
Заполните значения (учётная запись администратора pgAdmin):
Сделайте предеплой-скрипт исполняемым:
Запустите подготовку среды (предеплой создаёт нужные каталоги и файлы конфигурации pgAdmin):
Запустите контейнер pgAdmin:
Проверьте, что контейнер стартовал без ошибок:
4.5. Flyway — миграции схемы
Перейдите в каталог блока:
Создайте .env на основе шаблона:
Заполните значения (параметры подключения к PostgreSQL, путь к миграциям):
Запустите Flyway. Контейнер применяет миграции и завершает работу — это нормально:
Просмотрите лог, убедитесь что миграции применились без ошибок:
4.6. Сервер DataHUB
Перед запуском Сервера DataHUB нужно сгенерировать секреты, которые он будет использовать для подписи JWT и аутентификации сервисных вызовов.
Перейдите в каталог скриптов:
Сделайте скрипты исполняемыми:
Сгенерируйте «перец» (дополнительная соль для хеширования паролей):
Сгенерируйте пару ключей RSA для подписи JWT:
Сгенерируйте сервисный токен для внутренних вызовов между компонентами:
Перейдите в каталог блока:
Создайте .env на основе шаблона:
Заполните значения (адреса PostgreSQL и RabbitMQ, креды, домен и т.п.):
Запустите контейнер Сервера DataHUB:
Просмотрите лог, дождитесь сообщения об успешном старте:
4.7. Frontend
Перейдите в каталог блока:
Создайте .env на основе шаблона:
Заполните значения (адрес backend, домен, параметры OAuth-провайдеров если есть):
Запустите контейнер административного интерфейса:
Проверьте лог:
4.8. Nginx
Перед началом — выберите схему доменов:
- Схема по умолчанию: два домена. Личный кабинет на
lk.<your-domain>, сервис обмена наexchange.<your-domain>. Оба на стандартном HTTPS-порту443. Дефолтные конфиги в/etc/datahub/nginx/config/conf.d/уже настроены под эту схему — нужно только подставить ваши доменные имена. - Альтернативная схема: один домен, два порта. Если у вас доступно только одно доменное имя — личный кабинет можно вынести на нестандартный порт (например,
18443), exchange оставить на443. Пример конфигурации лежит в подкаталогеconfig/conf.d/examples/single-domain-two-ports/— там же README с инструкцией. После применения примера не забудьте пробросить дополнительный порт вdocker-compose.ymlблока nginx и открыть его на firewall.
Дальнейшие шаги описаны для схемы по умолчанию.
Перед запуском nginx нужно сгенерировать TLS-сертификаты для self-signed-схемы. На production-стенде вместо этого подкладывают сертификаты от доверенного CA (см. Настройка безопасности).
Перейдите в каталог с скриптами генерации сертификатов:
Сделайте скрипты исполняемыми:
Сгенерируйте корневой удостоверяющий центр (root CA), которым будут подписаны остальные сертификаты:
Сгенерируйте серверный сертификат (для внешнего HTTPS-входа):
Сгенерируйте клиентский сертификат (для mTLS-аутентификации интегрируемых систем):
Откройте конфиги nginx (/etc/datahub/nginx/conf.d/*.conf) и подставьте имена серверов и пути к сертификатам в соответствующие директивы server_name, ssl_certificate, ssl_certificate_key.
Перейдите в каталог блока:
Запустите контейнер nginx:
Просмотрите лог:
5. Проверка
После запуска всех блоков платформа доступна по адресу:
Откройте административный интерфейс и войдите под учётной записью администратора по умолчанию (значения создаются на этапе генерации секретов и хранятся в /etc/datahub/backend/.env).
Что дальше
- Production настройка — финальные настройки для промышленной эксплуатации (политики паролей, ротация секретов, мониторинг).
- Резервное копирование — настройка бэкапа PostgreSQL и конфигураций.
- Настройка безопасности — замена self-signed сертификатов на доверенные, настройка mTLS, парольная политика, секреты.
- Модули интеграции / 1С / Установка — подключение первой системы 1С к развёрнутой платформе.
Приложение: краткий справочник по vim
Для редактирования .env-файлов и конфигов в этой инструкции используется vim. Это стандартный консольный редактор Linux, доступный «из коробки». Если вам привычнее другой редактор (например, nano) — можно использовать его вместо vim, ничего больше менять не придётся.
Минимально необходимые операции:
- Открыть файл для редактирования —
vim <имя_файла>. Например,sudo vim ./.env. Редактор откроется в режиме просмотра (нельзя сразу печатать). - Перейти в режим вставки (начать редактирование) — нажать клавишу
i. Внизу появится-- INSERT --. Теперь работают обычный ввод текста, стрелки для перемещения, Backspace и Delete. - Вернуться из режима вставки в режим команд — нажать
Esc. Индикатор-- INSERT --исчезнет. - Сохранить и выйти — в режиме команд набрать
:wqи нажатьEnter. (Двоеточие открывает командную строку vim,w— write,q— quit.) - Выйти без сохранения — в режиме команд набрать
:q!и нажатьEnter. Восклицательный знак подтверждает отказ от изменений. - Сохранить без выхода —
:w+Enter. - Отменить последнее изменение — в режиме команд нажать
u.
Типовая сессия редактирования .env:
sudo vim ./.env— открыли файл.- Стрелками встали на нужную строку, нажали
i— вошли в режим вставки. - Отредактировали значения.
- Нажали
Esc— вышли из режима вставки. - Набрали
:wq+Enter— сохранили и вышли.