About Nestjs Starter
Nestjs Starter is an MCP server published by hmake98 in the Cloud category: production-ready NestJS boilerplate — JWT auth, Prisma, Redis, BullMQ, Swagger, i18n, and full AI developer workflows (Claude Code + GitHub Copilot) with spec-driven feature scaffolding.
The repository has 64 stars and 22 forks, with the last commit 5 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/hmake98/nestjs-starterThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Nestjs Starter
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 3 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
NestJS Starter
Clone. Configure. Ship.
Everything you need to build a production API — auth, database, cache, queues, logging, and tests — already wired together so you can focus on what makes your product different.
What's included
Auth JWT access + refresh tokens · argon2 hashing · RBAC
Database PostgreSQL · Prisma 7 · pg Pool adapter (no binary engine)
Cache Redis · ioredis · typed CacheService wrapper
Queues BullMQ with shared Redis connection
Logging Structured JSON via nestjs-pino · request correlation IDs
API Docs Swagger / OpenAPI — dev and staging only
i18n Multi-language support via nestjs-i18n
Validation class-validator · whitelist · forbidNonWhitelisted
Rate Limiting Per-route throttling via @nestjs/throttler
Health /health endpoint via @nestjs/terminus
Error Tracking Sentry integration for 5xx errors
Testing Jest · SWC · 100% coverage enforced
Code Quality ESLint · Prettier · Husky · Conventional Commits
Docker Multi-stage image · hot reload in dev · minimal prod image
Getting started
Prerequisites: Node.js ≥ 20, PostgreSQL, Redis
# 1. Clone and install
git clone https://github.com/hmake98/nestjs-starter.git
cd nestjs-starter && npm install
# 2. Configure
cp .env.example .env
# Fill in DATABASE_URL, REDIS_URL, and the two JWT secrets below
openssl rand -base64 32 # → AUTH_ACCESS_TOKEN_SECRET
openssl rand -base64 32 # → AUTH_REFRESH_TOKEN_SECRET
# 3. Database
npm run db:generate && npm run db:migrate
# 4. Run
npm run dev
# API → http://localhost:3000
# Docs → http://localhost:3000/docs
Project layout
src/
├── app/ root module, health check
├── common/
│ ├── bullmq/ queue module
│ ├── cache/ Redis CacheService
│ ├── config/ typed config factories
│ ├── database/ DatabaseService, repositories
│ ├── doc/ @ApiEndpoint decorator
│ ├── logger/ Pino setup
│ ├── message/ i18n resolution
│ ├── request/ guards, decorators, throttler
│ └── response/ interceptor, filter, serializer
├── modules/
│ ├── auth/ login · signup · refresh
│ └── user/ profile · update · admin delete
├── workers/ cron schedulers
└── scripts/ CLI seed commands
prisma.config.ts Prisma 7 config (auto-detected)
prisma/schema.prisma
Dependency rules: feature modules import DatabaseModule directly and never each other. CommonModule is only imported by AppModule.
API
| Method | Route | Auth | Description |
|---|---|---|---|
GET |
/health |
public | Health check |
POST |
/v1/auth/signup |
public | Register |
POST |
/v1/auth/login |
public | Login — returns access + refresh tokens |
GET |
/v1/auth/refresh-token |
refresh token | Renew token pair |
GET |
/v1/user/profile |
JWT | Authenticated user's profile |
PUT |
/v1/user |
JWT | Update own profile |
DELETE |
/v1/admin/user/:id |
JWT + ADMIN | Soft-delete a user |
Swagger UI is available at /docs in non-production environments.
Environment variables
| Variable | Required | Default | |
|---|---|---|---|
DATABASE_URL |
✅ | — | PostgreSQL connection string |
REDIS_URL |
✅ | — | Redis URL |
AUTH_ACCESS_TOKEN_SECRET |
✅ | — | JWT signing secret |
AUTH_REFRESH_TOKEN_SECRET |
✅ | — | JWT refresh secret |
APP_ENV |
local |
local · development · staging · production |
|
HTTP_PORT |
3000 |
||
HTTP_HOST |
localhost |
Use 0.0.0.0 inside Docker |
|
AUTH_ACCESS_TOKEN_EXP |
1d |
||
AUTH_REFRESH_TOKEN_EXP |
7d |
||
SENTRY_DSN |
— | Enables error tracking |
Scripts
| Command | Description |
|---|---|
npm run dev |
Start with hot reload |
npm run build |
Compile to dist/ |
npm start |
Run compiled app |
npm test |
Run tests with coverage |
npm run db:generate |
Generate Prisma client |
npm run db:migrate |
Run migrations (dev) |
npm run db:migrate-prod |
Run migrations (production) |
npm run seed:admin |
Create default admin user |
npm run lint:fix |
Lint and auto-fix |
npm run format |
Format all source files |
Docker
docker compose up # dev — hot reload, source mounted
docker build --target production -t nestjs-starter . # prod — minimal image
The entrypoint runs prisma generate and prisma migrate deploy on startup. Set HTTP_HOST=0.0.0.0 inside containers.
MIT License · Built with NestJS
README fetched from the repository 3 hours ago. The original is authoritative.