Системные требования программного комплекса DoXML
Данный документ описывает системные требования для развёртывания программного комплекса DoXML в инфраструктуре заказчика в зависимости от количества одновременных пользователей. Актуальная архитектура: серверная часть на Java Spring Boot 4, клиентская часть на React/Vite, база данных PostgreSQL, сервер кэширования Redis, объектное хранилище Apache Ozone, сервис распознавания текста, обратный прокси-сервер Traefik.
Состав инфраструктуры
- Сервер приложений — Java Spring Boot 4, порт 8080.
- Сервис лицензирования — Java Spring Boot 4 (тот же образ, режим license), порт 8080 внутри, 8082 снаружи.
- Клиентское приложение — React/Vite + Caddy/Nginx, порт 80.
- Панель управления организации — React/Vite + Caddy/Nginx, порт 80.
- PostgreSQL — основная реляционная база данных.
- Redis — кэш, сессии, ограничение частоты запросов.
- Apache Ozone — объектное хранилище, совместимое с протоколом S3.
- Сервис распознавания текста — OCR на основе Tesseract.
- Traefik — обратный прокси-сервер, терминация SSL, маршрутизация.
Минимальные требования (до 10 пользователей)
Аппаратные требования
| Компонент | Минимум | Примечание |
| CPU | 4 ядра | x86_64, 2.0+ GHz |
| RAM | 8 ГБ | Минимум для стабильной работы |
| Диск | 120 ГБ SSD | Для ОС, Docker, БД, объектного хранилища |
| Сеть | 100 Мбит/с | Для локальной сети |
Распределение памяти (8 ГБ)
| Сервис | Память | Описание |
| Сервер приложений | 1.5 ГБ | JVM Spring Boot |
| Сервис лицензирования | 512 МБ | JVM Spring Boot |
| Клиентское приложение | 128 МБ | Caddy/Nginx + статика |
| Панель управления организации | 128 МБ | Caddy/Nginx + статика |
| PostgreSQL | 1.5 ГБ | shared_buffers ≈ 25% RAM |
| Redis | 256 МБ | Кэш и сессии |
| Ozone (OM/DN/S3G) | 1 ГБ | Объектное хранилище |
| OCR Service | 512 МБ | Tesseract/распознавание |
| Traefik | 128 МБ | Обратный прокси-сервер |
| Docker + ОС | 1.5 ГБ | Накладные расходы системы |
| Резерв | 864 МБ | Пиковые нагрузки |
Рекомендуемые требования (10–50 пользователей)
Аппаратные требования
| Компонент | Рекомендуется | Примечание |
| CPU | 8 ядер | 2.4+ GHz |
| RAM | 16 ГБ | Для комфортной работы |
| Диск | 250 ГБ SSD/NVMe | С запасом для роста данных |
| Сеть | 1 Гбит/с | Для быстрой передачи файлов |
Распределение памяти (16 ГБ)
| Сервис | Память | Описание |
| Сервер приложений | 3 ГБ | JVM с буфером |
| Сервис лицензирования | 512 МБ | JVM |
| Клиентское приложение | 256 МБ | Caddy |
| Панель управления организации | 256 МБ | Caddy |
| PostgreSQL | 4 ГБ | shared_buffers ≈ 25% RAM |
| Redis | 512 МБ | Кэш, сессии, rate limiting |
| Ozone | 2 ГБ | Объектное хранилище |
| OCR Service | 1 ГБ | Распознавание |
| Traefik | 256 МБ | Обратный прокси-сервер |
| Docker + ОС | 2 ГБ | Накладные расходы системы |
| Резерв | 2 ГБ | Пиковые нагрузки |
Требования для 100 пользователей
Аппаратные требования
| Компонент | Значение | Примечание |
| CPU | 16 ядер | 2.6+ GHz |
| RAM | 32 ГБ | Для стабильной работы |
| Диск | 500 ГБ NVMe | Предпочтительно NVMe |
| Сеть | 1 Гбит/с | Для высокой нагрузки |
Таблица масштабирования
| Пользователей | CPU (ядра) | RAM (ГБ) | Диск (ГБ) | Примерная пропускная способность (req/s) |
| 10 | 4 | 8 | 120 | ~50 |
| 50 | 8 | 16 | 250 | ~150 |
| 100 | 16 | 32 | 500 | ~300 |
| 200 | 24 | 64 | 1000 | ~600 |
| 500 | 32–48 | 128 | 2000 | ~1500 |
Программное обеспечение
| Компонент | Минимальная версия | Рекомендуемая версия |
| ОС | Ubuntu 20.04 LTS / Debian 11 | Ubuntu 22.04 LTS / Debian 12 |
| Docker | 24.0+ | 26.0+ |
| Docker Compose | v2 | последняя |
| Kernel | 5.4+ | 5.15+ |
Сетевая инфраструктура
- Внешние порты: 80, 443 (Traefik); панель управления Traefik — 9080 (опционально).
- Внутренние порты: сервер приложений 8080, сервис лицензирования 8082, PostgreSQL 5432, Redis 6379, Ozone 9878/9862.
- Firewall: внешний доступ только к 80/443; база данных и Redis недоступны снаружи.
- DNS: A-записи для
{ONPREM_DOMAIN} и api.{ONPREM_DOMAIN} (опционально).
- SSL/TLS: Let's Encrypt через Traefik или собственные сертификаты.
Мониторинг и логирование
- Мониторинг: Spring Boot Actuator + Prometheus метрики; Grafana (опционально).
- Логирование: Docker logs; централизованный сбор (ELK/Loki, опционально).
- Алерты: настроить уведомления при превышении CPU/RAM/диска.
Резервное копирование
- PostgreSQL: ежедневные дампы через
pg_dump.
- Ozone: резервная копия объектного хранилища.
- Каталог license/: обязательно сохраняйте
license.key, install-secret.txt, public.key — они не дублируются в БД.
- Хранение: минимум 7 дней, рекомендуется 30 дней.
Примечания
- Пиковые нагрузки: при пиках рекомендуется запас ресурсов 30–50%.
- Рост данных: диск должен иметь запас 50–100% от текущего объёма.
- Производительность диска: SSD/NVMe критичны для PostgreSQL; HDD не рекомендуется.
- Объектное хранилище: для промышленной эксплуатации рекомендуется вынести Ozone на отдельный диск или сервер.
Версия документа: 2.0
Дата обновления: 2026