Установка и настройка¶
Инструкция описывает процесс установки и настройки консоли управления ПроAPI Защита.
Шаг 1. Получение доступа и лицензионного ключа¶
- Отправьте запрос на presale@webmonitorx.ru для получения trial лицензии и доступа к репозиторию продукта.
Шаг 2. Подключение Docker Registry¶
-
Выполните команду:
docker login registry.webmonitorx.ru -u '__UserName__'
-
Введите логин и пароль, полученные на предыдущем шаге.
Шаг 3. Установка базы данных¶
- Разверните или используйте имеющийся экземпляр MongoDB. Для установки MongoDB: центр загрузки MongoDB
Обратите внимание
Для корректной работы требуется включение режима replica set
!
-
Пример запуска MongoDB в Docker-контейнере (может не подойти для production окружения):
docker pull mongo:8.0.5 docker run -it --rm \ --name api-fw-mongo \ -e MONGO_INITDB_ROOT_USERNAME=apifw \ -e MONGO_INITDB_ROOT_PASSWORD=__SECURE_PASSWORD_HERE__\ -e MONGO_INITDB_DATABASE=admin \ -p 27017:27017 \ -v ${PWD}/mongo_data:/data/db \ mongo:8.0.5 \ bash -c " openssl rand -base64 756 > /opt/mongodb-keyfile && chmod 400 /opt/mongodb-keyfile && chown 999:999 /opt/mongodb-keyfile && exec docker-entrypoint.sh mongod --bind_ip_all --replSet rs0 --auth --keyFile /opt/mongodb-keyfile "
-
После успешного запуска контейнера включите режим
replica set
:docker run --rm \ --name mongo-init \ mongo:8.0.5 \ /bin/sh -c " mongosh mongodb://apifw:__SECURE_PASSWORD_HERE__@api-fw-mongo:27017/?directConnection=true --eval ' try { let status = rs.status(); } catch (e) { if (e.codeName === \"NotYetInitialized\") { rs.initiate({ _id: \"rs0\", members: [{ _id: 1, host:\"api-fw-mongo:27017\"}] }); } } ' "
-
Проверьте корректность настройки режима
replica set
:
docker run --rm -it \ --name mongosh \ mongo:8.0.5 \ /bin/sh -c "mongosh mongodb://apifw:__SECURE_PASSWORD_HERE__@api-fw-mongo:27017/?directConnection=true --eval 'rs.status();'"
Шаг 4. Миграции базы данных¶
Перед запуском Консоли управления или при переходе на новую версию ПО нужно подготовить структуру базы данных.
Обратите внимание
Версия контейнера с миграциями должна соответствовать используемой версии консоли управления.
Запуск контейнера для выполнения миграции:
docker pull registry.webmonitorx.ru/api-firewall/apifw-db-migrations:1.2.0
docker run -it \
--name api-fw-manager-migrations \
-e MONGO_URI="mongodb://apifw:__SECURE_PASSWORD_HERE__@api-fw-mongo:27017"
registry.webmonitorx.ru/api-firewall/apifw-db-migrations:1.2.0 \
up
Переменная окружения:
Переменная среды | Описание |
---|---|
MONGO_URI | Строка подключения к MongoDB |
Шаг 5. Запуск бэкенд компонента Консоли управления ПроAPI Защита¶
- Разверните Консоль управления ПроAPI Защита, используя docker-образ приложения на сервере в вашей сети.
Запуск контейнера с приложением:
docker pull registry.webmonitorx.ru/api-firewall/apifw-manager:1.2.0
docker run -d \
--name api-fw-manager \
-e MONGO_URI="mongodb://MONGO_LOGIN:MONGO_PASSWD@$MONGO_ADDR:PORT" \
-e URL_MANAGER=${URL_MANAGER} \
-e LICENSE_KEY=__LICENSE_KEY__ \
-p 8081:8081 \
-p 8082:8082 \
registry.webmonitorx.ru/api-firewall/apifw-manager:1.2.0
Минимальный набор переменных окружения для старта:
Переменная среды | Описание |
---|---|
MONGO_URI | Строка подключения к MongoDB |
URL_MANAGER | Адрес и порт, на который будут подключаться ноды по gRPC. Схему (http://, https://) указывать не нужно. Порт по-умолчанию 8081 . |
LICENSE_KEY | Лицензионный ключ |
Полный набор переменных окружения →
-
Бэкенд компонент Консоли управления использует следующие порты:
- Порт 8081 (TCP) для GRPC-соединений с нодами
- Порт 8082 (TCP) для взаимодействия с WEB UI по HTTP. Можно не публиковать этот порт, если фронтенд компонент будет запущен в той же docker сети.
Обратите внимание
Убедитесь в доступности хоста консоли управления для подключения из подсетей, где планируется запуск нод.
-
Вы можете запустить контейнер api-fw-manager и контейнер с WEB UI рядом, в одной docker сети: так не потребуется открывать порт 8082 наружу.
Обратите внимание
При первом запуске api-fw-manager в лог контейнера будет выведен сгенерированный случайным образом пароль администратора. Сохраните его для дальнейшего использования.
Шаг 6. Развертывание WEB UI¶
- Свяжите Web UI с бэкендом Консоли управления ПроAPI Защита, установив значения переменных окружения
API_BASE_URL
иAPI_BACKEND_URL
.
Запуск контейнера с WEB UI:
docker pull registry.webmonitorx.ru/api-firewall/apifw-manager-ui:1.2.0
docker run -d \
--name manager_ui \
-e API_BASE_URL=http://apifw.webmonitorx.dev/api/ \
-e API_BACKEND_URL=http://api.apifw.webmonitorx.dev:8082/api/ \
-p 80:80 \
-p 443:443 \
registry.webmonitorx.ru/api-firewall/apifw-manager-ui:1.2.0
- После успешного выполнения этих команд контейнер с Web UI будет запущен и доступен по указанным портам. Теперь можно открыть Web UI в браузере, перейдя по адресу
http://<IP_адрес_сервера>
.
Переменные окружения:
Переменная среды | Описание |
---|---|
API_BASE_URL | URL, который будет использоваться для формирования запросов к API. Должен соответствовать URL, на котором у вас развернут WEB UI, но с /api на конце |
API_BACKEND_URL | URL для проксирования запроса от WEB UI на backend. На этот URL встроенный в WEB UI NGINX будет делать proxy_pass |
Фронтенд компонент состоит из React приложения и NGINX и по умолчанию работает по http. При необходимости вы можете примонтировать внутрь контейнера свою конфигурацию NGINX и SSL сертификаты.
Пример конфигурационного файла NGINX: compose-example. Используйте его как основу для создания своего собственного конфига.