My Moleculer-based microservices project
- node >= 16.20.x
npx degit jellydn/moleculer-typescript-template [PROJECT-NAME]
- ⚡️ Progressive microservices framework for Node.js. Moleculer with Typescript template
- 📦 hygen - The scalable code generator that saves you time.
- 🦾 pino - super fast, all natural json logger
- 🔥 swagger-jsdoc - Generates swagger/openapi specification based on jsDoc comments and YAML files.
yarn install
# Copy env file
cp .env.example .env
yarn dev
After starting, open the http://localhost:3000/ URL in your browser. On the welcome page you can test the generated services via API Gateway and check the nodes & services.
yarn cli --ns api
In the terminal, try the following commands:
nodes
- List all connected nodes.actions
- List all registered service actions.call greeter.hello
- Call thegreeter.hello
action.call greeter.welcome --username dunghd
- Call thegreeter.welcome
action with theusername
parameter.
Add new service to your project with below command
yarn generate:service [service-name]
This template also reads your JSDoc-annotated source code and generates an OpenAPI (Swagger) specification.
Open the http://localhost:3000/docs URL in your browser, you will see the Swagger UI as
yarn test
This template comes with two GitHub Actions that handle automatically deploying your app to production and staging environments.
Prior to your first deployment, you'll need to do a few things:
-
Sign up and log in to Fly
fly auth signup
-
Create two apps on Fly, one for staging and one for production:
fly create moleculer-typescript fly create moleculer-typescript-staging
-
Create a new GitHub Repository
-
Add a
FLY_API_TOKEN
to your GitHub repo. To do this, go to your user settings on Fly and create a new token, then add it to your repo secrets with the nameFLY_API_TOKEN
.
Now that every is set up you can commit and push your changes to your repo. Every commit to your main
branch will trigger a deployment to your production environment, and every commit to your dev
branch will trigger a deployment to your staging environment.
We use GitHub Actions for continuous integration and deployment. Anything that gets into the main
branch will be deployed to production after running tests/build/etc. Anything in the dev
branch will be deployed to staging.
- Moleculer website: https://moleculer.services/
- Moleculer Documentation: https://moleculer.services/docs/0.14/
yarn dev
: Start development mode (load all services locally with hot-reload & watch)yarn start
: Start production mode (setSERVICES
env variable to load certain services)yarn cli
: Start a CLI and connect to production. Don't forget to set production namespace with--ns
argument in scriptyarn ci
: Run continuous test mode with watchingyarn test
: Run tests & generate coverage reportyarn dc:up
: Start the stack with Docker Composeyarn dc:down
: Stop the stack with Docker Compose
👤 Dung Huynh
- Website: https://productsway.com/
- Twitter: @jellydn
- Github: @jellydn
Give a ⭐️ if this project helped you!