Установка Printforms API¶
Для установки Printforms API требуется скопировать его файлы в целевую папку. Для этого нужно выполнить команду:
sudo cp -r ~/Загрузки/TerraLink.xDEPro/Printforms.REST /opt/TerraLink.xDEPro/Printforms/Printforms.REST
Настройка подключения к базе данных¶
Теперь нужно настроить подключение Printforms API к базе данных. Для этого требуется скопировать демонстрационный конфигурационный файл с шаблоном подключения к PostgreSQL в конфигурационный файл, который будет использоваться Printforms API:
sudo cp /opt/TerraLink.xDEPro/Printforms/Printforms.REST/appsettings.PostgreSql.Printforms.json.demo /opt/TerraLink.xDEPro/Printforms/Printforms.REST/appsettings.json
Далее нужно открыть конфигурационный файл в текстовом редакторе:
sudo nano /opt/TerraLink.xDEPro/Printforms/Printforms.REST/appsettings.json
найти поле ConnectionString
и задать имя пользователя и пароль назначенной учетной записи:
{
"ProviderName": "Npgsql",
"ConnectionString": "User ID=xde;Password=1234aA;Host=localhost;Port=5432;Database=PRINTFORMS_DB;MaxPoolSize=500"
}
Затем нужно сохранить файл (Ctrl+O
) и выйти из редактора (Ctrl+X
).
Примечание
Если планируется использовать PostgreSQL, установленный на другой машине, то в строке подключения нужно указать имя хоста (либо IP-адрес) и порт установленного экземпляра PostgreSQL.
Настройка доступа к Printforms API через Nginx¶
Для настройки доступа к Printforms API через Nginx требуется создать файл с конфигурацией сайта в текстовом редакторе:
sudo nano /etc/nginx/sites-available/xde-printforms-api
и скопировать в него содержимое:
server {
# виртуальный сервер настраивается на порт по умолчанию для этого HTTP-сервиса + 100
listen 6130;
# в примере доступ к этому HTTP-сервису возможен только по IP-адресу
server_name 192.168.11.128;
location / {
# порт по умолчанию для этого HTTP-сервиса - 6030
proxy_pass http://127.0.0.1:6030;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host:$server_port;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Затем нужно сохранить файл (Ctrl+O
) и выйти из редактора (Ctrl+X
).
Примечание
Для доступа по IP-адресу значение параметра server_name
должно быть равно фактическому IP-адресу машины, на которую устанавливается Printforms API.
Здесь указан пример IP-адреса.
Теперь нужно создать ссылку на конфигурационный файл сайта в папке /etc/nginx/sites-enabled/
и перезапустить Nginx:
sudo ln -s /etc/nginx/sites-available/xde-printforms-api /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Предупреждение
Не используйте HTTP-подключение к Nginx в продуктивной среде. Это может привести к несанкционированному доступу к данным, в том числе к содержимому документов и паролям. Используйте HTTPS-подключение.
Автоматический запуск Printforms API¶
Для автоматического запуска Printforms API нужно в текстовом редакторе создать файл конфигурации сервиса:
sudo nano /etc/systemd/system/xde-printforms-api.service
и скопировать в него содержимое:
[Unit]
Description=TerraLink xDEPro Printforms API
[Service]
WorkingDirectory=/opt/TerraLink.xDEPro/Printforms/Printforms.REST
# доступ извне будет возможен только через Nginx
ExecStart=/opt/dotnet/dotnet /opt/TerraLink.xDEPro/Printforms/Printforms.REST/TerraLink.xDEPro.Printforms.Rest.Host.dll --urls http://127.0.0.1:6030
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=xde-printforms-api
User=xdeadmin
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Затем нужно сохранить файл (Ctrl+O
) и выйти из редактора (Ctrl+X
).
Теперь нужно включить и запустить сервис:
sudo systemctl enable xde-printforms-api.service
sudo systemctl start xde-printforms-api
Проверка доступности Printforms API¶
Для проверки доступности Printforms API нужно открыть браузер на машине, отличной от той, на которую производится установка. В адресной строке браузера указать настроенный адрес и порт:
http://192.168.11.128:6130
В ответ в браузере должна открыться страница Swagger UI.