Skip to content

iamnivekx/nestjs-prisma-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NestJS Prisma API Template

A modern RESTful API template built with NestJS and Prisma, featuring comprehensive monitoring, logging, and deployment solutions.

✨ Features

πŸš€ Core Technology Stack

πŸ” Authentication & Authorization

πŸ“Š Monitoring & Observability

🐳 Deployment & Operations

  • Containerization: Docker + Docker Compose
  • Orchestration: Kubernetes configurations
  • Health Checks: Built-in health check endpoints

πŸš€ Quick Start

Environment Setup

  1. Clone the project
git clone https://github.com/iamnivekx/nestjs-prisma-api
cd nestjs-prisma-api
  1. Install dependencies
pnpm install
  1. Environment configuration
cp .env.example .env
# Edit .env file to configure database connection and other settings
  1. Database initialization
# Generate Prisma client
pnpm run prisma:generate

# Run database migrations
pnpm run prisma:migrate:dev
  1. Start development server
pnpm run start:dev

The application will start at http://127.0.0.1:4000, with Swagger documentation available at http://127.0.0.1:4000/docs.

βš™οΈ Configuration Guide

Grafana Cloud Configuration

1. Configure Loki Log Collection

Visit [Grafana Cloud Logs]https://grafana.com/orgs/{your-org-id}/hosted-logs/{your-dashboard-id}#sending-logs to get configuration information.

Configure in your .env file:

LOG_LOKI_HOST="your-loki-url"
LOG_LOKI_USERNAME="your-username"
LOG_LOKI_PASSWORD="Basic <Your Grafana.com API Token>"

2. Configure OpenTelemetry Tracing

Visit [Grafana Cloud OTLP]https://grafana.com/orgs/{your-org-id}/stacks/{your-stack-id}/otlp-info to get configuration information.

Configure in your .env file:

OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
OTEL_EXPORTER_OTLP_ENDPOINT="https://otlp-gateway-prod-ap-southeast-1.grafana.net/otlp"
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic {your-api-key}"

Grafana Cloud

Grafana Docker Environment

Use dockotlp to quickly set up a local monitoring environment:

git clone https://github.com/iamnivekx/dockotlp.git
cd dockotlp
docker compose up -d

🐳 Deployment

Docker Deployment

  1. Build image
docker-compose build
  1. Start services
docker-compose up -d

Production Deployment

  1. Install dependencies and build
pnpm install
pnpm run build
  1. Start production service
pnpm run start:prod

Database Migrations

  • Development: pnpm run prisma:migrate:dev
  • Production: pnpm run prisma:migrate:deploy

πŸ“Έ Feature Preview

API Documentation (Swagger)

Swagger API Documentation

OpenTelemetry Distributed Tracing

OpenTelemetry Tracing

Prometheus Metrics Monitoring

Prometheus Monitoring

Alert Management

Alert Management

Kubernetes Deployment

Kubernetes

Ingress Configuration

Ingress

πŸ“ Project Structure

src/
β”œβ”€β”€ api/                    # API modules
β”‚   β”œβ”€β”€ auth/             # Authentication module
β”‚   β”œβ”€β”€ health/           # Health checks
β”‚   └── users/            # User management
β”œβ”€β”€ common/                # Common modules
β”‚   β”œβ”€β”€ constants/        # Constant definitions
β”‚   β”œβ”€β”€ decorators/       # Custom decorators
β”‚   └── guards/           # Guards
β”œβ”€β”€ config/                # Configuration module
β”œβ”€β”€ entities/              # Data entities
β”œβ”€β”€ prisma/                # Prisma configuration
└── services/              # Business services

🀝 Contributing

Issues and Pull Requests are welcome!

πŸ“„ License

This project is licensed under the MIT License.

πŸ™ Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •