{"id":24349232,"url":"https://github.com/deco31416/ack-nestjs-boilerplate","last_synced_at":"2026-04-13T10:32:36.292Z","repository":{"id":272103804,"uuid":"915532347","full_name":"deco31416/ack-nestjs-boilerplate","owner":"deco31416","description":"NestJs v10.x Boilerplate. Repository Design Pattern. MongoDB (Mongoose). Containerization.","archived":false,"fork":false,"pushed_at":"2025-02-03T00:27:47.000Z","size":8657,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T22:33:49.668Z","etag":null,"topics":["backend","bolierplate","mongodb","nestjs","nodejs","starter-template","swagger","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deco31416.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-12T05:03:30.000Z","updated_at":"2025-02-03T00:27:50.000Z","dependencies_parsed_at":"2025-01-12T06:25:39.530Z","dependency_job_id":"a913824e-1be7-477a-8824-b3bd998c3393","html_url":"https://github.com/deco31416/ack-nestjs-boilerplate","commit_stats":null,"previous_names":["deco31416/ack-nestjs-boilerplate"],"tags_count":1,"template":false,"template_full_name":"andrechristikan/ack-nestjs-boilerplate","purl":"pkg:github/deco31416/ack-nestjs-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deco31416%2Fack-nestjs-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deco31416%2Fack-nestjs-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deco31416%2Fack-nestjs-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deco31416%2Fack-nestjs-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deco31416","download_url":"https://codeload.github.com/deco31416/ack-nestjs-boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deco31416%2Fack-nestjs-boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31749094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","bolierplate","mongodb","nestjs","nodejs","starter-template","swagger","typescript"],"created_at":"2025-01-18T12:36:12.251Z","updated_at":"2026-04-13T10:32:36.269Z","avatar_url":"https://github.com/deco31416.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Contributors][ack-contributors-shield]][ack-contributors]\n[![Forks][ack-forks-shield]][ack-forks]\n[![Stargazers][ack-stars-shield]][ack-stars]\n[![Issues][ack-issues-shield]][ack-issues]\n[![MIT License][ack-license-shield]][license]\n\n[![NestJs][nestjs-shield]][ref-nestjs]\n[![NodeJs][nodejs-shield]][ref-nodejs]\n[![Typescript][typescript-shield]][ref-typescript]\n[![MongoDB][mongodb-shield]][ref-mongodb]\n[![JWT][jwt-shield]][ref-jwt]\n[![Jest][jest-shield]][ref-jest]\n[![Yarn][yarn-shield]][ref-yarn]\n[![Docker][docker-shield]][ref-docker]\n\n# ACK NestJs Boilerplate 🔥 🚀\n\n\u003e This repo will representative of authentication service and authorization service\n\n[ACK NestJs][ack] is a [Http NestJs v10.x][ref-nestjs] boilerplate. Best uses for backend service.\n\n_You can [request feature][ack-issues] or [report bug][ack-issues] with following this link_\n\n## Table of contents\n\n- [ACK NestJs Boilerplate 🔥 🚀](#ack-nestjs-boilerplate--)\n  - [Table of contents](#table-of-contents)\n  - [Important](#important)\n  - [TODO](#todo)\n  - [Prerequisites](#prerequisites)\n  - [Build with](#build-with)\n  - [Objective](#objective)\n  - [Features](#features)\n    - [Main Features](#main-features)\n  - [Installation](#installation)\n    - [Clone Repo](#clone-repo)\n    - [Install Dependencies](#install-dependencies)\n    - [Create environment](#create-environment)\n    - [Database Migration and Seed](#database-migration-and-seed)\n    - [Template Migration](#template-migration)\n    - [Run Project](#run-project)\n  - [Installation with Docker](#installation-with-docker)\n  - [Test](#test)\n  - [Swagger](#swagger)\n  - [API Key](#api-key)\n  - [User](#user)\n  - [BullMQ Board](#bullmq-board)\n    - [User](#user-1)\n  - [License](#license)\n  - [Contribute](#contribute)\n  - [Contact](#contact)\n\n## Important\n\n\u003e Very limited documentation\n\n-   Stateful Authorization, using `redis-session` and `JWT`.\n-   Must run MongoDB as a `replication set` for `database transactions`.\n-   If you want to implement `Google SSO`. You must have google cloud console account, then create your own Credential to get the `clientId` and `clientSecret`.\n-   If you want to implement `Apple SSO`. You must have `clientId` and `signInClientId`.\n-   If you change the environment value of `APP_ENV` to `production`, that will disable Documentation.\n-   For monitoring, this project will use `sentry.io`, and sent uncatched error and/or `internal server error`.\n\n## TODO\n\n-   [ ] Export Module\n-   [ ] Move to Stateful Authorization 1. Reset Password Module 2. Verification Module\n\n## Prerequisites\n\nWe assume that everyone who comes here is **`programmer with intermediate knowledge`** and we also need to understand more before we begin in order to reduce the knowledge gap.\n\n1. Understand [NestJs Fundamental][ref-nestjs], Main Framework. NodeJs Framework with support fully TypeScript.\n2. Understand [Typescript Fundamental][ref-typescript], Programming Language. It will help us to write and read the code.\n3. Understand [ExpressJs Fundamental][ref-nodejs], NodeJs Base Framework. It will help us in understanding how the NestJs Framework works.\n4. Understand what and how database works, especially NoSql and [MongoDB.][ref-mongodb]\n5. Understand Repository Design Pattern or Data Access Object Design Pattern. It will help to read, and write the source code\n6. Understand The SOLID Principle and KISS Principle for better write the code.\n7. Optional. Understand Microservice Architecture, Clean Architecture, and/or Hexagonal Architecture. It can help you to understand more deep about this project.\n8. Optional. Understanding [The Twelve Factor Apps][ref-12factor]. It can help to serve the project.\n9. Optional. Understanding [Docker][ref-docker].\n\n## Build with\n\nDescribes which version.\n\n| Name           | Version  |\n| -------------- | -------- |\n| NestJs         | v10.x    |\n| NestJs Swagger | v8.0.x   |\n| NodeJs         | v22.11.x |\n| Typescript     | v5.6.x   |\n| Mongoose       | v10.0.x  |\n| MongoDB        | v8.x     |\n| Yarn           | v1.22.x  |\n| Docker         | v27.2.x  |\n| Docker Compose | v2.29.x  |\n\n## Objective\n\n-   Easy to maintenance\n-   NestJs Habit\n-   Component based / modular folder structure\n-   Stateless authentication and authorization\n-   Repository Design Pattern or Data Access Layer Design Pattern\n-   Follow Community Guide Line\n-   Follow The Twelve-Factor App\n\n## Features\n\n### Main Features\n\n-   NestJs 10.x 🥳\n-   Typescript 🚀\n-   Production ready 🔥\n-   MongoDB integrate by using [mongoose][ref-mongoose] 🎉\n-   Cached response with redis.\n-   Queue bullmq with redis.\n-   Logger with pino 🌲\n-   SWC (Speedy Web Compiler) Compiler, fast compiler.\n-   Authorization, Role, and session Management (can revoke).\n-   Repository Design Pattern.\n-   Authentication (`Access Token`, `Refresh Token`, `API Key`, `Google SSO`, `Apple SSO`)\n-   Export data with CSV or Excel by using `decorator`.\n-   Support multi-language `i18n` 🗣, can controllable with request header `x-custom-lang`\n-   Request validation for all request params, query, dan body with `class-validation`\n-   Swagger / OpenAPI 3 included.\n-   Url Versioning, default version is `1`.\n-   Server Side Pagination.\n-   Sentry.io for Monitoring Tools.\n-   Support Docker installation.\n-   Husky GitHook for run linter before commit 🐶.\n-   Linter with EsLint for Typescript.\n\n## Installation\n\nBefore start, we need to install some packages and tools.\nThe recommended version is the LTS version for every tool and package.\n\n\u003e Make sure to check that the tools have been installed successfully.\n\n1. [NodeJs][ref-nodejs]\n2. [MongoDB][ref-mongodb]\n3. [Redis][ref-redis]\n4. [Yarn][ref-yarn]\n5. [Git][ref-git]\n\n### Clone Repo\n\nClone the project with git.\n\n```bash\ngit clone https://github.com/andrechristikan/ack-nestjs-boilerplate.git\n```\n\n### Install Dependencies\n\nThis project needs some dependencies. Let's go install it.\n\n```bash\nyarn install\n```\n\n### Create environment\n\nMake your own environment file with a copy of `env.example` and adjust values to suit your own environment.\n\n```bash\ncp .env.example .env\n```\n\n### Database Migration and Seed\n\nBy default the options of `AutoCreate` and `AutoIndex` will be `false`.\nThats means the schema in MongoDb will not change with the latest.\nSo in the first place, u need to update the schema\n\n```bash\nyarn migrate:schema\n```\n\nAfter migrate the schema, also we need to run data seed\n\n```bash\nyarn seed\n```\n\n### Template Migration\n\n\u003e Optional\n\nThe template migration will automatically upload `/templates` through AWS SES.\n\nFor migrate\n\n```bash\nyarn migrate:template\n```\n\n### Run Project\n\nFinally, Cheers 🍻🍻 !!! you passed all steps.\n\nNow you can run the project.\n\n```bash\nyarn start:dev\n```\n\n## Installation with Docker\n\nWe need more tools to be installed.\n\n1. [Docker][ref-docker]\n2. [Docker-Compose][ref-dockercompose]\n\nCopy `.env.example` and change value\n\nif `host.docker.internal` cannot be resolved, you must add a line in your `/etc/hosts` file to map `host.docker.internal` to the IP address `127.17.0.1`\n\n\nleave the rest as it, then run\n\n```bash\ndocker-compose up -d\n```\n\n## Test\n\nThe project only provide `unit testing`.\n\n```bash\nyarn test\n```\n\n## Swagger\n\nYou can check The Swagger after running this project. Url `localhost:3000/docs`\n\n## API Key\n\napi key: `v8VB0yY887lMpTA2VJMV`\napi key secret: `zeZbtGTugBTn3Qd5UXtSZBwt7gn3bg`\n\n## User\n\n1. Super Admin\n    - email: `superadmin@mail.com`\n    - password: `aaAA@123`\n2. Admin\n    - email: `admin@mail.com`\n    - password: `aaAA@123`\n3. Member\n    - email: `member@mail.com`\n    - password: `aaAA@123`\n4. User\n    - email: `user@mail.com`\n    - password: `aaAA@123`\n\n## BullMQ Board\n\n\u003e This available with docker installation\n\nYou can check and monitor your queue.\nUrl `localhost:3010`\n\n### User\n\n-   email: `admin`\n-   password: `admin123`\n\n## License\n\nDistributed under [MIT licensed][license].\n\n## Contribute\n\nHow to contribute in this repo\n\n1. Fork the repository\n2. Create your branch `git checkout -b my-branch`\n3. Commit any changes to your branch\n4. Push your changes to your remote branch\n5. Open a pull request\n\nIf your code behind commit with the `origin/main` branch, please update your code and resolve the conflict.\n\n## Contact\n\n[Andre Christi kan][author-email]\n\n[![Github][github-shield]][author-github]\n[![LinkedIn][linkedin-shield]][author-linkedin]\n\n\u003c!-- BADGE LINKS --\u003e\n\n[ack-contributors-shield]: https://img.shields.io/github/contributors/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-forks-shield]: https://img.shields.io/github/forks/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-stars-shield]: https://img.shields.io/github/stars/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-issues-shield]: https://img.shields.io/github/issues/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-license-shield]: https://img.shields.io/github/license/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[nestjs-shield]: https://img.shields.io/badge/nestjs-%23E0234E.svg?style=for-the-badge\u0026logo=nestjs\u0026logoColor=white\n[nodejs-shield]: https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\n[typescript-shield]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[mongodb-shield]: https://img.shields.io/badge/MongoDB-white?style=for-the-badge\u0026logo=mongodb\u0026logoColor=4EA94B\n[jwt-shield]: https://img.shields.io/badge/JWT-000000?style=for-the-badge\u0026logo=JSON%20web%20tokens\u0026logoColor=white\n[jest-shield]: https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\n[yarn-shield]: https://img.shields.io/badge/yarn-%232C8EBB.svg?style=for-the-badge\u0026logo=yarn\u0026logoColor=white\n[docker-shield]: https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[github-shield]: https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\n[linkedin-shield]: https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\n\n\u003c!-- CONTACTS --\u003e\n\n[author-linkedin]: https://linkedin.com/in/andrechristikan\n[author-email]: mailto:andrechristikan@gmail.com\n[author-github]: https://github.com/andrechristikan\n\n\u003c!-- Repo LINKS --\u003e\n\n[ack-issues]: https://github.com/andrechristikan/ack-nestjs-boilerplate/issues\n[ack-stars]: https://github.com/andrechristikan/ack-nestjs-boilerplate/stargazers\n[ack-forks]: https://github.com/andrechristikan/ack-nestjs-boilerplate/network/members\n[ack-contributors]: https://github.com/andrechristikan/ack-nestjs-boilerplate/graphs/contributors\n\n\u003c!-- license --\u003e\n\n[license]: LICENSE.md\n\n\u003c!-- Reference --\u003e\n\n[ref-nestjs]: http://nestjs.com\n[ref-mongoose]: https://mongoosejs.com\n[ref-mongodb]: https://docs.mongodb.com/\n[ref-nodejs]: https://nodejs.org/\n[ref-typescript]: https://www.typescriptlang.org/\n[ref-docker]: https://docs.docker.com\n[ref-dockercompose]: https://docs.docker.com/compose/\n[ref-yarn]: https://yarnpkg.com\n[ref-12factor]: https://12factor.net\n[ref-nestjscommand]: https://gitlab.com/aa900031/nestjs-command\n[ref-jwt]: https://jwt.io\n[ref-jest]: https://jestjs.io/docs/getting-started\n[ref-git]: https://git-scm.com\n[ref-redis]: https://redis.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeco31416%2Fack-nestjs-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeco31416%2Fack-nestjs-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeco31416%2Fack-nestjs-boilerplate/lists"}