Инструкция по установке экземпляра программного обеспечения
Сервер Loop поставляется в виде Docker-образа registry.loop.ru/loop/server и запускается в любой Linux-среде. Для установки на собственной инфраструктуре (On-Premise) доступны два способа:
| Способ | Для чего подходит |
|---|---|
| Docker Compose | Один сервер: быстрый запуск, пилот, небольшие команды |
| Helm Chart | Kubernetes: масштабирование, отказоустойчивость |
Готовые сценарии установки: loop-onprem-docker для Docker Compose и loop-onprem-charts для Helm.
Требования к оборудованию зависят от числа пользователей — см. Требования к программному и аппаратному обеспечению.
Docker Compose
В комплект входят сервер Loop, PostgreSQL, MinIO (S3-совместимое хранилище файлов) и Nginx в роли reverse proxy.
-
Склонируйте репозиторий loop-onprem-docker:
git clone https://git.wilix.dev/wilix-infra/loop-onprem-docker.git
cd loop-onprem-docker -
Создайте файл с переменными окружения и заполните его:
cp .env-example .envПеременная Значение SITEURL,HTTP_PROTOCOLАдрес, по которому пользователи будут открывать Loop, например loop.example.comиhttps://PG_USER,PG_PASSWORD,PG_DB_NAMEУчётные данные базы данных PostgreSQL MINIO_ROOT_USER,MINIO_ROOT_PASSWORDАдминистратор MinIO ACCESS_KEY_ID,SECRET_ACCESS_KEY,BUCKET_NAMEПользователь и бакет MinIO для файлов Loop warningЗамените все значения из
.env-example— это примеры, а не рабочие пароли. -
Настройте Nginx:
- положите TLS-сертификат и ключ для вашего домена в каталог
cert/под именамиserver.crtиserver.key; - в файле
nginx/loop-ssl.confзамените${SITEURL}в строкеserver_nameна ваш домен — Nginx не подставляет переменные из.env.
подсказкаNginx ограничивает размер загружаемых файлов параметром
client_max_body_size(по умолчанию50M). Чтобы пользователи могли отправлять файлы крупнее, увеличьте его вnginx/loop-ssl.conf. - положите TLS-сертификат и ключ для вашего домена в каталог
-
Запустите сервисы и убедитесь, что все контейнеры работают:
docker compose up -d
docker compose psЕсли какой-то сервис не запустился, посмотрите его логи:
docker compose logs -f loop. -
Откройте в браузере адрес из
SITEURL. Первый зарегистрированный пользователь становится Системным Администратором.
Helm Chart
Для новых установок используйте чарты версии 2.x. Прямого пути обновления с чартов 1.x на 2.x нет — существующим установкам на 1.x обновляться на 2.x не нужно.
Доступны два чарта:
| Чарт | Состав | Когда использовать |
|---|---|---|
loop-enterprise-stack | Сервер Loop, PostgreSQL, MinIO | Новая установка «с нуля» |
loop-enterprise-edition | Только сервер Loop | У вас уже есть PostgreSQL и S3-хранилище |
Для работы в кластере нужны ingress-контроллер (рекомендуем ingress-nginx) и TLS-сертификат в виде Kubernetes-секрета, созданный вручную или через cert-manager.
-
Добавьте репозиторий чартов:
helm repo add loop https://artifacts.wilix.dev/repository/helm-loop
helm repo updateАдрес репозитория предназначен для Helm и не открывается в браузере.
-
Выгрузите параметры чарта и отредактируйте их:
helm show values loop/loop-enterprise-stack > values.yamlСекреты (пароли, строку подключения к БД) храните отдельно в
secret-values.yaml— пример есть в каталоге чарта. Минимально необходимо указать:MM_SERVICESETTINGS_SITEURL— адрес Loop, напримерhttps://loop.example.com;- подключение к базе данных (
MM_SQLSETTINGS_DATASOURCEвsecret-values.yaml); - доступ к S3-хранилищу (
MM_FILESETTINGS_AMAZONS3*); ingress.hostsиingress.tls— ваш домен и имя TLS-секрета.
Полный список параметров — в README чартов: loop-enterprise-stack, loop-enterprise-edition.
warningВ чарте
loop-enterprise-stackзаданы пароли PostgreSQL и MinIO по умолчанию — обязательно замените их. -
Установите чарт:
helm install loop loop/loop-enterprise-stack -f values.yaml -f secret-values.yaml -
Направьте DNS-запись вашего домена на внешний адрес ingress-контроллера.
Обновление: helm upgrade loop loop/loop-enterprise-stack -f values.yaml -f secret-values.yaml.
Не ограничивайте CPU для подов Loop (CPU throttling) в Kubernetes — это ухудшает работу сервера.
Лицензия
Без лицензии Loop работает в бесплатной редакции. Чтобы активировать лицензию, откройте Системная консоль > Редакция и лицензия и загрузите лицензионный ключ.
Внешние сервисы
Для работы всех функций серверу Loop нужен исходящий доступ к сервисам:
| Сервис | Назначение | Порты |
|---|---|---|
https://push.loop.ru | Push-уведомления на мобильные устройства | TCP 443 |
https://live.loop.ru | Звонки и видеосвязь (облачный сервер) | TCP 443, UDP 50000–59990 |
https://apps-proxy.wilix.dev | Звонки и видеосвязь | TCP 443 |
https://vizor.loop.ru | Подписки, оплата, счета | TCP 443 |
https://notices.loop.ru | Уведомления о новых версиях | TCP 443 |
https://sentry.wilix.dev | Сбор ошибок (обезличенно) | TCP 443 |
https://rudder.wilix.dev | Метрики и аналитика (обезличенно) | TCP 443 |
Звонки на собственном сервере
По умолчанию звонки идут через облачный сервер live.loop.ru. Чтобы звонки не покидали вашу инфраструктуру, разверните собственный сервер LiveKit — для Kubernetes есть чарт loop-livekit-server. Ему нужны порты TCP 443 (сигнализация), TCP 8881 (резервный канал) и UDP 50000–59990 (медиатрафик). За помощью в настройке обратитесь в техническую поддержку.