NestJS REST API for typical project
- Features
- Quick run
- Comfortable development
- Links
- Automatic update of dependencies
- Database utils
- Tests
- Database (typeorm).
- Seeding (typeorm-seeding).
- Config Service (@nestjs/config).
- Mailing (nodemailer, @nestjs-modules/mailer).
- Sign in and sign up via email.
- Social sign in (Apple, Facebook, Google, Twitter).
- Admin and User roles.
- I18N (nestjs-i18n).
- File uploads. Support local and Amazon S3 drivers.
- Swagger.
- E2E and units tests.
- Docker.
- CI (Github Actions).
git clone https://github.com/tboclothing/nestjs-apis.tbo.clothing.git
cd nestjs-apis.tbo.clothing/
cp env-example .env
Run additional container (optional):
docker-compose up -d postgres adminer maildev redis
Setup Postgres database manually for localhost:
sudo -u postgres createuser postgres
sudo -u postgres createdb tboclothing_v2
sudo -u postgres psql
alter user postgres with encrypted password '123456';
grant all privileges on database tboclothing_v2 to postgres;
Run manual commands:
npm install
npm run migration:run
npm run seed:run
npm run start:dev
- Swagger: http://localhost:3000/docs
- Adminer (client for DB): http://localhost:8080
- Maildev: http://localhost:1080
Generate migration
npm run migration:generate -- CreateNameTable
Run migration
npm run migration:run
Revert migration
npm run migration:revert
Drop all tables in database
npm run schema:drop
Run seed
npm run seed:run
# unit tests
npm run test
# e2e tests
npm run test:e2e
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
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