Перейти к основному содержимому

Инструкция по установке экземпляра программного обеспечения

Сервер Loop поставляется в виде Docker-образа registry.loop.ru/loop/server и запускается в любой Linux-среде. Для установки на собственной инфраструктуре (On-Premise) доступны два способа:

СпособДля чего подходит
Docker ComposeОдин сервер: быстрый запуск, пилот, небольшие команды
Helm ChartKubernetes: масштабирование, отказоустойчивость

Готовые сценарии установки: loop-onprem-docker для Docker Compose и loop-onprem-charts для Helm.

Требования к оборудованию зависят от числа пользователей — см. Требования к программному и аппаратному обеспечению.

Docker Compose

В комплект входят сервер Loop, PostgreSQL, MinIO (S3-совместимое хранилище файлов) и Nginx в роли reverse proxy.

  1. Склонируйте репозиторий loop-onprem-docker:

    git clone https://git.wilix.dev/wilix-infra/loop-onprem-docker.git
    cd loop-onprem-docker
  2. Создайте файл с переменными окружения и заполните его:

    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 — это примеры, а не рабочие пароли.

  3. Настройте 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.

  4. Запустите сервисы и убедитесь, что все контейнеры работают:

    docker compose up -d
    docker compose ps

    Если какой-то сервис не запустился, посмотрите его логи: docker compose logs -f loop.

  5. Откройте в браузере адрес из 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.

  1. Добавьте репозиторий чартов:

    helm repo add loop https://artifacts.wilix.dev/repository/helm-loop
    helm repo update

    Адрес репозитория предназначен для Helm и не открывается в браузере.

  2. Выгрузите параметры чарта и отредактируйте их:

    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 по умолчанию — обязательно замените их.

  3. Установите чарт:

    helm install loop loop/loop-enterprise-stack -f values.yaml -f secret-values.yaml
  4. Направьте 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.ruPush-уведомления на мобильные устройства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 (медиатрафик). За помощью в настройке обратитесь в техническую поддержку.