Skip to content

vndevteam/nestjs-turbo

Repository files navigation

NestJS Turborepo Monorepo

Turborepo Logo

Nest logo TypeORM logo PostgreSQL logo Jest logo Prettier logo ESLint logo

Introduction

This is a monorepo built with Turborepo and NestJS. The project includes multiple applications and shared libraries, all managed in a single repository.

Project Structure

Applications (Apps)

  • apps/realworld-api: API backend for RealWorld application
  • apps/realworldx-api: Extended API backend for RealWorld application
  • apps/web: Web frontend application
  • apps/docs: Project documentation

Packages

  • packages/api: Common library for APIs
  • packages/postgresql-typeorm: TypeORM configuration and utilities for PostgreSQL
  • packages/mysql-typeorm: MySQL configuration with TypeORM
  • packages/nest-common: Common modules and services for NestJS
  • packages/ui: UI components library
  • packages/eslint-config: ESLint configuration
  • packages/typescript-config: TypeScript configuration

System Requirements

  • Node.js >= 18.x
  • pnpm >= 8.x
  • Docker (optional, for development environment)

Installation

# Clone repository
git clone https://github.com/vndevteam/nestjs-turbo.git

# Install dependencies
pnpm install

# Create environment files
cp apps/realworld-api/.env.example apps/realworld-api/.env
cp apps/realworldx-api/.env.example apps/realworldx-api/.env

Development

# Run all applications in development mode
pnpm dev

# Run a specific application
pnpm dev --filter=realworld-api
pnpm dev --filter=web

Build

# Build all applications and packages
pnpm build

# Build a specific application
pnpm build --filter=realworld-api

Testing

# Run all tests
pnpm test

# Run tests for a specific application
pnpm test --filter=realworld-api

Deployment

Each application can be deployed independently. See the README of each application for detailed deployment instructions.

Development Process

  1. Create a new branch from develop
  2. Make changes
  3. Create pull request
  4. Wait for review and merge

Support

If you encounter any issues or have questions, please create an issue on GitHub.

License

This project is licensed under the MIT License.