Skip to content

Sagyam/nest-boilerplate

Repository files navigation

Nest Boilerplate

This is my complete boilerplate for a NestJS project. Every single tool and library is free and open-source and have a large community behind it.

Features

Authentication and Authorization: Keycloak

CI/CD: GitHub Actions

Cache: In-Memory | Redis

Containers: Devcontainer with Docker and Kubernetes support

Database: PostgreSQL | MongoDB | MySQL | SQLite | SQL Server

Deployment:

- API Gateway managed with [Nginx Ingress Controller](https://artifacthub.io/packages/helm/nginx-stable/nginx-ingress)
- API scaled with HPA
- Kubernetes managed with Helm
- Logging managed with [Loki Operator](https://artifacthub.io/packages/helm/grafana/loki-stack)
- Metrics managed with [Prometheus Operator](https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack)
- MinIO managed with [MinIO Operator](https://artifacthub.io/packages/helm/minio/minio)
- Postgres managed wtih [StackGres](https://stackgres.io/) a Kubernetes operator for PostgreSQL
- RabbitMQ managed with [RabbitMQ Operator](https://artifacthub.io/packages/helm/bitnami/rabbitmq)
- Redis managed with [Redis Operator](https://artifacthub.io/packages/helm/bitnami/redis)
- SSL managed with [Cert-Manager](https://cert-manager.io/)
- Tracing managed with [Jaeger Operator](https://artifacthub.io/packages/helm/jaegertracing/jaeger-operator)
- Visualization managed with [Grafana Operator](https://artifacthub.io/packages/helm/grafana/grafana)

Documentation: Swagger

Testing: Jest

Email service with any SMTP provider

Fake Data: FakerJS

File upload, update delete service

Gateway: Nginx

Logging: Loki and Promtail

Message Broker: RabbitMQ

Object Storage: MinIO (but can be swapped for any S3 compatible storage)

OpenAPI: Autogenerated Swagger documentation for the API

Tracing: Jaeger and OpenTelemetry

Uptime Monitoring: UptimeKuma

Validation: Class Validator and Class Transformer

Visualization: Grafana

Technologies

Development

Prerequisites

Installation

  • Click use this template
  • Clone the repository
  • Open the project in VSCode
  • Reopen the project in a container

Deployment

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published