Установка КриптоАРМ Документы — установка, настройка и первый запуск - Документация для КриптоАРМ 6
Перейти к содержанию

Как установить «КриптоАРМ Документы»#

В этой инструкции вы узнаете, как установить КриптоАРМ Документы, настроить все необходимые переменные окружения и выполнить первый запуск.

Содержание:


Условия применения#

Требования для установки и настройки сервиса#

Характеристика Минимальное значение Дополнение
ОЗУ 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 или выше.

Проверка установки:

docker --version
docker compose version

Если команды выполняются без ошибок — установка выполнена корректно.

2. Подготовка рабочей директории#

Создайте и перейдите в рабочую директорию:

mkdir cryptoarm-documents && cd cryptoarm-documents

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:

cp .env.example .env
# затем откройте .env и заполните LICENSE_VALUE, параметры БД/OIDC и т.д.

Откройте .env и обязательно заполните:

  • LICENSE_VALUE
  • параметры подключения к БД
  • параметры OpenID Connect
  • SMTP-настройки
  • SESSION_SECRET
  • SECRET

⚠️ Важно: Используйте сложные уникальные значения для SESSION_SECRET и SECRET. Не используйте значения по умолчанию в product-среде.

5. Создание каталогов для хранения данных#

mkdir -p data/postgres logs

6. Запуск сервиса#

docker compose up -d

Проверка статуса контейнеров:

docker compose ps

Если запуск выполнен корректно, сервис будет доступен по адресу:

https://<HOST>

Первый вход в систему#

Собственная форма входа не поддерживается.

Для авторизации требуется внешний OpenID Connect провайдер (IdP).

После запуска:

  1. Перейдите в браузере на https://<HOST>.
  2. Выполните вход через подключённый OIDC-провайдер.
  3. При успешной аутентификации будет создана пользовательская сессия.

Обновление сервиса#

Обновление версии образа сервиса до актуальной:

docker compose pull
docker compose up -d

После обновления рекомендуется проверить логи:

docker compose logs -f

Остановка сервиса#

docker compose stop

Полная остановка с удалением контейнеров:

docker compose down

Переменные окружения#

Ниже приведён пример файла .env с пояснениями.

Базовые параметры#

HOST=documents.example.ru
PORT=3000

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=your-random-session-secret
SESSION_EXPIRES=253402300000000
SECRET=your-secret-key
  • 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:

MAIL_SECURE=false

Системные параметры#

SYSTEM_NAME=Example System
SYSTEM_URL=$HOST
SYSTEM_LOGO=data:image/png;base64,BASE64_STRING

SYSTEM_LOGO — логотип в формате base64.

Подключение сервиса подписания#

SIGN_SERVICE_URL=https://sign.example.ru

Адрес сервиса подписи, с которым интегрируется система.

Лицензия#

LICENSE_VALUE=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Без корректной лицензии сервис работать не будет.

Дополнительно#

# SIGNATORY_ONLY_EXISTING_USERS=true
# SHOW_DOCUMENT_NUMBER=true
# SHOW_DOCUMENT_VERSION=true
  • SIGNATORY_ONLY_EXISTING_USERS=true — подпись документов разрешена только зарегистрированным пользователям
  • SHOW_DOCUMENT_NUMBER=true — при просмотре документов отображается их номер
  • SHOW_DOCUMENT_VERSION=true — при просмотре документов отображается версия

Смотрите также#

Для повышения удобства работы и хранения данных веб-сайт CRYPTOARM.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.