Skip to content

AndreiMorosan/nestjs-minimal-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NestJS Logo Neon Database Logo

A simple and elegant NestJS boilerplate for Node.js, designed to help every beginner understand how NestJS works.

Description

Nest framework TypeScript starter repository.

This boilerplate was created for everyone who wants to start a NestJS project using a Clean Architecture approach with a Neon (PostgreSQL) database and TypeORM. It provides a well-structured foundation to build scalable server-side applications. The project is up to date with the latest versions of its libraries and is designed with a monolith modules architecture to be understandable for every developer (including beginners).

Environment Configuration

Create an .env file in the project root. The environment variables typically include:

NODE_ENV=development

#== APP
PORT=3000
TRANSPORT_PORT=8080
JWT_EXPIRATION_TIME=3600
JWT_REFRESH_EXPIRATION_TIME=86400
ENABLE_ORM_LOGS=true
ENABLE_DOCUMENTATION=true
API_VERSION=v1.0.0

#== JWT Auth
JWT_PRIVATE_KEY=-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----
JWT_PUBLIC_KEY=-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApTE/AvX8imGvywdYY8SA\nt3oQYNxp8wFGiOlCRKTTlEOmMem3gIjW1Lbube9Uuyo5yB5z0VX64xor8ZAZVnRs\nElvjxWA8mo+oya/Xq7cAxvTWTIb4yhhwro0uUD0XwXo0Q6wB/j/Za4gz/j7aTsKb\nyGwmuScei54rVgivC0cAyb29936jYlXgUfIlO07I2pQhuMYUmVa87CeJvnrLlXpl\nltKSpZyqxRljbij96FwENZ0pLAl4a/l2LCrg4zvEcXPZ4a5VflXhDrB08ULrCAzW\nKWE14Av27rxBQAEaruGhyg5keSKwGUT5OBkbbSMCqVlUxuix+paE0nvF5xuE7Evj\ndjzF96eu/yj5NJ1LlxY8UfBpB3XB9xoCZXEZh1jxtSMs/unNo9+G73ihP/J45tfZ\nIGmd9Cb894slD8p7wl4zrsbqkN5kJY7nNvCzXfw+cvQd88FBMZn2h/tTJE6Fz7P2\nyzw2G5Q1wD0VPC+XiCw8LGkkxzim0xYC20XTr7bd05Czvsh3ErjxbwKji5wQ/Pin\nA9d2L0llGgZxJ4wOHUWYMgJZn/vlxdlijlbp0CUaGDyF3UI0QmLk8G5hbio1KlH2\nY6YN0p1MsI+FruvVI/yOpBfXWCnhe1OhgCokBjE84ikfHfAIw31kS+RHtpW3Sm1d\ndD8wmk/2hbCTdbVvqCjz200CAwEAAQ==\n-----END PUBLIC KEY-----

#== DB (use Neon for this boilerplate)
DB_TYPE=postgres
DB_DATABASE=nest_boilerplate

#== AWS
AWS_S3_ACCESS_KEY_ID=
AWS_S3_SECRET_ACCESS_KEY=
AWS_S3_BUCKET_REGION=eu-central-1
AWS_S3_API_VERSION=2010-12-01
AWS_S3_BUCKET_NAME=nest-boilerplate-bucket

#== Redis (will be added in the future)
# REDIS_CACHE_ENABLED=true
# REDIS_HOST=localhost
# REDIS_PORT=6379

#== Throttler
THROTTLER_TTL=5m
THROTTLER_LIMIT=100

Project setup

$ npm install

Compile and run the project

# development
$ pnpm run start:dev

# watch mode
$ pnpm run watch:dev

For both development and production, you can also use the provided Docker Compose files.

The Makefile contains scripts for running and shutting down Docker images.

Run tests

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

API documentation

http://localhost:{port-number}/documentation image

Deployment

When you're ready to roll out your NestJS application to production, follow these key steps to optimize performance and reliability: (https://docs.nestjs.com/deployment).

If you're interested in a cloud-based solution, consider using Mau — the official platform for deploying NestJS applications on AWS.

Mau simplifies deployment with just a few commands:

$ npm install -g mau
$ mau deploy

With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.

Additionally, you can deploy your application on other platforms by leveraging the Docker Compose production file included in this repository. This provides a flexible, containerized solution for managing your deployment environment.

Stay in touch

License

Nest is MIT licensed.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published