В документе изложены способы развёртывания PC:
- запуск в среде контейнеризации Docker
- с помощью скрипта инсталляции под Linux
- вручную под Windows.
Опциональные модули лицензируются отдельно. Для рационального потребления вычислительноых ресурсов перед установкой следует уточнить, какие компоненты входят в поставку.
Перед установкой
Подготовка БД
Поддерживаемые СУБД — Postgres, Oracle, MS SQL.
Перед установкой необходимо создать БД PCS и БД PCSS (опционально, только при использовании компонента Server Signer).
Создать пользователя, под которым PC будет подключаться к БД. Необходимые привилегии CRUD + Alter
.
Структуру БД создавать не нужно. При первом подключении PC сам создаст все необходимые таблицы.
Под Docker
Образы
Модули PC размещены непосредственно в образах.
- PCS: registry.paycontrol.org/pc/pc-server:6
- PCE: registry.paycontrol.org/pc/pc-external:6
- PCP: registry.paycontrol.org/pc/pc-pusher:6
- PCCRT: registry.paycontrol.org/pc/pc-crt:6
- PCSS: registry.paycontrol.org/pc/pc-server-signer:6
Переменные
SPRING_CONFIG_ADDITIONAL_LOCATION
задаёт путь к файлу конфигурации для модуля. Пример значения:file:/opt/app/etc/application.yml
.
PCS
SPRING_DATASOURCE_URL
— Строка подключения к БД PCS. Пример для PostgreSQL:jdbc:postgresql://dbserver.loc:5432/db_pcs
;SPRING_DATASOURCE_USERNAME
— Имя пользователя для подключения к БД PCS;SPRING_DATASOURCE_PASSWORD
— Пароль пользователя для подключения к БД PCS.
PCE
PC_EXTERNAL_SERVER_URL
— адрес эндпоинта API-интерфейса модуля PCS, как правило оканчивается наpc-api/
.
PCCRT
PC_CRT_PCSURL
— адрес эндпоинта API-интерфейса модуля PCS, как правило оканчивается наpc-api/
, доступный с рабочего места оператора АРМ РКС.
PCSS
SPRING_DATASOURCE_URL
— Строка подключения к БД PCSS. Пример для PostgreSQL:jdbc:postgresql://dbserver.loc:5432/db_pcss
;SPRING_DATASOURCE_USERNAME
— Имя пользователя для подключения к БД PCSS;SPRING_DATASOURCE_PASSWORD
— Пароль пользователя для подключения к БД PCSS.PC_SIGNER_PCSURL
— адрес эндпоинта API-интерфейса модуля PCS, как правило оканчивается наpc-api/
.PC_SIGNER_URL
— адрес эндпоинта модуля PCSS, на который должен быть отправлен вызов для подтверждения транзакции Server Singer'ом. Как правило оканчивается наpc-server-signer-api/confirm_async/
.
Пример docker-compose.yml
services:
pcs:
restart: unless-stopped
image: registry.paycontrol.org/pc/pc-server:6
ports:
- "8080:8080"
environment:
- SPRING_DATASOURCE_USERNAME=${PCS_DB_USER}
- SPRING_DATASOURCE_PASSWORD=${PCS_DB_PASSWORD}
- SPRING_DATASOURCE_URL=${PCS_DB_CONNECTION_URL}
healthcheck:
test:
[
"CMD-SHELL",
"wget -q -O - --no-verbose --tries=1 http://localhost:8080/pc-api/health_check | grep -q 'PC Server' || exit 1",
]
interval: 5s
timeout: 5s
retries: 20
pce:
restart: unless-stopped
image: registry.paycontrol.org/pc/pc-external:6
ports:
- "8081:8081"
depends_on:
pcs:
condition: service_healthy
environment:
- PC_EXTERNAL_SERVER_URL=http://pcs:8080/pc-api/
healthcheck:
test:
[
"CMD-SHELL",
"wget -q -O - --no-verbose --tries=1 http://localhost:8081/pc-client-api/health_check | grep -q 'PC External' || exit 1",
]
interval: 5s
timeout: 5s
retries: 20
pcp:
restart: unless-stopped
image: registry.paycontrol.org/pc/pc-pusher:6
healthcheck:
test:
[
"CMD-SHELL",
"wget -q -O - --no-verbose --tries=1 http://localhost:8082/pc-pusher-api/health_check | grep -q 'PC Pusher' || exit 1",
]
interval: 5s
timeout: 5s
retries: 20
pccrt:
restart: unless-stopped
image: registry.paycontrol.org/pc/pc-crt:6
ports:
- "8084:8084"
depends_on:
pcs:
condition: service_healthy
environment:
- PC_CRT_PCSURL=http://pcs_address_accessible_from_admin_workspace/pc-api
healthcheck:
test:
[
"CMD-SHELL",
"wget -q -O - --no-verbose --tries=1 http://localhost:8084/pc-crt/health_check | grep -q 'PC Conflicts Resolving Tool' || exit 1",
]
interval: 5s
timeout: 5s
retries: 20
pcss:
restart: unless-stopped
image: registry.paycontrol.org/pc/pc-server-signer:6
environment:
- PC_SIGNER_PCSURL=http://pcs:8080/pc-api/
- PC_SIGNER_URL=http://pcss:8083/pc-server-signer-api/confirm_async/
- SPRING_DATASOURCE_USERNAME=${PCSS_DB_USER}
- SPRING_DATASOURCE_PASSWORD=${PCSS_DB_PASSWORD}
- SPRING_DATASOURCE_URL=${PCSS_DB_CONNECTION_URL}
healthcheck:
test:
[
"CMD-SHELL",
"wget -q -O - --no-verbose --tries=1 http://localhost:8083/pc-server-signer-api/health_check | grep -q 'PC Server Signer' || exit 1",
]
interval: 5s
timeout: 5s
retries: 20
Под ОС Linux
Для работы PC, перед инсталляцией, необходимо установить JRE версий 17 или 21.
PC версии 6 поставляется в виде отдельных дистрибутивов для каждого модуля. По-умолчанию, в качестве директории для инсталляции модулей используется путь /opt/pc/
, где для каждого модуля будет создана отедельная директория.
У пользователя, осуществляющего установку должны быть права на выполнение действий с уровнем привилегий root, либо возможность использовать учётную запись root.
Для инсталляции модуля необходимо:
- разархивировать дистрибутив модуля на время инсталляции;
- внестри актуальные для инфраструктуры параметры конфигурации в файл
application.yml
; - при необходимости — скорректировать путь для инсталляции в файле
install.conf
задав желаемое значение переменнойPC_INSTALL_DIR
; - запустить инсталляцию с помощью
./install.sh
.
В результате инсталляции будет:
- создана директория, в которую будет произведена инсталляция;
- скопированы файлы модуля PC;
- скопирован конфигурационный файл;
- создан и запущен сервиса;
- включён автозапуск сервиса.
Под ОС Windows
Для работы PC, перед инсталляцией, необходимо установить JRE версий 17 или 21.
PC версии 6 поставляется в виде отдельных модулей и сопутствующих файлов. По умолчанию, в качестве директории для инсталляции модулей используется путь C:\pc\
, где для каждого модуля нужно создать отдельную директорию.
Модули PC доступны по ссылке.
Программа NSSM для установки служб доступна по ссылке.
Для инсталляции модулей необходимо:
- создать директории для модулей PC:
Название модуля | Путь |
---|---|
PC Server | C:\pc\pc-server |
PC Pusher | C:\pc\pc-pusher |
PC External | C:\pc\pc-external |
PC Server Signer | C:\pc\pc-server-signer |
PC CRT | C:\pc\pc-crt |
- разложить модули, их сопутствующие файлы и
nssm.exe
в соответствующие директории:
Название модуля | Список файлов |
---|---|
PC Server | pc-server-6.*.jar, application.yml, директория libs |
PC Pusher | pc-pusher-6.*.jar, application.yml (опционально) |
PC External | pc-external-6.*.jar, application.yml (опционально) |
PC Server Signer | pc-server-signer-6.*.jar, application.yml |
PC CRT | pc-crt-6.*.jar, application.yml (опционально) |
- при необходимости внести актуальные для инфраструктуры параметры конфигурации в файл
application.yml
(для PCS и PCSS необходимо указать реквизиты подключения к их базам данных); - установить службу для каждого модуля через
nssm
:- открыть командную строку от имени Администратора;
- перейти в директорию модуля, например,
cd C:\pc\pc-server
; - выполнить команду для установки модуля -
nssm.exe install modulename
, где вместо modulename указать имя директории, в которой находится модуль, например,pc-server
; - в открывшемся окне программы во вкладке Application прописать:
Название параметра | Значение |
---|---|
в Path | полный путь к java.exe |
в Startup directory | полный путь до директории с модулем |
в Arguments | -jar полный_путь_к_файлу_модуля , например, -jar C:\pc\pc-server\pc-server-6.0.1.jar |
в Service Name | имя службы, например, PC Server |
- во вкладке I/O прописать
Название параметра | Значение |
---|---|
в Output | полный путь для к файлу с логами, например, C:\pc\pc-pusher\pc-server.log |
в Error | полный путь для к файлу с логами, например, C:\pc\pc-pusher\pc-server.log |
- нажать Install service.
Описание управления службами доступно по ссылке.
После установки
Проверка доступности сервисов
При запросе на серверы по указанным ниже эндпоинтам будут выведены название модуля сервера PC, его версия и версия API.
- PC Server —
http://<IP или имя сервера PC Server>:8080/pc-api/health_check
- PC External —
http://<IP или имя сервера PC External>:8081/pc-client-api/health_check
- PC Pusher —
http://<IP или имя сервера PC Pusher>:8082/pc-pusher-api/health_check
- PC CRT —
http://<IP или имя сервера PC CRT>:8084/pc-crt/health_check
- PC Server Signer —
http://<IP или имя сервера PC Server Signer>:8083/pc-server-signer-api/health_check
PC API
По умолчанию адрес сервера PCS для взаимодействия с его API располагается по адресу http://<host>:8080/pc-api/
.
Регистрация прикладной системы
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.
Это действие выполняется путем отправки на PC Server HTTP POST содержимого файла запроса на регистрацию прикладной системы, полученного у поставщика решения.
Для отправки запроса можно использовать любое средство отправки HTTP-запросов, например, Postman, cURL и т.д.
Пример запроса для регистрации с помощью cURL
curl --location --request POST 'http://<IP или имя сервера PC Server>:<порт>/pc-api/' --header 'Content-Type: application/json' --data '{"request":"eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9"}'
Результат регистрации
При успешной регистрации прикладной системы на сервере PCS, в теле ответа будет возвращена информация о прикладной системы и идентификатор прикладной системы.
В приведённом примере идентификатором зарегистрированной прикладной системы является e64a67c9-73e9-462c-9c27-2d0195a2bd23
. В дальнейшем этот идентификатор понадобится при настройке прикладной системы на работу с сервером PC. Если значение идентификатора прикладной системы утеряно, свяжитесь с поставщиком или разработчиком PC для его уточнения.
Пример
{
"answer_type": "system_info",
"answer": {
"result": {
"error_message": "Success",
"error_code": 0
},
"system_info": {
"billing_period": 365,
"system_id": "e64a67c9-73e9-462c-9c27-2d0195a2bd23",
"description": "Bank1 Payments",
"report_template_path": "/opt/app/report.docx",
"created_at": "2020-03-23 12:34:1.895",
"pc_is_external_url": "https://bank1.example.com/pc-client-api/",
"register_request": "eyJyZXF1ZXN0I...Xc9PSJFSSZEhTQUFKRXc9PSJEhTQUFKRXc9PSZXN0Ijp7InFyVJ9",
"pc_is_internal_url": "http://localhost:8080/pc-pusher-api/",
"is_deleted": false,
"license_info": {
"users_count": 20,
"used": 0,
"message": "LICENSE NOT FOUND! You are using unlicensed demo-only version of the service"
},
"billing_type": 3,
"user_keys_expiration_period": 365,
"name": "Bank1"
}
},
"answer_version": 3
}
Включение формирования имитовставки (при необходимости)
Имитовставку при необходимости можно включить, тогда ее значение будет возвращаться в коллбэке и информации о подтверждённой транзакции в HEX-кодировке в поле gost_imit.
Создание временной директории для Linux
Необходимо создать "временную" директорию /var/opt/cprocsp/tmp
с правом на запись в неё для пользователя, под которым запускается PCS.
Включение параметра для формирования имитовставки
С помощью запроса
Установка параметра производится с помощью POST-запроса на сервер PCS на эндпоинт http[s]://<HOSTNAME or IP>[:PORT]/pc-api/server_settings
Тело запроса:
{
"GOST_IMIT_PROVIDER": "CryptoPro JCP 2.0"
}
С помощью PC CRT
- Откройте в браузере
http[s]://<HOSTNAME or IP>[:PORT]/pc-crt/#
- Выберите любой идентификатор системы и нажмите
ОК
- На открывшейся странице нажмите на кнопку настроек внизу слева
- В пункте
Криптопровайдер для формирования ГОСТ-имитовставки
пропишитеCryptoPro JCP 2.0
- Нажмите
Применить изменения
внизу страницы
Корректировка (смена) адресов компонентов серверов PC (при необходимости)
Изменение адреса размещения компонента PCS
При перемещении компонента PCS на другой адрес, необходимо изменить адрес его размещения в параметрах конфигурации Прикладной системы и следующих компонентов PC:
- PCE, параметр
pc.external.server.url
; - PCCRT, параметр
pc.crt.pcs-url
; - PCSS, параметр
pc.signer.pcs-url
.
Изменение адреса модуля PC Pusher
Установить адрес PCP можно с помощью запроса к API сервера PCS. Для этого необходимо отправить HTTP PATCH запрос с требуемым адресом PCP в качестве значения параметра pc_is_internal_url
. Подробное описание PC API и эндпоинта для конфигурирования по ссылке. Пример тела запроса:
{
"pc_is_internal_url":"http[s]://<HOSTNAME or IP>[:PORT]/pc-pusher-api/",
}
Также значение параметра можно установить через интерфейс АРМ РКС (при наличии).
Изменение внешнего адреса сервера PC (адреса для взаимодействия мобильного приложения)
Установить адрес PCP можно с помощью запроса к API сервера PCS. Для этого необходимо отправить HTTP PATCH запрос с требуемым адресом PCP в качестве значения параметра pc_is_external_url
. Подробное описание PC API и эндпоинта для конфигурирования по ссылке. Пример тела запроса:
{
"pc_is_external_url":"https://<Внешний IP или DNS-имя сервера PC>[:PORT]/pc-client-api/",
}
Также значение параметра можно установить через интерфейс АРМ РКС (при наличии).
Изменение адреса размещения компонента PCSS
Адрес размещения компонента PCSS задаётся в двух местах:
- Адрес, используемый для уведомления компонента PCSS о том, что создан новый пользователь с атрибутом
Server Signer
и передачи егоuserid
для персонализации, устанавливается в параметрах конфигурации сервера PCS запросом через API; - Адрес и непосредственно в настройках компонента PCSS в параметре
pc.signer.url
. Используется при регистрации пользователя для последующей отправки уведомлений о появлении транзакций для подтверждения на этот адрес.