NestJS Boilerplate made with ❤️ by 💡VivifyIdeas💡.
- Create .env file
cp .env.example .envand replace existing env variables (mysql/mariadb connection params) - Install dependencies
yarn - Start the app
yarn start(app will be exposed through the port 3000)
Just run already prepared bash script:
$ ./initIt will setup the project for you (starting docker-compose stack, running migrations).
The NestJS app running in dev mode will be exposed on http://localhost (port 80)
For IDE autocompletion to work, run yarn on the host machine.
TypeORM gives you possibility to use next db types:
mysql, postgres, mariadb, sqlite, etc. Please look at docs for more details.
The docker-compose template uses mariadb.
If you don't work on a production-ready project you can always change DB_SYNC env variable to true so you can play with NestJS without the need to write actual migrations.
synchronize: true shouldn't be used in production - otherwise, you can lose production data.
Creating new migration is relatively easy and you can use typeorm CLI for that. You can run this command to create new migration:
$ docker exec -it nest yarn migration:create -n {CreateTableUsers}Migration file will be placed under src/migrations. For more details check the existing 1611484925515-CreateUsersTable.ts
$ docker exec -it nest yarn migration:run$ docker exec -it nest yarn migration:revert# unit tests
$ docker exec -it nest yarn test
# e2e tests
$ docker exec -it nest yarn test:e2e
# test coverage
$ docker exec -it nest yarn test:covIntegrated Configuration Module so you can just inject ConfigService
and read all environment variables from .env file, which is created automatically by the init script from .env.example.
RESTful APIs you can describe with already integrated Swagger. To see all available endpoints visit http://localhost/api/docs
Already preconfigured JWT authentication.
It's suggested to change current password hashing to something more secure.
You can start use already working implementation of Login and Registration
endpoints, just take a look at http://localhost/api/docs.