Руководство по установке#
Развертывание портала#
Состав дистрибутивов#
Состав дистрибутивов (при развёртывании помещаются в один каталог):
PortalUnixDeploy – скрипт установки
releasePortal4.zip – архив сборки портала
templatesPortal4.zip – архив с шаблоном портала
Важно
На сервере должна присутствовать установленая ИАС и создана пустая БД согласно руководству по установке. (См. Установка системы)
Шаги развертывания#
Зайдите в конфигуратор ИАС и создайте портальный проект с системой координат 3857:
Добавьте систему координат, которая соответствует реплицируемым данным (необходимо для пересчёта геометрии при репликации). Настройки добавляются в конфигураторе на вкладке «Системы координат».
Выполните установку компонентов БД:
dotnet %Путь_куда_установлена_ИАС%/Cli/gems.cli.dll db-migrate -c "Server=%адрес_сервера_бд%;Port=%порт_сервера_бд%;Database=%имя_базы данных%;User Id=%пользователь_бд%;Password=%пароль_пользователя_бд%;" -f "Путь_куда_установлена_ИАС" [-s %имя_схемы%]
Важно
Вышеуказанную команду необходимо выполнить два раза подряд! После первого выполнения будет выведено предупреждение о недоступности одного из компонентов БД, который необходим для обновления остальных компонентов и произведена попытка установки этого компонента. После второго выполнения все строки вывода станут зелёными.
Важно
Для того, чтобы убедиться, что все компоненты успешно установлены/обновлены, необходимо выполнить точно такую же команду, только параметр db-migrate заменить на db-validate
При необходимости применить метаданные для созданного проекта (метаданные портала должны совпадать с метаданными ИАС-источника). (См. Обновление метаданных).
Выполните установку портала:
sudo bash %Путь_к_скрипту_деплоя% %Путь_установки% %'connectionString'% -gHost=localhost -PortalWebUiPublicOrigin=%интернет-адрес_портала% -IasRootDirectory=%путь_к_ИАС% -PortalSchema='%схема_портала%'
Настройте nginx.
Внесите изменения в файл /etc/nginx/sites-enabled/%имя_конфигурации%
Параметры portal.ru, ias.crt, ias.key необходимо заменить на свои:
server {
server_name portal.ru;
listen 443 ssl http2;
ssl_certificate /etc/ssl/certs/ias.crt;
ssl_certificate_key /etc/ssl/private/ias.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
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;
client_max_body_size 50m;
client_body_buffer_size 128k;
proxy_buffers 4 128k;
proxy_buffer_size 64k;
proxy_busy_buffers_size 128k;
proxy_connect_timeout 777;
proxy_send_timeout 777;
proxy_read_timeout 777;
location / {
proxy_pass http://localhost:5061/;
}
location /api/ {
proxy_pass http://localhost:5060/api/;
}
location /api/signalr/ {
proxy_pass http://localhost:5060/api/signalr/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Перезапустите nginx, после изменений:
systemctl restart nginx
8. Пропишите сопоставление URL портала и его IP-адреса в DNS или в файл hosts (C:/Windows/System32/drivers/tc/hosts) Например, добавить запись в файл hosts вида: %ip_адрес_сервера_портала% %доменное_имя_портала%
Перезапустите службу аутентификации и авторизации - STS.service:
systemctl restart STS
Настройте службу репликации (См. Установить и настроить сервис репликации) и выполните первичную репликацию данных в портальную БД
Проверьте работоспособность портала (вход в административную часть https://доменное_имя/Admin/Map).
После успешного завершения предыдущих шагов, можно приступить к добавлению и настройке карт портала. (См. Настройка интерактивной градостроительной карты)
Настройка карты «Землепользование»#
Создайте карту «Карта землепользования» в ГИС-конфигураторе. Добавьте в нее необходимые слои:
GeoUrbanTerzoneExist,
GeoGknParcelExist,
GeoAdrCapitalBuild,
GeoGknSpecialZone.
Это минимальный набор слоев, без которых не все функции карты будут рабочими. Добавляемые в карту слои должны быть созданы в проекции EPSG:3857. Если портальная БД и GeoServer клонированы с ИАС, то слои необходимо создавать заново.
Добавьте новую карту на странице администрирования портала. На страницу администрирования можно попасть по ссылке https://[адрес портала].ru/admin/map/.
Задайте настройки для карты согласно таблице:
Наименование |
Значение |
---|---|
карты типа |
Землепользование |
Наименование |
Карта землепользования |
Псевдоним |
urban |
Карта Gisserver |
Карта землепользования |
Объекты, отображаемые в панели поиска |
Объекты недвижимости |
Объекты, отображаемые на карте |
Не задано |
Карта по умолчанию |
Да |
Изображение |
Карта градостроительного занирования.png |
В БД создайте записи в таблице Portal_GisMapSwitchGroups для каждого вида карт (ЗОУИТ, Участки и здания, Градостроительное зонирование):
Колонка Id заполняется автоматически.
Колонка GisMapId содержит ключ карты (узнать его можно из Гис-конфигуратора, нажать на имя карты в колонке слева, в адресной строке браузера скопировать последнюю секцию, например для адреса https://a.gemsdev.ru/system#!/project/tumenmr/gisConfig/map/3282 нужно взять 3282).
Колонка Name содержит имя вида карты (например: ЗОУИТ, Участки и здания, Градостроительное зонирование).
Колонка ImageBase64 заполняется строкой в формате base64 которая содержит изображение для иконки вида карт.
Колонка Alias заполняется согласно виду карты:
ЗОУИТ - ProjectionRegions
Участки и здания - ParcelsConstructions
Градостроительное зонирование - PZZ
Колонка LayersGUIDs содержит ключи слоев (узнать можно из Гис-конфигуратора, нажать на имя слоя в средней колонке, в адресной строке браузера скопировать последнюю секцию, например, для адреса https://a.gemsdev.ru/system#!/project/tumenmr/gisConfig/vectorLayer/edit/3147 нужно взять 3147).
После этих настроек на портале в карте землепользования появится кнопка справа, раскрывающая список видов карт.
ImageBase64 описания#
Настройка карты «Обращения граждан»#
Работа с обращениями состоит из двух частей:
подача обращения с портала, в т.ч.: создание обращения, просмотр карты с обращениями, просмотр карточки обращения, установка оценки по выполненному обращению.
обработка полученного обращения в ИАС, в т.ч.: просмотр карточки обращения, управление статусами обращения, подготовка решения по обращению.
Для установки карты в проект:
Залейте метаданные подсистемы «Обращения граждан» в проект (.gmdiff или подключить п/с в проект). Если ИАС и Портал работают с разными БД, то в обе.
Добавьте слои. Можно воспользоваться Мультитулом: использовать layers.bat с файлом ../Обращения граждан/Для установки/5. Слои, Карты/layers.csv . (См. multisloi)
Добавьте карты. Можно воспользоваться Мультитулом: использовать maps.bat с файлом …/Обращения граждан/Для установки/5. Слои, Карты/maps.csv. (См. multimap)
В ГИС-конфигураторе проекта портала замените SLD-описания стилей INVISIBLE и V_GEO_FEEDBACK на указанные в sld-файлах в папке …/Обращения граждан/Для установки/6. Стили слоёв.
В ГИС-конфигураторе в карте обращений Портала для слоя с обращениями установите стиль INVISIBLE.
В ГИС-конфигураторе в карту обращений портала и карту обращений ИАС добавьте необходимые слои-подложки.
Запустите батник ../Обращения граждан/Для установки/Скрипт для установки/run.bat, предварительно указав настройки БД в батнике. В ИАС будут созданы каталоги, роли, справочные значения используемых справочников.
Чтобы в ИАС отобразились каталоги, потребуется перезапустить сервер приложения.
Создайте карту с обращениями на Портале, выбрав в качестве источника карту с п.3
Перегенирируйте виды поиска.
Добавьте настройки ЕСИА для Портала (мнемоника и сертификат). Задаются через конфигуратор ИАС.
В случае, если ИАС и Портал работают с разными БД, то настройте репликацию (в обе стороны).
После установки/обновления сборки портала установите компонент БД. Компонент БД нужен для добавления в базу настроек отображения кластеризованых маркеров обращений в карте портала.
Для установки компонента нужно выполнить команду в консоли на сервере:
dotnet /путь/до/gems.cli.dll db-migrate -f /путь/до/PortalUI -c "Username=ЛогинБД;Password=ПарольБД;Host=ХостБД;Database=БД" -o Project.Portal.FeedBackSettings -s схема_проекта
Назначьте пользователю ИАС, ответственному за обработку обращений, роль FeedbackPortal.
Настройка авторизации через ЕСИА и соцсети#
Настроить#
Для добавления возможности входа через аккаунт Google и ВКонтакте
Зарегистрируйте приложение в каждой из указанных сетей в соответствующих консолях.
Консоль для Google https://console.developers.google.com/. Консоль для ВКонтакте https://vk.com/apps?act=manage.
После регистрации в каждой из соц.сетей приложению будут назначены идентификатор клиента и его так называемый секрет. Эти значения необходимо записать в файл appsettings.json сервера аутентификации STS. Файл расположен в корне установки сервера аутентификации. При установке ИАС для сервера аутентификации создается папка IdentityServer. Файл искать в корне этой папки. Т.е. на linux это может быть примерно такой путь /…папка_установки_ИАС…/IAS/IdentityServer.
В файле appsettings.json необходимо создать секцию «Authentication» с двумя разделами для Google и ВКонтакте. Секцию расположить в корне.
Пример, как должна выглядеть секция «Authentication»:
"Authentication": {
"Google":
{ "ClientId": "589412524253-9l9cgi0ookd0kku3e3s3pruphojkp3lk.apps.googleusercontent.com", "ClientSecret": "kuNI9Yt8byU6-56Ohz9XCZPk" }
,
"Vkontakte":
{ "ClientId": "7171450", "ClientSecret": "CN3n03sMhnISvvQ5U2mi" }
}
Значения «ClientId» и «ClientSecret» для каждой соц.сети заменить на свои. Указанные значения можно использовать для теста.
После редактирования файла appsettings.json перезапустите сервер аутентификации. Служба сервера аутентификации называется STS.service
В настройки nginx ИАС добавьте секции:
location /api/providers {
proxy_pass http://127.0.0.1:5002/api/providers;
}
location /signin-vkontakte {
proxy_pass http://127.0.0.1:5002/signin-vkontakte;
}
location /signin-google {
proxy_pass http://127.0.0.1:5002/signin-google;
}
Перезапустите службу nginx.
Проверка:
Полное содержимое файла appsettings.json должно выглядеть вот так:
{
"ConnectionStrings":
{ "DefaultConnection": "Server=172.16.55.46;Port=5432;Database=marvelportal;User Id=postgres;Password=admin;ApplicationName=PorvatV4;" }
,
"Logging": {
"IncludeScopes": false,
"LogLevel":
{ "Default": "Debug", "System": "Warning", "Microsoft": "Warning" }
},
"hostConfigName": "localhost",
"Authentication": {
"Google":
{ "ClientId": "589412524253-9l9cgi0ookd0kku3e3s3pruphojkp3lk.apps.googleusercontent.com", "ClientSecret": "kuNI9Yt8byU6-56Ohz9XCZPk" }
,
"Vkontakte":
{ "ClientId": "7171450", "ClientSecret": "CN3n03sMhnISvvQ5U2mi" }
}
}
Необходимо чтобы портальный конфигуратор был доступен в сети интернет.
Активировать возможность входа#
Чтобы кнопка входа через ЕСИА появилась на портале необходимо:
Установить КриптоПРО и JavaCSP на сервере (необходимы для сервиса подписи, иначе через ЕСИА не авторизоваться).
В настройки nginx ИАС добавить секции:
location /api/providers {
proxy_pass http://127.0.0.1:5002/api/providers;
}
Перезапустить службу nginx.
В конфигураторе на вкладке «Настройки системы» - «Интеграция», установить галочку «Интегрироваться с ЕСИА» и заполнить настройки.