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.comNextGIS ID -
https://ngid.example.comNextGIS Collector Hub -
https://chub.example.comNextGIS Tracker Hub -
https://thub.example.com
Настройка обратного прокси-сервера должна выполняется силами ИТ-департамента клиента и не относится к области ответственности компании NextGIS. Необходимые для этого параметры приведены в этом документе ниже на примере Nginx.
Совместно с вашим ИТ-департаментом выберите адреса, которые вы будете использовать, и запишите их в таблицу ниже, они потребуются вам в дальнейшем. Дополнительно в таблице приведены названия переменных окружения соответствующие каждой точка подключения.
Точка подключения |
Переменная окружения |
Значение |
|---|---|---|
NextGIS Web |
|
|
NextGIS ID |
|
|
NextGIS Collector Hub |
|
|
NextGIS Tracker Hub |
|
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