HTTPS SSH

DEVDNS v0.0.4

A very simple DNS server built with Node.js that allows developers to quickly setup DNS records without having to edit host files or company servers. It can also be used for instances for testing servers prior to global DNS changes or propagation has occurred. Its ideal for product companies who have client domains pointing to their application, allowing you to test the custom domains before the client commits to changing their DNS.

It comes with a very simple web interface, as well as an API so if you wanted to install this in a single location for your dev team, you'll all be able to access the master version.

How do I get set up?

Installation is simple:

npm install devdns -g

or

hg clone https://bitbucket.org/justcompile/devdns

If installed via NPM, you can run the command from anywhere, but if you cloned the repo you'll have to run it from the bin directory in the repo. It will need to be run as a super user or sudo user as the DNS server runs on a restricted port.

sudo devdns # or sudo ./devdns if you've downloaded the source

There are two optional arguments which are the port the Web Interface runs on (defaults to 3000), and a MongoDB connection string. By default DevDNS stores records in a file, but if you pass --mongo it will use MongoDB instead. If a value isn't passed in the mongo connection string defaults to mongodb://localhost:27017/devdns.

sudo devdns --webport 3000 --mongo # uses mongodb://localhost:27017/devdns
sudo devdns --webport 3000 --mongo mongodb://user@passwordlocalhost:27017/devdns

Now the servers are up and running you should set your network adapter's primary DNS server to 127.0.0.1 (or if you've installed it on a central server, the IP of that machine) apply the changes and you should be up and running.

To edit the DNS records, point your browser to the same IP as you've just set your DNS server to, on the port you specified. E.g if no args were passed to the devdns binary, you'd point your browser to http://127.0.0.1:3000.

TODO

  • Write API Docs
  • Handlers for other data stores.