{"id":48326173,"url":"https://github.com/bradlab/nest-devops-starter","last_synced_at":"2026-04-05T00:53:46.215Z","repository":{"id":289283229,"uuid":"968854014","full_name":"bradlab/nest-devops-starter","owner":"bradlab","description":"A modern boilerplate for building scalable NestJS applications with a clean DevOps setup. Includes Docker, CI/CD with GitHub Actions, Prettier, ESLint, Jest, and production-ready configuration. Perfect for quickly bootstrapping professional Node.js backends with best practices out of the box.","archived":false,"fork":false,"pushed_at":"2025-06-17T22:23:53.000Z","size":316,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-17T23:18:30.487Z","etag":null,"topics":["backend","cicd","clean-code","devops","docker","github-actions","linter","nestjs","postgresql","software-architecture","typescript","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-04-18T21:26:42.000Z","updated_at":"2025-06-17T22:23:58.000Z","dependencies_parsed_at":"2025-06-10T21:35:02.456Z","dependency_job_id":"915f5b53-3172-4c23-ab4c-5be0afd5d68c","html_url":"https://github.com/bradlab/nest-devops-starter","commit_stats":null,"previous_names":["bradlab/nest-devops-starter"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bradlab/nest-devops-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fnest-devops-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fnest-devops-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fnest-devops-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fnest-devops-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradlab","download_url":"https://codeload.github.com/bradlab/nest-devops-starter/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fnest-devops-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31420782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T00:25:07.052Z","status":"ssl_error","status_checked_at":"2026-04-05T00:25:05.923Z","response_time":60,"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","cicd","clean-code","devops","docker","github-actions","linter","nestjs","postgresql","software-architecture","typescript","unit-testing"],"created_at":"2026-04-05T00:53:46.110Z","updated_at":"2026-04-05T00:53:46.193Z","avatar_url":"https://github.com/bradlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nest API Starter\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo-small.svg\" width=\"200\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeORM-E83524?style=for-the-badge\u0026logo=typeorm\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-4169E1?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=black\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Winston-000000?style=for-the-badge\u0026logo=npm\u0026logoColor=white\u0026label=Winston\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Jest-C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 🧱 Stack technique\n\n- **Langage** : TypeScript\n- **Framework** : [NestJS](https://nestjs.com/)\n- **Base de données** : PostgreSQL\n- **ORM** : TypeORM\n- **Conteneurisation** : Docker + Docker Compose\n- **Architecture** : Architecture modulaire\n\n---\n\n## 🚀 Démarrage rapide\n\n### 1. Cloner le dépôt\n\n```bash\ngit clone https://github.com/bradlab/robassime-api.git\ncd robassime-api\n```\n\n### 2. Installer les dépendances\n\n#### Avec npm :\n```bash\nnpm install\n```\n\n#### Avec yarn :\n```bash\nyarn install\n```\n\n---\n\n### 3. Configurer les variables d’environnement\n\nCrée un fichier `.env` à la racine du projet en t’inspirant du fichier `.env.example` :\n\n```env\n# Exemple de configuration\nDATABASE_HOST=localhost\nDATABASE_PORT=5432\nDATABASE_USERNAME=postgres\nDATABASE_PASSWORD=postgres\nDATABASE_NAME=robassime\nPORT=3000\n```\n\n---\n\n### 4. Lancer l’application en mode développement\n\n#### Avec npm :\n```bash\nnpm run start:dev\n```\n\n#### Avec yarn :\n```bash\nyarn start:dev\n```\n\nL’API sera accessible par défaut sur [http://localhost:3000](http://localhost:3000)\n\n---\n\n## 🐳 Utilisation avec Docker\n\n### 1. Lancer l’environnement complet\n\n```bash\ndocker-compose up --build\n```\n\nCela démarre :\n- L’API NestJS\n- La base de données PostgreSQL\n\n---\n\n### 2. Arrêter les conteneurs\n\n```bash\ndocker-compose down\n```\n\n---\n\n## 📁 Structure du projet\n\n```\n├── .gitignore                      # Fichiers à ignorer par Git\n├── .husky/                         # Hooks Git (ex. : pre-commit)\n├── .github/\n│   └── workflows/                  # Fichiers de configuration GitHub Actions (CI/CD)\n├── commitlint.config.cjs           # Configuration pour le lint des messages de commit\n├── docker-compose.yml              # Configuration multi-conteneurs Docker (API + DB)\n├── Dockerfile                      # Image Docker de l'application\n├── jest.config.json                # Configuration de Jest (tests unitaires)\n├── nest-cli.json                   # Configuration spécifique à NestJS CLI\n├── package.json                    # Dépendances NPM et scripts de projet\n├── releaserc.json                  # Configuration de Semantic Release\n├── tsconfig.json                   # Configuration du compilateur TypeScript\n├── yarn.lock                       # Verrouillage des versions Yarn\n└── src/                  # Code source\n\n      └───util\n```\n\n---\n\n## 🛠️ Scripts utiles\n\n| Commande                        | npm                       | yarn                     |\n|---------------------------------|---------------------------|--------------------------|\n| Start the project               | `npm run start`           | `yarn start`             |\n| Development mode                | `npm run start:dev`       | `yarn start:dev`         |\n| Compiler                        | `npm run build`           | `yarn build`             |\n| Lint                            | `npm run lint`            | `yarn lint`              |\n| Tests unitaires                 | `npm run test`            | `yarn test`              |\n| Tests en mode watch             | `npm run test:watch`      | `yarn test:watch`        |\n| Typescript check                | `npx tsc`                                            |\n| Husky Hooks                     | `npm run init:hooks`      | `yarn init:hooks`        |\n\n---\n\n## 🧪 Tests\n\n#### Avec npm :\n```bash\nnpm run test\n```\n\n#### Avec yarn :\n```bash\nyarn test\n```\n\n---\n\n## 🧾 Migrations TypeORM\n\n#### Create a migration :\n\n```bash\nnpm run typeorm migration:create -- -n migratinName\n# ou\nyarn typeorm migration:create -n migratinName\n```\n#### Execute  migrations :\n\n```bash\nnpm run typeorm migration:run\n# ou\nyarn typeorm migration:run\n```\n\n#### Rollback the migration :\n\n```bash\nnpm run typeorm migration:revert\n# ou\nyarn typeorm migration:revert\n```\n\n## 📫 Contact\n\nFor any questions or contributions :\n\n- Author : **bradlab**\n- Email : `matbradiouf@gmail.com`\n- GitHub : [https://github.com/bradlab](https://github.com/bradlab)\n\n---\n\n## 📝 Licence\n\nThis project is licensed under the **MIT** license. See the `LICENSE` file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradlab%2Fnest-devops-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradlab%2Fnest-devops-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradlab%2Fnest-devops-starter/lists"}