generated from brocoders/nestjs-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1ae6b7f
commit eae5d8d
Showing
4 changed files
with
1,527 additions
and
2,565 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,142 +1 @@ | ||
# NestJS REST API boilerplate 🇺🇦 | ||
|
||
![github action status](https://github.com/brocoders/nestjs-boilerplate/actions/workflows/docker-e2e.yml/badge.svg) | ||
|
||
## Description | ||
|
||
NestJS REST API boilerplate for typical project | ||
|
||
[Full documentation here](https://github.com/brocoders/nestjs-boilerplate/blob/main/docs/readme.md) | ||
|
||
## Table of Contents | ||
|
||
- [Features](#features) | ||
- [Quick run](#quick-run) | ||
- [Comfortable development](#comfortable-development) | ||
- [Links](#links) | ||
- [Automatic update of dependencies](#automatic-update-of-dependencies) | ||
- [Database utils](#database-utils) | ||
- [Tests](#tests) | ||
|
||
## Features | ||
|
||
- [x] Database ([typeorm](https://www.npmjs.com/package/typeorm)). | ||
- [x] Seeding. | ||
- [x] Config Service ([@nestjs/config](https://www.npmjs.com/package/@nestjs/config)). | ||
- [x] Mailing ([nodemailer](https://www.npmjs.com/package/nodemailer)). | ||
- [x] Sign in and sign up via email. | ||
- [x] Social sign in (Apple, Facebook, Google, Twitter). | ||
- [x] Admin and User roles. | ||
- [x] I18N ([nestjs-i18n](https://www.npmjs.com/package/nestjs-i18n)). | ||
- [x] File uploads. Support local and Amazon S3 drivers. | ||
- [x] Swagger. | ||
- [x] E2E and units tests. | ||
- [x] Docker. | ||
- [x] CI (Github Actions). | ||
|
||
## Quick run | ||
|
||
```bash | ||
git clone --depth 1 https://github.com/brocoders/nestjs-boilerplate.git my-app | ||
cd my-app/ | ||
cp env-example .env | ||
docker compose up -d | ||
``` | ||
|
||
For check status run | ||
|
||
```bash | ||
docker compose logs | ||
``` | ||
|
||
## Comfortable development | ||
|
||
```bash | ||
git clone --depth 1 https://github.com/brocoders/nestjs-boilerplate.git my-app | ||
cd my-app/ | ||
cp env-example .env | ||
``` | ||
|
||
Change `DATABASE_HOST=postgres` to `DATABASE_HOST=localhost` | ||
|
||
Change `MAIL_HOST=maildev` to `MAIL_HOST=localhost` | ||
|
||
Run additional container: | ||
|
||
```bash | ||
docker compose up -d postgres adminer maildev | ||
``` | ||
|
||
```bash | ||
npm install | ||
|
||
npm run migration:run | ||
|
||
npm run seed:run | ||
|
||
npm run start:dev | ||
``` | ||
|
||
## Links | ||
|
||
- Swagger: http://localhost:3000/docs | ||
- Adminer (client for DB): http://localhost:8080 | ||
- Maildev: http://localhost:1080 | ||
|
||
## Automatic update of dependencies | ||
|
||
If you want to automatically update dependencies, you can connect [Renovate](https://github.com/marketplace/renovate) for your project. | ||
|
||
## Database utils | ||
|
||
Generate migration | ||
|
||
```bash | ||
npm run migration:generate -- src/database/migrations/CreateNameTable | ||
``` | ||
|
||
Run migration | ||
|
||
```bash | ||
npm run migration:run | ||
``` | ||
|
||
Revert migration | ||
|
||
```bash | ||
npm run migration:revert | ||
``` | ||
|
||
Drop all tables in database | ||
|
||
```bash | ||
npm run schema:drop | ||
``` | ||
|
||
Run seed | ||
|
||
```bash | ||
npm run seed:run | ||
``` | ||
|
||
## Tests | ||
|
||
```bash | ||
# unit tests | ||
npm run test | ||
|
||
# e2e tests | ||
npm run test:e2e | ||
``` | ||
|
||
## Tests in Docker | ||
|
||
```bash | ||
docker compose -f docker-compose.ci.yaml --env-file env-example -p ci up --build --exit-code-from api && docker compose -p ci rm -svf | ||
``` | ||
|
||
## Test benchmarking | ||
|
||
```bash | ||
docker run --rm jordi/ab -n 100 -c 100 -T application/json -H "Authorization: Bearer USER_TOKEN" -v 2 http://<server_ip>:3000/api/v1/users | ||
``` | ||
# MyOrderApp Backend |
Oops, something went wrong.