{"id":13989767,"url":"https://github.com/thanhson1085/bean-seed","last_synced_at":"2026-02-23T05:40:51.955Z","repository":{"id":141529631,"uuid":"55164414","full_name":"thanhson1085/bean-seed","owner":"thanhson1085","description":"DevOps Microservices NodeJS Starter Project","archived":false,"fork":false,"pushed_at":"2017-08-26T03:36:02.000Z","size":731,"stargazers_count":51,"open_issues_count":0,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-29T09:38:59.311Z","etag":null,"topics":["devops","docker","microservices","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/thanhson1085.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}},"created_at":"2016-03-31T16:06:28.000Z","updated_at":"2024-04-30T04:24:46.000Z","dependencies_parsed_at":"2024-01-15T16:52:22.437Z","dependency_job_id":null,"html_url":"https://github.com/thanhson1085/bean-seed","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/thanhson1085/bean-seed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhson1085%2Fbean-seed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhson1085%2Fbean-seed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhson1085%2Fbean-seed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhson1085%2Fbean-seed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thanhson1085","download_url":"https://codeload.github.com/thanhson1085/bean-seed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhson1085%2Fbean-seed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266483700,"owners_count":23936398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["devops","docker","microservices","nodejs"],"created_at":"2024-08-09T13:02:02.994Z","updated_at":"2025-07-22T11:31:38.072Z","avatar_url":"https://github.com/thanhson1085.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"[![Gitter](https://badges.gitter.im/thanhson1085/bean-seed.svg)](https://gitter.im/thanhson1085/bean-seed?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n![CodeShip](https://codeship.com/projects/e11c9da0-e9c1-0133-a811-5a99213623df/status?branch=master)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fthanhson1085%2Fbean-seed.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fthanhson1085%2Fbean-seed?ref=badge_shield)\n\nIf you are planning to build a project with Microservices pattern and DevOps culture, you can use this source code.\n\nIn this source code, I built two services, one for Frontend [AngularJS and Bootstrap](https://github.com/thanhson1085/bean-seed/tree/master/site-seed), one for Backend [ExpressJS and Mongoose](https://github.com/thanhson1085/bean-seed/tree/master/api-seed). All services in this project is dockerized and pushed to Docker Hub. You can read Dockerfile in each service for further details. To create a new service, you just create a new directory, writing source code for that service and update docker-compose.yml file.\n\n### Run\nThe Orchestration of Project is written in [docker-compose.yml](https://github.com/thanhson1085/bean-seed/blob/master/docker-compose.yml) file. So it is so easily to understand and run the project.\n```\ndocker-compose up\n```\n\n### Using Vagrant and Virtualbox\nWe also start from Virtual Machine layer with Vagrant.\n```\nvagrant up\n```\nAfter that, you can access the application via link: http://172.20.20.20\n\nYou can read [Vagrantfile](https://github.com/thanhson1085/bean-seed/blob/master/Vagrantfile) to understand what we need to prepare for VMs.\n\n### System Architecture\nAfter running `docker-compose up` we will have a system as below:\n\n![Starting a Miroservices-DevOps Project with NodeJS and Docker](https://sonnguyen.ws/wp-content/uploads/2016/07/docker-compose-orchestration-3.png)\n\n\n### Contents\n\n| Part | Title                       | Git Tag |\n|------|-----------------------------|---------|\n| 1    | Starting with ExpressJS     |  [1.0](https://github.com/thanhson1085/bean-seed/tree/1.0)|\n| 2    | Logger with Winston     |  [1.1](https://github.com/thanhson1085/bean-seed/tree/1.1)|\n| 4    | Config Management with Node-Config     |  [1.2](https://github.com/thanhson1085/bean-seed/tree/1.2)|\n| 5    | ExpressJS and Mongoose     |  [2.0](https://github.com/thanhson1085/bean-seed/tree/2.0)|\n| 6    | Building Create User API     |  [2.1](https://github.com/thanhson1085/bean-seed/tree/2.1)|\n| 7    | Adding Swagger Documents     |  [2.2](https://github.com/thanhson1085/bean-seed/tree/2.2)|\n| 8    | Building Login API    |  [2.3](https://github.com/thanhson1085/bean-seed/tree/2.3)|\n| 9    | Building Get User List/Detail API     |  [2.4](https://github.com/thanhson1085/bean-seed/tree/2.4)|\n| 10    | Authorization all APIs     |  [2.5](https://github.com/thanhson1085/bean-seed/tree/2.5)|\n| 11    | Unit Test     |  [2.6](https://github.com/thanhson1085/bean-seed/tree/2.6)|\n| 12    | Building Config API     |  [3.0](https://github.com/thanhson1085/bean-seed/tree/3.0)|\n| 13    | Using Cache     |  [3.1](https://github.com/thanhson1085/bean-seed/tree/3.1)|\n| 14    | Using Queue     |  [3.2](https://github.com/thanhson1085/bean-seed/tree/3.2)|\n| 15    | Starting AngularJS with Yeoman     |  [4.0](https://github.com/thanhson1085/bean-seed/tree/4.0)|\n| 16    | Config Management for AngularJS     |  [4.1](https://github.com/thanhson1085/bean-seed/tree/4.1)|\n| 17    | Building Login Page     |  [4.2](https://github.com/thanhson1085/bean-seed/tree/4.2)|\n| 18    | Building Register Page     |  [4.3](https://github.com/thanhson1085/bean-seed/tree/4.3)|\n| 19    | Building List User Page     |  [4.4](https://github.com/thanhson1085/bean-seed/tree/4.4)|\n| 20    | Pagination with AngularJS and Bootstrap     |  [4.5](https://github.com/thanhson1085/bean-seed/tree/4.5)|\n| 21    | Multiple Languages     |  [4.6](https://github.com/thanhson1085/bean-seed/tree/4.6)|\n| 22    | AngularJS Unit Test     |  [4.7](https://github.com/thanhson1085/bean-seed/tree/4.7)|\n| 23    | Building User Detail Page     |  [4.8](https://github.com/thanhson1085/bean-seed/tree/4.8)|\n| 24    | Dockerize Aplication     |  [5.0](https://github.com/thanhson1085/bean-seed/tree/5.0)|\n| 25    | Orchestration with Docker Compose     |  [5.1](https://github.com/thanhson1085/bean-seed/tree/5.1)|\n\n### For Developer\nSetup Backend\n```\ncd api-seed\nnpm install\n# create local configuration file\ncp config/default.json config/local.json\n# edit local.json for match your environment\n```\nRun Backend\n```\nnode index.js\n```\nSetup Frontend\n```\ncd site-seed\nnpm install\nbower install\n# create local configuration file\ncp config/default.json config/local.json\n# edit local.json for match your environment\n```\nRun Frontend with Grunt\n```\ngrunt serve\n```\n### Monitor \u0026 Logs\nThis starter project also fully supports monitor by using Telegraf, InfluxDB, Grafana and Kapacitor. Supports centralizing Logs with fluentd, Kibana and Elasticsearch.\n\n### Troubleshoot\nYou may meet some trouble with Elasticsearch 5.0+ (requires at least 4G RAM). And run command:\n```\nsysctl -w vm.max_map_count=262144\n```\n\n### Documents\n\n#### Tiếng Việt\n1. [Tạo một API đầu tiên với NodeJS](https://sonnguyen.ws/vi/tao-mot-service-dau-tien-voi-nodejs/)\n2. [Quản lý Logs trong dự án NodeJS](https://sonnguyen.ws/vi/quan-ly-logs-trong-du-nodejs/)\n3. [Quản lý Config trong dự án NodeJS](https://sonnguyen.ws/vi/quan-ly-config-trong-du-nodejs/)\n4. [Cài đặt và chạy thử MongoDB trên Ubuntu Server](https://sonnguyen.ws/vi/cai-dat-va-chay-thu-mongodb-tren-ubuntu/)\n5. [Bắt đầu với ExpressJS và Mongoose](https://sonnguyen.ws/vi/bat-dau-voi-expressjs-va-mongoose/)\n\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fthanhson1085%2Fbean-seed.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fthanhson1085%2Fbean-seed?ref=badge_large)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanhson1085%2Fbean-seed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthanhson1085%2Fbean-seed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanhson1085%2Fbean-seed/lists"}