Docker
Уровень сложности: средний
Запуск PassOffice в виде Docker-контейнера доступен только для Linux.
Требования
Установите Docker и Docker Compose.
Прежде чем настраивать все остальное, настройте новую переменную среды $PASSOFFICE_HOME
, указывающую на каталог, где будут находиться конфигурация, журналы и файлы данных. Убедитесь, что каталог существует и предоставлено соответствующее разрешение.
Рекомендуется использовать папку /opt/passoffice
:
mkdir /opt/passoffice
export PASSOFFICE_HOME=/opt/passoffice
Для того, чтобы переменная PASSOFFICE_HOME
была доступна во время следующей терминальной сессии, выполните команду:
echo "export PASSOFFICE_HOME=/opt/passoffice" >> ~/.bashrc
Контейнеры PassOffice будут использовать следующие смонтированные папки для хранения постоянных данных:
$PASSOFFICE_HOME/data
Данные БД Postgres
$PASSOFFICE_HOME/logs
Логи сервера PassOffice
$PASSOFFICE_HOME/licence
Файлы лицензии
$PASSOFFICE_HOME/config
Файлы настроек
Подготовка к запуску
Загрузка Docker образов
Скачайте docker-образы с файлового сервера по полученной ссылке на устройство, которое имеет доступ к Интернет. Вам требуются файлы
passoffice-{version}.tar
,wdm-{version}.tar
,postgres-{version}-alpine.tar
иnginx-{version}-alpine.tar
.Скопируйте архивы с docker-образами на сервер PassOffice в папку
$PASSOFFICE_HOME
любым удобным способом.Перейдите в папку
$PASSOFFICE_HOME
и выполните импорт docker-образов из архивов, введя команды (вместо {version} укажите версию PassOffice):
cd $PASSOFFICE_HOME
docker load --input passoffice-{version}.tar
docker load --input wdm-{version}.tar
docker load --input postgres-{version}-alpine.tar
docker load --input nginx-{version}-alpine.tar
Настройка окружения
При помощи Docker Compose вы можете легко настроить, установить и обновить PassOffice на базе Docker.
Создайте в папке
$PASSOFFICE_HOME
файл.env
(вместо{wdm_version}
,{passoffice_version}
,{postgres_version}
,{nginx_version}
укажите номера версий программного обеспечения).
# Licence Web Manager
WDM_VERSION={wdm_version}
WDM_HOSTNAME=lwm
WDM_PORT=7010
# PassOffice
PASSOFFICE_VERSION={passoffice_version}
PASSOFFICE_HOSTNAME=passoffice
PASSOFFICE_PORT=4201
PASSOFFICE_LWM_URL=http://${WDM_HOSTNAME}:${WDM_PORT}
# Nginx
NGINX_HOSTNAME=passoffice.yourdomain.ru
NGINX_VERSION={nginx_version}
# Database
POSTGRES_VERSION={postgres_version}
DB_HOST=postgres
DB_NAME=passoffice
DB_USER=passoffice
DB_PASSWORD=passoffice
Создайте в папке
$PASSOFFICE_HOME
файлdocker-compose.yml
с следующим содержимым:
services:
passoffice:
image: 'passoffice/passoffice:${PASSOFFICE_VERSION}'
restart: unless-stopped
hostname: ${PASSOFFICE_HOSTNAME}
depends_on:
- lwm
- postgres
- nginx
environment:
DB_HOST: '${DB_HOST}'
DB_NAME: '${DB_NAME}'
DB_USER: '${DB_USER}'
DB_PASSWORD: '${DB_PASSWORD}'
LWM_URL: '${PASSOFFICE_LWM_URL}'
expose:
- ${PASSOFFICE_PORT}
volumes:
- './logs/passoffice:/var/log/passoffice' # PassOffice Logs
- './licence:/app/bin/license' # PassOffice Licence File
- '/tmp/passoffice:/app/bin/activemq-data/localhost/tmp_storage' # ActiveMQ Tmp Storage
lwm:
image: 'passoffice/wdm:${WDM_VERSION}'
restart: unless-stopped
hostname: ${WDM_HOSTNAME}
volumes:
- './logs/wdm:/wdm/Logs'
- './licence:/wdm/Licence'
- './licence/apc_c2v:/wdm/bin/apc_c2v_output'
ports:
- '${WDM_PORT}:${WDM_PORT}'
command: bash -c 'service aksusbd start && sleep 3s && /wdm/bin/ApcWebDrvManagerConsole -port=${WDM_PORT} -delayedDrvCreation'
devices:
- /dev/bus/usb:/dev/bus/usb # Sentinel Hardlock
nginx:
image: 'nginx:${NGINX_VERSION}-alpine'
restart: unless-stopped
ports:
- '443:443'
- '80:80'
environment:
HOSTNAME: ${NGINX_HOSTNAME}
PASSOFFICE_HOSTNAME: ${PASSOFFICE_HOSTNAME}
PASSOFFICE_PORT: ${PASSOFFICE_PORT}
volumes:
- './config/nginx/templates/passoffice.conf.template:/etc/nginx/templates/default.conf.template:ro'
- './config/nginx/certs:/etc/nginx/certs:ro'
postgres:
image: 'postgres:${POSTGRES_VERSION}-alpine'
restart: unless-stopped
environment:
POSTGRES_USER: '${DB_USER}'
POSTGRES_PASSWORD: '${DB_PASSWORD}'
POSTGRES_DB: '${DB_NAME}'
volumes:
- './data:/var/lib/postgresql/data'
Создайте папки для хранения конфигурационных файлов и сертификатов Nginx:
cd $PASSOFFICE_HOME
mkdir config && cd config
mkdir nginx && cd nginx
mkdir templates
mkdir certs
Создайте в папке
$PASSOFFICE_HOME/config/nginx/templates
файл с именемpassoffice.conf.template
, который будет содержать следующий шаблон:
server {
listen 80;
server_name ${HOSTNAME};
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name ${HOSTNAME};
ssl_certificate /etc/nginx/certs/${HOSTNAME}.crt;
ssl_certificate_key /etc/nginx/certs/${HOSTNAME}.key;
client_max_body_size 20M;
location / {
proxy_pass http://${PASSOFFICE_HOSTNAME}:${PASSOFFICE_PORT};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Поместите в папку
$PASSOFFICE_HOME/config/nginx/certs
сертификаты и ключи SSL, необходимые для работы Nginx.
Имена файлов сертификата и ключа SSL должны иметь формат passoffice.yourdomain.ru.crt
и passoffice.yourdomain.ru.key
, где passoffice.yourdomain.ru - ваше доменное имя для PassOffice.
Лицензирование
Для схемы лицензирования PassOffice с использованием LWM (LicenceWebManager) доступны два варианта запуска сервера лицензирования LWM:
с использованием ключа аппаратной защиты Sentinel;
с использованием программной лицензии, которая генерируется с привязкой к аппаратному обеспечению сервера, на котором запускается система.
Для запуска сервера лицензирования LWM с использованием ключа аппаратной защиты Sentinel необходимо:
Установить ключ аппаратной защиты в USB-разъем сервера или выполнить проброс USB-over-IP при установке на виртуальную машину.
Проверить, что устройство отображается в списке USB устройств в выводе команды
lsusb
Запросите файлы лицензии у вашего поставщика PassOffice или по почте [email protected].
После получения файлов лицензии перейдите в папку $PASSOFFICE_HOME/licence
и скопируйте в нее файлы лицензии Licence.bin и HWLicence.bin любым удобным способом:
cd $PASSOFFICE_HOME
mkdir $PASSOFFICE_HOME/licence/
cp Licence.bin HWLicence.bin $PASSOFFICE_HOME/licence/
Запуск
Убедитесь, что вы находитесь в папке с файлом
docker-compose.yml
и запустите сервер PassOffice:
cd $PASSOFFICE_HOME
docker compose up -d
Для просмотра лога работы сервера PassOffice выполните команду:
docker compose logs -f
Когда сервер PassOffice будет готов принимать входящие запросы, в логах появится надпись:
*************************************
PassOffice Server is started
*************************************
Сервер PassOffice доступен через веб-браузер по адресу
https://passoffice.yourdomain.ru
Остановка сервера
Убедитесь, что вы находитесь в папке с файлом docker-compose.yml
и выполните команду:
docker compose down
Аварийное завершение работы серверного приложения PassOffice может повлечь за собой некорректное отключение от ключа аппаратной защиты или, в худшем случае, повреждение данных в БД.
Last updated
Was this helpful?