Документация
Инструкция по установке программного комплекса DoXML
DoXML — программный комплекс для создания, редактирования, валидации и управления проектной документацией в соответствии с требованиями Минстроя Российской Федерации. Инструкция описывает развёртывание комплекса в инфраструктуре заказчика. В состав входят пользовательское приложение, панель администратора организации, сервер приложений на Java Spring Boot, сервис лицензирования, база данных PostgreSQL, сервер кэширования Redis и объектное хранилище Apache Ozone.
Содержание
- Системные требования
- Подготовка Docker-образов
- Быстрый старт
- Подробная установка
- Первичная активация и лицензия
- Настройка Traefik и SSL
- Проверка установки
- Управление сервисом
1. Системные требования
- Операционная система: Ubuntu 22.04 LTS / Debian 12 (рекомендуется)
- Docker: 24.0 или новее
- Docker Compose: v2 (плагин
docker compose) - Процессор: минимум 4 ядра (рекомендуется 8+ для production)
- Оперативная память: минимум 8 ГБ (рекомендуется 16 ГБ)
- Дисковое пространство: минимум 120 ГБ SSD (рекомендуется NVMe, 250+ ГБ)
- Сеть: доступ в интернет для загрузки образов и получения SSL-сертификатов Let's Encrypt (или локальный registry для закрытого контура)
2. Подготовка Docker-образов
Программный комплекс поставляется в виде готовых Docker-образов от вендора. Для получения образов:
- Получите от вендора адрес реестра образов, имя пользователя и пароль (или персональный токен доступа).
- Авторизуйтесь в реестре:
docker login registry.example.com - Загрузите образы:
docker pull registry.example.com/doxml/webapp/backend:latest docker pull registry.example.com/doxml/webapp/frontend-client:latest docker pull registry.example.com/doxml/webapp/frontend-control-panel:latest docker pull registry.example.com/doxml/webapp/ocr-service:latest
Если сервер развёртывания не имеет прямого доступа к реестру вендора, образы могут быть получены на промежуточной машине, сохранены в виде архивов и перенесены в закрытый контур стандартными средствами переноса файлов.
3. Быстрый старт
Рекомендуемый способ — использование готового пакета установки:
- Распакуйте пакет:
tar -xzf doxml-onprem-install.tar.gz cd doxml-onprem - Проверьте Docker:
docker --version docker compose version - Скопируйте и заполните переменные окружения:
cp infrastructure/.env.example infrastructure/.env nano infrastructure/.env - Запустите установку:
cd infrastructure docker compose -f docker-compose.onprem.yml --env-file .env up -d
Обязательные параметры в .env
ONPREM_DOMAIN— домен установки (например,doxml.company.local)TRAEFIK_ACME_EMAIL— email для Let's EncryptPOSTGRES_PASSWORD— надёжный пароль PostgreSQLREDIS_PASSWORD— пароль RedisJWT_SECRET— секретный ключ для подписи JWTSPRING_PROFILES_ACTIVE=prod— обязательно для productionAPP_TOPOLOGY— топология развёртывания в инфраструктуре заказчикаAPP_FRONTEND_URL=https://doxml.company.local— публичный URL клиентского приложения
4. Подробная установка
Шаг 1: Подготовка файлов окружения
- Перейдите в
infrastructure/. - Скопируйте
.env.example→.env. - Заполните обязательные параметры из раздела выше.
Шаг 2: Запуск инфраструктурных сервисов
cd infrastructure
docker compose -f docker-compose.onprem.yml --env-file .env up -d postgres redis ozone traefik
Дождитесь, пока PostgreSQL пройдёт healthcheck.
Шаг 3: Запуск сервера приложений и сервиса лицензирования
docker compose -f docker-compose.onprem.yml --env-file .env up -d backend license-service
Шаг 4: Запуск клиентских приложений
docker compose -f docker-compose.onprem.yml --env-file .env up -d frontend-client frontend-control-panel
Шаг 5: Запуск OCR-сервиса
docker compose -f docker-compose.onprem.yml --env-file .env up -d ocr-service
5. Первичная активация и лицензия
При первом старте экземпляр системы создаёт служебную организацию с идентификатором AA22A и учётную запись администратора экземпляра системы.
- Откройте в браузере
https://{ONPREM_DOMAIN}/setup. - Укажите реквизиты организации.
- Запросите лицензионный ключ у вендора или вставьте полученный ключ.
- После установки ключа синхронизируется выданный публичный идентификатор организации и активируется продукт.
Важно: до появления действующей лицензии обычные пользовательские функции заблокированы, но администратор экземпляра системы может войти в панель управления организацией и обновить ключ.
6. Настройка Traefik и SSL
Traefik, встроенный в docker-compose.onprem.yml, автоматически:
- терминирует HTTPS на 443;
- получает и обновляет сертификаты Let's Encrypt;
- маршрутизирует запросы на сервер приложений, клиентское приложение и панель управления организацией.
Закрытый контур
Если Let's Encrypt недоступен, используйте собственные сертификаты и настройте Traefik через дополнительные хранилища сертификатов TLS и промежуточное программное обеспечение. Для внутреннего тестирования допускается HTTP, но эксплуатация требует HTTPS.
7. Проверка установки
Статус контейнеров
cd infrastructure
docker compose -f docker-compose.onprem.yml --env-file .env ps
Проверка API
curl https://api.{ONPREM_DOMAIN}/actuator/health
curl https://{ONPREM_DOMAIN}/api/v1/public/instance-setup
Проверка базы данных
docker compose -f docker-compose.onprem.yml --env-file .env exec postgres psql -U $POSTGRES_USER -d $POSTGRES_DB -c "SELECT version();"
8. Управление сервисом
Просмотр логов
cd infrastructure
docker compose -f docker-compose.onprem.yml --env-file .env logs -f backend
docker compose -f docker-compose.onprem.yml --env-file .env logs -f frontend-client
Остановка, запуск, перезапуск
docker compose -f docker-compose.onprem.yml --env-file .env stop
docker compose -f docker-compose.onprem.yml --env-file .env start
docker compose -f docker-compose.onprem.yml --env-file .env restart
Обновление
- Сделайте резервную копию базы и файлов.
- Получите новые образы от вендора.
- Пересоздайте контейнеры:
docker compose -f docker-compose.onprem.yml --env-file .env pull docker compose -f docker-compose.onprem.yml --env-file .env up -d
Резервное копирование
- PostgreSQL: ежедневные дампы через
pg_dump. - Ozone: резервная копия объектного хранилища.
- Каталог
license/: ключlicense.keyиinstall-secret.txtне попадают в дамп БД и должны храниться отдельно.
Версия документа: 2.0
Дата обновления: 2026