Лаборатория оптимизации бизнеса
Меню

Документация Портал партнёра

Установка портала

Установка и настройка · обновлено 26 октября 2026 г.

Перед установкой проверьте, что подготовить.

1. Скачать и распаковать

  1. Скачайте архив portal-<версия>.tar.gz в личном кабинете (Продукты → Портал партнёра) и перенесите на сервер.
  2. Сверьте контрольную сумму: результат sha256sum portal-1.8.0.tar.gz должен совпасть с SHA-256, которую кабинет показывает рядом с файлом.
  3. Распакуйте: tar -xzf portal-1.8.0.tar.gz, затем cd portal-1.8.0.
  4. Запустите установку: sudo ./install.sh /opt/portal

Первый запуск копирует файлы в /opt/portal (каталог можно выбрать другой), создаёт deploy/.env со сгенерированными JWT_SECRET, OTP_PEPPER, POSTGRES_PASSWORD и останавливается.

2. Настроить deploy/.env

Заполните остальное в /opt/portal/deploy/.env:

  • PUBLIC_URL — внешний адрес, например https://portal.romashka.ru; домен должен быть в лицензии.
  • BRAND_NAME — название компании по умолчанию: страница входа, шапка, письма и SMS с кодом. В админке портала, раздел «Оформление», его можно заменить и загрузить логотип.
  • MAIL_PROVIDER=smtp, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, MAIL_FROM — коды входа на почту (основной способ): почтовый сервер, порт, ящик-отправитель и его пароль (у Яндекс 360 и Mail.ru — пароль приложения), адрес отправителя. Для порта 587 — SMTP_SECURE=false.
  • SMS_PROVIDER, SMSRU_API_ID — SMS, по желанию: smsru и ключ API из кабинета SMS.ru; none — без SMS.

Секреты JWT_SECRET и OTP_PEPPER не меняйте без необходимости: смена завершит все сеансы и сделает недействительными выданные коды.

Коды входа: почта и SMS

Пользователь вводит номер телефона и одноразовый код. Код приходит на электронную почту пользователя, если она указана, а на портале настроена почта. Почта берётся из 1С: у дилеров — у контактного лица, у сотрудников — у физического лица. У администраторов почту задают при создании (--email) или командой admin:email. Если почты нет, код приходит по SMS.

Рекомендуемая настройка — почта у всех пользователей в 1С и MAIL_PROVIDER=smtp: письма бесплатны и уходят с вашего домена. SMS (SMS_PROVIDER=smsru) подключайте, если почта есть не у всех: тогда на странице входа через минуту появляется кнопка «Письмо не пришло — получить код по SMS». Без SMS (SMS_PROVIDER=none) пользователь без почты войти не сможет — он увидит, что нужно попросить менеджера указать почту в 1С. В рабочем режиме нужен хотя бы один способ — почта или SMS.

Примеры почтовых настроек:

  • Яндекс 360: SMTP_HOST=smtp.yandex.ru, SMTP_PORT=465, пароль приложения (Яндекс ID → Безопасность → Пароли приложений).
  • Mail.ru для бизнеса: SMTP_HOST=smtp.mail.ru, SMTP_PORT=465, пароль для внешнего приложения.
  • Свой сервер: его адрес, порт 465 или 587 (SMTP_SECURE=false), пароль по правилам сервера.

Отправляйте с ящика на вашем домене (например noreply@romashka.ru). Когда для домена настроены SPF и DKIM, письма не попадают в спам.

3. Запуск

Второй запуск той же команды загружает образы, запускает портал и ждёт готовности: sudo ./install.sh /opt/portal

Скрипт проверяет контрольные суммы, загружает образы в Docker (api, web, postgres, redis) и ждёт, пока все сервисы станут healthy. API не стартует, если конфигурация неверна, и пишет в журнал, какие переменные исправить: docker compose -f deploy/docker-compose.yml logs api

Дальше все команды — из каталога установки (cd /opt/portal).

Что работает на сервере:

  • web — веб-портал и прокси /api; наружу — порт HTTP_PORT (80);
  • api — сервер портала, при старте применяет миграции базы;
  • postgres — база данных PostgreSQL 17 (том postgres-data);
  • redis — коды входа, лимиты и кэш сеансов (без сохранения на диск).

4. Первый администратор

Создайте администратора (номер, имя и почту — свои): docker compose -f deploy/docker-compose.yml exec api node dist/cli admin:create --phone +79001234567 --name "Иванов Иван" --email ivanov@romashka.ru

Администратор входит на https://<домен>/admin/login по номеру телефона и коду. Код приходит на почту из --email, если на портале настроена почта, иначе по SMS. Почту уже созданного администратора меняет admin:email --phone … --email …, пустое значение убирает её. Другие администраторы создаются так же. Из 1С приходят только дилеры, менеджеры и монтажники — администраторы портала заводятся только этой командой.

Проверка почты: администратор входит на /admin/login, и код приходит письмом в течение минуты. Если письма нет, ошибка отправки записана в журнал API: docker compose -f deploy/docker-compose.yml logs api | grep Mail

Дальше