moleculer-realworld-example-app
                                
                                 moleculer-realworld-example-app copied to clipboard
                                
                                    moleculer-realworld-example-app copied to clipboard
                            
                            
                            
                        :earth_asia: RealWorld example app with Moleculer microservices framework
Moleculer codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.
This repo is functionality complete — PRs and issues welcome!
Live demo on Glitch: https://realworld-moleculer.glitch.me
Glitch project: https://glitch.com/edit/#!/realworld-moleculer
React + Redux front-end UI is included. For more information on how to this works with other frontends/backends, head over to the RealWorld repo.
Getting started
To get the Node server running locally:
- Clone this repo
- npm installto install all required dependencies
- npm run devto start the local server
- the API is available at http://localhost:3000/api
Alternately, to quickly try out this repo in the cloud, you can
MongoDB persistent store
Basically the services stores data in an NeDB persistent file storage in the ./data folder. If you have to use MongoDB, set the MONGO_URI environment variable.
MONGO_URI=mongodb://localhost/conduit
Multiple instances
You can run multiple instances of services. In this case you need to use a transporter i.e.: NATS. NATS is a lightweight & fast message broker. Download it and start with gnatsd command. After it started, set the TRANSPORTER env variable and start services.
TRANSPORTER=nats://localhost:4222
To get the Node server running locally with Docker
- 
Checkout the repo git clone https://github.com/ice-services/moleculer-realworld-example-app.git
- 
cd moleculer-realworld-example-app
- 
Start with docker-compose: docker-compose up -dIt starts all services in separated containers, a NATS server for communication, a MongoDB server for database and a Traefik reverse proxy 
- 
Open the http://docker-ip:3000 
- 
Scale up services docker-compose scale api=3 articles=2 users=2 comments=2 follows=2 favorites=2
Code Overview
Dependencies
- moleculer - Microservices framework for NodeJS
- moleculer-web - Official API Gateway service for Moleculer
- moleculer-db - Database store service for Moleculer
- moleculer-db-adapter-mongo - Database store service for MongoDB (optional)
- jsonwebtoken - For generating JWTs used by authentication
- bcrypt - Hashing user password
- lodash - Utility library
- slug - For encoding titles into a URL-friendly format
- nats - NATS transport driver for Moleculer (optional)
Application Structure
- moleculer.config.js- Moleculer ServiceBroker configuration file.
- services/- This folder contains the services.
- public/- This folder contains the front-end static files.
- data/- This folder contains the NeDB database files.
Test
Tested with realworld-server-tester.
Local tests is missing currently.
$ npm test
In development with watching
$ npm run ci
License
This project is available under the MIT license.
Contact
Copyright (c) 2016-2017 Ice-Services
