service-geoip

2.0.0 • Public • Published

node-service-geoip

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

Codeship Codacy Badge Codacy Badge

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

#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

npm i bunnymq --save

Then in your code:

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)

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'

Package Sidebar

Install

npm i service-geoip

Weekly Downloads

3

Version

2.0.0

License

GPL-2.0

Last publish

Collaborators

  • dial-once
  • jkernech
  • pukoren