Deploying a Nest App
App Platform supports three runtimes for Nest applications: Node.js, Bun, and Deno. Each runtime has its own package manager, build command, start command, and config file.
Application Build Copy link
Node.js Copy link
Hostman uses the following environment when building a Nest application:
- Node.js: 20, 22, or 24
- npm
- yarn
The application is built in the repository root or in the directory specified in the Project directory path field.
If the project has a package.json file and uses yarn, we will run:
apt remove -y cmdtest yarn
npm install --global yarn
cd /<DIRECTORY> && yarn install --check-filesIn all other cases, if the a package.json file is present:
cd /<DIRECTORY> && npm install<DIRECTORY> is the path to the directory with package.json.
The default start command is:
npm run start:prodMake sure that the start:prod command is defined in the scripts section of your package.json. For example:
"scripts": {
"start:prod": "node dist/main.js"
}
Deno Copy link
App Platform builds your app in the repository root, or in the directory you specify in the Project directory path field. The following Deno versions are available:
- 2.7.14
- 2.7.10
- 2.6.0
Deno apps don't require a separate build step. App Platform runs your app directly inside a Deno container, so deno compile isn't used in a typical deployment.
App Platform uses the following command to start your app:
deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.tsAlternatively, the start command can be defined as a task:
deno task startWhen App Platform runs deno task start, Deno executes the start task defined in deno.json. Define it like this:
"tasks": {
"start": "deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.ts"
}This example assumes your app entry point is main.ts. Update the path if your project uses a different file.
Permissions
Deno requires you to declare exactly which permissions your app needs. Pass the relevant flags when running your app:
--allow-net: outbound network requests--allow-read: read access to the filesystem--allow-write: write access to the filesystem--allow-env: access to environment variables--allow-run: spawn subprocesses--allow-ffi: load native (FFI) libraries--allow-hrtime: high-resolution timers--allow-sys: read system info (OS, CPU, etc.)--allow-allor-A: grant all permissions at once--watch: restart the app automatically when files change
For example, if your app makes network requests, reads environment variables, and accesses the filesystem:
deno run --allow-net --allow-env --allow-read src/index.tsBun Copy link
App Platform builds your app in the repository root, or in the directory you specify in the Project directory path field. Bun is used as both the package manager and runtime.
To build your app, App Platform runs:
bun buildTo start your app, App Platform runs:
bun run startThis executes the start script defined in your package.json. Point it to your app's entry file:
"scripts": {
"start": "bun run src/main.ts"
}This example assumes your app entry point is src/main.ts. Update the path if your project uses a different file.
Troubleshooting Copy link
Deployment fails Copy link
If there are problems with deployment, first check the deployment log. You will be able to determine at what point something went wrong.
Often the problems are related to the start command. Make sure that all modules required to run the application are present in the package.json file.
Please add build instructions to your script section in package.json Copy link
The problem is that the Node.js npm run build command accesses the package.json file, and if the value of the build directive is not specified, an error occurs.
To fix this, you need to add the necessary directives to the scripts section of the package.json file. Read more about using scripts here.