---
title: "Деплой приложений Nest в сервисе App Platform: пошаговая инструкция"
---

# Деплой приложения Nest

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

В App Platform для Nest-приложений доступны три рантайма: Node.js, Bun и Deno. Процесс деплоя зависит от выбранного рантайма: отличаются пакетный менеджер, команда сборки, команда запуска и файл, в котором описываются скрипты или задачи.

## Сборка приложения

Node.js

> [!NOTE]
> Пример эталонного Nest-приложения для запуска можно найти [в нашем Гитхабе](https://github.com/timeweb-cloud-apps/app-example-nest?roistat_visit=11910906). Также у нас есть [туториал](https://timeweb.cloud/tutorials/nodejs/kak-razvernut-prilozhenie-na-nest) с примером развертывания приложения Nest в App Platform.

При сборке приложения используется следующая среда:

-   Node.js: 20, 22 или 24
-   npm
-   yarn

Сборка приложения выполняется в корне репозитория или в директории, которую вы укажете в поле «Путь к директории проекта».

Во время сборки будут выполнены следующие команды:

```shell
apt remove -y cmdtest yarn
npm install --global yarn
cd / && yarn install --check-files
```

Если в проекте есть файл `package.json` и используется `yarn`, дополнительно будет выполнено:

```shell
apt remove -y cmdtest yarn
npm install --global yarn
cd /<DIRECTORY> && yarn install --check-files
```

В остальных случаях при наличии `package.json`:

```shell
cd /<DIRECTORY> && npm install
```

`<DIRECTORY>` — путь к каталогу, в котором находится `package.json`. 

Для запуска используется команда по умолчанию:

```
npm run start:prod
```

Deno

> [!NOTE]
> Пример Nest-приложения для деплоя можно найти на [Гитхабе](https://github.com/timeweb-cloud-apps/app-example-nest-deno).

При сборке приложения используется следующая среда:

-   Deno: 2.7.14, 2.7.10 или 2.6.0
    
-   пакетный менеджер `deno`
    

Сборка приложения выполняется в корне репозитория или в директории, которую вы укажете в поле «Путь к директории проекта».

По умолчанию отдельная команда сборки не требуется. App Platform запускает приложение в контейнере с Deno, поэтому команда `deno compile` для типового деплоя не используется.

Для запуска используется команда:

```bash
deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.ts
```

Также команду запуска можно описать через задачу:

```bash
deno task start
```

В этом случае App Platform выполнит команду `deno task start`, а Deno запустит задачу `start` из файла `deno.json`. В этой задаче укажите команду `deno run`, флаги доступа и путь к исполняемому файлу приложения. Например:

```js
"tasks": {
 "start": "deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.ts"
}
```

В этом примере основной файл приложения находится по пути `main.ts`. Если в вашем проекте используется другой файл, укажите путь к нему.

### Флаги доступа

Deno требует явно указывать разрешения, которые нужны приложению:

-   `--allow-net` — сетевые запросы
-   `--allow-read` — чтение файлов
-   `--allow-write` — запись файлов
-   `--allow-env` — переменные окружения
-   `--allow-run` — запуск подпроцессов
-   `--allow-ffi` — нативные библиотеки
-   `--allow-hrtime` — высокоточный таймер
-   `--allow-sys` — системная информация, например ОС или CPU
-   `--allow-all` или `-A` — все разрешения сразу
-   `--watch` — перезапуск приложения при изменениях

Например, если приложению нужны сетевые запросы, переменные окружения и чтение файлов, используйте:

```
deno run --allow-net --allow-env --allow-read src/index.ts
```

Bun

> [!NOTE]
> Пример Nest-приложения для деплоя можно найти на [Гитхабе](https://github.com/timeweb-cloud-apps/app-example-nest-bun).

При сборке приложения используется следующая среда:

-   Bun
    
-   пакетный менеджер `bun`
    

Сборка приложения выполняется в корне репозитория или в директории, которую вы укажете в поле «Путь к директории проекта».

Для сборки используется команда:

```bash
bun build
```

Для запуска используется команда:

```bash
bun run start
```

App Platform запускает скрипт `start` из файла `package.json`. В этом скрипте укажите путь к исполняемому файлу приложения. Например:

```js
"scripts": {
 "start": "bun run src/main.ts"
}
```

В этом примере основной файл приложения находится по пути `src/main.ts`. Если в вашем проекте используется другой файл, укажите путь к нему.

## Устранение неполадок

### Не удается выполнить развертывание

Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так. 

Зачастую проблемы связаны с командой запуска. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле `package.json`.

### Please add build instruction to your script section in package.json

Проблема связана с тем, что команда сборки `npm run build` обращается к файлу `package.json`, и если значение директивы `build` не указано, возникает ошибка.

Чтобы ее устранить, следует добавить необходимые директивы в секцию `scripts` файла `package.json`. Подробнее об использовании `scripts` — [здесь](https://docs.npmjs.com/cli/v10/using-npm/scripts).

## Требования к приложению

Убедитесь, что приложение слушает `0.0.0.0`, а не `127.0.0.1`, иначе внешние подключения работать не будут.
