Как установить «КриптоАРМ Документы»#
В этой инструкции вы узнаете, как установить КриптоАРМ Документы, настроить все необходимые переменные окружения и выполнить первый запуск.
Содержание:
Условия применения#
Требования для установки и настройки сервиса#
| Характеристика | Минимальное значение | Дополнение |
|---|---|---|
| ОЗУ | 4 ГБ | |
| HDD | 50 ГБ | |
| Процессор | x86_64 (или amd64) | |
| Поддерживаемые ОС | Ubuntu 18.04/20.04, Debian 11, Astra Linux SE 1.8 Орел | Поддерживаются другие Linux-дистрибутивы с поддержкой Docker Engine |
| Дополнительно | Docker | Средство автоматизации развертывания и контейнеризации |
Сетевые требования#
Для корректной работы сервиса должны быть доступны:
| Назначение | Порт | Описание |
|---|---|---|
| HTTP/HTTPS | 80/443 | Доступ пользователей |
| PostgreSQL | 5432 | Внутренний контейнер БД |
| OIDC IdP | 443 | Доступ к серверу аутентификации |
| SMTP | 465/587 | Отправка уведомлений |
Используемый стек технологий#
- Node.js
- NestJS
- PostgreSQL
- Docker / Docker Compose
Установка и первый вход#
1. Установка Docker и Docker Compose#
Для запуска проекта необходимо установить Docker и Docker Compose.
🔍 Официальная инструкция: https://docs.docker.com/engine/install/
Минимально необходимые версии компонентов: Docker Engine 19.03 или выше.
Проверка установки:
Если команды выполняются без ошибок — установка выполнена корректно.
2. Подготовка рабочей директории#
Создайте и перейдите в рабочую директорию:
3. Загрузка конфигурационных файлов#
curl -O https://git.digtlab.ru/trusted/cryptoarm/documents/api/-/raw/main/docker/docker-compose.yaml
curl -O https://git.digtlab.ru/trusted/cryptoarm/documents/api/-/raw/main/docker/nginx.conf
curl -O https://git.digtlab.ru/trusted/cryptoarm/documents/api/-/raw/main/.env.example
4. Настройка переменных окружения#
Создайте файл окружения .env:
Откройте .env и обязательно заполните:
LICENSE_VALUE- параметры подключения к БД
- параметры OpenID Connect
- SMTP-настройки
SESSION_SECRETSECRET
⚠️ Важно: Используйте сложные уникальные значения для SESSION_SECRET и SECRET. Не используйте значения по умолчанию в product-среде.
5. Создание каталогов для хранения данных#
6. Запуск сервиса#
Проверка статуса контейнеров:
Если запуск выполнен корректно, сервис будет доступен по адресу:
Первый вход в систему#
Собственная форма входа не поддерживается.
Для авторизации требуется внешний OpenID Connect провайдер (IdP).
После запуска:
- Перейдите в браузере на
https://<HOST>. - Выполните вход через подключённый OIDC-провайдер.
- При успешной аутентификации будет создана пользовательская сессия.
Обновление сервиса#
Обновление версии образа сервиса до актуальной:
После обновления рекомендуется проверить логи:
Остановка сервиса#
Полная остановка с удалением контейнеров:
Переменные окружения#
Ниже приведён пример файла .env с пояснениями.
Базовые параметры#
HOST — публичное доменное имя сервиса. Используется для формирования redirect URI.
PostgreSQL#
POSTGRES_USER=postgres
POSTGRES_PASSWORD=strong-password
POSTGRES_DB=archive
PGDATA=/var/lib/postgresql/data/pgdata
DB_URI=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@cryptoarm-documents-db/$POSTGRES_DB
⚠️ В продуктивной среде обязательно измените пароль БД.
Сессии и безопасность#
SESSION_SECRET— ключ подписи сессийSECRET— внутренний криптографический ключ приложенияSESSION_EXPIRES— время жизни сессии (в миллисекундах)
OpenID Connect (OIDC)#
OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER=https://id.example.com
OAUTH2_CLIENT_REGISTRATION_LOGIN_CLIENT_ID=your-client-id
OAUTH2_CLIENT_REGISTRATION_LOGIN_CLIENT_SECRET=your-client-secret
OAUTH2_CLIENT_REGISTRATION_LOGIN_SCOPE=openid email profile
OAUTH2_CLIENT_REGISTRATION_LOGIN_REDIRECT_URI=https://$HOST/api/auth/callback
OAUTH2_CLIENT_REGISTRATION_LOGIN_POST_LOGOUT_REDIRECT_URI=https://$HOST
OPEN_ID_CONNECT_URL=https://id.example.com/.well-known/openid-configuration
Убедитесь, что в настройках IdP:
- зарегистрирован корректный
Redirect URI - разрешены указанные scope
- используется HTTPS
SMTP (отправка уведомлений)#
MAIL_HOST=smtp.example.com
MAIL_PORT=465
MAIL_SECURE=true
MAIL_USER=no-reply@example.com
MAIL_PASSWORD=mail-password
MAIL_FROM=no-reply@example.com
При использовании 587:
Системные параметры#
SYSTEM_LOGO — логотип в формате base64.
Подключение сервиса подписания#
Адрес сервиса подписи, с которым интегрируется система.
Лицензия#
Без корректной лицензии сервис работать не будет.
Дополнительно#
SIGNATORY_ONLY_EXISTING_USERS=true— подпись документов разрешена только зарегистрированным пользователямSHOW_DOCUMENT_NUMBER=true— при просмотре документов отображается их номерSHOW_DOCUMENT_VERSION=true— при просмотре документов отображается версия