Подготовка к развертыванию#
Перед развертыванием приложения необходимо подготовить к работе систему и сгенерировать все конфигурационные файлы.
Необходимое программное обеспечение#
Nginx#
Nginx является рекомендуемым веб-сервером для обработки входящих подключений. Для работы приложения необходимо открыть 443 порт в firewall и установить веб-сертификат, если он еще не установлен.
Установка Nginx выполняется следующими командами:
Подробная информация доступна на официальном сайте.
Docker#
Docker является средой, необходимой для работы приложения. Минимальная поддерживаемая версия Docker Engine 20.10. Варианты установки описаны в документации на официальном сайте.
Docker должен функционировать в Swarm-режиме (возможно развертывание приложения на одной ноде, являющейся одновременно рабочей и управляющей). Команда перевода Docker в Swarm-режим на управляющей ноде:
Python 3#
Python необходим для работы скриптов инсталлятора и генератора конфигурационных файлов на управляющих нодах. Как правило, в ОС Ubuntu Python 3 поставляется вместе с дистрибутивом. Дополнительно потребуется установить пакетный менеджер Pip:
Помимо самого Python также потребуются следующие пакеты:
pyyaml
pyopenssl
docker
mysql_connector_python
python-dotenv
psutil
Установка необходимых пакетов:
Настройка ssl-сертификата#
Необходимо заранее выпустить ssl-сертификат для домена, на котором будет выполняться развертывание решения.
Внимание
При использовании сертификатов без доверенной подписи работа клиентских приложений невозможна!
Создайте директорию /etc/nginx/ssl/
и разместите в ней файлы сертификата.
Внимание
Файл должен содержать полную цепочку сертификатов!
Настройки сетевого экрана#
Для корректной работы приложению требуется возможность получать входящие запросы от клиентских приложений и отправлять запросы на серверы Compass. На серверы Compass отправляется следующая информация:
Push-уведомления мобильных приложений.
Данные, позволяющие идентифицировать пользователя, для взаимодействия с оплатами и службой поддержки on-premise решения.
Примечание
Все команды, описанные в этом параграфе, подразумевают использование сетевого экрана UFW
. Если вы используете другой
сетевой экран, адаптируйте команды в соответствии с документацией вашего сетевого экрана.
Внимание
Команды ниже актуальны для настроек по умолчанию. Часть настроек может быть изменена во время развёртывания приложения, что повлечёт за собой необходимости использовать другие значения портов в командах.
Веб-сервер#
Приложение использует стандартный https порт 443
. Данный порт должен быть открыт для функционирования приложения.
Если порт будет недоступен, клиентские приложения не смогут подключиться к серверу. Порт должен быть открыт
на том сервере, к которому привязан домен, где будет развёрнуто приложение.
sudo ufw allow 443/tcp;
Внимание
Данный порт нельзя изменить, использование порта 443
является обязательным для функционирования приложения.
Внутренние разрешения и ограничения#
Поскольку приложение доставляется в контейнеризированном виде, для корректной работы необходимо разрешить среде Docker открыть порты в host-режиме. Данные порты используются базами данных и не должны быть доступны извне в целях безопасности.
sudo ufw allow in on docker_gwbridge to any port 35150:35165 proto tcp;
sudo ufw allow in on docker_gwbridge to any port 31101 proto tcp;
sudo ufw allow in on docker_gwbridge to any port 31102 proto tcp;
sudo ufw deny 31101;
sudo ufw deny 31102;
sudo ufw deny 35150:35165/tcp;
Аудио- и видеозвонки#
Для функционирования звонков необходимо открыть порт для tcp и udp трафика. Если данный порт не будет открыт, функционал аудио- и видеозвонков будет недоступен.
# Порт для передачи мультимедиа-данных конференции в приложении.
# Порт будет выделен под RTP соединения участников в конференции.
sudo ufw allow 10000/udp;
Если сервер с Compass развернут за NAT, выполните следующие действия:
Убедитесь, что порт 10000 UDP открыт на firewall, через который идет трафик. Если порт закрыт, откройте его.
В настройках DNAT настройте проброс порта 10000 UDP с внешнего IP-адреса на порт 10000 UDP сервера Compass во внутренней сети.
Ограничение исходящего трафика#
Если вы планируете ограничить исходящий трафик от приложения, необходимо добавить сервер
45.92.177.63
(license.getcompass.ru и push-onpremise.getcompass.ru) в белый список. Через этот сервер происходит
рассылка push-уведомлений и доставляются идентификационные данные пользователей для взаимодействия
с лицензиями и службой поддержки on-premise решения. Используется порт 443
.
sudo ufw allow out to 45.92.177.63 port 443
Ограничение входящего трафика#
Если вы планируете ограничить входящий трафик на сервер приложения, необходимо разрешить входящий трафик
с сервера 45.92.177.63
. Это требуется для активации сервера с использованием подтверждающего запроса со стороны
сервера лицензий Compass. Входящий запрос будет поступать через порт 443
. После активации сервера данное правило
можно удалить из сетевого экрана.
sudo ufw allow from 45.92.177.63 port 443
Внимание
При ограничении входящего трафика пользователи смогут получить доступ к приложению только при условии нахождения в доверенной сети.
Ограничения для TURN-сервера#
Примечание
TURN-сервер используется для маршрутизации трафика протокола WebRTC между клиентскими приложениями. Вы можете настроить собственный TURN-сервер или воспользоваться сервером по умолчанию, поставляемого Compass.
Если вы не планируете использовать собственный TURN-сервер, то нужно добавить в сетевой экран разрешения для
трафика TURN-сервера по умолчанию (поставляется Compass). Сетевой адрес TURN-сервера по умолчанию 77.223.115.66
,
используемые порты 443
и 10000
.
sudo ufw allow out to 77.223.115.66 port 443;
sudo ufw allow from 77.223.115.66 port 443;
sudo ufw allow from 77.223.115.66 port 10000;
Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.