UNPKG

service-geoip

Version:

A RabbitMQ microservice wrapping the node-geoip package (geoip-lite on npm).

76 lines (60 loc) 1.99 kB
# node-service-geoip a RabbitMQ microservice wrapping the [node-geoip package](https://github.com/bluesmoon/node-geoip) (geoip-lite on npm). [![Codeship](https://img.shields.io/codeship/d6c1ddd0-16a3-0132-5f85-2e35c05e22b1.svg)](https://codeship.com/projects/118381) [![Codacy Badge](https://api.codacy.com/project/badge/grade/cac6f6f7950849239868653756b472ab)](https://www.codacy.com/app/dialonce/node-service-geoip) [![Codacy Badge](https://api.codacy.com/project/badge/coverage/cac6f6f7950849239868653756b472ab)](https://www.codacy.com/app/dialonce/node-service-geoip) # project status #### Done - Used in production - Dockerized - Deployable via Tutum - Uses BunnyMQ ## service install ```npm install service-geoip``` ```npm updatedb``` used to build the geo DB. This is not needed when module is used as a client. ## docker build ```docker build .``` ## configuration configuration can be done using env vars ```sh #default AMQP_URL=amqp://localhost #default AMQP_QUEUE=geo:ip ``` ## usage ### start the service setup env vars and start the container or run npm start ``` npm start ``` ### consume the service ```sh npm i bunnymq --save ``` Then in your code: ```js var bunny = require('bunnymq')(/*config here or use bunnymq's env vars*/).producer; bunny.produce('geo:ip', '95.130.11.91', { rpc: true }) .then(function(loc){ //use loc object here }); ``` ### consuming from a compatible amqp broker just send the IP as the message content on the queue you have defined (see #configuration) with contentType set to ``application/json`` # Tutum Here is a sample stackfile to deploy your microservice (create your tutum repository from the github repo first) ```yml rabbitmq-master: image: 'tutum/rabbitmq:latest' environment: - RABBITMQ_PASS=PASSWORD service-geoip: image: 'tutum.co/TUTUM_USER/service-geoip:latest' environment: - 'AMQP_URL=amqp://admin:PASSWORD@rabbitmq-master' links: - rabbitmq-master ports: - '9001:8080' ```