Установка портала
Установка и настройка · обновлено 26 октября 2026 г.
Перед установкой проверьте, что подготовить.
1. Скачать и распаковать
- Скачайте архив
portal-<версия>.tar.gzв личном кабинете (Продукты → Портал партнёра) и перенесите на сервер. - Сверьте контрольную сумму: результат
sha256sum portal-1.8.0.tar.gzдолжен совпасть с SHA-256, которую кабинет показывает рядом с файлом. - Распакуйте:
tar -xzf portal-1.8.0.tar.gz, затемcd portal-1.8.0. - Запустите установку:
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