Руководство по установке#

Примечание

  • Для того, чтобы развернуть в продуктовой среде, используются средства контейнеризации Docker и Docker-compose.

  • На данный момент выделяются контейнеры:

    • jet-api – сервис картографического API.

    • jet-init – приложение для инициализации схемы Jet.

    • jet-client – клиентская часть конфигуратора Jet.

    • jet-server – серверная часть конфигуратора Jet.

  1. На сервере открытого контура установите средства поддержки контейнеризации Docker и Docker-compose.

  2. Проверьте, что Docker запущен командой:

systemctl status docker
  1. Скопируйте архив jet-release.zip и разархивируйте содержимое пакета в директорию, куда будет производиться установка портала. Например: /opt/Jet.

  2. Укажите свои значения в .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 адрес, где развернуто основное приложение

  1. Укажите настройки для базы данных для 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 - время жизни кеша слоев клиента (в минутах).

  2. Для добавления нового клиента в файле .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 (не прописывать «/» на конце).

  1. Для настройки клиентской части в файле .env укажите необходимые параметры.

    • JET_CONFIGURATOR_EXTERNAL_URL- внешний адрес клиентской части.

    • JET_CONFIGURATOR_EXTERNAL_API_URL- адрес сервера.

    • JET_CONFIGURATOR_EXTERNAL_PORT- порт клиентского приложения.

    • JET_CONFIGURATOR_EXTERNAL_API_PORT- порт серверного приложения.

  2. Откройте терминал и перейдите в директорию с установочными файлами.

  3. Запустите установку файла deploy_api.sh (Инициализатор + Jet API).

  4. Запустите установку Конфигуратора файлом deploy_conf.sh.

Для регистрации нескольких клиентов (см. Как подключить несколько клиентов к работе с Jet) необходимо в файле docker-compose.init.yml указать переменные среды (секция enviroment).

Число в названии переменной, это индекс клиента в передаваемом массиве.

Clients__1__ClientId=Client-1-Id
Clients__1__ClientName=Client-1-Name
Clients__1__ClientSecret=Client-1-Secret
Clients__1__RedirectUris=${JET_CLIENT_REDIRECT_URIS}
Clients__1__PostLogoutRedirectUris=${JET_CLIENT_POST_LOGOUT_REDIRECT_URIS}
Clients__1__AllowedCorsOrigins=${JET_CLIENT_ALLOWWED_CORS_ORIGIN}

После обновления данных в файле docker-compose.init.yml, его необходимо перезапустить командой:

docker-compose -f docker-compose.init.yml up

Параметры Clients__1__RedirectUris, Clients__1__PostLogoutRedirectUris, Clients__1__AllowedCorsOrigins остаются неизменными, необходимо скопировать для нового клиента.

../../../../_images/jet1.png

После внесения изменений необходимо перезапустить сервис командой:

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;
    }

}