Руководство по установке#
Примечание
Для того, чтобы развернуть в продуктовой среде, используются средства контейнеризации Docker и Docker-compose.
На данный момент выделяются контейнеры:
jet-api – сервис картографического API.
jet-init – приложение для инициализации схемы Jet.
jet-client – клиентская часть конфигуратора Jet.
jet-server – серверная часть конфигуратора Jet.
На сервере открытого контура установите средства поддержки контейнеризации Docker и Docker-compose.
Проверьте, что Docker запущен командой:
systemctl status docker
Скопируйте архив jet-release.zip и разархивируйте содержимое пакета в директорию, куда будет производиться установка портала. Например: /opt/Jet.
Укажите свои значения в .env-файле конфигурации для следующих переменных окружения:
JET_EXTERNAL_PORT - внешний порт Jet API
JET_USE_HTTPS - значение ставится в зависисмости от того, по какому протоколу должен работать API Jet: если https - true, если http - false
GEOMETA_URL - адрес до Geometa
STS_URL - адрес до сервиса авторизации
GEOMETA_DB_SERVER - dns-имя или ip-адрес сервера БД Geometa
GEOMETA_DB_PORT - порт сервера БД Geometa
GEOMETA_DB_NAME - имя БД Geometa
GEOMETA_DB_USER - пользователь БД Geometa
GEOMETA_DB_USER_PASS - пароль пользователя БД Geometa
GEOMETA_IP - IP адрес, где развернуто основное приложение
Укажите настройки для базы данных для Jet API:
JET_DB_SERVER - dns-имя или ip-адрес сервера БД
JET_DB_PORT - порт сервера БД
JET_DB_NAME - имя БД
JET_DB_USER_ID - пользователь БД
JET_DB_USER_PASS - пароль пользователя БД
JET_DB_SCHEMA_NAME - имя схемы для Jet API (рекомендуется gems_jet)
JET_CACHE_CLIENT_LAYERS_LIFETIME - время жизни кеша слоев клиента (в минутах).
Для добавления нового клиента в файле .env укажите необходимые параметры.
JET_CLIENT_ID - ИД клиента.
JET_CLIENT_NAME - Наименование клиента.
JET_CLIENT_SECRET - Секрет клиента.
JET_CLIENT_REDIRECT_URIS - адрес, куда сервер авторизации отправляет пользователя после того, как приложение было успешно авторизовано и ему предоставлен код авторизации или токен-доступ. Для успешной авторизации клиента через QGis необходимо указать URI http://127.0.0.1:7070/ (обязательно прописывать «/» на конце), где 7070 – порт адреса редиректа QGIS.
JET_CLIENT_POST_LOGOUT_REDIRECT_URIS - адрес страницы, куда пользователь будет направлен после logout. Для клиента QGIS укажите http://127.0.0.1:7070/ (обязательно прописывать «/» на конце).
JET_CLIENT_ALLOWWED_CORS_ORIGIN - адрес, с которого разрешено обращаться к STS. В данном параметре укажите ORIGIN (связка: протокол + доменное имя + порт) клиента, с которого будет приходить запрос на авторизацию. Если нужна авторизация для клиента QGIS, укажите http://127.0.0.1:7070 (не прописывать «/» на конце).
Для настройки клиентской части в файле .env укажите необходимые параметры.
JET_CONFIGURATOR_EXTERNAL_URL- внешний адрес клиентской части.
JET_CONFIGURATOR_EXTERNAL_API_URL- адрес сервера.
JET_CONFIGURATOR_EXTERNAL_PORT- порт клиентского приложения.
JET_CONFIGURATOR_EXTERNAL_API_PORT- порт серверного приложения.
Откройте терминал и перейдите в директорию с установочными файлами.
Запустите установку файла deploy_api.sh (Инициализатор + Jet API).
Запустите установку Конфигуратора файлом deploy_conf.sh.
Для регистрации нескольких клиентов (см. Как подключить несколько клиентов к работе с Jet) необходимо в файле docker-compose.init.yml указать переменные среды (секция enviroment).
Число в названии переменной, это индекс клиента в передаваемом массиве.
После обновления данных в файле docker-compose.init.yml, его необходимо перезапустить командой:
docker-compose -f docker-compose.init.yml up
Параметры Clients__1__RedirectUris, Clients__1__PostLogoutRedirectUris, Clients__1__AllowedCorsOrigins остаются неизменными, необходимо скопировать для нового клиента.
После внесения изменений необходимо перезапустить сервис командой:
bash deploy_conf.sh
Настройка Nginx#
Секции создадутся в Nginx автоматически, если в Аnsible установлено vJET_NGINX_ENABLE: "true"
.
Важно
В /etc/nginx/sites-available/ isogd убедитесь, что секция location вида:
location ~ ^/(.well-known|connect|[Aa]ccount|[Ee]xternal|signin-esia|home|api/clients/external)/? {
proxy_pass http://sts;
}
Настройки Nginx для Jet в файле /etc/nginx/sites-available/jet:
upstream jet {
server localhost:5098;
}
server {
listen 80;
server_name jet-marvel-isogd.gemsdev.ru;
return 301 https://$host$request_uri;
}
server {
server_name jet-marvel-isogd.gemsdev.ru;
listen 443 ssl http2;
include /etc/nginx/sites-available/isogd-common;
include /etc/nginx/sites-available/isogd-ssl;
location / {
proxy_pass http://jet;
}
}
Настройки Nginx для конфигуратора Jet в файле /etc/nginx/sites-available/jet-conf:
upstream jet-configurator-client {
server localhost:3000;
}
upstream jet-configurator-server {
server localhost:3001;
}
server {
listen 80;
server_name jet-configurator-marvel.gemsdev.ru;
return 301 https://$host$request_uri;
}
server {
server_name jet-configurator-marvel.gemsdev.ru;
listen 443 ssl http2;
include /etc/nginx/sites-available/isogd-common;
include /etc/nginx/sites-available/isogd-ssl;
location /api {
proxy_pass http://jet-configurator-server;
}
location / {
proxy_pass http://jet-configurator-client;
}
}