Giter Club home page Giter Club logo

dns's Introduction

Build Status dependency Status devDependency Status NPM version

DNS

A DNS Server with an Web UI and using Redis a configuration store

Installation

brew install redis
sudo npm install -g dns

Startup

/usr/local/opt/redis/bin/redis-server /usr/local/etc/redis.conf >& /tmp/redis.log &
sudo dns >& /tmp/dns.log &

Web UI

open http://localhost:8053

REDIS CONFIGURATION

REDIS_PORT_6379_TCP_ADDR  (default: 127.0.0.1)
REDIS_PORT_6379_TCP_PORT  (default: 6379)

DNS CONFIGURATION

DNSINTERFACE (default: 0.0.0.0)
DNSPORT      (default: 53 <- require root privilege to run)
DNSZONE      (default: local.dev)
DNSTTL       (default: 3600 <- one hour)
DNSPREFIX    (default: "dns:" <- key prefix in redis)
DNSPRIMARY   (default: 8.8.8.8)
DNSSECONDARY (default: 8.8.4.4)
DNSTIMEOUT   (default: 1000 <- 1 second)

REST ROUTES

* GET /dns/api/v1/name

	List all host to ip address mapping

* GET /dns/api/v1/name/{host}

	Return the ip address of only that host

* PUT /dns/api/v1/name/{host}

	Create or Modify the ip address for "host"

* DELETE /dns/api/v1/name/{host}

	Remove the host from the DNS

* DELETE /dns/api/v1/name?force=true

	Remove all host from the DNS

* GET /dns/api/v1/zone

	Return the DNS ZONE

* GET /dns/api/v1/status

	Return the DNS status

To create or modify a host in the DNS configuration

Single host
curl -X PUT -H 'Content-Type: application/json' -d '{"ipv4":["192.168.1.1"], "ipv6":["2605:f8b0:4006:802:0:0:0:1010"]}' http://localhost:8053/dns/api/v1/name/database.domain.com

Multiple hosts
curl -X PUT -H 'Content-Type: application/json' -d '{"ipv4":["192.168.1.1","192.168.1.2"], "ipv6":["2605:f8b0:4006:802:0:0:0:1010","2605:f8b0:4006:802:0:0:0:1011"]}' http://localhost:8053/dns/api/v1/name/database.domain.com

To query the address of a host

curl http://localhost:8053/dns/api/v1/name/database.domain.com
or
dig @127.0.0.1 database.domain.com
or
dig @127.0.0.1 database.domain.com AAAA

To remove a host from the registry

curl -X DELETE http://localhost:8053/dns/api/v1/name/database.domain.com

UPGRADING from 0.0.9 or 0.1.0 to a version greater than 0.1.0

You will need to clear your redis configuration before running the new version.

curl -X DELETE http://localhost:8053/dns/api/v1/name\?force\=true
or
for key in `echo 'KEYS dns*' | redis-cli | awk '{print $1}'` ; do echo DEL $key ; done | redis-cli

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.