8.2. Установка

Перед началом установки убедитесь, что вы получили следующие материалы от компании NextGIS:

  • Файл docker-compose.yaml - примеры для ознакомления приведены в приложениях, однако они не содержат всех необходимых параметров.

  • Доступ к NextGIS Container Registry (если установка выполняется с доступом к Интернету), либо архивы с образами Docker (если установка выполняется без доступа к Интернету).

8.2.1. Адреса точек подключения

NextGIS Web On-Premise использует несколько точек подключения с использованием протокола HTTP/HTTPS:

  • NextGIS Web - основной адрес через который пользователи будут взаимодействовать с системой. Значение по умолчанию: http://server.example.com:8080, где server.example.com - доменное имя (или IP-адрес) сервера на котором установлена система.

  • NextGIS ID - сервис аутентификации NextGIS, используемый как NextGIS Web, так и другими продуктами NextGIS. Значение по умолчанию: http://server.example.com:8081.

  • NextGIS Collector Hub (только редакция Extended) - вспомогательный сервис для работы мобильного приложения NextGIS Collector. Значение по умолчанию: http://server.example.com:8082.

  • NextGIS Tracker Hub (только редакция Extended) - вспомогательный сервис для работы приложений трекинга. Значение по умолчанию: http://server.example.com:8083.

Если ваша ИТ-инфраструктура позволяет, рекомендуется настроить обратный прокси-сервер (reverse proxy) для обеспечения TLS-шифрования и работы через HTTPS. Это особенно важно, если доступ к продукту будет осуществляться не только из локальной сети, но и через Интернет. В этом случае адреса точек подключения зависят от настроек обратного прокси-сервера, рекомендуемые значения:

  • NextGIS Web - https://ngw.example.com

  • NextGIS ID - https://ngid.example.com

  • NextGIS Collector Hub - https://chub.example.com

  • NextGIS Tracker Hub - https://thub.example.com

Настройка обратного прокси-сервера должна выполняется силами ИТ-департамента клиента и не относится к области ответственности компании NextGIS. Необходимые для этого параметры приведены в этом документе ниже на примере Nginx.

Совместно с вашим ИТ-департаментом выберите адреса, которые вы будете использовать, и запишите их в таблицу ниже, они потребуются вам в дальнейшем. Дополнительно в таблице приведены названия переменных окружения соответствующие каждой точка подключения.

Точка подключения

Переменная окружения

Значение

NextGIS Web

NEXTGISWEB_URL

NextGIS ID

NEXTGISID_URL

NextGIS Collector Hub

COLLECTOR_HUB_URL

NextGIS Tracker Hub

TRACKER_HUB_URL

8.2.2. Установка и настройка Docker

Важно

Все шаги в этом разделе должны выполняться с правами суперпользователя (root). Если вы используете sudo, то чтобы не запутаться в командах, рекомендуется сначала выполнить sudo -i для получения полноценной сессии суперпользователя.

На сервере необходимо установить актуальные версии Docker Engine и Docker Compose. Рекомендуем использовать официальную инструкции по установке с сайта Docker, либо инструкции по установке вашего дистрибутива, при условии что они соответствуют минимальным требованиям по версиям. Минимально необходимые версии:

  • Docker Engine >= 23

  • Docker Compose >= 2

При установке с доступом к Интернету, для получения образов необходимо выполнить авторизацию в NextGIS Container Registry c использованием имени пользователя (example) и пароля (sesame), предоставленного компанией NextGIS:

$ docker login cr.nextgis.com -u example -p sesame
Login Succeeded

8.2.3. Развертывание стека Docker

Важно

Все шаги в этом разделе должны выполняться с правами суперпользователя (root). Если вы используете sudo, то чтобы не запутаться в командах, рекомендуется сначала выполнить sudo -i для получения полноценной сессии суперпользователя.

Создайте на сервере директорию /srv/ngwdocker, разместите в ней файл docker-compose.yaml полученный от NextGIS, и откройте его в текстовом редакторе, например, используя nano:

$ mkdir -p /srv/ngwdocker
$ cd /srv/ngwdocker
$ cp /path/to/your/docker-compose.yaml .
$ nano docker-compose.yaml

В начале файла docker-compose.yaml есть секция x-shared, в которой в соответствующих переменных необходимо указать адреса точек подключения выбранные ранее (обратите внимание, что адреса указываются без / в конце строки), например:

x-shared: &shared
  NEXTGISWEB_URL: "http://server.example.com:8080"
  NEXTGISID_URL: "http://server.example.com:8081"
  COLLECTOR_HUB_URL: "http://server.example.com:8082"
  TRACKER_HUB_URL: "http://server.example.com:8083"

  NEXTGISID_INSTANCE_NGID: "00000000-0000-0000-0000-000000000000"
  NEXTGISID_ADMINISTRATOR_NGID: "00000000-0000-0000-0000-000000000000"

Обратите внимание, что переменные COLLECTOR_HUB_URL и TRACKER_HUB_URL присутствуют только в редакции Extended. При их отсутствии добавлять их не нужно. Переменные NEXTGISID_INSTANCE_NGID и NEXTGISID_ADMINISTRATOR_NGID будут предзаполнены в файле docker-compose.yaml, который вы получили от NextGIS. После внесения изменений сохраните файл и закройте текстовый редактор.

В случае установки без доступа к Интернету, на данном этапе необходимо выполнить загрузку всех необходимых образов Docker на сервер. Свяжитесь со службой поддержки NextGIS для получения архивов с образами, загрузите их на сервер и выполните команду загрузки образов из архива:

$ docker load -i /path/to/file.tar.gz

Теперь можно приступать к запуску контейнеров, если установка выполняется с доступом к Интернету, то в этот момент из NextGIS Container Registry будут загружены все необходимые образы. Выполните команду:

$ docker compose up -d
[+] up 5/5
  Network ngwdocker_default       Created
  Container ngwdocker-ngid-1      Created
  Container ngwdocker-postgres-1  Created
  Container ngwdocker-archivist-1 Created
  Container ngwdocker-app-1       Created

Если вы используете обратный прокси-сервер для HTTPS, то на этом этапе необходимо настроить его для перенаправления трафика на соответствующие порты NextGIS Web. Пример конфигурации для Nginx приведен в приложении.

Через некоторое время (обычно до 1 минуты) вы можете получить доступ к NextGIS Web по адресу указанный в переменной NEXTGISWEB_URL введя его в адресной строке браузера. Используйте для входа в систему учетные данные администратора по умолчанию: administrator / admin.

Так же можно получить доступ к NextGIS ID по адресу указанный в переменной NEXTGISID_URL с теми же учетными данными. Для проверки корректности указания адресов точек подключения, попробуйте выполнить авторизацию в NextGIS Web при помощи кнопки “Войти через NextGIS ID”.

8.2.4. Еженедельное обслуживание и резервное копирование

Важно

Все шаги в этом разделе должны выполняться с правами суперпользователя (root). Если вы используете sudo, то чтобы не запутаться в командах, рекомендуется сначала выполнить sudo -i для получения полноценной сессии суперпользователя.

Для запуска еженедельного резервного копирования и обслуживания создайте файл cronjob с содержимым приведенным ниже и установите на него флаг исполняемости.

$ cat <<EOF > cronjob
#!/bin/bash
set -ex
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
docker compose exec -T --env NGWDOCKER_INITIALIZE_DB=no \
    app /opt/ngw/bin/docker-entrypoint \
    bash -c "nextgisweb backup && nextgisweb maintenance"
EOF
$ chmod +x cronjob

Этот скрипт запускает онлайн-резервное копирование NextGIS Web, а затем задачу обслуживания. Теперь включите его для выполнения каждое воскресенье в 02:00 через cron и затем перезапустите его:

$ cat <<EOF > /etc/cron.d/ngwdocker
0 2 * * 0 root cd /srv/ngwdocker && ./cronjob
EOF
$ systemctl restart cron