Skip to content

LimboDNS is a nice and simple authoritative Domain Name Server allowing you to run your very own DynDNS service.

Notifications You must be signed in to change notification settings

AaronJFoster/limbodns

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LimboDNS

LimboDNS is a nice and simple authoritative Domain Name Server allowing you to run your very own DynDNS service for your domain(s).

Features

  • No complicated installation required. Either download and run the one-file-server or use docker.
  • Webserver with WebUI included for easy configuration and dynamic DNS updates via HTTP.
  • Support for IPv4 and IPv6.
  • Support for A, AAAA and CNAME records.
  • Easy auto generation of required NS and SOA records.
  • Runs on Docker, Linux, Windows and other Java capable OS.
  • I know you're tired of messing around with zone files, zone transfers, bind and crazy scripts just to run a simple DynDNS for some devices in your home network.

Server Setup - Option 1: One-file-server

# Java 8+ is required, so depending on you distribution type something like this:
sudo apt-get install default-jre-headless
pacman -S jre-openjdk-headless

# Get it
wget http://repo.kuhlins.org/artifactory/public/net/limbomedia/limbodns/5.3/limbodns-5.3-jar-with-dependencies.jar

# Run it
# -Ddir specifies where to store config and data. If left, execution directory is used.
java -Ddir=/path/where/data/should/be/stored -jar limbodns-5.3-jar-with-dependencies.jar

# Visit admin interface: http://YOUR-SERVER:7777

Server Setup - Option 2: Docker

docker run -d -p 7777:7777 -p 53:53/tcp -p 53:53/udp -v DATA-DIR:/data limbomedia/limbodns

Server Configuration

Upon the first start and if not already existing, LimboDNS creates the configuration file [DATA_DIR]/config.json. Edit to set:

  • Ports (DNS TCP/UDP, Admin interface HTTP)
  • Admin password
  • Forward header if you run LimboDNS behind a reverse proxy

Client

A client needs to send a simple HTTP request to update it's record. Therefore the DynDNS token given in the admin ui must be known. Note that one token can be used for multiple records of the same type to update at once. Here're some examples how to update. For sure you substitute localhost:7777 according to your installation and 123 with the token configured on the record to update.

# IP explicitly specified
http://localhost:7777/update/123/127.0.0.1

# IP autodetect
http://localhost:7777/update/123

# Here's an example using wget with IPv4 explicitly set, what's useful on IP dual stack setups.
wget --inet4-only -qO - http://localhost:7777/update/123
# As a result you'll get a response listing updated records in JSON format:
[
{"zone" : "example.com.", "record" : "www1", "type" : "A", "changed" : false, "value" : "127.0.0.1"},
{"zone" : "example.com.", "record" : "www2", "type" : "A", "changed" : false, "value" : "127.0.0.1"}
]

Links:

Thanks:

Thanks to the great libraries I used in this project:

About

LimboDNS is a nice and simple authoritative Domain Name Server allowing you to run your very own DynDNS service.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 77.7%
  • JavaScript 12.2%
  • HTML 9.8%
  • CSS 0.3%