The Repository for Nest-Init CLI made using
NestJS, NestJS Commander, Inquirer and Passport.js.
Report Bug
·
Request Feature
Nest-Init is a powerful CLI tool designed to streamline the creation and configuration of new NestJS projects. It simplifies the setup process, allowing you to integrate different databases with ORMs and set up authentication efficiently. Nest-Init equips you with essential tools to launch your next NestJS application with ease.
- Database Configuration
- ORM Integration: Choose between MikroORM, TypeORM, Sequelize, Prisma, and Drizzle with automatic configuration and connection setup.
- ODM Integration: Setup Mongoose for MongoDB with pre-configured models and schemas.
- Authentication Setup
- Implement JWT authentication with pre-configured guards and strategies.
- Add social authentication for services like Google, Facebook and Github.
To get started with Nest-Init, ensure you have Node.js and npm installed on your machine.
-
In order to use Nest-Init within your NestJS project, install the package globally using the command:
npm install -g nest-init-cli
-
Once it is installed, follow the prompts to start configuring your project.
If you're interested in maintaining or developing the package, follow these steps:
-
Clone the repository:
git clone https://github.com/GDGAlgiers/nest-init.git cd nest-init
-
Install dependencies:
npm install
-
Run the project locally:
npm run start
-
Make your changes and create a pull request:
- Make sure to follow the contribution guidelines in CONTRIBUTION.md
Once you have configured your project with Nest-Init, you can begin using the CLI within your NestJS project.
Initializing the CLI
In your project directory, execute the command:
nest-init
After initializing the CLI, you will see the following menu options:
1. Configure ORM with Database
2. Setup Authentication Strategies and Services
Choose the option that suits your project needs and follow the prompts to configure your NestJS application accordingly.
Use the following command to install and configure your chosen ORM with a specific database:
nest-init install-<ORM> -<database>
Below, you'll find detailed commands for each combination of ORM and supported databases.
Configure MikroORM with MySQL, PostgreSQL, or MongoDB.
-
MySQL
nest-init install-mikroorm -my
or
nest-init install-mikroorm --mysql
-
PostgreSQL
nest-init install-mikroorm -psql
or
nest-init install-mikroorm --postgresql
-
MongoDB
bash nest-init install-mikroorm -m
orbash nest-init install-mikroorm --mongodb
Configure TypeORM with MySQL, PostgreSQL, or MongoDB.
-
MySQL
nest-init install-typeorm -my
or
nest-init install-typeorm --mysql
-
PostgreSQL
nest-init install-typeorm -psql
or
nest-init install-typeorm --postgresql
-
MongoDB
bash nest-init install-typeorm -m
orbash nest-init install-typeorm --mongodb
Configure Mongoose with MongoDB.
nest-init install-mongoose -m
or
nest-init install-mongoose --mongodb
Configure Sequelize with MySQL, PostgreSQL, or MongoDB.
-
MySQL
nest-init install-sequelize -my
or
nest-init install-sequelize --mysql
-
PostgreSQL
bash nest-init install-sequelize -psql
orbash nest-init install-sequelize --postgresql
Configure Prisma with PostgreSQL or MongoDB.
-
PostgreSQL
nest-init install-prisma -psql
or
nest-init install-prisma --postgresql
-
MongoDB
bash nest-init install-prisma -m
orbash nest-init install-prisma --mongodb
Configure Drizzle with MySQL, PostgreSQL, or MongoDB.
-
MySQL
nest-init install-drizzle -my
or
nest-init install-drizzle --mysql
-
PostgreSQL
nest-init install-drizzle -psql
or
nest-init install-drizzle --postgresql
-
MongoDB
bash nest-init install-drizzle -m
orbash nest-init install-drizzle --mongodb
Nest-Init provides a guided questionnaire to configure authentication services and strategies for your NestJS project. To begin, run the following command:
nest-init add-auth
This command initiates a series of prompts where you can select the options that best fit your project requirements:
- Implement local username/password authentication.
- Implement authentication using Facebook, Google, and Github OAuth services.
- Enable a built-in password resetting functionality for your project.
- Nest-Init provides flexible authentication strategies to secure your application based on your project's requirements:
JWT (JSON Web Tokens)
Implement stateless authentication using JWTs, which are compact tokens verified by the server based on contained claims.
Sessions
Supports session-based authentication for managing server-side session states, ideal for applications requiring stateful interactions with clients.
- Rayan Allali
- Nabil Ghemam Djeridi
- Wissal Messikh
- Abderrahman Ben Rabah
- Abdelghani Derdouche
- Ayyoub Kasmi
Join us in the GDG Algiers' Community Discord here and feel free to ask any questions you may have.
Thank you for considering contributing to the Nest-Init project. We welcome contributions from the community to make this project even better. Please take a moment to review our CONTRIBUTION.md file where the Contribution Guidelines are listed.
Distributed under the MIT License. See LICENSE for more information.
GDG Algiers - @gdg_algiers - [email protected]
Project Link: https://github.com/GDGAlgiers/nest-init