Production-ready and flexible NestJS Boilerplate with Typescript 🌃, Postgres 👾, TypeORM 🥷 and Docker 🐳.
Built-in Features
- 📱 NestJS — latest version
- 🎉 TypeScript - Type checking
- ⚙️ Dotenv - Supports environment variables
- 🗝 Authentication - JWT, RSA256
- 🏬 Authorization - RBAC, CBAC
- 🏪 TypeORM - Database ORM
- 🏪 PostgreSQL - Open-Source Relational Database
- 🧠 Configuration - Single config for all
- 📃 Swagger - API Documentation
- 🐳 Docker Compose - Container Orchestration
- 🔐 Helmet - secure HTTP headers
- 😴 Insomnia - Insomnia config for endpoints
- 📏 ESLint — Pluggable JavaScript linter
- 💖 Prettier - Opinionated Code Formatter
- ✨ Commitlint - Lint your conventional commits
GitHub actions
- 🕵️♂️ Code Scanning - Code scanning with CodeQL
- 🕵️♂️ Megalinter - analyzes 48 languages, 22 formats, 19 tooling formats, excessive copy-pastes, spelling mistakes and security issues
bash ./setup.sh
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
- Install the insomnia app
- Import the
endpoints.json
file - Enjoy
- Generate an RSA private key, of size 2048, and output it to a file named key.pem:
openssl genrsa -out private_key.pem 2048
# It needs be copied&pasted from terminal manually
awk 'NF {sub(/\r/, ""); printf"%s\\n",$0;}' private_key.pem
- Extract the public key from the key pair, which can be used in a certificate:
openssl rsa -in private_key.pem -outform PEM -pubout -out public_key.pem
# It needs be copied&pasted from terminal manually
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' public_key.pem
This project is licensed under the MIT License - see the LICENSE.md file for more information.
Joey Goksu 📖 |
Made with ♥ by Joey Göksu