I've developed simple nestjs rest services. Now I am planning to deploy my app. Please help me with efficient way of production deployment of nestjs app.
1) Checkout your project's repository on your server and run npm install
.
2) Run npm run build
which compiles your project to javascript:
rimraf dist && tsc -p tsconfig.build.json
3) Start your application with:
node dist/main.js
See this answer .
1) Add the file Procfile
to your project's root directory:
web: npm run start:prod
2) Add this line to your package.json
's scripts
:
"heroku-postbuild": "echo Skip builds on Heroku"
3) Set the port in your main.ts
(or in your ConfigService
)
await app.listen(process.env.PORT || 3000);
If you create a new NestJS project via nest new project-name
it will come with the needed scripts in package.json
.
yarn build
yarn start:prod
The rest depends on where you want to host the app. NestJS will run on any generic-purpose hosting (Heroku, Vercel, AWS, etc).
If you want to get started with low-config and for free you could try Heroku with the following Dockerized setup:
Dockerfile.prod
FROM node:14-alpine
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install
COPY . /app
RUN yarn build
heroku.yml
build:
docker:
web: Dockerfile.prod
run:
web: yarn start:prod
Once the app is created run
heroku git:remote --app <app-name>
heroku stack:set container
In your bootstrap
function ( main.ts
) use the PORT
env var:
await app.listen(process.env.PORT || 3000);
If you're using a DB you have to set that up as well.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.