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'

    Install

    npm i service-geoip

    DownloadsWeekly Downloads

    1

    Version

    2.0.0

    License

    GPL-2.0

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar