# AWS - Deploy Nest.js Server to Elastic Beanstalk

### Update package.json

1. Update build, prestart, start
2. Move `@nestjs/cli` and `@types/node` from **devDependencies** to **dependencies**

```javascript
{
  "scripts": {
    "prebuild": "rimraf dist",
    "build": "nest build",
    "prestart": "npm run build",
    "start": "node dist/main",
    "start:dev": "nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/main",
  },
  "dependencies": {
    "@nestjs/cli": "^7.0.0",
    "@types/node": "^13.9.1",
  }
}

```

### Dockerfile

```bash
# Build
FROM node:12

WORKDIR /usr/src/app

COPY package.json .
COPY yarn.lock .
RUN yarn

COPY . .
RUN yarn build

# Run
FROM node:12-alpine

WORKDIR /usr/src/app

COPY --from=0 /usr/src/app .

EXPOSE 80

CMD ["yarn", "start:prod"]
```

### Use eb-cli to init application and create an environment

```bash
eb init
eb create
eb deploy
```

### Add environment variables

![](https://3346773804-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MB9_-JlsKGrVkwNqqpR%2F-MDU1IEg6iANvqltK4SG%2F-MDU2_9l814_IdMKEQqO%2F%E6%88%AA%E5%9C%96%202020-07-30%20%E4%B8%8B%E5%8D%885.27.07.png?alt=media\&token=08422e04-ff7f-4619-a08c-bb5d5d48bc8b)

![](https://3346773804-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MB9_-JlsKGrVkwNqqpR%2F-MDU1IEg6iANvqltK4SG%2F-MDU2c5n1XfAIAfKd6BN%2F%E6%88%AA%E5%9C%96%202020-07-30%20%E4%B8%8B%E5%8D%885.28.12.png?alt=media\&token=c6394126-4fee-4a48-8f7a-1e816c527632)

### Setup RDS

![](https://3346773804-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MB9_-JlsKGrVkwNqqpR%2F-MDU1IEg6iANvqltK4SG%2F-MDU2pNGhYWJ6dWEiN9S%2F%E6%88%AA%E5%9C%96%202020-07-30%20%E4%B8%8B%E5%8D%885.27.10.png?alt=media\&token=fc9eb2ba-cf9f-45a0-862c-59b3798d59a3)
