Пошаговая инструкция по деплою приложения Nest.js в сервисе Apps и устранению возможных ошибок.
Пример эталонного Nest-приложения для запуска можно найти на Гитхабе.
Чтобы развернуть приложение, созданное на Nest, перейдите в раздел Apps и кликните на кнопку «Создать».
В пункте «Тип» перейдите на вкладку Backend и выберите Node.js — Nest и нужную версию Node.js.
Вы можете подключить репозиторий:
Подробнее о подключении репозиториев — здесь.
1. Выберите ветку для деплоя.
2. По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае сервис Apps выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий.
При необходимости вы сможете отключить автодеплой в дальнейшем.
Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.
Приложение Nest.js должно быть развернуто на отдельном облачном сервере. Выберите регион размещения сервера и его конфигурацию.
В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.
Сервис предложит команду сборки и запуска для вашего проекта. Вы можете отредактировать их, если необходимо, однако в большинстве случаев эти параметры можно оставить без изменений.
Команда сборки приложения всегда запускается в корне репозитория, поэтому файл
package.json
также должен быть размещен в корне. Еслиpackage.json
находится в другой директории, ее необходимо указать в команде сборки.Например, если
package.json
расположен в каталогеlanding
, то команда сборкиnpm run build
должна быть преобразована в:
npm run --prefix landing build
Если для работы проекта нужны дополнительные модули, вы можете ввести свою команду сборки. Можно указать несколько команд, разделяя их с помощью &&
. Например, если требуется установить определенные драйверы, добавьте в команду сборки:
apt install имя_пакета
В качестве команды запуска будет по умолчанию использоваться:
npm run start:prod
У вас будет возможность внести изменения в любые из этих параметров в дальнейшем и перезапустить деплой с новыми настройками, если потребуется.
Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.
Также выберите, в какой проект его нужно добавить.
Эти настройки также можно изменить в дальнейшем.
Нажмите «Запустить деплой». Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой».
Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы.
При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а запись о завершении будет выведена в логе.
Готово! Ваш проект развернут и готов к работе.
В дальнейшем Apps будет отслеживать обновления в репозитории и, если включен автодеплой, автоматически перезапускать проект с новыми изменениями.
IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Приложение будет доступно по 443 порту; порт 80 также открыт.
Привязать собственный домен можно по нашей инструкции.
Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так.
Зачастую проблемы связаны с командой запуска. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле package.json
.
Проблема связана с тем, что команда сборки npm run build
обращается к файлу package.json
, и если значение директивы build
не указано, возникает ошибка.
Чтобы ее устранить, следует добавить необходимые директивы в секцию scripts
файла package.json
. Подробнее об использовании scripts
— здесь.